added copyright header
authorTony Mack <tmack@paris.CS.Princeton.EDU>
Sat, 21 Jul 2012 02:45:33 +0000 (22:45 -0400)
committerTony Mack <tmack@paris.CS.Princeton.EDU>
Sat, 21 Jul 2012 02:45:33 +0000 (22:45 -0400)
sfa/util/sfatime.py

index 34f4dce..70f8830 100644 (file)
@@ -1,47 +1,66 @@
-from types import StringTypes
-import dateutil.parser
-import datetime
-import time
-
-from sfa.util.sfalogging import logger
-
-DATEFORMAT = "%Y-%m-%dT%H:%M:%SZ"
-
-def utcparse(input):
-    """ Translate a string into a time using dateutil.parser.parse but make sure it's in UTC time and strip
-the timezone, so that it's compatible with normal datetime.datetime objects.
-
-For safety this can also handle inputs that are either timestamps, or datetimes
-"""
-    # perpare the input for the checks below by
-    # casting strings ('1327098335') to ints
-    if isinstance(input, StringTypes):
-        try:
-            input = int(input)
-        except ValueError:
-            pass
-          
-    if isinstance (input, datetime.datetime):
-        logger.warn ("argument to utcparse already a datetime - doing nothing")
-        return input
-    elif isinstance (input, StringTypes):
-        t = dateutil.parser.parse(input)
-        if t.utcoffset() is not None:
-            t = t.utcoffset() + t.replace(tzinfo=None)
-        return t
-    elif isinstance (input, (int,float,long)):
-        return datetime.datetime.fromtimestamp(input)
-    else:
-        logger.error("Unexpected type in utcparse [%s]"%type(input))
-
-def datetime_to_string(input):
-    return datetime.datetime.strftime(input, DATEFORMAT)
-
-def datetime_to_utc(input):
-    return time.gmtime(datetime_to_epoch(input))    
-
-def datetime_to_epoch(input):
-    return int(time.mktime(input.timetuple()))
-
-
-
+#----------------------------------------------------------------------\r
+# Copyright (c) 2008 Board of Trustees, Princeton University\r
+#\r
+# Permission is hereby granted, free of charge, to any person obtaining\r
+# a copy of this software and/or hardware specification (the "Work") to\r
+# deal in the Work without restriction, including without limitation the\r
+# rights to use, copy, modify, merge, publish, distribute, sublicense,\r
+# and/or sell copies of the Work, and to permit persons to whom the Work\r
+# is furnished to do so, subject to the following conditions:\r
+#\r
+# The above copyright notice and this permission notice shall be\r
+# included in all copies or substantial portions of the Work.\r
+#\r
+# THE WORK IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
+# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\r
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\r
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT\r
+# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,\r
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r
+# OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS\r
+# IN THE WORK.\r
+#----------------------------------------------------------------------\r
+from types import StringTypes\r
+import dateutil.parser\r
+import datetime\r
+import time\r
+\r
+from sfa.util.sfalogging import logger\r
+\r
+DATEFORMAT = "%Y-%m-%dT%H:%M:%SZ"\r
+\r
+def utcparse(input):\r
+    """ Translate a string into a time using dateutil.parser.parse but make sure it's in UTC time and strip\r
+the timezone, so that it's compatible with normal datetime.datetime objects.\r
+\r
+For safety this can also handle inputs that are either timestamps, or datetimes\r
+"""\r
+    # prepare the input for the checks below by\r
+    # casting strings ('1327098335') to ints\r
+    if isinstance(input, StringTypes):\r
+        try:\r
+            input = int(input)\r
+        except ValueError:\r
+            pass\r
+\r
+    if isinstance (input, datetime.datetime):\r
+        logger.warn ("argument to utcparse already a datetime - doing nothing")\r
+        return input\r
+    elif isinstance (input, StringTypes):\r
+        t = dateutil.parser.parse(input)\r
+        if t.utcoffset() is not None:\r
+            t = t.utcoffset() + t.replace(tzinfo=None)\r
+        return t\r
+    elif isinstance (input, (int,float,long)):\r
+        return datetime.datetime.fromtimestamp(input)\r
+    else:\r
+        logger.error("Unexpected type in utcparse [%s]"%type(input))\r
+\r
+def datetime_to_string(input):\r
+    return datetime.datetime.strftime(input, DATEFORMAT)\r
+\r
+def datetime_to_utc(input):\r
+    return time.gmtime(datetime_to_epoch(input))\r
+\r
+def datetime_to_epoch(input):\r
+    return int(time.mktime(input.timetuple()))\r