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
timezone_str = 'UTC'
try:
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()
if workoutstartdatetime.tzinfo is None:
timezone_str = 'UTC'
try:
timezone_str = tf.timezone_at(lng=lonavg, lat=latavg)
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
)
workoutstartdatetime = timezone.make_aware(workoutstartdatetime)
except ValueError:
workoutstartdatetime = workoutstartdatetime.astimezone(
pytz.timezone(timezone_str)
)
except KeyError:
timezone_str = r.defaulttimezone
pass
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)
workoutdate = workoutstartdatetime.astimezone(
pytz.timezone(timezone_str)
).strftime('%Y-%m-%d')
workoutstarttime = workoutstartdatetime.astimezone(
pytz.timezone(timezone_str)
).strftime('%H:%M:%S')
workoutdate = workoutstartdatetime.strftime('%Y-%m-%d')
workoutstarttime = workoutstartdatetime.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,
workoutstarttime=workoutstarttime,
)
dologging('debuglog.log',s)
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
title = title[0:140]
timezone_str = str(workoutstartdatetime.tzinfo)
w = Workout(user=r, name=title, date=workoutdate,
workouttype=workouttype,
boattype=boattype,