From d45785e863487bc6417d8e23024cc1a62cf29c4c Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Thu, 17 Oct 2024 19:40:56 +0200 Subject: [PATCH] fix --- rowers/dataroutines.py | 9 ++++++--- rowers/interactiveplots.py | 9 ++++++--- rowers/tasks.py | 10 +++++++--- rowers/tests/testdata/testdata.tcx.gz | Bin 3999 -> 4000 bytes 4 files changed, 19 insertions(+), 9 deletions(-) diff --git a/rowers/dataroutines.py b/rowers/dataroutines.py index 31d0943e..6dc3268b 100644 --- a/rowers/dataroutines.py +++ b/rowers/dataroutines.py @@ -2189,9 +2189,12 @@ def dataplep(rowdatadf, id=0, inboard=0.88, forceunit='lbs', bands=True, barchar df = df.with_columns((100.*pl.col(" DriveTime (ms)")/(pl.col(" DriveTime (ms)")+pl.col(" StrokeRecoveryTime (ms)"))).alias("rhythm")) else: df = df.with_columns((pl.lit(0)).alias("rhythm")) - if df[" PeakDriveForce (lbs)"].mean() is not None and df[" PeakDriveForce (lbs)"].mean() > 0: - df = df.with_columns((pl.col(" AverageDriveForce (lbs)")/pl.col(" PeakDriveForce (lbs)")).alias("forceratio")) - else: + try: + if df[" PeakDriveForce (lbs)"].mean() is not None and df[" PeakDriveForce (lbs)"].mean() > 0: + df = df.with_columns((pl.col(" AverageDriveForce (lbs)")/pl.col(" PeakDriveForce (lbs)")).alias("forceratio")) + else: + df = df.with_columns((pl.lit(0)).alias("forceratio")) + except TypeError: df = df.with_columns((pl.lit(0)).alias("forceratio")) try: f = df['TimeStamp (sec)'].diff().mean() diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 3d1c22db..2995162a 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -937,9 +937,12 @@ def leaflet_chart_compare(course, workoutids, labeldict={}, startenddict={}): course_dict = GeoCourseSerializer(course).data # Throw out 0,0 - df = df.with_columns( - (pl.col("lat")+pl.col("lon")).alias("latlon") - ) + try: + df = df.with_columns( + (pl.col("lat")+pl.col("lon")).alias("latlon") + ) + except ColumnNotFoundError: + return [0, "Something wrong with coordinate data"] df =df.filter(pl.col("latlon")!=0,) df = df.fill_nan(None) df = df.select(pl.all()).interpolate() diff --git a/rowers/tasks.py b/rowers/tasks.py index 287b5997..5d5a14b7 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -117,7 +117,7 @@ from requests_oauthlib import OAuth1, OAuth1Session import pandas as pd import polars as pl from polars.exceptions import ( - ColumnNotFoundError, ComputeError + ColumnNotFoundError, ComputeError, ShapeError ) @@ -532,7 +532,10 @@ def handle_workout_tp_upload(w, thetoken, tcxfilename, debug=False, **kwargs): # record = create_or_update_syncrecord(w.user, w, tpid=tpid) tpid = res w.save() - os.remove(tcxfilename) + try: + os.remove(tcxfilename) + except FileNotFoundError: + pass check_tp_workout_id(w,headers['Location']) @@ -1107,7 +1110,6 @@ def handle_check_race_course(self, row.calc_dist_from_gps() rowdata = row.df rowdata['cum_dist'] = rowdata['gps_dist_calculated'] - row.df.to_csv("~/Downloads/lagoon.csv") try: _ = rowdata[' latitude'] @@ -3932,6 +3934,8 @@ def fetch_strava_workout(stravatoken, oauth_data, stravaid, csvfilename, userid, }) except ValueError: # pragma: no cover return 0 + except ShapeError: + return 0 try: workouttype = mytypes.stravamappinginv[workoutsummary['type']] diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index a2d6207cc3b408b6fce6669b601c1ff7f5407c20..654adcaedc233e73eae89b6b82380d30b627db18 100644 GIT binary patch delta 258 zcmV+d0sa1;AD|xxABzYG$VU;e2dNH!e@0%qBW4HR9rr&REOrOn*`4X*Z_J-BKdpA( zA3VHB9M3L3?E9=sZ_mZq+fBEA*`1thpH}*~S|7jc`YxTf+r3?h%BSNF9=z^fon2gc zO&*+|pRA6$KK=B|7vu8WU!5#{_tWdu$;->1`&)V+)1g-$&W9~eyZ@w1W@o{1)z4q= zwpypnUOw%&-EjG6zc~NFi*(b6zb;Rf-Da6MWV0Zkau IB*cIL0Nrzo=l}o! delta 257 zcmV+c0sj7=AD=_3_KD@6vg@-P@I@d^+yn!R!9j*~OLD z>+)pTZI+2c{`BF|UAeD=C*At^@uS0^pJg`NKX==I zNpJD9*Qb9h)13j_1K9n4u(eV_uhldH}^5Ri?8h@lqAKv*N&Vyli H#DD<+ov@*&