parameters: (self)
return_statement: return self._hashcode
docstring: Hash.
docstring_summary: Hash.
docstring_tokens: Hash .
function: def __hash__(self):
          """Hash."""
          if self._hashcode == -1:
              if self.fold:
                  t = self.replace(fold=0)
              else:
                  t = self
              tzoff = t.utcoffset()
              if not tzoff:  # zero or None
                  self._hashcode = hash(t._getstate()[0])
              else:
                  h, m = divmod(timedelta(hours=self.hour, minutes=self.minute) - tzoff,
                                timedelta(hours=1))
                  assert not m % timedelta(minutes=1), "whole minute"
                  m //= timedelta(minutes=1)
                  if 0 <= h < 24:
                      self._hashcode = hash(time(h, m, self.second, self.microsecond))
                  else:
                      self._hashcode = hash((h, m, self.second, self.microsecond))
          return self._hashcode
function_tokens: def __hash__ ( self ) : if self . _hashcode == - 1 : if self . fold : t = self . replace ( fold = 0 ) else : t = self tzoff = t . utcoffset ( ) if not tzoff : # zero or None self . _hashcode = hash ( t . _getstate ( ) [ 0 ] ) else : h , m = divmod ( timedelta ( hours = self . hour , minutes = self . minute ) - tzoff , timedelta ( hours = 1 ) ) assert not m % timedelta ( minutes = 1 ) , "whole minute" m //= timedelta ( minutes = 1 ) if 0 <= h < 24 : self . _hashcode = hash ( time ( h , m , self . second , self . microsecond ) ) else : self . _hashcode = hash ( ( h , m , self . second , self . microsecond ) ) return self . _hashcode