Private
Public Access
1
0

adding more data filtering exception catching

This commit is contained in:
2024-04-13 11:46:08 +02:00
parent 4b7ab5f923
commit ee0229a43d
4 changed files with 34 additions and 8 deletions

View File

@@ -679,6 +679,8 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True,
datadf['workoutid'] = 0
except TypeError:
datadf = datadf.with_columns(pl.lit(0).alias("workoutid"))
except ColumnNotFoundError:
datadf = datadf.with_columns(pl.lit(0).alias("workoutid"))
before = {}
ids = list(datadf['workoutid'].unique())
@@ -689,39 +691,51 @@ def clean_df_stats_pl(datadf, workstrokesonly=True, ignorehr=True,
# bring metrics which have negative values to positive domain
if len(datadf) == 0:
return datadf
return data_orig
try:
datadf = datadf.with_columns((-pl.col('catch')).alias('catch'))
except (KeyError, TypeError, InvalidOperationError):
except (KeyError, TypeError):
pass
except(ComputeError, InvalidOperationError, ColumnNotFoundError):
return data_orig
try:
datadf = datadf.with_columns((pl.col('peakforceangle')+1000).alias('peakforceangle'))
except (KeyError, TypeError, InvalidOperationError):
except (KeyError, TypeError):
pass
except(ComputeError, InvalidOperationError, ColumnNotFoundError):
return data_orig
try:
datadf = datadf.with_columns((pl.col('hr')+10).alias('hr'))
except (KeyError, TypeError, InvalidOperationError):
except (KeyError, TypeError):
pass
except(ComputeError, InvalidOperationError, ColumnNotFoundError):
return data_orig
# protect 0 spm values from being nulled
try:
datadf = datadf.with_columns((pl.col('spm')+1.0).alias('spm'))
except (KeyError, TypeError, InvalidOperationError):
except (KeyError, TypeError):
pass
except(ComputeError, InvalidOperationError, ColumnNotFoundError):
return data_orig
# protect 0 workoutstate values from being nulled
try:
datadf = datadf.with_columns((pl.col('workoutstate')+1).alias('workoutstate'))
except (KeyError, TypeError, InvalidOperationError):
except (KeyError, TypeError):
pass
except(ComputeError, InvalidOperationError, ColumnNotFoundError):
return data_orig
try:
datadf = datadf.select(pl.all().clip(lower_bound=0))
# datadf = datadf.clip(lower=0)
except TypeError:
except (TypeError):
pass
except(ComputeError, InvalidOperationError, ColumnNotFoundError):
return data_orig
# protect advanced metrics columns
advancedcols = [

View File

@@ -195,7 +195,11 @@ def interactive_hr_piechart(df, rower, title, totalseconds=0):
if df.is_empty():
return "", "Not enough data to make a chart"
df = df.sort("hr")
try:
df = df.sort("hr")
except ColumnNotFoundError:
return "", "Not enough data to make a chart"
df = df.with_columns((pl.col("deltat")*pl.col("hr")).alias("deltat"))
sumtimehr = df['deltat'].sum()

View File

@@ -2482,11 +2482,18 @@ def history_view_data(request, userid=0):
meters, hours, minutes, seconds = get_totals(a_workouts)
totalseconds = 3600 * hours + 60 * minutes + seconds
ddf = getsmallrowdata_pl(columns, ids=[w.id for w in a_workouts])
if ddf.is_empty():
totalscript = ""
totaldiv = "No data"
try:
ddf = ddf.with_columns(pl.col("time").diff().clip(lower_bound=0).alias("deltat"))
except KeyError:
pass
except ColumnNotFoundError:
totalscript = ""
totaldiv = "No data"
ddf = dataprep.clean_df_stats_pl(ddf, workstrokesonly=True,
ignoreadvanced=True)

View File

@@ -205,6 +205,7 @@ from rowers.rojabo_stuff import rojabo_open
from rowers.integrations import *
from polars.exceptions import ColumnNotFoundError
import rowers.ownapistuff as ownapistuff
from rowers.ownapistuff import TEST_CLIENT_ID, TEST_CLIENT_SECRET, TEST_REDIRECT_URI