This section is auto-generated from progenax source. The pages
in this section are produced by scripts/build_api_reference.py,
which walks progenax.__all__ for each public submodule, extracts
signatures and docstrings via inspect, and emits one MyST page per
module plus an alphabetical full-symbol index.
Browse by module¶
Module | Scope |
|---|---|
Spatial density profiles: | |
Velocity DFs and Eddington-inverted samplers | |
Initial mass functions: power-law, Maschberger, Chabrier, binary-aware, environment-dependent | |
Kepler elements, period and eccentricity distributions, joint binary populations | |
Analytical IC test cases: two-body Kepler, three-body figure-eight, harmonic oscillator | |
IC pipeline utilities: | |
Jacobi-radius computation and tidal truncation | |
Multi-component equilibrium clusters: | |
Cluster diagnostics: Λ_MSR, CW04 Q parameter, differentiable segregation observables | |
Virial and energy utilities: kinetic/potential energy, per-group virial ratios | |
Runtime-checkable protocols: |
Browse alphabetically¶
The full symbol index lists every public
symbol across all submodules, sorted alphabetically, with classification
(class / function / protocol / value) and link to the per-module page.
This counts every symbol in each submodule’s __all__; the top-level
progenax package re-exports a curated subset for convenience
(e.g. from progenax import PlummerProfile), so len(progenax.__all__)
is smaller. Use the index when you know the symbol name but don’t
remember which module it lives in.
How the API reference is built¶
The scripts/build_api_reference.py script:
Imports each module in
PUBLIC_MODULESand walks__all__.For each public symbol, extracts:
Class / function / protocol classification
Signature via
inspect.signatureCleaned docstring via
inspect.getdocSource-file link via
inspect.getsourcefile
Emits one MyST page per module, with anchored sections per symbol.
Builds the alphabetical full-symbol index from the same data.
The script uses only Python stdlib (no Griffe / pdoc / sphinx-autoapi dependency) and runs in seconds. To regenerate after public-API changes:
cd docs/website
python scripts/build_api_reference.pyThe script is idempotent: re-running with no source changes produces no diff. CI verifies this by running the script on every PR and checking for unstaged changes.
What the API reference does not contain¶
Tutorials — see Getting started.
Theory derivations — see Theory & methods.
How-to recipes — see How-to recipes.
Validation criteria — see Validation.
The API reference is deliberately minimal: signature + docstring + source link. For richer pedagogical context on any symbol, follow the cross-link in its docstring to the relevant theory or how-to chapter.
Stable-vs-unstable API¶
Status | Convention | Example |
|---|---|---|
Stable (default) | In |
|
Experimental | Repo-only packages under |
|
Internal | Underscore-prefixed; not in |
|
Only stable-API symbols appear in this reference. Experimental and internal symbols are documented in their own modules’ docstrings but do not show up here.
Reporting issues¶
If you find an API reference page that is wrong (missing symbol,
wrong signature, stale docstring), the cause is almost always a
docstring problem in the source rather than a script problem. Open
an issue against the relevant progenax/<module>/<file>.py rather
than against the docs site. Then re-run the build script to update
the reference page.