docs: def timezone(zone):
      r''' Return a datetime.tzinfo implementation for the given timezone
  
      >>> from datetime import datetime, timedelta
      >>> utc = timezone('UTC')
      >>> eastern = timezone('US/Eastern')
      >>> eastern.zone
      'US/Eastern'
      >>> timezone(u'US/Eastern') is eastern
      True
      >>> utc_dt = datetime(2002, 10, 27, 6, 0, 0, tzinfo=utc)
      >>> loc_dt = utc_dt.astimezone(eastern)
      >>> fmt = '%Y-%m-%d %H:%M:%S %Z (%z)'
      >>> loc_dt.strftime(fmt)
      '2002-10-27 01:00:00 EST (-0500)'
      >>> (loc_dt - timedelta(minutes=10)).strftime(fmt)
      '2002-10-27 00:50:00 EST (-0500)'
      >>> eastern.normalize(loc_dt - timedelta(minutes=10)).strftime(fmt)
      '2002-10-27 01:50:00 EDT (-0400)'
      >>> (loc_dt + timedelta(minutes=10)).strftime(fmt)
      '2002-10-27 01:10:00 EST (-0500)'
  
      Raises UnknownTimeZoneError if passed an unknown zone.
  
      >>> timezone('Asia/Shangri-La')
      Traceback (most recent call last):
      ...
      UnknownTimeZoneError: 'Asia/Shangri-La'
  
      >>> timezone(u'\N{TRADE MARK SIGN}')
      Traceback (most recent call last):
      ...
      UnknownTimeZoneError: u'\u2122'
      '''
      if zone.upper() == 'UTC':
          return utc
  
      try:
          zone = zone.encode('US-ASCII')
      except UnicodeEncodeError:
          # All valid timezones are ASCII
          raise UnknownTimeZoneError(zone)
  
      zone = _unmunge_zone(zone)
      if zone not in _tzinfo_cache:
          if resource_exists(zone):
              _tzinfo_cache[zone] = build_tzinfo(zone, open_resource(zone))
          else:
              raise UnknownTimeZoneError(zone)
  
      return _tzinfo_cache[zone]