Files
palladium/app/pages/_helpers.py
Robert Helewka a2420ed692 refactor: restructure repo into core/app modules with per-study folders
Reorganize Palladium codebase into a modular architecture with `core/`
shared logic and `app/` Streamlit UI, separating per-study assets into
`studies/YYYYMM_<Vendor>/` folders containing notebooks, seed data, and
configuration. Update README to reflect new structure, add `.gitignore`
entries for `.env` and study exports, and refresh component documentation.
2026-05-20 22:28:12 -04:00

29 lines
803 B
Python

"""Common helpers shared by the page modules."""
from __future__ import annotations
import streamlit as st
from core.tei_client import AthenaAPIError, TEIClient
def report_meta(client: TEIClient, tool: dict) -> dict:
"""Fetch the linked report (handles both nested-object and id-only forms)."""
report_obj = tool.get("report")
if isinstance(report_obj, dict):
return report_obj
if isinstance(report_obj, str):
try:
return client.get_report(report_obj)
except AthenaAPIError as e:
st.error(f"Failed to load report template: {e}")
return {}
def safe(fn, *args, **kwargs):
try:
return fn(*args, **kwargs)
except AthenaAPIError as e:
st.error(f"Athena API error {e.status_code}: {e.detail}")
return None