Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .changeset/pgen-polars-rtcompat.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
---
"@platforma-open/milaboratories.runenv-python-3.12.10-pgen": minor
---

Update the `3.12.10-pgen` run environment to the pins of the Generation Probability block: `numpy==2.4.6`, `numba==0.66.0`, `llvmlite==0.48.0`, `olga==1.3.0`, `polars==1.43.0`, `polars-runtime-32==1.43.0` and `polars-runtime-compat==1.43.0`.

The block installs its `requirements.txt` with `pip --no-index --find-links <runenv packages>`. A pin that the run environment does not ship cannot resolve. The old set (`numpy==2.2.6`, `polars-lts-cpu==1.33.1`) did not match the block.

`polars-lts-cpu` is removed. `polars[rtcompat]` replaces it upstream, and `polars-runtime-compat` is that runtime.

`olga` and `numba` are declared under `noDeps`. Without it, their loose requirements pull the newest `numba`, `llvmlite` and `numpy` next to the pinned versions. `strictMissing` is on, so a missing wheel fails the build.
8 changes: 6 additions & 2 deletions python-3.12.10-pgen/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
Python 3.12.10 run environment for the Generation Probability block (`generation-probability`): `olga` (V(D)J generation-probability computation for CDR3s, including its 10 bundled recombination models) plus `numpy` and `polars-lts-cpu` for Parquet I/O, and transitives.
Python 3.12.10 run environment for the Generation Probability block (`generation-probability`): `olga` (V(D)J generation-probability computation for CDR3s, including its 10 bundled recombination models) plus `numpy` and `polars` for Parquet I/O.

Note: olga declares `numba` as a hard dependency (pulling `llvmlite`/LLVM), so these are bundled even though the block only uses olga's pure-NumPy `compute_aa_CDR3_pgen` path, not olga's numba fast-path. macOS-Intel (`macosx-x64`) is intentionally not built — `llvmlite` ships no cp312 wheel for that platform.
The set is pinned flat and matches the block's `requirements.txt`: `olga`, `numba`, `llvmlite`, `numpy`, `polars`, `polars-runtime-32` and `polars-runtime-compat`. The block installs it with `pip --no-index --find-links <runenv packages>`, so each pin in the block must exist here as a wheel. Change the pins here and in the block together.

`polars-runtime-compat` is the `polars[rtcompat]` extra. It replaces `polars-lts-cpu`. `olga` and `numba` are declared under `noDeps`. Their loose requirements otherwise pull the newest `numba`, `llvmlite` and `numpy` next to the pinned versions.

The block uses olga's `FastPgen`, which runs numba kernels. numpy 2.4.6 has only `manylinux_2_28` wheels on Linux, so the host needs glibc 2.28 or newer. macOS-Intel (`macosx-x64`) is intentionally not built — `llvmlite` ships no cp312 wheel for that platform.
15 changes: 13 additions & 2 deletions python-3.12.10-pgen/config.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,23 @@
"packages": {
"dependencies": [
"olga==1.3.0",
"polars-lts-cpu==1.33.1",
"numpy==2.2.6"
"numba==0.66.0",
"llvmlite==0.48.0",
"numpy==2.4.6",
"polars==1.43.0",
"polars-runtime-32==1.43.0",
"polars-runtime-compat==1.43.0"
],
"noDeps": [
"olga",
"numba"
],
"skip": {},
"overrides": {},
"platformSpecific": {},
"resolution": {
"strictMissing": true
},
"buildWheel": {}
}
}
2 changes: 1 addition & 1 deletion python-3.12.10-pgen/package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "@platforma-open/milaboratories.runenv-python-3.12.10-pgen",
"version": "0.2.0",
"description": "Python 3.12.10 run environment for the Generation Probability block (olga for CDR3 generation probability + numpy + polars-lts-cpu)",
"description": "Python 3.12.10 run environment for the Generation Probability block (olga for CDR3 generation probability + numpy + polars with the rtcompat runtime)",
"scripts": {
"cleanup": "rm -rf ./pkg-*.tgz ./pydist ./dist/ ./build/",
"reset": "pnpm run cleanup && rm -rf ./node_modules ./.turbo",
Expand Down
Loading