--- a/utils.py Sun Sep 13 00:49:55 2009 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,137 +0,0 @@
-"""
- Miscellaneous things
-"""
-
-import datetime, calendar, pytz
-import os, errno
-
-from qmsk.web.urltree import URLType
-
-class URLChannelName (URLType) :
- """
- Handle LogChannel names in URLs. Deals with instances of LogChannel
- """
-
- def __init__ (self, channels) :
- """
- Use the given { name -> LogChannel } dict
- """
-
- self.channels = channels
-
- def parse (self, chan_name) :
- """
- chan_name -> LogChannel
- """
-
- return self.channels[chan_name]
-
- def build (self, chan) :
- """
- LogChannel -> chan_name
- """
-
- return chan.id
-
-class URLDateType (URLType) :
- """
- Handle dates in URLs as naive datetime objects (with indeterminate time info)
- """
-
- def __init__ (self, date_fmt) :
- """
- Format/parse dates using the given format
- """
-
- self.date_fmt = date_fmt
-
- def parse (self, date_str) :
- """
- date_str -> naive datetime.datetime
- """
-
- return datetime.datetime.strptime(date_str, self.date_fmt)
-
- def build (self, date) :
- """
- datetime.date -> date_str
- """
-
- return date.strftime(self.date_fmt)
-
-class URLTimestampType (URLType) :
- """
- Handles an integer UNIX timestamp as an UTC datetime
- """
-
- def parse (self, timestamp_str) :
- """
- timestamp_str -> pytz.utc datetime.datetime
- """
-
- return from_utc_timestamp(int(timestamp_str))
-
- def build (self, dtz) :
- """
- pytz.utc datetime.datetime -> timestamp_str
- """
-
- return str(to_utc_timestamp(dtz))
-
-def from_utc_timestamp (timestamp) :
- """
- Converts a UNIX timestamp into a datetime.datetime
- """
-
- return datetime.datetime.utcfromtimestamp(timestamp).replace(tzinfo=pytz.utc)
-
-def to_utc_timestamp (dt) :
- """
- Converts a datetime.datetime into a UNIX timestamp
- """
-
- return calendar.timegm(dt.utctimetuple())
-
-def mtime (path, ignore_missing=False) :
- """
- Gets the mtime for the given path as an UTC datetime, or None, if the file doesn't exist and ignore_missing
- """
-
- try :
- # stat
- st = os.stat(path)
-
- # trap IOError
- except os.error, e :
- # ENOENT?
- if ignore_missing and e.errno == errno.ENOENT :
- return None
-
- else :
- raise
-
- else :
- # decode
- return from_utc_timestamp(st.st_mtime)
-
-class FixedOffsetTimezone (pytz._FixedOffset) :
- """
- A Fixed-offset timezone with no DST info, compatible with pytz.
-
- This is based on pytz._FixedOffset, but overrides dst() to return timedelta(0)
- """
-
- def __init__ (self, minutes) :
- """
- Minutes is simply the offset from UTC in minutes, positive or negative, at most 24h.
- """
-
- pytz._FixedOffset.__init__(self, minutes)
-
- def dst (self, dt) :
- """
- No DST info
- """
-
- return datetime.timedelta(0)
-