code: def fromutc(self, dt):
          
          if not isinstance(dt, datetime):
              raise TypeError("fromutc() requires a datetime argument")
  
          if dt.tzinfo is not self:
              raise ValueError("dt.tzinfo is not self")
  
          # Get transitions - if there are none, fixed offset
          transitions = self.transitions(dt.year)
          if transitions is None:
              return dt + self.utcoffset(dt)
  
          # Get the transition times in UTC
          dston, dstoff = transitions
  
          dston -= self._std_offset
          dstoff -= self._std_offset
  
          utc_transitions = (dston, dstoff)
          dt_utc = dt.replace(tzinfo=None)
  
          isdst = self._naive_isdst(dt_utc, utc_transitions)
  
          if isdst:
              dt_wall = dt + self._dst_offset
          else:
              dt_wall = dt + self._std_offset
  
          _fold = int(not isdst and self.is_ambiguous(dt_wall))
  
          return enfold(dt_wall, fold=_fold)
docs: Given a datetime in UTC, return local time