Skip to content

Commit 7dd2ca0

Browse files
thisiscamclaude
andcommitted
pyproject: portable env overrides for standalone uv sync
Three pre-existing setup issues blocked standalone \`~/acopula\` dev: 1. oryx PyPI 0.2.9 imports \`from jax import util\` which jax 0.8.x removed; the \`copulaad_support\` branch of the patched fork uses \`from jax._src import util\` and is the upstream the supplement bundle vendors. 2. jet-array PyPI 0.1.0a1 predates the log-space Taylor expansion used by bell.py's \`log_jet=True\` path and the log_add NaN-grad shift-guard at structural zeros. 3. oryx pulls in stable \`tensorflow-probability\` which collides on disk with \`tfp-nightly\`; depending on uv install order, stable's broken \`ops.py\` (referencing the removed \`jax.interpreters.xla.pytype_aval_mappings\`) wins and crashes. Add \`[tool.uv]\` overrides + \`[tool.uv.sources]\` redirects matching the supplement-bundle workspace setup so \`uv sync\` produces a working dev env on any machine. These hints are uv-specific; the PyPI-published \`oryx\` and \`jet-array\` deps are unaffected for users who pip install acopula. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent f840b1a commit 7dd2ca0

2 files changed

Lines changed: 1377 additions & 0 deletions

File tree

‎pyproject.toml‎

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,35 @@ test = ["pytest>=7", "mpmath>=1.3"]
6464
required-environments = [
6565
"sys_platform == 'linux' and platform_machine == 'x86_64'",
6666
]
67+
# oryx pulls in stable `tensorflow-probability`, which collides on disk with
68+
# `tfp-nightly` (both write into the `tensorflow_probability/` namespace).
69+
# Depending on uv's install order, stable's broken `ops.py` (referencing the
70+
# removed `jax.interpreters.xla.pytype_aval_mappings`) wins and crashes at
71+
# import. Drop stable tfp from resolution; tfp-nightly satisfies every oryx
72+
# import path.
73+
override-dependencies = [
74+
"tensorflow-probability ; sys_platform == 'never'",
75+
]
76+
# Pin tfp-nightly to the version that works with jax 0.8.x. Newer nightlies
77+
# remove `jax.interpreters.xla.pytype_aval_mappings` and crash at import.
78+
constraint-dependencies = [
79+
"tfp-nightly==0.26.0.dev20251116",
80+
]
81+
82+
# PyPI's oryx 0.2.9 imports `from jax import util`, which jax 0.8.x removed.
83+
# The `copulaad_support` branch of the patched fork uses `from jax._src import
84+
# util` and ships the lax.copy_p ILDJ shim acopula expects. This source
85+
# override applies only under uv; the published `oryx>=0.2.9` PyPI dep stays
86+
# in `dependencies` so a future plain `pip install acopula` works once the
87+
# upstream fix lands.
88+
[tool.uv.sources]
89+
oryx = { git = "https://github.com/thisiscam/oryx.git", branch = "copulaad_support" }
90+
# PyPI's jet-array==0.1.0a1 predates the log-space Taylor expansion
91+
# (sign, log|c|) representation that `bell.py`'s `log_jet=True` path
92+
# uses, and also predates the log_add NaN-gradient shift-guard at
93+
# structural zeros. Pin to the public fork until a new wheel is
94+
# released.
95+
jet-array = { git = "https://github.com/thisiscam/jet-array.git", branch = "main" }
6796

6897
[tool.hatch.build.targets.wheel]
6998
packages = ["acopula"]

0 commit comments

Comments
 (0)