adding more data filtering exception catching
This commit is contained in:
@@ -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 = [
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user