Private
Public Access
1
0

fixing timezone error c2 import

This commit is contained in:
2024-12-26 17:17:04 +01:00
parent 7b1f8e9286
commit 7a9385f1bf
4 changed files with 34 additions and 8 deletions

View File

@@ -905,7 +905,7 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True,
return datadf
def getpartofday(row, r):
def getpartofday(row, r, startdatetime=None, timezone=''):
workoutstartdatetime = row.rowdatetime
try: # pragma: no cover
latavg = row.df[' latitude'].mean()
@@ -932,6 +932,8 @@ def getpartofday(row, r):
workoutstartdatetime = row.rowdatetime
h = workoutstartdatetime.astimezone(pytz.timezone(timezone_str)).hour
if startdatetime is not None:
h = startdatetime.hour
if h < 12: # pragma: no cover
return "Morning"
@@ -1170,7 +1172,9 @@ parsers = {
}
def get_startdate_time_zone(r, row, startdatetime=None):
def get_startdate_time_zone(r, row, startdatetime=None, timezone=''):
if timezone != '':
preserve_timezone = True
if isinstance(startdatetime, str):
try:
startdatetime = pendulum.parse(startdatetime)
@@ -1184,15 +1188,15 @@ def get_startdate_time_zone(r, row, startdatetime=None):
timezone_str = 'Ect/GMT'
elif startdatetime == '':
startdatetime = row.rowdatetime
else:
startdatetime = row.rowdatetime
#else:
# startdatetime = row.rowdatetime
try:
_ = startdatetime.tzinfo
except AttributeError: # pragma: no cover
startdatetime = row.rowdatetime
partofday = getpartofday(row, r)
partofday = getpartofday(row, r, startdatetime=startdatetime, timezone=timezone)
if startdatetime.tzinfo is None or str(startdatetime.tzinfo) in ['tzutc()', 'Ect/GMT']:
timezone_str = 'UTC'
@@ -1200,6 +1204,8 @@ def get_startdate_time_zone(r, row, startdatetime=None):
startdatetime = timezone.make_aware(startdatetime)
except ValueError: # pragma: no cover
pass
except AttributeError:
pass
try:
latavg = row.df[' latitude'].mean()
@@ -1232,8 +1238,23 @@ def get_startdate_time_zone(r, row, startdatetime=None):
timezone_str = str(startdatetime.tzinfo)
try:
startdatetime = startdatetime.astimezone(pytz.timezone(timezone_str))
if not preserve_timezone:
startdatetime = startdatetime.astimezone(pytz.timezone(timezone_str))
except UnknownTimeZoneError:
try:
offset = timezone_str.strip("(TimeZone('')").split(":")
hours = int(offset[0])
minutes = int(offset[1])
tz_offset = datetime.timedelta(hours=hours, minutes=minutes)
tz = datetime.timezone(tz_offset)
utc_offset = tz.utcoffset(datetime.utcnow()).total_seconds()
for zone in pytz.all_timezones:
if pytz.timezone(zone).utcoffset(datetime.utcnow()).total_seconds() == utc_offset:
timezone_str = zone
break
except Exception as e:
pass
startdatetime = startdatetime.astimezone(pytz.utc)
startdate = startdatetime.strftime('%Y-%m-%d')