more pep
This commit is contained in:
@@ -41,7 +41,7 @@ from bokeh.core.properties import value
|
||||
from rowers.opaque import encoder
|
||||
from bokeh.models import (
|
||||
OpenURL, TapTool, CrosshairTool, Span, Label, SaveTool,
|
||||
PanTool, BoxZoomTool, WheelZoomTool, ResetTool,
|
||||
PanTool, BoxZoomTool, WheelZoomTool, ResetTool,
|
||||
)
|
||||
from bokeh.models.glyphs import ImageURL
|
||||
from bokeh.transform import cumsum
|
||||
@@ -1543,12 +1543,12 @@ def interactive_forcecurve(theworkouts, workstrokesonly=True, plottype='scatter'
|
||||
)
|
||||
#thesliders.sizing_mode = 'fixed'
|
||||
|
||||
layout = layoutrow([thesliders,
|
||||
mylayout = layoutrow([thesliders,
|
||||
plot])
|
||||
|
||||
layout.sizing_mode = 'stretch_both'
|
||||
mylayout.sizing_mode = 'stretch_both'
|
||||
|
||||
script, div = components(layout)
|
||||
script, div = components(mylayout)
|
||||
js_resources = INLINE.render_js()
|
||||
css_resources = INLINE.render_css()
|
||||
|
||||
@@ -2036,11 +2036,11 @@ def performance_chart(user, startdate=None, enddate=None, kfitness=42, kfatigue=
|
||||
plot.add_tools(linked_crosshair)
|
||||
plot2.add_tools(linked_crosshair)
|
||||
|
||||
layout = layoutcolumn([plot, plot2])
|
||||
layout.sizing_mode = 'stretch_both'
|
||||
mylayout = layoutcolumn([plot, plot2])
|
||||
mylayout.sizing_mode = 'stretch_both'
|
||||
|
||||
try:
|
||||
script, div = components(layout)
|
||||
script, div = components(mylayout)
|
||||
except Exception as e: # pragma: no cover
|
||||
df.dropna(inplace=True, axis=0, how='any')
|
||||
return (
|
||||
@@ -2190,10 +2190,10 @@ def interactive_histoall(theworkouts, histoparam, includereststrokes,
|
||||
annotation.js_on_change('value', callback)
|
||||
callback.args["annotation"] = annotation
|
||||
|
||||
layout = layoutcolumn([annotation, plot])
|
||||
mylayout = layoutcolumn([annotation, plot])
|
||||
|
||||
try:
|
||||
script, div = components(layout)
|
||||
script, div = components(mylayout)
|
||||
except ValueError: # pragma: no cover
|
||||
script = ''
|
||||
div = ''
|
||||
@@ -3101,8 +3101,6 @@ def leaflet_chart_video(lat, lon, name=""):
|
||||
lonmean = lon.mean()
|
||||
latbegin = lat[lat.index[0]]
|
||||
longbegin = lon[lon.index[0]]
|
||||
latend = lat[lat.index[-1]]
|
||||
longend = lon[lon.index[-1]]
|
||||
|
||||
coordinates = zip(lat, lon)
|
||||
|
||||
@@ -3201,9 +3199,7 @@ def leaflet_chart_video(lat, lon, name=""):
|
||||
latmean=latmean,
|
||||
lonmean=lonmean,
|
||||
latbegin=latbegin,
|
||||
latend=latend,
|
||||
longbegin=longbegin,
|
||||
longend=longend,
|
||||
scoordinates=scoordinates,
|
||||
)
|
||||
|
||||
@@ -3350,10 +3346,11 @@ def interactive_agegroupcpchart(age, normalized=False):
|
||||
mhduration.append(60.*duration)
|
||||
mhpower.append(np.nan)
|
||||
|
||||
def fitfunc(pars, x): return pars[0] / \
|
||||
(1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||
def fitfunc(pars, x):
|
||||
return pars[0] / (1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||
|
||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
||||
def errfunc(pars, x, y):
|
||||
return fitfunc(pars, x)-y
|
||||
|
||||
# p0 = [500,350,10,8000]
|
||||
|
||||
@@ -3444,7 +3441,6 @@ def interactive_agegroupcpchart(age, normalized=False):
|
||||
)
|
||||
|
||||
x_axis_type = 'log'
|
||||
y_axis_type = 'linear'
|
||||
|
||||
TOOLS = 'save,pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||
|
||||
@@ -3500,7 +3496,6 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
||||
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||
|
||||
x_axis_type = 'log'
|
||||
y_axis_type = 'linear'
|
||||
|
||||
deltas = powerdf2['Delta'].apply(lambda x: timedeltaconv(x))
|
||||
powerdf2['ftime'] = deltas.apply(lambda x: strfdelta(x))
|
||||
@@ -3524,8 +3519,9 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
||||
p1 = [r.ep0, r.ep1, r.ep2, r.ep3]
|
||||
ratio = r.ecpratio
|
||||
|
||||
def fitfunc(pars, x): return abs(
|
||||
pars[0])/(1+(x/abs(pars[2]))) + abs(pars[1])/(1+(x/abs(pars[3])))
|
||||
def fitfunc(pars, x):
|
||||
return abs(pars[0])/(1+(x/abs(pars[2]))) + abs(pars[1])/(1+(x/abs(pars[3])))
|
||||
|
||||
fitpower = fitfunc(p1, fitt)
|
||||
|
||||
message = ""
|
||||
@@ -3534,8 +3530,6 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
||||
|
||||
deltas = fitt.apply(lambda x: timedeltaconv(x))
|
||||
ftime = niceformat(deltas)
|
||||
workouts = powerdf2['workout']
|
||||
urls = powerdf2['url']
|
||||
|
||||
# add world class
|
||||
wcpower = pd.Series(wcpower, dtype='float')
|
||||
@@ -3543,10 +3537,12 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
||||
|
||||
# fitting WC data to three parameter CP model
|
||||
if len(wcdurations) >= 4: # pragma: no cover
|
||||
def fitfunc(pars, x): return pars[0] / \
|
||||
(1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||
def fitfunc(pars, x):
|
||||
return pars[0] / (1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||
|
||||
def errfunc(pars, x, y):
|
||||
return fitfunc(pars, x)-y
|
||||
|
||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
||||
p1wc, success = optimize.leastsq(errfunc, p0[:],
|
||||
args=(wcdurations, wcpower))
|
||||
else:
|
||||
@@ -3582,13 +3578,6 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
||||
)
|
||||
)
|
||||
|
||||
sourceannot = ColumnDataSource(
|
||||
data=dict(
|
||||
workout=workouts,
|
||||
url=urls,
|
||||
)
|
||||
)
|
||||
|
||||
# making the plot
|
||||
plot = Figure(tools=TOOLS, x_axis_type=x_axis_type,
|
||||
plot_width=900,
|
||||
@@ -3597,12 +3586,8 @@ def interactive_otwcpchart(powerdf, promember=0, rowername="", r=None, cpfit='da
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
watermarky = 0.01
|
||||
watermarkw = 184
|
||||
watermarkh = 35
|
||||
@@ -3705,10 +3690,12 @@ def interactive_agegroup_plot(df, distance=2000, duration=None,
|
||||
# poly_vals = np.polyval(poly_coefficients,age2)
|
||||
# poly_vals = 0.5*(np.abs(poly_vals)+poly_vals)
|
||||
|
||||
def fitfunc(pars, x): return np.abs(pars[0])*(1-x/max(120, pars[1]))-np.abs(
|
||||
pars[2])*np.exp(-x/np.abs(pars[3]))+np.abs(pars[4])*(np.sin(np.pi*x/max(50, pars[5])))
|
||||
def fitfunc(pars, x):
|
||||
return np.abs(pars[0])*(1-x/max(120, pars[1])) \
|
||||
- np.abs(pars[2])*np.exp(-x/np.abs(pars[3]))+np.abs(pars[4])*(np.sin(np.pi*x/max(50, pars[5])))
|
||||
|
||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
||||
def errfunc(pars, x, y):
|
||||
return fitfunc(pars, x)-y
|
||||
|
||||
p0age = [700, 120, 700, 10, 100, 100]
|
||||
|
||||
@@ -3722,8 +3709,6 @@ def interactive_agegroup_plot(df, distance=2000, duration=None,
|
||||
data=dict(
|
||||
age=age,
|
||||
power=power,
|
||||
#age2 = age2,
|
||||
#expo_vals = expo_vals,
|
||||
season=season,
|
||||
name=name,
|
||||
)
|
||||
@@ -3774,7 +3759,6 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
||||
TOOLS = 'pan,box_zoom,wheel_zoom,reset,tap,hover,crosshair'
|
||||
|
||||
x_axis_type = 'log'
|
||||
y_axis_type = 'linear'
|
||||
|
||||
thesecs = pd.Series(thesecs)
|
||||
|
||||
@@ -3828,10 +3812,11 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
||||
)
|
||||
)
|
||||
|
||||
def fitfunc(pars, x): return pars[0] / \
|
||||
(1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||
def fitfunc(pars, x):
|
||||
return pars[0] / (1+(x/pars[2])) + pars[1]/(1+(x/pars[3]))
|
||||
|
||||
def errfunc(pars, x, y): return fitfunc(pars, x)-y
|
||||
def errfunc(pars, x, y):
|
||||
return fitfunc(pars, x)-y
|
||||
|
||||
# p0 = [500,350,10,8000]
|
||||
wcpower = pd.Series(wcpower, dtype='float')
|
||||
@@ -3863,28 +3848,19 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
||||
|
||||
# Get stayer score
|
||||
if success == 1: # pragma: no cover
|
||||
power1min = fitfunc(p1, 60.)
|
||||
power4min = fitfunc(p1, 240.)
|
||||
power6min = fitfunc(p1, 360.)
|
||||
power30min = fitfunc(p1, 1800.)
|
||||
power1h = fitfunc(p1, 3600.)
|
||||
power10sec = fitfunc(p1, 10.)
|
||||
r10sec4min = 100.*power10sec/power4min
|
||||
r1h4min = 100.*power1h/power4min
|
||||
r1min6min = 100.*power1min/power6min
|
||||
r30min6min = 100.*power30min/power6min
|
||||
|
||||
combined = r1h4min-0.2*(r10sec4min-100)
|
||||
combined2 = r30min6min-1.5*(r1min6min-100)
|
||||
|
||||
dataset = pd.read_csv('static/stats/combined_set.csv')
|
||||
dataset2 = pd.read_csv('static/stats/combined_set6min.csv')
|
||||
|
||||
stayerscore = int(percentileofscore(dataset['combined'], combined))
|
||||
stayerscore2 = int(percentileofscore(dataset2['combined'], combined2))
|
||||
else:
|
||||
stayerscore = None
|
||||
stayerscore2 = None
|
||||
|
||||
fitt = pd.Series(10**(4*np.arange(100)/100.))
|
||||
|
||||
@@ -3938,12 +3914,8 @@ def interactive_cpchart(rower, thedistances, thesecs, theavpower,
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
watermarky = 0.01
|
||||
watermarkw = 184
|
||||
watermarkh = 35
|
||||
@@ -4069,7 +4041,6 @@ def interactive_windchart(id=0, promember=0):
|
||||
# get user
|
||||
# u = User.objects.get(id=row.user.id)
|
||||
r = row.user
|
||||
u = r.user
|
||||
|
||||
rr = rrower(hrmax=r.max, hrut2=r.ut2,
|
||||
hrut1=r.ut1, hrat=r.at,
|
||||
@@ -4158,7 +4129,6 @@ def interactive_streamchart(id=0, promember=0):
|
||||
# get user
|
||||
# u = User.objects.get(id=row.user.id)
|
||||
r = row.user
|
||||
u = r.user
|
||||
|
||||
rr = rrower(hrmax=r.max, hrut2=r.ut2,
|
||||
hrut1=r.ut1, hrat=r.at,
|
||||
@@ -4223,12 +4193,12 @@ def interactive_chart(id=0, promember=0, intervaldata={}):
|
||||
return "", "No Valid Data Available"
|
||||
|
||||
try:
|
||||
spm = datadf['spm']
|
||||
_ = datadf['spm']
|
||||
except KeyError: # pragma: no cover
|
||||
datadf['spm'] = 0
|
||||
|
||||
try:
|
||||
pace = datadf['pace']
|
||||
_ = datadf['pace']
|
||||
except KeyError: # pragma: no cover
|
||||
datadf['pace'] = 0
|
||||
|
||||
@@ -4244,16 +4214,10 @@ def interactive_chart(id=0, promember=0, intervaldata={}):
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
watermarky = 0.01
|
||||
watermarkw = 184
|
||||
watermarkh = 35
|
||||
watermarkanchor = 'bottom_right'
|
||||
plot.extra_y_ranges = {"watermark": watermarkrange}
|
||||
plot.extra_x_ranges = {"watermark": watermarkrange}
|
||||
|
||||
@@ -4476,7 +4440,7 @@ def interactive_multiflex(datadf, xparam, yparam, groupby, extratitle='',
|
||||
else:
|
||||
groupname = axlabels[groupby]
|
||||
|
||||
if title == None:
|
||||
if title is None:
|
||||
title = '{y} vs {x} grouped by {gr}'.format(
|
||||
x=xparamname,
|
||||
y=yparamname,
|
||||
@@ -4555,9 +4519,6 @@ def interactive_multiflex(datadf, xparam, yparam, groupby, extratitle='',
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
@@ -4683,12 +4644,12 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
||||
workstrokesonly=workstrokesonly)
|
||||
|
||||
try:
|
||||
tests = datadf[yparam2]
|
||||
_ = datadf[yparam2]
|
||||
except KeyError: # pragma: no cover
|
||||
yparam2 = 'None'
|
||||
|
||||
try:
|
||||
tests = datadf[yparam1]
|
||||
_ = datadf[yparam1]
|
||||
except KeyError:
|
||||
yparam1 = 'None'
|
||||
|
||||
@@ -4696,18 +4657,14 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
||||
datadf.dropna(axis=0, how='any', inplace=True)
|
||||
|
||||
# test if we have drive energy
|
||||
nowork = 1
|
||||
try: # pragma: no cover
|
||||
test = datadf['driveenergy'].mean()
|
||||
nowork = 0
|
||||
_ = datadf['driveenergy'].mean()
|
||||
except KeyError: # pragma: no cover
|
||||
datadf['driveenergy'] = 500.
|
||||
|
||||
# test if we have power
|
||||
nopower = 1
|
||||
try: # pragma: no cover
|
||||
test = datadf['power'].mean()
|
||||
nopower = 0
|
||||
_ = datadf['power'].mean()
|
||||
except KeyError: # pragma: no cover
|
||||
datadf['power'] = 50.
|
||||
|
||||
@@ -4745,21 +4702,12 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
||||
else: # pragma: no cover
|
||||
datadf['y2'] = datadf['y1']
|
||||
|
||||
if xparam == 'distance': # pragma: no cover
|
||||
xaxmax = datadf['x1'].max()
|
||||
xaxmin = datadf['x1'].min()
|
||||
else:
|
||||
xaxmax = yaxmaxima[xparam]
|
||||
xaxmin = yaxminima[xparam]
|
||||
|
||||
# average values
|
||||
x1mean = datadf['x1'].mean()
|
||||
|
||||
y1mean = datadf['y1'].mean()
|
||||
y2mean = datadf['y2'].mean()
|
||||
|
||||
xvals = pd.Series(xaxmin+np.arange(100)*(xaxmax-xaxmin)/100.)
|
||||
|
||||
x_axis_type = 'linear'
|
||||
y_axis_type = 'linear'
|
||||
if xparam == 'time':
|
||||
@@ -4797,9 +4745,6 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
@@ -5041,13 +4986,6 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
||||
slider_dist_max.js_on_change('value', callback)
|
||||
callback.args["maxdist"] = slider_dist_max
|
||||
|
||||
#slider_spm_min.sizing_mode = 'fixed'
|
||||
#slider_spm_max.sizing_mode = 'fixed'
|
||||
#slider_work_min.sizing_mode = 'fixed'
|
||||
#slider_work_max.sizing_mode = 'fixed'
|
||||
#slider_dist_min.sizing_mode = 'fixed'
|
||||
#slider_dist_max.sizing_mode = 'fixed'
|
||||
|
||||
thesliders = layoutcolumn([slider_spm_min,
|
||||
slider_spm_max,
|
||||
slider_dist_min,
|
||||
@@ -5057,14 +4995,11 @@ def interactive_cum_flex_chart2(theworkouts, promember=0,
|
||||
],
|
||||
)
|
||||
|
||||
#thesliders.sizing_mode = 'fixed'
|
||||
mylayout = layoutrow([thesliders, plot])
|
||||
|
||||
layout = layoutrow([thesliders,
|
||||
plot])
|
||||
mylayout.sizing_mode = 'stretch_both'
|
||||
|
||||
layout.sizing_mode = 'stretch_both'
|
||||
|
||||
script, div = components(layout)
|
||||
script, div = components(mylayout)
|
||||
js_resources = INLINE.render_js()
|
||||
css_resources = INLINE.render_css()
|
||||
|
||||
@@ -5104,7 +5039,6 @@ def interactive_flexchart_stacked(id, r, xparam='time',
|
||||
doclean=False,
|
||||
workstrokesonly=False)
|
||||
|
||||
row = Workout.objects.get(id=id)
|
||||
if rowdata.empty:
|
||||
return "", "No valid data", '', '', comment
|
||||
|
||||
@@ -5115,34 +5049,29 @@ def interactive_flexchart_stacked(id, r, xparam='time',
|
||||
|
||||
try:
|
||||
rowdata['x1'] = rowdata.loc[:, xparam]
|
||||
rowmin = rowdata[xparam].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['x1'] = 0*rowdata.loc[:, 'time']
|
||||
|
||||
try:
|
||||
rowdata['y1'] = rowdata.loc[:, yparam1]
|
||||
rowmin = rowdata[yparam1].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['y1'] = 0*rowdata.loc[:, 'time']
|
||||
rowdata[yparam1] = rowdata['y1']
|
||||
|
||||
try: # pragma: no cover
|
||||
rowdata['y2'] = rowdata.loc[:, yparam2]
|
||||
rowmin = rowdata[yparam2].min()
|
||||
except KeyError:
|
||||
rowdata['y2'] = 0*rowdata.loc[:, 'time']
|
||||
rowdata[yparam2] = rowdata['y2']
|
||||
|
||||
try:
|
||||
rowdata['y3'] = rowdata.loc[:, yparam3]
|
||||
rowmin = rowdata[yparam3].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['y3'] = 0*rowdata.loc[:, 'time']
|
||||
rowdata[yparam3] = rowdata['y3']
|
||||
|
||||
try:
|
||||
rowdata['y4'] = rowdata.loc[:, yparam4]
|
||||
rowmin = rowdata[yparam4].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['y4'] = 0*rowdata.loc[:, 'time']
|
||||
rowdata[yparam4] = rowdata['y4']
|
||||
@@ -5418,16 +5347,16 @@ def interactive_flexchart_stacked(id, r, xparam='time',
|
||||
plot3.line('x1', 'y3', source=source, color=palette2[0])
|
||||
plot4.line('x1', 'y4', source=source, color=palette2[2])
|
||||
|
||||
layout = layoutcolumn([
|
||||
mylayout = layoutcolumn([
|
||||
plot1,
|
||||
plot2,
|
||||
plot3,
|
||||
plot4,
|
||||
])
|
||||
|
||||
layout.sizing_mode = 'stretch_both'
|
||||
mylayout.sizing_mode = 'stretch_both'
|
||||
|
||||
script, div = components(layout)
|
||||
script, div = components(mylayout)
|
||||
js_resources = INLINE.render_js()
|
||||
css_resources = INLINE.render_css()
|
||||
|
||||
@@ -5443,9 +5372,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
mode='rower'):
|
||||
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
@@ -5454,7 +5380,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
watermarkh = 35
|
||||
watermarkanchor = 'bottom_right'
|
||||
|
||||
#rowdata,row = dataprep.getrowdata_db(id=id)
|
||||
columns = [xparam, yparam1, yparam2,
|
||||
'ftime', 'distance', 'fpace',
|
||||
'power', 'hr', 'spm', 'driveenergy',
|
||||
@@ -5484,28 +5409,24 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
workstrokesonly=False)
|
||||
workstrokesonly = False
|
||||
try:
|
||||
tests = rowdata[yparam2]
|
||||
_ = rowdata[yparam2]
|
||||
except KeyError: # pragma: no cover
|
||||
yparam2 = 'None'
|
||||
|
||||
try:
|
||||
tests = rowdata[yparam1]
|
||||
_ = rowdata[yparam1]
|
||||
except KeyError: # pragma: no cover
|
||||
yparam1 = 'None'
|
||||
|
||||
# test if we have drive energy
|
||||
nowork = 1
|
||||
try:
|
||||
test = rowdata['driveenergy'].mean()
|
||||
nowork = 0
|
||||
_ = rowdata['driveenergy'].mean()
|
||||
except KeyError:
|
||||
rowdata['driveenergy'] = 500.
|
||||
|
||||
# test if we have power
|
||||
nopower = 1
|
||||
try:
|
||||
test = rowdata['power'].mean()
|
||||
nopower = 0
|
||||
_ = rowdata['power'].mean()
|
||||
except KeyError:
|
||||
rowdata['power'] = 50.
|
||||
|
||||
@@ -5516,9 +5437,7 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
if rowdata.empty:
|
||||
return "", "No valid data", '', '', workstrokesonly
|
||||
|
||||
workoutstateswork = [1, 4, 5, 8, 9, 6, 7]
|
||||
workoutstatesrest = [3]
|
||||
workoutstatetransition = [0, 2, 10, 11, 12, 13]
|
||||
|
||||
if workstrokesonly: # pragma: no cover
|
||||
try:
|
||||
@@ -5533,13 +5452,11 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
|
||||
try:
|
||||
rowdata['x1'] = rowdata.loc[:, xparam]
|
||||
rowmin = rowdata[xparam].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['x1'] = 0*rowdata.loc[:, 'time']
|
||||
|
||||
try:
|
||||
rowdata['y1'] = rowdata.loc[:, yparam1]
|
||||
rowmin = rowdata[yparam1].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['y1'] = 0*rowdata.loc[:, 'time']
|
||||
rowdata[yparam1] = rowdata['y1']
|
||||
@@ -5547,7 +5464,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
if yparam2 != 'None':
|
||||
try:
|
||||
rowdata['y2'] = rowdata.loc[:, yparam2]
|
||||
rowmin = rowdata[yparam2].min()
|
||||
except KeyError: # pragma: no cover
|
||||
rowdata['y2'] = 0*rowdata.loc[:, 'time']
|
||||
rowdata[yparam2] = rowdata['y2']
|
||||
@@ -5639,13 +5555,9 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
toolbar_sticky=False, plot_width=800, plot_height=600,
|
||||
)
|
||||
plot.sizing_mode = 'stretch_both'
|
||||
#plot.width_policy = 'max'
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
@@ -6005,14 +5917,6 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
slider_dist_max.js_on_change('value', callback)
|
||||
callback.args["maxdist"] = slider_dist_max
|
||||
|
||||
#annotation.sizing_mode = 'fixed'
|
||||
#slider_spm_min.sizing_mode = 'fixed'
|
||||
#slider_spm_max.sizing_mode = 'fixed'
|
||||
#slider_work_min.sizing_mode = 'fixed'
|
||||
#slider_work_max.sizing_mode = 'fixed'
|
||||
#slider_dist_min.sizing_mode = 'fixed'
|
||||
#slider_dist_max.sizing_mode = 'fixed'
|
||||
|
||||
thesliders = layoutcolumn([
|
||||
annotation,
|
||||
slider_spm_min,
|
||||
@@ -6023,15 +5927,12 @@ def interactive_flex_chart2(id, r, promember=0,
|
||||
slider_work_max,
|
||||
])
|
||||
|
||||
#thesliders.sizing_mode = 'fixed'
|
||||
|
||||
layout = layoutrow([thesliders,
|
||||
plot])
|
||||
mylayout = layoutrow([thesliders, plot])
|
||||
|
||||
# layout.sizing_mode = 'stretch_both'
|
||||
layout.sizing_mode = 'stretch_both'
|
||||
mylayout.sizing_mode = 'stretch_both'
|
||||
|
||||
script, div = components(layout)
|
||||
script, div = components(mylayout)
|
||||
js_resources = INLINE.render_js()
|
||||
css_resources = INLINE.render_css()
|
||||
|
||||
@@ -6074,9 +5975,9 @@ def thumbnails_set(r, id, favorites):
|
||||
# except KeyError:
|
||||
# pass
|
||||
|
||||
l = len(rowdata)
|
||||
lengte = len(rowdata)
|
||||
maxlength = 50
|
||||
if l > maxlength:
|
||||
if lengte > maxlength:
|
||||
try:
|
||||
bins = np.linspace(rowdata['time'].min(),
|
||||
rowdata['time'].max(), maxlength)
|
||||
@@ -6086,7 +5987,6 @@ def thumbnails_set(r, id, favorites):
|
||||
pass
|
||||
|
||||
for f in favorites:
|
||||
workstrokesonly = not f.reststrokes
|
||||
script, div = thumbnail_flex_chart(
|
||||
rowdata,
|
||||
id=id,
|
||||
@@ -6112,12 +6012,12 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
||||
workstrokesonly=False):
|
||||
|
||||
try:
|
||||
tests = rowdata[yparam2]
|
||||
_ = rowdata[yparam2]
|
||||
except KeyError:
|
||||
yparam2 = 'None'
|
||||
|
||||
try:
|
||||
tests = rowdata[yparam1]
|
||||
_ = rowdata[yparam1]
|
||||
except KeyError:
|
||||
yparam1 = 'None'
|
||||
|
||||
@@ -6161,7 +6061,6 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
||||
|
||||
if yparam1 == 'pace': # pragma: no cover
|
||||
y_axis_type = 'datetime'
|
||||
y1mean = rowdata.loc[:, 'pace'].mean()
|
||||
|
||||
rowdata['xname'] = axlabels[xparam]
|
||||
try:
|
||||
@@ -6178,7 +6077,6 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
||||
rowdata
|
||||
)
|
||||
|
||||
sizing_mode = 'fixed' # 'stretch_both' also looks nice with this example
|
||||
plot = Figure(x_axis_type=x_axis_type, y_axis_type=y_axis_type,
|
||||
plot_width=200, plot_height=150,
|
||||
)
|
||||
@@ -6188,7 +6086,6 @@ def thumbnail_flex_chart(rowdata, id=0, promember=0,
|
||||
plot.sizing_mode = 'fixed'
|
||||
plot.toolbar.logo = None
|
||||
plot.toolbar_location = None
|
||||
#plot.yaxis.visible = False
|
||||
plot.xaxis.axis_label_text_font_size = "7pt"
|
||||
plot.yaxis.axis_label_text_font_size = "7pt"
|
||||
plot.xaxis.major_label_text_font_size = "7pt"
|
||||
@@ -6297,12 +6194,6 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
||||
except:
|
||||
return ['', '<p>A chart data error occurred</p>', '', 'A chart data error occurred']
|
||||
|
||||
yparamname = axlabels[yparam]
|
||||
|
||||
#datadf = datadf[datadf[yparam] > 0]
|
||||
|
||||
#datadf = datadf[datadf[xparam] > 0]
|
||||
|
||||
# check if dataframe not empty
|
||||
if datadf.empty: # pragma: no cover
|
||||
return ['', '<p>No non-zero data in selection</p>', '', 'No non-zero data in selection']
|
||||
@@ -6350,11 +6241,6 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
||||
if xparam == 'time':
|
||||
x_axis_type = 'datetime'
|
||||
|
||||
if xparam != 'time':
|
||||
xvals = xaxmin+np.arange(100)*(xaxmax-xaxmin)/100.
|
||||
else:
|
||||
xvals = np.arange(100)
|
||||
|
||||
plot = Figure(x_axis_type=x_axis_type, y_axis_type=y_axis_type,
|
||||
tools=TOOLS,
|
||||
toolbar_location="above",
|
||||
@@ -6363,16 +6249,10 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
watermarky = 0.01
|
||||
watermarkw = 184
|
||||
watermarkh = 35
|
||||
watermarkanchor = 'bottom_right'
|
||||
plot.extra_y_ranges = {"watermark": watermarkrange}
|
||||
plot.extra_x_ranges = {"watermark": watermarkrange}
|
||||
plot.sizing_mode = 'stretch_both'
|
||||
@@ -6475,7 +6355,7 @@ def interactive_multiple_compare_chart(ids, xparam, yparam, plottype='line',
|
||||
try:
|
||||
legend_label = labeldict[id]
|
||||
except KeyError: # pragma: no cover
|
||||
legend = str(id)
|
||||
legend_label = str(id)
|
||||
else: # pragma: no cover
|
||||
legend_label = str(id)
|
||||
|
||||
@@ -6549,9 +6429,6 @@ def interactive_otw_advanced_pace_chart(id=0, promember=0):
|
||||
|
||||
# add watermark
|
||||
watermarkurl = "/static/img/logo7.png"
|
||||
watermarksource = ColumnDataSource(dict(
|
||||
url=[watermarkurl],))
|
||||
|
||||
watermarkrange = Range1d(start=0, end=1)
|
||||
watermarkalpha = 0.6
|
||||
watermarkx = 0.99
|
||||
@@ -6625,10 +6502,6 @@ def interactive_otw_advanced_pace_chart(id=0, promember=0):
|
||||
def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='week',
|
||||
yaxis='time'):
|
||||
|
||||
duration = enddate-startdate
|
||||
|
||||
totaldays = duration.total_seconds()/(24*3600)
|
||||
|
||||
dates = []
|
||||
dates_sorting = []
|
||||
minutes = []
|
||||
@@ -6657,14 +6530,10 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we
|
||||
df = dataprep.clean_df_stats(df, workstrokesonly=False,
|
||||
ignoreadvanced=True, ignorehr=False)
|
||||
|
||||
#totalmeters,totalhours, totalminutes, totalseconds = get_totals(workouts)
|
||||
|
||||
hrzones = rower.hrzones
|
||||
powerzones = rower.powerzones
|
||||
|
||||
for w in workouts:
|
||||
dd = w.date.strftime('%m/%d')
|
||||
dd2 = w.date.strftime('%Y/%m/%d')
|
||||
dd3 = w.date.strftime('%Y/%m')
|
||||
dd4 = '{year}/{week:02d}'.format(
|
||||
week=arrow.get(w.date).isocalendar()[1],
|
||||
@@ -6798,7 +6667,6 @@ def get_zones_report(rower, startdate, enddate, trainingzones='hr', date_agg='we
|
||||
pass
|
||||
|
||||
while d <= enddate:
|
||||
dd = d.strftime('%d')
|
||||
if date_agg == 'week':
|
||||
dd4 = '{year}/{week:02d}'.format(
|
||||
week=arrow.get(d).isocalendar()[1],
|
||||
@@ -6842,12 +6710,6 @@ def interactive_zoneschart(rower, data, startdate, enddate, trainingzones='hr',
|
||||
startdate = enddate
|
||||
enddate = st
|
||||
|
||||
duration = enddate-startdate
|
||||
|
||||
totaldays = duration.total_seconds()/(24*3600)
|
||||
|
||||
colors = ['gray', 'yellow', 'lime', 'blue', 'purple', 'red']
|
||||
|
||||
hrzones = rower.hrzones
|
||||
powerzones = rower.powerzones
|
||||
|
||||
@@ -6893,10 +6755,6 @@ def interactive_zoneschart(rower, data, startdate, enddate, trainingzones='hr',
|
||||
|
||||
df.drop('minutes', inplace=True, axis='columns')
|
||||
|
||||
# df.drop('hours',inplace=True,axis='columns')
|
||||
|
||||
source = ColumnDataSource(df)
|
||||
|
||||
df.sort_values('date_sorting', inplace=True)
|
||||
df.drop('date_sorting', inplace=True, axis='columns')
|
||||
df['totaltime'] = 0
|
||||
@@ -6927,7 +6785,6 @@ def interactive_zoneschart(rower, data, startdate, enddate, trainingzones='hr',
|
||||
bars = hv.Bars(df, kdims=['date', 'zones']).aggregate(
|
||||
function=np.sum).redim.values(zones=zones_order)
|
||||
|
||||
#bars = table.to.bars(['date','zones'],['minutes'])
|
||||
bars.opts(
|
||||
opts.Bars(cmap=color_map, show_legend=True, stacked=True,
|
||||
tools=['tap', 'hover'], width=550, padding=(0, (0, .1)),
|
||||
|
||||
Reference in New Issue
Block a user