code: def hash_object(obj: AimObjectDict) -> int:
      """Hash an dict-like object.
  
      The implementation does not take into account the order
      `hash({'a': 5, 'b': 7}) == hash({'b': 7, 'a': 5})`
      """
      state = hashlib.blake2b(
          digest_size=_HASH_SIZE, salt=_HASH_OBJECT_SALT
      )
      # Here we use `key_cmp` to run over the object keys in an (meaningless but)
      # deterministic order.
      for key_val_tuple in sorted(obj.items(), key=key_cmp):
          # We accumulate the hash state with `(key, value)`, more specificially
          # the array-hash of `(key, value)`
          piece_hash = hash_array(key_val_tuple)
          state.update(encode_int64(piece_hash))
  
      return decode_int64(state.digest())
  
file_path: aim/aim/storage/hashing/hashing.py
imports: import hashlib
  from aim.storage.encoding import encode_int64, decode_int64
  from aim.storage.hashing import c_hash
  from aim.storage.types import AimObject, AimObjectArray, AimObjectKey, AimObjectDict, NoneType
  from typing import Tuple, Union
label_desc: Use image node_id 9 for calling a global function with example usage: hash_object(obj) and returns: decode_int64