Private
Public Access
1
0

doing time zones slightly better

This commit is contained in:
Sander Roosendaal
2021-06-16 16:12:21 +02:00
parent 3cb4dd9da9
commit b04a25f7f7

View File

@@ -1727,60 +1727,53 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
workoutstartdatetime = row.rowdatetime workoutstartdatetime = row.rowdatetime
timezone_str = 'UTC' if workoutstartdatetime.tzinfo is None:
try: timezone_str = 'UTC'
workoutstartdatetime = timezone.make_aware(workoutstartdatetime)
except ValueError:
pass
dologging('debuglog.log','Dataprep line 1737, Workout Startdatetime {workoutstartdatetime}'.format(
workoutstartdatetime=workoutstartdatetime,
))
try:
latavg = row.df[' latitude'].mean()
lonavg = row.df[' longitude'].mean()
tf = TimezoneFinder()
try: try:
timezone_str = tf.timezone_at(lng=lonavg, lat=latavg) workoutstartdatetime = timezone.make_aware(workoutstartdatetime)
except (ValueError,OverflowError): # pragma: no cover
timezone_str = 'UTC'
if timezone_str == None: # pragma: no cover
timezone_str = tf.closest_timezone_at(lng=lonavg,
lat=latavg)
if timezone_str == None: # pragma: no cover
timezone_str = r.defaulttimezone
try:
workoutstartdatetime = pytz.timezone(timezone_str).localize(
row.rowdatetime
)
except ValueError: except ValueError:
workoutstartdatetime = workoutstartdatetime.astimezone( pass
pytz.timezone(timezone_str)
)
except KeyError:
timezone_str = r.defaulttimezone
try:
latavg = row.df[' latitude'].mean()
lonavg = row.df[' longitude'].mean()
tf = TimezoneFinder()
try:
timezone_str = tf.timezone_at(lng=lonavg, lat=latavg)
except (ValueError,OverflowError): # pragma: no cover
timezone_str = 'UTC'
if timezone_str is None: # pragma: no cover
timezone_str = tf.closest_timezone_at(lng=lonavg,
lat=latavg)
if timezone_str is None: # pragma: no cover
timezone_str = r.defaulttimezone
try:
workoutstartdatetime = pytz.timezone(timezone_str).localize(
row.rowdatetime
)
except ValueError:
workoutstartdatetime = workoutstartdatetime.astimezone(
pytz.timezone(timezone_str)
)
except KeyError:
timezone_str = r.defaulttimezone
dologging('debuglog.log','Dataprep line 1763, Workout Startdatetime {workoutstartdatetime}'.format(
workoutstartdatetime=workoutstartdatetime,
))
duration = totaltime_sec_to_string(totaltime) duration = totaltime_sec_to_string(totaltime)
workoutdate = workoutstartdatetime.astimezone( workoutdate = workoutstartdatetime.strftime('%Y-%m-%d')
pytz.timezone(timezone_str) workoutstarttime = workoutstartdatetime.strftime('%H:%M:%S')
).strftime('%Y-%m-%d')
workoutstarttime = workoutstartdatetime.astimezone(
pytz.timezone(timezone_str)
).strftime('%H:%M:%S')
s = 'Dataprep line 1780 workoutdate and time set to {workoutdate} and {workoutstarttime}'.format( s = 'Dataprep line 1772 workoutdate and time set to {workoutdate} and {workoutstarttime}'.format(
workoutdate=workoutdate, workoutdate=workoutdate,
workoutstarttime=workoutstarttime, workoutstarttime=workoutstarttime,
) )
dologging('debuglog.log',s)
if makeprivate: # pragma: no cover if makeprivate: # pragma: no cover
@@ -1812,6 +1805,8 @@ def save_workout_database(f2, r, dosmooth=True, workouttype='rower',
if title is not None and len(title)>140: # pragma: no cover if title is not None and len(title)>140: # pragma: no cover
title = title[0:140] title = title[0:140]
timezone_str = str(workoutstartdatetime.tzinfo)
w = Workout(user=r, name=title, date=workoutdate, w = Workout(user=r, name=title, date=workoutdate,
workouttype=workouttype, workouttype=workouttype,
boattype=boattype, boattype=boattype,