webinterface.pages.base_pages.utils.parameter_filters module#
Parameter-based filtering for benchmark datapoints.
Provides both the pure filtering logic (apply_parameter_filters) and
the Streamlit UI rendering (generate_parameter_filters).
- webinterface.pages.base_pages.utils.parameter_filters.apply_parameter_filters(data: DataFrame, filter_selections: Dict[str, Any]) DataFrame[source]#
Apply parameter-based filters to a DataFrame of benchmark datapoints.
- Parameters:
data (pd.DataFrame) – The benchmark datapoints to filter.
filter_selections (dict) – Mapping of column name to the selected filter value(s).
- Returns:
The subset of data matching all active filters.
- Return type:
pd.DataFrame
- webinterface.pages.base_pages.utils.parameter_filters.generate_parameter_filters(data: DataFrame, key_prefix: str = 'param_filter', pinned_indices: Index | None = None) DataFrame[source]#
Render parameter-based filter widgets and return the filtered DataFrame.
- Parameters:
data (pd.DataFrame) – Benchmark datapoints (already filtered by the k-slider).
key_prefix (str, optional) – Prefix for Streamlit session-state keys to avoid collisions.
pinned_indices (pd.Index, optional) – Row indices that must always be included in the result regardless of filter settings (e.g. a newly submitted datapoint in tab 4).
- Returns:
The subset of data matching all active parameter filters, plus any pinned_indices rows.
- Return type:
pd.DataFrame
- webinterface.pages.base_pages.utils.parameter_filters.keep_latest_version_per_tool(datapoints: DataFrame, software_col: str = 'software_name', version_col: str = 'software_version', protect_col: str = 'old_new', protect_value: str = 'new') DataFrame[source]#
Filter datapoints to the newest version of each software tool.
Rows whose
protect_colequalsprotect_value(e.g. a just-uploaded datapoint) are always kept regardless of their version.