autopep8
[sfa.git] / sfa / util / sfatime.py
index 7435667..9752d32 100644 (file)
@@ -33,6 +33,7 @@ from sfa.util.py23 import StringType
 
 SFATIME_FORMAT = "%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.
@@ -40,18 +41,21 @@ 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
 """
 
-    def handle_shorthands (input):
+    def handle_shorthands(input):
         """recognize string like +5d or +3w or +2m as 
         2 days, 3 weeks or 2 months from now"""
         if input.startswith('+'):
-            match=re.match (r"([0-9]+)([dwm])",input[1:])
+            match = re.match(r"([0-9]+)([dwm])", input[1:])
             if match:
-                how_many=int(match.group(1))
-                what=match.group(2)
-                if what == 'd':         d=datetime.timedelta(days=how_many)
-                elif what == 'w':       d=datetime.timedelta(weeks=how_many)
-                elif what == 'm':       d=datetime.timedelta(weeks=4*how_many)
-                return datetime.datetime.utcnow()+d
+                how_many = int(match.group(1))
+                what = match.group(2)
+                if what == 'd':
+                    d = datetime.timedelta(days=how_many)
+                elif what == 'w':
+                    d = datetime.timedelta(weeks=how_many)
+                elif what == 'm':
+                    d = datetime.timedelta(weeks=4 * how_many)
+                return datetime.datetime.utcnow() + d
 
     # prepare the input for the checks below by
     # casting strings ('1327098335') to ints
@@ -60,37 +64,43 @@ For safety this can also handle inputs that are either timestamps, or datetimes
             input = int(input)
         except ValueError:
             try:
-                new_input=handle_shorthands(input)
-                if new_input is not None: input=new_input
+                new_input = handle_shorthands(input)
+                if new_input is not None:
+                    input = new_input
             except:
                 import traceback
                 traceback.print_exc()
 
-    #################### here we go
-    if isinstance (input, datetime.datetime):
+    # here we go
+    if isinstance(input, datetime.datetime):
         #logger.info ("argument to utcparse already a datetime - doing nothing")
         return input
-    elif isinstance (input, StringType):
+    elif isinstance(input, StringType):
         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)):
+    elif isinstance(input, (int, float, long)):
         return datetime.datetime.fromtimestamp(input)
     else:
-        logger.error("Unexpected type in utcparse [%s]"%type(input))
+        logger.error("Unexpected type in utcparse [%s]" % type(input))
+
 
 def datetime_to_string(dt):
     return datetime.datetime.strftime(dt, SFATIME_FORMAT)
 
+
 def datetime_to_utc(dt):
     return time.gmtime(datetime_to_epoch(dt))
 
-# see https://docs.python.org/2/library/time.html 
+# see https://docs.python.org/2/library/time.html
 # all timestamps are in UTC so time.mktime() would be *wrong*
+
+
 def datetime_to_epoch(dt):
     return int(calendar.timegm(dt.timetuple()))
 
+
 def add_datetime(input, days=0, hours=0, minutes=0, seconds=0):
     """
     Adjust the input date by the specified delta (in seconds).
@@ -100,9 +110,10 @@ def add_datetime(input, days=0, hours=0, minutes=0, seconds=0):
 
 if __name__ == '__main__':
         # checking consistency
-    print(20*'X')
-    print(("Should be close to zero: %s"%(datetime_to_epoch(datetime.datetime.utcnow())-time.time())))
-    print(20*'X')
+    print(20 * 'X')
+    print(("Should be close to zero: %s" %
+           (datetime_to_epoch(datetime.datetime.utcnow()) - time.time())))
+    print(20 * 'X')
     for input in [
             '+2d',
             '+3w',
@@ -114,4 +125,5 @@ if __name__ == '__main__':
             '2014-05-28T15:18',
             '2014-05-28T15:18:30',
     ]:
-        print("input=%20s -> parsed %s"%(input,datetime_to_string(utcparse(input))))
+        print("input=%20s -> parsed %s" %
+              (input, datetime_to_string(utcparse(input))))