diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 7e6ab4ec..1264b7af 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -5909,10 +5909,13 @@ def interactive_flex_chart2(id, r, promember=0, x1 = rowdata['x1'] y1 = rowdata['y1'] - popt, pcov = optimize.curve_fit(func, x1, y1) - ytrend = func(x1, popt[0], popt[1]) - rowdata['ytrend'] = ytrend - + try: + popt, pcov = optimize.curve_fit(func, x1, y1) + ytrend = func(x1, popt[0], popt[1]) + rowdata['ytrend'] = ytrend + except TypeError: + rowdata['ytrend'] = y1 + # prepare data source = ColumnDataSource( rowdata diff --git a/rowers/tasks.py b/rowers/tasks.py index 28491f0b..f54550d6 100644 --- a/rowers/tasks.py +++ b/rowers/tasks.py @@ -426,7 +426,7 @@ def handle_workout_tp_upload(w, thetoken, tcxfilename, debug=False, **kwargs): w.tpid = -1 try: os.remove(tcxfilename) - except WindowsError: + except: pass w.save() @@ -748,32 +748,47 @@ def handle_strava_sync(stravatoken, try: res = act.wait(poll_interval=1.0, timeout=30) except stravalib.exc.ActivityUploadFailed: # pragma: no cover - dologging('strava_fail.log', 'Strava upload failed for Workout {id} ActivityUploadFailed'.format( - id=workoutid)) + dologging( + 'strava_fail.log', + 'Strava upload failed for Workout {id} ActivityUploadFailed'.format( + id=workoutid) + ) tb = traceback.format_exc() dologging('strava_fail.log', tb) failed = True except stravalib.exc.TimeoutExceeded: # pragma: no cover - dologging('strava_fail.log', 'Strava upload failed for Workout {id} TimeOutExceeded'.format( - id=workoutid)) + dologging( + 'strava_fail.log', + 'Strava upload failed for Workout {id} TimeOutExceeded'.format( + id=workoutid) + ) tb = traceback.format_exc() dologging('strava_fail.log', tb) failed = True except JSONDecodeError: # pragma: no cover - dologging('strava_fail.log', 'Strava upload failed for Workout {id} JSONDecodeError'.format( - id=workoutid)) + dologging( + 'strava_fail.log', + 'Strava upload failed for Workout {id} JSONDecodeError'.format( + id=workoutid) + ) tb = traceback.format_exc() dologging('strava_fail.log', tb) failed = True except stravalib.exc.ObjectNotFound: # pragma: no cover - dologging('strava_fail.log', 'Strava upload failed for Workout {id} ObjectNotFound'.format( - id=workoutid)) + dologging( + 'strava_fail.log', + 'Strava upload failed for Workout {id} ObjectNotFound'.format( + id=workoutid) + ) tb = traceback.format_exc() dologging('strava_fail.log', tb) failed = True except IndexError: # pragma: no cover - dologging('strava_fail.log', 'Strava upload failed for Workout {id} IndexError'.format( - id=workoutid)) + dologging( + 'strava_fail.log', + 'Strava upload failed for Workout {id} IndexError'.format( + id=workoutid) + ) tb = traceback.format_exc() dologging('strava_fail.log', tb) failed = True @@ -3846,10 +3861,13 @@ def fetch_strava_workout(stravatoken, oauth_data, stravaid, csvfilename, userid, if velo is None: # pragma: no cover velo = np.zeros(nr_rows) - dt = np.diff(t).mean() - wsize = round(5./dt) + try: + dt = np.diff(t).mean() + wsize = round(5./dt) - velo2 = ewmovingaverage(velo, wsize) + velo2 = ewmovingaverage(velo, wsize) + except ValueError: + velo2 = velo if coords is not None: try: diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index a4ae0ddb..169642f1 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ