# OUT OF OR IN CONNECTION WITH THE WORK OR THE USE OR OTHER DEALINGS
# IN THE WORK.
#----------------------------------------------------------------------
-from types import StringTypes
+from __future__ import print_function
+
import time
import datetime
import dateutil.parser
import re
from sfa.util.sfalogging import logger
+from sfa.util.py23 import StringType
SFATIME_FORMAT = "%Y-%m-%dT%H:%M:%SZ"
# prepare the input for the checks below by
# casting strings ('1327098335') to ints
- if isinstance(input, StringTypes):
+ if isinstance(input, StringType):
try:
input = int(input)
except ValueError:
if isinstance (input, datetime.datetime):
#logger.info ("argument to utcparse already a datetime - doing nothing")
return input
- elif isinstance (input, StringTypes):
+ elif isinstance (input, StringType):
t = dateutil.parser.parse(input)
if t.utcoffset() is not None:
t = t.utcoffset() + t.replace(tzinfo=None)
else:
logger.error("Unexpected type in utcparse [%s]"%type(input))
-def datetime_to_string(input):
- return datetime.datetime.strftime(input, SFATIME_FORMAT)
+def datetime_to_string(dt):
+ return datetime.datetime.strftime(dt, SFATIME_FORMAT)
-def datetime_to_utc(input):
- return time.gmtime(datetime_to_epoch(input))
+def datetime_to_utc(dt):
+ return time.gmtime(datetime_to_epoch(dt))
# see https://docs.python.org/2/library/time.html
# all timestamps are in UTC so time.mktime() would be *wrong*
-def datetime_to_epoch(input):
- return int(calendar.timegm(input.timetuple()))
+def datetime_to_epoch(dt):
+ return int(calendar.timegm(dt.timetuple()))
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',
'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))))