Skip to content

Add Panel-based web application GUI#144

Draft
jdebacker wants to merge 4 commits into
PSLmodels:masterfrom
jdebacker:app
Draft

Add Panel-based web application GUI#144
jdebacker wants to merge 4 commits into
PSLmodels:masterfrom
jdebacker:app

Conversation

@jdebacker
Copy link
Copy Markdown
Member

Introduces an interactive browser-based GUI for OG-USA built with Panel, replacing the now-unmaintained Compute Studio platform. The app can be run locally or served on the web, supports the full baseline + reform workflow, and notifies users by email on completion.

Key changes:

  • ogusa/app/backend/functions.py: adapted from cs-config with all Compute Studio dependencies (cs2tc, cs_storage, cs-kit) removed; convert_policy_adjustment inlined; comp_output returns matplotlib Figure objects and HTML strings instead of PNG bytes
  • ogusa/app/backend/helpers.py: PUF/TMD data retrieval helpers, cs-kit dependency removed
  • ogusa/app/ui/parameter_form.py: auto-generates Panel widgets from ParamTools schema (76 widgets across 6 sections); TC reform via JSON text area
  • ogusa/app/ui/job_manager.py: param.Parameterized reactive state; background thread with per-phase progress reporting; optional email notification via smtplib
  • ogusa/app/ui/results_viewer.py: renders figures, HTML tables, and CSV download buttons from comp_output dict
  • ogusa/app/app.py: FastListTemplate with sidebar controls and tabbed main area; live elapsed-time display during runs
  • launch_ogusa.command: double-click macOS launcher
  • environment.yml: replace cs-kit/cs2tc with panel>=1.3
  • README.md: add Interactive Web Application section with local, hosted, email, and output-directory instructions

jdebacker and others added 4 commits March 21, 2026 20:32
Introduces an interactive browser-based GUI for OG-USA built with
Panel, replacing the now-unmaintained Compute Studio platform.  The
app can be run locally or served on the web, supports the full
baseline + reform workflow, and notifies users by email on completion.

Key changes:
- ogusa/app/backend/functions.py: adapted from cs-config with all
  Compute Studio dependencies (cs2tc, cs_storage, cs-kit) removed;
  convert_policy_adjustment inlined; comp_output returns matplotlib
  Figure objects and HTML strings instead of PNG bytes
- ogusa/app/backend/helpers.py: PUF/TMD data retrieval helpers,
  cs-kit dependency removed
- ogusa/app/ui/parameter_form.py: auto-generates Panel widgets from
  ParamTools schema (76 widgets across 6 sections); TC reform via
  JSON text area
- ogusa/app/ui/job_manager.py: param.Parameterized reactive state;
  background thread with per-phase progress reporting; optional
  email notification via smtplib
- ogusa/app/ui/results_viewer.py: renders figures, HTML tables, and
  CSV download buttons from comp_output dict
- ogusa/app/app.py: FastListTemplate with sidebar controls and
  tabbed main area; live elapsed-time display during runs
- launch_ogusa.command: double-click macOS launcher
- environment.yml: replace cs-kit/cs2tc with panel>=1.3
- README.md: add Interactive Web Application section with local,
  hosted, email, and output-directory instructions

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
panel serve runs app.py as a standalone script, not as part of a
package, so relative imports fail.  Add repo root to sys.path in
app.py and convert all relative imports to absolute throughout.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@jdebacker jdebacker marked this pull request as draft March 23, 2026 01:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant