class_docstr: This is an abstract base class for time zones represented by an annual
  transition into and out of DST. Child classes should implement the following
  methods:
  
      * ``__init__(self, *args, **kwargs)``
      * ``transitions(self, year)`` - this is expected to return a tuple of
        datetimes representing the DST on and off transitions in standard
        time.
  
  A fully initialized ``tzrangebase`` subclass should also provide the
  following attributes:
      * ``hasdst``: Boolean whether or not the zone uses DST.
      * ``_dst_offset`` / ``_std_offset``: :class:`datetime.timedelta` objects
        representing the respective UTC offsets.
      * ``_dst_abbr`` / ``_std_abbr``: Strings representing the timezone short
        abbreviations in DST and STD, respectively.
      * ``_hasdst``: Whether or not the zone has DST.
  
  .. versionadded:: 2.6.0
docstr: Given a datetime in UTC, return local time 
docstr_tok: ["Given","a","datetime","in","UTC",",","return","local","time"]
code: def fromutc(self, dt):
      """Given a datetime in UTC, return local time"""
      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)
  
imports: from six import PY2
  from functools import wraps
  from datetime import datetime, timedelta, tzinfo
label_desc: Use image node_id 5 for calling the tzrangebase obj's underlying member method code with example usage: obj.fromutc(dt) and returns: enfold, unknown