pdstools.utils.streamlit_utils¶
Functions¶
|
True when the app is running inside the cross-app launcher. |
|
Mark the named app as currently active in the launcher sidebar. |
|
Apply a consistent |
|
Display the Pega logo and an app title at the top of the sidebar. |
|
Display the pdstools version, an upgrade hint, and optionally a staleness warning. |
|
Guard that stops page execution when key is missing from session state. |
|
Return the data path set via |
|
Return the raw sample limit string set via |
|
Return the filter specs set via |
|
Return the temp directory set via |
|
Return the full-embed setting set via |
|
Parse a |
|
Get index from session state if key exists and value is in options, else return default. |
Cached sample. |
|
|
Load ADMDatamart with caching. |
Cached sample prediction. |
|
|
Load Prediction with caching. |
|
Import ADMDatamart data from various sources. |
|
From uploaded file. |
|
From file path. |
|
Model selection df. |
|
Adds a UI on top of a dataframe to let viewers filter columns |
Returns unique model id count and row count from a dataframe |
|
Configure predictor categorization. |
|
|
Convert df. |
St get latest pdstools version. |
|
Render a standardised About page with version and dependency information. |
Module Contents¶
- is_launcher_mode() bool¶
True when the app is running inside the cross-app launcher.
The CLI sets
PDSTOOLS_LAUNCHER_MODE=1when invoking the launcher so per-app helpers (sidebar branding, navigation) can adapt their behaviour without each call site needing to know.- Return type:
- set_active_app(app_key: str) None¶
Mark the named app as currently active in the launcher sidebar.
Each app’s home page calls this on render. In launcher mode the cross-app entry script reads the flag to decide which app’s sub-pages to register in
st.navigation, keeping the sidebar short until the user has actually entered an app. A no-op (other than the session_state write) in standalone tool launches.Triggers
st.rerun()when the active app actually changes so the new sub-pages appear in the sidebar without a manual click.- Parameters:
app_key (str)
- Return type:
None
- standard_page_config(page_title: str, layout: Literal['centered', 'wide'] = 'wide', **kwargs)¶
Apply a consistent
st.set_page_configacross all pdstools apps.Idempotent: when called more than once in the same script run (e.g. an
st.navigation()entry script calls it before routing, and the routed page calls it again), the second call is a no-op rather than theStreamlitAPIExceptionStreamlit normally raises. This lets the same page module work both standalone (directAppTest.from_file/streamlit run pages/X.py) and inside a navigation router.
- show_sidebar_branding(title: str)¶
Display the Pega logo and an app title at the top of the sidebar.
Uses
st.logofor the logo and CSS injection for the title, so both render above the page navigation. Call once from the Home page; sub-pages re-apply automatically viastandard_page_configorensure_data.In launcher mode (
PDSTOOLS_LAUNCHER_MODE=1) the brand is forced to"pdstools"and the supplied title is rendered as a subtitle, so every page in the multi-app launcher shows a consistent top-level brand even when the active sub-app re-applies its own title.- Parameters:
title (str) – Application title shown below the logo in the sidebar.
- show_version_header(check_latest: bool = True)¶
Display the pdstools version, an upgrade hint, and optionally a staleness warning.
- Parameters:
check_latest (bool, default True) – If True, queries PyPI for the latest version and shows an upgrade warning when the installed version is outdated.
- ensure_session_data(key: str, message: str | None = None)¶
Guard that stops page execution when key is missing from session state.
- get_data_path() str | None¶
Return the data path set via
--data-pathCLI flag.Returns
Nonewhen no path was configured.- Return type:
str | None
- get_sample_limit() str | None¶
Return the raw sample limit string set via
--sampleCLI flag.Returns
Nonewhen no sampling was requested.- Return type:
str | None
- get_filter_specs() list[str] | None¶
Return the filter specs set via
--filterCLI flags.Returns
Nonewhen no filters were configured.
- get_temp_dir() str | None¶
Return the temp directory set via
--temp-dirCLI flag.Returns
Nonewhen no temp directory was configured.- Return type:
str | None
- get_full_embed() bool | None¶
Return the full-embed setting set via
--full-embed/--no-full-embedCLI flag.Returns
Nonewhen the flag was not provided (caller should apply its own default).- Return type:
bool | None
- parse_sample_spec(value: str) dict[str, int | float]¶
Parse a
--sampleflag value into keyword arguments.Supports absolute counts (
"100000"), percentages ("10%"), and human-readable notation ("100k","1M").
- get_current_index(options, key, default=0)¶
Get index from session state if key exists and value is in options, else return default.
- cached_sample()¶
Cached sample.
- cached_datamart(**kwargs)¶
Load ADMDatamart with caching.
- Parameters:
**kwargs – Arguments passed to ADMDatamart.from_ds_export
- cached_sample_prediction()¶
Cached sample prediction.
- cached_prediction_table(**kwargs)¶
Load Prediction with caching.
- Parameters:
**kwargs – Arguments passed to Prediction.from_ds_export
- import_datamart(extract_pyname_keys: bool, infer_schema_length: int = 10000)¶
Import ADMDatamart data from various sources.
- Parameters:
extract_pyname_keys (bool) – Whether to extract additional keys from pyName column
infer_schema_length (int, default 10000) – Number of rows to scan for schema inference when reading CSV/JSON files. For large production datasets, increase this value (e.g., 200000) if columns are not being detected correctly.
- from_uploaded_file(extract_pyname_keys, codespaces, infer_schema_length=10000)¶
From uploaded file.
- from_file_path(extract_pyname_keys, codespaces, infer_schema_length=10000)¶
From file path.
- model_selection_df(df: polars.LazyFrame, context_keys: list)¶
Model selection df.
- Parameters:
df (polars.LazyFrame)
context_keys (list)
- filter_dataframe(df: polars.LazyFrame, schema: dict | None = None, queries: list | None = None) polars.LazyFrame¶
Adds a UI on top of a dataframe to let viewers filter columns
- model_and_row_counts(df: pdstools.utils.types.ANY_FRAME)¶
Returns unique model id count and row count from a dataframe
- configure_predictor_categorization()¶
Configure predictor categorization.
- convert_df(df)¶
Convert df.
- st_get_latest_pdstools_version()¶
St get latest pdstools version.
- show_about_page()¶
Render a standardised About page with version and dependency information.
Mirrors the Credits section of the Quarto ADM Health Check report. Call this from a Streamlit page to display pdstools version info, platform details, and an expandable dependency listing.