Repository navigation
Public-readiness: pip-git install + MathJax docs + uv CI (fast/slow split) - #5
Merged
Merged
Conversation
Plain `pip install git+<acopula>` previously succeeded but crashed at import: pip ignores [tool.uv.sources]/[tool.uv] overrides, so it pulled stock oryx 0.2.9 (broken on jax 0.8) and stable tensorflow-probability alongside the nightly (namespace collision -> pytype_aval_mappings). - oryx: bare `oryx>=0.2.9` -> PEP 508 direct ref `oryx @ git+https://github.com/thisiscam/oryx.git@copulaad_support` (pip and uv both honor it). The fork now depends on tfp-nightly (not stable tensorflow-probability), so no stable tfp gets installed. - jet-array: 0.1.0a1 (git) -> 0.1.0a2 (PyPI). - Drop [tool.uv.sources] and the tfp override/constraint (superseded). - hatch: allow-direct-references = true (required to build with the git dep). - README / docs: `pip install git+...` is now the primary install; uv for dev. Caveat: the git URL in [project.dependencies] makes the package un-uploadable to PyPI until a jax-0.8-compatible oryx is published upstream. Verified: clean-venv `pip install` resolves only tfp-nightly (no stable tfp), oryx from the fork, jet-array 0.1.0a2; `import acopula` succeeds. uv path also imports.
- mkdocs.yml: enable pymdownx.arithmatex (generic) + load MathJax 3 with a
small config (docs/javascripts/mathjax.js, re-typesets on instant nav).
- Convert the API-visible math to LaTeX $...$ / $$...$$ so it renders as math
instead of literal `^{(k)}` etc.: the Copula class + generator, the four
generator-precision override hooks (core.py), and the F^{-1} / composition
notation in quickstart.md and api.md. Docstrings made raw (r""") so the
TeX backslashes aren't mangled as escapes.
mkdocs build --strict clean; 22 arithmatex spans render on the API page.
The full test suite exceeds GitHub's 6h job limit on 2-core runners (a few
deep-nesting / e2e-sampling / high-d tests dominate). Split it:
- Mark the ~12 heaviest tests `@pytest.mark.slow` (the 4 that exceed 90s plus
the ~30s+ tier: test_mo_rosenblatt_e2e, test_simplex_3level::test_3level,
test_bell_{four_sectors,3_layer_full_branching}, test_mo_rosenblatt_hybrid,
test_nested_2level/3level). Register the `slow` marker in pyproject.
- test.yml: install with uv, run `-m "not slow" -n auto` (fast PR gate;
~40s here, ~7-8min on 2-core CI). Drop the 3.10 matrix entry.
- test-full.yml: nightly (+ workflow_dispatch) full suite via `-n auto`.
- test extra: add pytest-xdist.
Verified locally: fast gate 65 passed / 2 xfailed; `-m slow` selects 12.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Two commits.
1.
pip install git+…now worksPreviously plain pip ignored the
[tool.uv]blocks and produced a broken install (stock oryx 0.2.9 + stable tfp collision →pytype_aval_mappingsat import). Now:thisiscam/oryx@copulaad_support) depends ontfp-nightlyinstead of stabletensorflow-probability(already pushed).oryx→ PEP 508 direct ref to that fork (pip + uv both honor it);jet-array→0.1.0a2(PyPI); dropped[tool.uv.sources]+ the tfp override/constraint;hatch allow-direct-references = true.pip install git+https://github.com/thisiscam/acopulais now the primary install (uv for dev).Verified in a clean venv:
pip installresolves onlytfp-nightly(no stable tfp), oryx from the fork, jet-array 0.1.0a2, andimport acopulasucceeds. uv path still imports.Caveat: the git URL in
[project.dependencies]makes the package un-uploadable to PyPI until a jax-0.8-compatible oryx ships upstream (swap the direct ref back tooryx>=<ver>then).2. MathJax in docs
pymdownx.arithmatex(generic) + MathJax 3. Converted the API-visible math to LaTeX$...$(Copula + generator, the four override hooks,F^{-1}/composition in quickstart/api) so it renders as math, not literal^{(k)}. Docstrings made raw to protect TeX backslashes.mkdocs build --strictclean; 22 arithmatex spans render.