nodes: 0, module; 1, function_definition; 2, function_name:hash_dump; 3, parameters; 4, type; 5, block; 6, identifier:data; 7, identifier:str; 8, expression_statement; 9, return_statement; 10, comment:"""Hash an arbitrary JSON dictionary by dumping it in sorted order, encoding it in UTF-8, then hashing the bytes.
  
      :param data: An arbitrary JSON-serializable object
      :type data: dict or list or tuple
      """; 11, call; 12, attribute; 13, argument_list; 14, call; 15, identifier:hexdigest; 16, attribute; 17, argument_list; 18, identifier:hashlib; 19, identifier:sha512; 20, call; 21, attribute; 22, argument_list; 23, call; 24, identifier:encode; 25, string; 26, attribute; 27, argument_list; 28, string_content:utf-8; 29, identifier:json; 30, identifier:dumps; 31, identifier:data; 32, keyword_argument; 33, identifier:sort_keys; 34, True
code: def hash_dump(data) -> str:
      """Hash an arbitrary JSON dictionary by dumping it in sorted order, encoding it in UTF-8, then hashing the bytes.
  
      :param data: An arbitrary JSON-serializable object
      :type data: dict or list or tuple
      """
      return hashlib.sha512(json.dumps(data, sort_keys=True).encode('utf-8')).hexdigest()