diff --git a/rowers/dataprep.py b/rowers/dataprep.py index bfd68570..63a40939 100644 --- a/rowers/dataprep.py +++ b/rowers/dataprep.py @@ -766,8 +766,12 @@ def fetchcp_new(rower, workouts): if len(data) > 1: df = pl.concat(data) + try: - df = df.group_by(pl.col("delta")).agg(pl.max("cp"), pl.max("workout"), pl.max("url")).sort("delta") + #df = df.group_by(pl.col("delta")).agg(pl.max("cp"), pl.max("workout"), pl.max("url")).sort("delta") + df = df.groupby('delta').agg([ + pl.all().sort_by('cp').last(), + ]) except (KeyError, ColumnNotFoundError): # pragma: no cover return pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64), 0, pl.Series(dtype=pl.Float64), pl.Series(dtype=pl.Float64) diff --git a/rowers/tests/testdata/testdata.tcx.gz b/rowers/tests/testdata/testdata.tcx.gz index f4be04e3..9b3705d1 100644 Binary files a/rowers/tests/testdata/testdata.tcx.gz and b/rowers/tests/testdata/testdata.tcx.gz differ diff --git a/rowers/utils.py b/rowers/utils.py index 9e7d5054..ee7ca475 100644 --- a/rowers/utils.py +++ b/rowers/utils.py @@ -361,9 +361,12 @@ def isbreakthrough(delta, cpvalues, p0, p1, p2, p3, ratio): pwr *= ratio - delta = delta.cast(pl.Int32) - cpvalues = cpvalues.cast(pl.Int32) - pwr = pwr.cast(pl.Int32) + try: + delta = delta.cast(pl.Int32) + cpvalues = cpvalues.cast(pl.Int32) + pwr = pwr.cast(pl.Int32) + except: + return False, pl.DataFrame(), False btdf = pl.DataFrame({ 'delta': delta,