code: def hash_number(number: Union[int, float]) -> int:
      """Hash a numeric value.
  
      As in Python, we make sure that `hash(a) == hash(b)` when `a == b` even if
      `a` and `b` are of different types (e.g. `int` vs `float`).
      In contrast to CPython implementation, our hash does not map integers to
      themselves making them more robust for different hasing scenarios.
      """
      state = c_hash.det_hash(number)
      return hash_uniform(state)
  
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 3 for calling a global function with example usage: hash_number(number) and returns: hash_uniform