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.
This commit is contained in:
39
studies/202602_AmazonConnect/config.py
Normal file
39
studies/202602_AmazonConnect/config.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""
|
||||
Study configuration for the Amazon Connect TEI (February 2026).
|
||||
|
||||
Set ``TOOL_PUBLIC_ID`` to the public_id of the live TEI tool instance in
|
||||
Athena once it has been created. ``REPORT_PUBLIC_ID`` is the template
|
||||
this tool was created from (Athena admin sets up Report templates).
|
||||
|
||||
Until both are filled in, the notebooks fall back to local-only mode:
|
||||
they compute summaries from ``seed_data.py`` using ``core.calculations``
|
||||
and skip the network round-trip.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import os
|
||||
|
||||
#: Human-friendly study identifier — used in export metadata + filenames.
|
||||
STUDY_SLUG = "202602_AmazonConnect"
|
||||
|
||||
#: TEI Report template public_id (12-char short UUID). Provisioned in
|
||||
#: Athena admin → TEI → Reports.
|
||||
REPORT_PUBLIC_ID: str = os.getenv("PALLADIUM_REPORT_PUBLIC_ID", "")
|
||||
|
||||
#: TEI Tool instance public_id. Created via the API
|
||||
#: (``client.create_tool``) or the Streamlit app sidebar.
|
||||
TOOL_PUBLIC_ID: str = os.getenv("PALLADIUM_TOOL_PUBLIC_ID", "")
|
||||
|
||||
#: Default discount rate used for local validation of the study numbers.
|
||||
DISCOUNT_RATE = 0.10
|
||||
|
||||
#: Analysis horizon (years).
|
||||
ANALYSIS_YEARS = 3
|
||||
|
||||
#: Optional Athena Proposal ID this tool is linked to (when known).
|
||||
PROPOSAL_ID: int | None = (
|
||||
int(os.environ["PALLADIUM_PROPOSAL_ID"])
|
||||
if os.getenv("PALLADIUM_PROPOSAL_ID")
|
||||
else None
|
||||
)
|
||||
Reference in New Issue
Block a user