code: def localtime(dt=None, isdst=-1):
      
      if dt is None:
          return datetime.datetime.now(datetime.timezone.utc).astimezone()
      if dt.tzinfo is not None:
          return dt.astimezone()
      # We have a naive datetime.  Convert to a (localtime) timetuple and pass to
      # system mktime together with the isdst hint.  System mktime will return
      # seconds since epoch.
      tm = dt.timetuple()[:-1] + (isdst,)
      seconds = time.mktime(tm)
      localtm = time.localtime(seconds)
      try:
          delta = datetime.timedelta(seconds=localtm.tm_gmtoff)
          tz = datetime.timezone(delta, localtm.tm_zone)
      except AttributeError:
          # Compute UTC offset and compare with the value implied by tm_isdst.
          # If the values match, use the zone name implied by tm_isdst.
          delta = dt - datetime.datetime(*time.gmtime(seconds)[:6])
          dst = time.daylight and localtm.tm_isdst > 0
          gmtoff = -(time.altzone if dst else time.timezone)
          if delta == datetime.timedelta(seconds=gmtoff):
              tz = datetime.timezone(delta, time.tzname[dst])
          else:
              tz = datetime.timezone(delta)
      return dt.replace(tzinfo=tz)
docs: Return local time as an aware datetime object.
  
      If called without arguments, return current time.  Otherwise *dt*
      argument should be a datetime instance, and it is converted to the
      local time zone according to the system time zone database.  If *dt* is
      naive (that is, dt.tzinfo is None), it is assumed to be in local time.
      In this case, a positive or zero value for *isdst* causes localtime to
      presume initially that summer time (for example, Daylight Saving Time)
      is or is not (respectively) in effect for the specified time.  A
      negative value for *isdst* causes the localtime() function to attempt
      to divine whether summer time is in effect for the specified time.