Development¶
Build and check¶
From a repository checkout:
python -m pip install -e ".[test,docs]"
python -m pytest -m "not benchmark and not e2e"
python -m sphinx -W --keep-going -b html docs docs/_build/html
The frontend uses Node.js 24. Rebuild the bundled assets after a source change:
cd PQEnalyzer/web/frontend
npm ci
npm test
npm run build
Commit PQEnalyzer/web/static with frontend changes. CI checks that the
bundle matches its source and the installed PQDesign package.
For browser and desktop smoke tests, install Chromium first:
python -m playwright install chromium
python -m pytest -m e2e
On headless Linux, desktop tests require Xvfb; CI uses
xvfb-run -a python -m pytest -m e2e.
Source ownership¶
Layer |
Location |
Responsibility |
|---|---|---|
Parsing |
|
Read output and validate compatible units |
Dataset access |
|
Resolve parameters and concatenate selected files |
Methods |
|
Numeric calculations and plot conventions |
Web server |
|
Shape JSON, watch files, and serve the bundled interface |
Browser |
|
Interaction and chart rendering |
Terminal adapter |
|
App labels, dataset summaries and lifecycle events |
Extend PQAnalysis parsing and reuse the method layer before adding another reader or calculation. Scientific changes need a reproducible input and a check against an independent calculation; interface changes need a browser check of the affected interaction.
PQEnalyzer/_design_terminal.py is vendored byte for byte from PQDesign’s
python/pq_terminal.py. CI and release builds compare it with the released
package. PQDesign owns renderer branch coverage; this repository tests the
PQEnalyzer adapter, values and application lifecycle.
Reproduce the figure¶
From the repository root, using the installed package and included example data:
python docs/examples/plot_analysis.py
This regenerates docs/_static/temperature-analysis.svg from the two energy
files and their .info files. It uses the same dataset and statistic APIs as
the web application. The example files illustrate the methods; apparent
stability does not validate a scientific simulation.
The manual uses PQDesign tokens and
its shared Furo stylesheet. Local copies and provenance are in docs/_static;
builds do not require a neighbouring checkout.