def METHOD_NAME(eth_privkey: bytes, data: Dict[str, Any]) -> bytes:
    """
    Sign the given data using the given Ethereum private key.
    :param eth_privkey: Signing key.
    :param data: Data to sign.
    :return: Signature.
    """
    # internally, this is using py_eth_sig_utils.eip712.encode_typed_data
    _args = signing.sign_typed_data(data, eth_privkey)
    # serialize structured signature (v, r, s) into bytes
    signature = signing.v_r_s_to_signature(*_args)
    # be paranoid about what to expect
    assert type(signature) == bytes and len(signature) == _EIP712_SIG_LEN
    return signature