aboutsummaryrefslogtreecommitdiffstats
path: root/lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg/dateutil/tzwin.py
diff options
context:
space:
mode:
Diffstat (limited to 'lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg/dateutil/tzwin.py')
-rwxr-xr-xlib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg/dateutil/tzwin.py180
1 files changed, 0 insertions, 180 deletions
diff --git a/lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg/dateutil/tzwin.py b/lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg/dateutil/tzwin.py
deleted file mode 100755
index 073e0ff6..00000000
--- a/lib/python2.7/site-packages/python_dateutil-1.5-py2.7.egg/dateutil/tzwin.py
+++ /dev/null
@@ -1,180 +0,0 @@
-# This code was originally contributed by Jeffrey Harris.
-import datetime
-import struct
-import _winreg
-
-__author__ = "Jeffrey Harris & Gustavo Niemeyer <gustavo@niemeyer.net>"
-
-__all__ = ["tzwin", "tzwinlocal"]
-
-ONEWEEK = datetime.timedelta(7)
-
-TZKEYNAMENT = r"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Time Zones"
-TZKEYNAME9X = r"SOFTWARE\Microsoft\Windows\CurrentVersion\Time Zones"
-TZLOCALKEYNAME = r"SYSTEM\CurrentControlSet\Control\TimeZoneInformation"
-
-def _settzkeyname():
- global TZKEYNAME
- handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
- try:
- _winreg.OpenKey(handle, TZKEYNAMENT).Close()
- TZKEYNAME = TZKEYNAMENT
- except WindowsError:
- TZKEYNAME = TZKEYNAME9X
- handle.Close()
-
-_settzkeyname()
-
-class tzwinbase(datetime.tzinfo):
- """tzinfo class based on win32's timezones available in the registry."""
-
- def utcoffset(self, dt):
- if self._isdst(dt):
- return datetime.timedelta(minutes=self._dstoffset)
- else:
- return datetime.timedelta(minutes=self._stdoffset)
-
- def dst(self, dt):
- if self._isdst(dt):
- minutes = self._dstoffset - self._stdoffset
- return datetime.timedelta(minutes=minutes)
- else:
- return datetime.timedelta(0)
-
- def tzname(self, dt):
- if self._isdst(dt):
- return self._dstname
- else:
- return self._stdname
-
- def list():
- """Return a list of all time zones known to the system."""
- handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
- tzkey = _winreg.OpenKey(handle, TZKEYNAME)
- result = [_winreg.EnumKey(tzkey, i)
- for i in range(_winreg.QueryInfoKey(tzkey)[0])]
- tzkey.Close()
- handle.Close()
- return result
- list = staticmethod(list)
-
- def display(self):
- return self._display
-
- def _isdst(self, dt):
- dston = picknthweekday(dt.year, self._dstmonth, self._dstdayofweek,
- self._dsthour, self._dstminute,
- self._dstweeknumber)
- dstoff = picknthweekday(dt.year, self._stdmonth, self._stddayofweek,
- self._stdhour, self._stdminute,
- self._stdweeknumber)
- if dston < dstoff:
- return dston <= dt.replace(tzinfo=None) < dstoff
- else:
- return not dstoff <= dt.replace(tzinfo=None) < dston
-
-
-class tzwin(tzwinbase):
-
- def __init__(self, name):
- self._name = name
-
- handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
- tzkey = _winreg.OpenKey(handle, "%s\%s" % (TZKEYNAME, name))
- keydict = valuestodict(tzkey)
- tzkey.Close()
- handle.Close()
-
- self._stdname = keydict["Std"].encode("iso-8859-1")
- self._dstname = keydict["Dlt"].encode("iso-8859-1")
-
- self._display = keydict["Display"]
-
- # See http://ww_winreg.jsiinc.com/SUBA/tip0300/rh0398.htm
- tup = struct.unpack("=3l16h", keydict["TZI"])
- self._stdoffset = -tup[0]-tup[1] # Bias + StandardBias * -1
- self._dstoffset = self._stdoffset-tup[2] # + DaylightBias * -1
-
- (self._stdmonth,
- self._stddayofweek, # Sunday = 0
- self._stdweeknumber, # Last = 5
- self._stdhour,
- self._stdminute) = tup[4:9]
-
- (self._dstmonth,
- self._dstdayofweek, # Sunday = 0
- self._dstweeknumber, # Last = 5
- self._dsthour,
- self._dstminute) = tup[12:17]
-
- def __repr__(self):
- return "tzwin(%s)" % repr(self._name)
-
- def __reduce__(self):
- return (self.__class__, (self._name,))
-
-
-class tzwinlocal(tzwinbase):
-
- def __init__(self):
-
- handle = _winreg.ConnectRegistry(None, _winreg.HKEY_LOCAL_MACHINE)
-
- tzlocalkey = _winreg.OpenKey(handle, TZLOCALKEYNAME)
- keydict = valuestodict(tzlocalkey)
- tzlocalkey.Close()
-
- self._stdname = keydict["StandardName"].encode("iso-8859-1")
- self._dstname = keydict["DaylightName"].encode("iso-8859-1")
-
- try:
- tzkey = _winreg.OpenKey(handle, "%s\%s"%(TZKEYNAME, self._stdname))
- _keydict = valuestodict(tzkey)
- self._display = _keydict["Display"]
- tzkey.Close()
- except OSError:
- self._display = None
-
- handle.Close()
-
- self._stdoffset = -keydict["Bias"]-keydict["StandardBias"]
- self._dstoffset = self._stdoffset-keydict["DaylightBias"]
-
-
- # See http://ww_winreg.jsiinc.com/SUBA/tip0300/rh0398.htm
- tup = struct.unpack("=8h", keydict["StandardStart"])
-
- (self._stdmonth,
- self._stddayofweek, # Sunday = 0
- self._stdweeknumber, # Last = 5
- self._stdhour,
- self._stdminute) = tup[1:6]
-
- tup = struct.unpack("=8h", keydict["DaylightStart"])
-
- (self._dstmonth,
- self._dstdayofweek, # Sunday = 0
- self._dstweeknumber, # Last = 5
- self._dsthour,
- self._dstminute) = tup[1:6]
-
- def __reduce__(self):
- return (self.__class__, ())
-
-def picknthweekday(year, month, dayofweek, hour, minute, whichweek):
- """dayofweek == 0 means Sunday, whichweek 5 means last instance"""
- first = datetime.datetime(year, month, 1, hour, minute)
- weekdayone = first.replace(day=((dayofweek-first.isoweekday())%7+1))
- for n in xrange(whichweek):
- dt = weekdayone+(whichweek-n)*ONEWEEK
- if dt.month == month:
- return dt
-
-def valuestodict(key):
- """Convert a registry key's values to a dictionary."""
- dict = {}
- size = _winreg.QueryInfoKey(key)[1]
- for i in range(size):
- data = _winreg.EnumValue(key, i)
- dict[data[0]] = data[1]
- return dict