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 a2d6207c..654adcae 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ