code: def _hash_scalar(val, encoding='utf8', hash_key=None):
      
  
      if isna(val):
          # this is to be consistent with the _hash_categorical implementation
          return np.array([np.iinfo(np.uint64).max], dtype='u8')
  
      if getattr(val, 'tzinfo', None) is not None:
          # for tz-aware datetimes, we need the underlying naive UTC value and
          # not the tz aware object or pd extension type (as
          # infer_dtype_from_scalar would do)
          if not isinstance(val, tslibs.Timestamp):
              val = tslibs.Timestamp(val)
          val = val.tz_convert(None)
  
      dtype, val = infer_dtype_from_scalar(val)
      vals = np.array([val], dtype=dtype)
  
      return hash_array(vals, hash_key=hash_key, encoding=encoding,
                        categorize=False)
docs: Hash scalar value
  
      Returns
      -------
      1d uint64 numpy array of hash value, of length 1