From d8aac5a4cd357ce0a2e5d9893bee15200f88a166 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 5 Aug 2020 21:42:15 +0200 Subject: [PATCH 1/5] small bug fix reading parquet files --- rowers/dataprep.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rowers/dataprep.py b/rowers/dataprep.py index 42c17c76..d6acf5c9 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -31,6 +31,7 @@ import dask.dataframe as dd from dask.delayed import delayed import pyarrow.parquet as pq import pyarrow as pa + from pyarrow.lib import ArrowInvalid from django.utils import timezone @@ -2379,7 +2380,7 @@ def read_df_sql(id): try: f = 'media/strokedata_{id}.parquet.gz'.format(id=id) df = pd.read_parquet(f) - except OSError: + except (OSError,ArrowInvalid): rowdata,row = getrowdata(id=id) if rowdata and len(rowdata.df): data = dataprep(rowdata.df,id=id,bands=True,otwpower=True,barchart=True) From a9d1b2c94d6a822f2a80ae48eb65deb38c1bd089 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 12 Aug 2020 08:03:05 +0200 Subject: [PATCH 2/5] upgrade rowingdata --- requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements.txt b/requirements.txt index 9e308079..bb926960 100644 --- a/requirements.txt +++ b/requirements.txt @@ -184,7 +184,7 @@ ratelim==0.1.6 redis==3.2.1 requests==2.23.0 requests-oauthlib==1.2.0 -rowingdata==2.9.1 +rowingdata==2.9.3 rowingphysics==0.5.0 rq==0.13.0 rules==2.1 From d061a3bba5d848dee5f7e8c560f57ef8721fd8e6 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Wed, 19 Aug 2020 20:56:33 +0200 Subject: [PATCH 3/5] fix for #569 --- rowers/plannedsessions.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rowers/plannedsessions.py b/rowers/plannedsessions.py index 326b02d3..a5c5ffcc 100644 --- a/rowers/plannedsessions.py +++ b/rowers/plannedsessions.py @@ -1531,7 +1531,7 @@ def add_workout_indoorrace(ws,race,r,recordid=0,doregister=False): errors.append('You must submit a indoor rowing workout') return 0,comments, errors, 0 - if ws[0].weightcategory != record.weightcategory: + if record.weightcategory == 'lwt' and ws[0].weightcategory != record.weightcategory: errors.append('Your workout weight category did not match the weight category you registered') return 0,comments, errors,0 @@ -1671,7 +1671,7 @@ def add_workout_race(ws,race,r,splitsecond=0,recordid=0,doregister=False): errors.append('Your workout boat type did not match the boat type you registered') return 0,comments,errors,0 - if ws[0].weightcategory != record.weightcategory: + if record.weightcategory == 'lwt' and ws[0].weightcategory != record.weightcategory: errors.append('Your workout weight category did not match the weight category you registered') return 0,comments, errors,0 From aa973d8e740113d37a837ff07e71ac24db2f36cb Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 20 Aug 2020 16:28:29 +0200 Subject: [PATCH 4/5] correct typo in strava logging --- rowers/tasks.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rowers/tasks.py b/rowers/tasks.py index f88581d4..2196e865 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -2739,7 +2739,7 @@ def fetch_strava_workout(stravatoken,oauth_data,stravaid,csvfilename,userid,debu f.write('\n') f.write(timestamp) f.write(' ') - f.write('handle_get_garmin_file response code {code}\n'.format(code=response.status_code)) + f.write('handle_get_strava_file response code {code}\n'.format(code=response.status_code)) f.write('Response json {json}\n'.format(json=response.json())) return 0 From 363ed9647ca91908c23af55958661613f0e0bfbd Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 20 Aug 2020 16:42:59 +0200 Subject: [PATCH 5/5] adding some logging --- rowers/stravastuff.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/rowers/stravastuff.py b/rowers/stravastuff.py index 2788e34e..c03dca80 100644 --- a/rowers/stravastuff.py +++ b/rowers/stravastuff.py @@ -7,6 +7,8 @@ from __future__ import unicode_literals, absolute_import # All the functionality needed to connect to Strava from scipy import optimize from scipy.signal import savgol_filter +import time +from time import strftime from django_mailbox.models import Message,Mailbox,MessageAttachment @@ -75,6 +77,19 @@ def get_token(code): return imports_get_token(code, oauth_data) def strava_open(user): + t = time.localtime() + timestamp = time.strftime('%b-%d-%Y_%H%M', t) + with open('strava_webhooks.log','a') as f: + f.write('\n') + f.write(timestamp) + f.write(' ') + f.write('Getting token for user ') + f.write(str(user.rower.id)) + f.write(' token expiry ') + f.write(str(user.rower.stravatokenexpirydate)) + f.write(' ') + f.write(json.dumps(oauth_data)) + f.write('\n') token = imports_open(user, oauth_data) if user.rower.strava_owner_id == 0: strava_owner_id = set_strava_athlete_id(user) @@ -357,7 +372,7 @@ def async_get_workout(user,stravaid): token = strava_open(user) except NoTokenError: return 0 - + csvfilename = 'media/{code}_{stravaid}.csv'.format(code=uuid4().hex[:16],stravaid=stravaid) job = myqueue(queue, fetch_strava_workout,