Private
Public Access
1
0

not working 2

This commit is contained in:
2024-03-12 22:09:33 +01:00
parent aa4e713c8e
commit 4b83a251db
8 changed files with 233 additions and 409 deletions

View File

@@ -31,6 +31,11 @@ from zipfile import BadZipFile
import zipfile
import os
from rowers.models import strokedatafields
import grpc
import grpc.experimental
import rowers.rowing_workout_metrics_pb2 as metrics_pb2
import rowers.rowing_workout_metrics_pb2_grpc as metrics_pb2_grpc
import traceback
from rowingdata import (
KinoMapParser,
@@ -499,9 +504,48 @@ def calculate_goldmedalstandard(rower, workout, recurrance=True):
def setcp(workout, background=False, recurrance=True):
filename = 'media/cpdata_{id}.parquet.gz'.format(id=workout.id)
csvfilename = workout.csvfilename
# check what the real file name is
if os.path.exists(csvfilename):
csvfile = csvfilename
elif os.path.exists(csvfilename+'.csv'): # pragma: no cover
csvfile = csvfilename+'.csv'
elif os.path.exists(csvfilename+'.gz'): # pragma: no cover
csvfile = csvfilename+'.gz'
else: # pragma: no cover
return pd.DataFrame({'delta': [], 'cp': []}), pd.Series(dtype='float'), pd.Series(dtype='float')
strokesdf = getsmallrowdata_db(
['power', 'workoutid', 'time'], ids=[workout.id])
protos = grpc.protos("rowing_workout_metrics.proto")
services = grpc.services("rowing_workout_metrics.proto")
req = protos.CPRequest(
filename = csvfile,
filetype = "CSV",
tarr = datautils.getlogarr(1.05*strokesdf['time'].max())
)
response = services.GetCP(req, "localhost:50052", insecure=True)
delta = response.delta
cpvalues = response.power
powermean = response.avgpower
df = pd.DataFrame({
'delta': delta,
'cp': cpvalues,
'id': workout.id,
})
df.to_parquet(filename, engine='fastparquet', compression='GZIP')
if recurrance:
goldmedalstandard, goldmedalduration = calculate_goldmedalstandard(
workout.user, workout)
workout.goldmedalstandard = goldmedalstandard
workout.goldmedalduration = goldmedalduration
workout.save()
return df, delta, cpvalues
try:
if strokesdf['power'].std() == 0:
return pd.DataFrame(), pd.Series(dtype='float'), pd.Series(dtype='float')
@@ -682,6 +726,7 @@ def fetchcp_new(rower, workouts):
for workout in workouts:
cpfile = 'media/cpdata_{id}.parquet.gz'.format(id=workout.id)
try:
df, delta, cpvalues = setcp(workout)
df = pd.read_parquet(cpfile)
df['workout'] = str(workout)
df['url'] = workout.url()