<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def hash_edge(source, target, edge_data: EdgeData) -> str: """Convert an edge tuple to a SHA-512 hash. :param BaseEntity source: The source BEL node :param BaseEntity target: The target BEL node :param edge_data: The edge's data dictionary :return: A hashed version of the edge tuple using md5 hash of the binary pickle dump of u, v, and the json dump of d """

    edge_tuple = _get_edge_tuple(source, target, edge_data)
    return _hash_tuple(edge_tuple)