Merge branch 'release/v20.3.11'
This commit is contained in:
@@ -5909,9 +5909,12 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
|
||||
x1 = rowdata['x1']
|
||||
y1 = rowdata['y1']
|
||||
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(
|
||||
|
||||
+32
-12
@@ -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
|
||||
@@ -781,7 +796,9 @@ def handle_strava_sync(stravatoken,
|
||||
if 'LatLon' in tb:
|
||||
dologging('strava_fail.log', 'Trying temporary fix')
|
||||
failed = False
|
||||
except (ActivityUploadFailed, stravalib.exc.RateLimitExceeded, JSONDecodeError): # pragma: no cover
|
||||
except (
|
||||
ActivityUploadFailed, stravalib.exc.RateLimitExceeded, JSONDecodeError
|
||||
): # pragma: no cover
|
||||
dologging(
|
||||
'strava_fail.log', 'Strava upload failed for Workout {id}'.format(id=workoutid))
|
||||
tb = traceback.format_exc()
|
||||
@@ -3846,10 +3863,13 @@ def fetch_strava_workout(stravatoken, oauth_data, stravaid, csvfilename, userid,
|
||||
if velo is None: # pragma: no cover
|
||||
velo = np.zeros(nr_rows)
|
||||
|
||||
try:
|
||||
dt = np.diff(t).mean()
|
||||
wsize = round(5./dt)
|
||||
|
||||
velo2 = ewmovingaverage(velo, wsize)
|
||||
except ValueError:
|
||||
velo2 = velo
|
||||
|
||||
if coords is not None:
|
||||
try:
|
||||
|
||||
BIN
Binary file not shown.
@@ -2809,7 +2809,10 @@ def history_view_data(request, userid=0):
|
||||
ddf = dataprep.clean_df_stats(ddf, workstrokesonly=False,
|
||||
ignoreadvanced=True)
|
||||
|
||||
try:
|
||||
ddict['hrmean'] = int(wavg(ddf, 'hr', 'deltat'))
|
||||
except (KeyError, ValueError, AttributeError): # pragma: no cover
|
||||
ddict['hrmean'] = 0
|
||||
try:
|
||||
ddict['hrmax'] = ddf['hr'].max().astype(int)
|
||||
except (KeyError, ValueError, AttributeError): # pragma: no cover
|
||||
|
||||
Reference in New Issue
Block a user