utils.py
changeset 140 6db2527b67cf
parent 139 9c7769850195
child 141 65c98c9e1716
--- 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)
-