From 0f62dda8d8a8378ae6b62f7de604500691bf6d69 Mon Sep 17 00:00:00 2001 From: Sander Roosendaal Date: Sat, 13 Apr 2024 09:39:16 +0200 Subject: [PATCH] fix --- rowers/dataroutines.py | 4 ++++ rowers/interactiveplots.py | 2 ++ rowers/views/analysisviews.py | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/rowers/dataroutines.py b/rowers/dataroutines.py index 69658d1f..52a52cba 100644 --- a/rowers/dataroutines.py +++ b/rowers/dataroutines.py @@ -32,6 +32,7 @@ import zipfile import os from rowers.models import strokedatafields import polars as pl +from polars.exceptions import ColumnNotFoundError, SchemaError from rowingdata import ( KinoMapParser, @@ -1484,6 +1485,9 @@ def getsmallrowdata_pl(columns, ids=[], doclean=True, workstrokesonly=True, comp df = pl.concat(data, rechunk=True) except ValueError: # pragma: no cover return pl.DataFrame() + except SchemaError: + df = pl.concat(data, rechunk=True, how='vertical_relaxed') + else: try: diff --git a/rowers/interactiveplots.py b/rowers/interactiveplots.py index 541e46d8..856154b3 100644 --- a/rowers/interactiveplots.py +++ b/rowers/interactiveplots.py @@ -199,6 +199,8 @@ def interactive_hr_piechart(df, rower, title, totalseconds=0): df = df.with_columns((pl.col("deltat")*pl.col("hr")).alias("deltat")) sumtimehr = df['deltat'].sum() + if sumtimehr == 0: + return "", "No HR data" if totalseconds == 0: totalseconds = sumtimehr diff --git a/rowers/views/analysisviews.py b/rowers/views/analysisviews.py index 0dd4334d..7008586d 100644 --- a/rowers/views/analysisviews.py +++ b/rowers/views/analysisviews.py @@ -2386,7 +2386,7 @@ def history_view_data(request, userid=0): df = getsmallrowdata_pl(columns, ids=ids) try: - df = df.with_columns(pl.col('time').diff().clip(lower_bound=0).alias("deltat")) + df = df.with_columns(pl.col('time').diff().clip(lower_bound=0).alias("deltat")) except KeyError: # pragma: no cover pass