From a1c25ef96a3cac6dd46741363e5d03543cc1330c Mon Sep 17 00:00:00 2001 From: "Michael J. Williams" Date: Wed, 28 Oct 2026 09:09:46 +0100 Subject: [PATCH 1/2] BLD: update RTD direct upload --- .github/workflows/documentation.yml | 52 +- .github/workflows/pr-documentation.yml | 27 +- CONTRIBUTING.md | 28 +- pixi.lock | 1003 +++++++++++++++++++++++- pyproject.toml | 21 + scripts/publish_docs.py | 138 ---- scripts/publish_pr_docs.py | 98 ++- tests/test_publish_docs.py | 122 --- tests/test_publish_pr_docs.py | 131 +++- 9 files changed, 1263 insertions(+), 357 deletions(-) delete mode 100644 scripts/publish_docs.py delete mode 100644 tests/test_publish_docs.py diff --git a/.github/workflows/documentation.yml b/.github/workflows/documentation.yml index 949a97b..664227b 100644 --- a/.github/workflows/documentation.yml +++ b/.github/workflows/documentation.yml @@ -127,28 +127,29 @@ jobs: with: name: documentation-html path: docs/_build/html/ + include-hidden-files: true if-no-files-found: error retention-days: 14 publish: needs: documentation - if: github.repository == 'sequince-dev/sequince-examples' && github.ref == 'refs/heads/main' && github.event_name != 'pull_request' + # All PR previews are published by the trusted workflow_run workflow. + if: >- + github.repository == 'sequince-dev/sequince-examples' && + github.ref == 'refs/heads/main' && github.event_name != 'pull_request' runs-on: ubuntu-latest timeout-minutes: 55 concurrency: group: examples-rtd-latest cancel-in-progress: false - permissions: - contents: write steps: - uses: actions/checkout@v4 with: - ref: ${{ github.sha }} + ref: ${{ github.event.pull_request.head.sha || github.sha }} persist-credentials: false - - uses: actions/download-artifact@v4 + - uses: actions/setup-python@v5 with: - name: execution-lock - path: . + python-version: "3.13" - uses: actions/download-artifact@v4 with: name: validated-bundle @@ -165,9 +166,36 @@ jobs: assert Path(str(path) + '.sha256').read_text().split() == [digest(path), path.name] unpack(path, sha, OUTPUT) PY - - name: Publish durable assets and wait for RTD - run: python3 scripts/publish_docs.py + - uses: actions/download-artifact@v4 + with: + name: documentation-html + path: docs/_build/html + - name: Check publication is current + id: publication env: - GH_TOKEN: ${{ github.token }} - RTD_TOKEN: ${{ secrets.RTD_TOKEN }} - RTD_PROJECT: ${{ vars.RTD_PROJECT }} + PR_NUMBER: ${{ github.event.pull_request.number }} + run: | + python3 - <<'PY' + import os + import sys + sys.path.insert(0, 'scripts') + from docs_pipeline import git + number = os.environ['PR_NUMBER'] + ref = f'refs/pull/{number}/head' if number else 'refs/heads/main' + remote = git('ls-remote', 'origin', ref).split() + current = bool(remote) and remote[0] == git('rev-parse', 'HEAD') + with open(os.environ['GITHUB_OUTPUT'], 'a') as output: + output.write(f'current={str(current).lower()}\n') + if not current: + print('Source advanced; skipping stale publication') + PY + - name: Upload HTML to Read the Docs + if: steps.publication.outputs.current == 'true' + # Pinned beta revision; upstream has not published the documented v1 tag. + uses: readthedocs/upload-action@f1f5bac5fc97073927100367d8a5bb22587e1e16 + with: + token: ${{ secrets.READTHEDOCS_TOKEN }} + project-slug: ${{ vars.RTD_PROJECT }} + html: docs/_build/html + # Keep the existing latest URL. + version-name: latest diff --git a/.github/workflows/pr-documentation.yml b/.github/workflows/pr-documentation.yml index a40de1d..07f5bb9 100644 --- a/.github/workflows/pr-documentation.yml +++ b/.github/workflows/pr-documentation.yml @@ -6,7 +6,7 @@ on: permissions: actions: read - contents: write + contents: read pull-requests: read jobs: @@ -21,15 +21,30 @@ jobs: group: examples-rtd-pr-${{ github.event.workflow_run.head_repository.full_name }}-${{ github.event.workflow_run.head_branch }} cancel-in-progress: false steps: - # workflow_run uses trusted default-branch code. Never check out the PR - # or execute files from its artifacts in this credential-bearing job. + # workflow_run checks out trusted default-branch code, never PR code. + # Treat the downloaded artifacts as data and never execute their files. - uses: actions/checkout@v4 with: ref: ${{ github.sha }} persist-credentials: false - - name: Publish bundle and rebuild PR preview + - uses: actions/setup-python@v5 + with: + python-version: "3.13" + - name: Validate artifacts and prepare PR preview + id: preview run: python3 scripts/publish_pr_docs.py env: GH_TOKEN: ${{ github.token }} - RTD_TOKEN: ${{ secrets.RTD_TOKEN }} - RTD_PROJECT: ${{ vars.RTD_PROJECT }} + - name: Upload PR preview to Read the Docs + if: steps.preview.outputs.ready == 'true' + # Same pinned beta revision as the main documentation workflow. + uses: readthedocs/upload-action@f1f5bac5fc97073927100367d8a5bb22587e1e16 + with: + token: ${{ secrets.READTHEDOCS_TOKEN }} + project-slug: ${{ vars.RTD_PROJECT }} + html: ${{ steps.preview.outputs.html }} + # workflow_run metadata describes the default branch, so override it + # with the validated PR metadata rather than relying on inference. + version-name: ${{ steps.preview.outputs.version }} + version-type: external + commit: ${{ steps.preview.outputs.commit }} diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3626cbe..3c7a42f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -177,29 +177,11 @@ plots and staging directories. ### CI and hosting -The documentation workflow resolves one execution lock and shares it across -parallel example jobs. It collects outputs from that same workflow run, runs -checks, builds Sphinx, and uploads HTML and a validated output bundle. - -Trusted runs on `main` can attach the bundle to a dedicated GitHub release keyed -by the full source commit and trigger a Read the Docs build. Read the Docs -installs `docs/requirements.txt`, fetches the exact matching bundle, and verifies -it before building; it does not run sampling. Freshness checks guard `latest` -builds, and there is no fallback to results from another commit. - -Pull requests run examples and build Sphinx at the PR head commit, matching -Read the Docs previews. After a successful run, the separate -`Publish PR documentation` workflow runs trusted code from the default branch. -It reads the completed run's artifact as data, checks its archive and commit, -publishes it under `docs-pr--`, and requests the PR preview. -PR code and artifacts are never executed in that publishing job. Read the Docs -then performs the same output provenance validation used for `latest`. - -Maintainers must configure the Read the Docs project, the repository variable -`RTD_PROJECT`, and the secret `RTD_TOKEN` before enabling this hosting workflow. -Keep credentials out of source files and pull request jobs. The configuration -uses standard Read the Docs hosting; private access requires a hosting service -and account configuration that supports it. +CI shares one execution lock across example jobs, validates their outputs, and +builds Sphinx. The official RTD upload action publishes main as `latest`. +PR previews, including forks, use a separate trusted workflow that validates +artifacts without executing PR code. Stale publications are skipped; no Git +tags or GitHub releases are created. ## Commit messages diff --git a/pixi.lock b/pixi.lock index 03f89d8..a3c42bf 100644 --- a/pixi.lock +++ b/pixi.lock @@ -12,6 +12,207 @@ platforms: - __osx=13.0 - __archspec=0=m1 environments: + aspire: + channels: + - url: https://conda.anaconda.org/conda-forge/ + indexes: + - https://pypi.org/simple + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-8_kmp_llvm.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-12.1.0-h76c4fd7_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gmpy2-2.3.2-py313ha4a6282_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260526.0-cxx17_h0dc7533_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-hd2095e1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-openmp_h156ec52_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-7.35.1-h622638d_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.13.17-hd51c5da_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.14.1-cpu_generic_hbc98363_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.52.1-h280c20c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-23.1.4-h7148c6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py313h2af15c8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.4.0-ha2cb11d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.4-py313hb5f73ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/onednn-3.14-omp_h64ed1e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/optree-0.20.0-py313h6bdb861_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.17-hf47f18c_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.14.1-cpu_generic_py313_h2672511_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-cpu-2.14.1-cpu_generic_h6ea6555_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/sleef-3.9.0-ha0421bc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.17-py313hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-4.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.7-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.4-pyh293190f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-11-hc364b38_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-global-3.0.4-pyh648e204_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-9_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/scikit-build-core-1.1.1-pyhcb39dcd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sympy-1.14.0-pyh2585a3b_106.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - pypi: ../sequince + - pypi: ../sequince-density + - pypi: https://files.pythonhosted.org/packages/07/ef/9b77fc80fc9bf28978d5649a3c71c0e77efe9e1966e5f608e7c3d5ba86b4/acai_control-0.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/18/53/84099323c2ec4be98d935f63c033ac4151ee83836ca1050ede3b3aadf155/joblib-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1b/52/859ec72a8a22d616307a933de7edbb9a14b004873a7ac3d830f29dc96880/array_api_extra-0.11.5-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/cf/83c3377e7018ee3c455153d9560c6a972b0a407075868f5e58979fc640a2/minipcn-0.3.0a1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/23/e5/688703d357e5393f708d98eb189fd415ae69e39f6de03c6bd4005aef6118/scikit_learn-1.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/26/be/fc2924aa70b08fc7ce2555c290cddea18bf9b03695a681a54453cd66f5b4/aspire_inference-0.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/37/62/20edad100b93552ec5c172e509a9db898a73d5043ae701fcb6e9986f9d33/wrapt-2.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/41/48/6450ed9243315322bbc19ac57b9b70d66a20bf1d38d124c96bc4bf6af9ea/scipy-1.18.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/5a/17/cebee01d1c0c1441174cf0456ddc91b280d79acb65340c05e41d77866ee8/python_dateutil-3.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/68/77/8f93ecbde1a4d11dfd460cd19a0c159f5487352e751fa87f5d78cc9db08e/contourpy-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/76/3e/0fa5690a3a8303d821a46fd35691b1b6f8a9c06b97b41847ca41aed72e90/orng-0.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/95/10/ff159867f522cd98e039e748c5e9777446e8b797a79be691c6b730676094/zuko-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a8/26/939ae9874dd44116f2ecf61cb0caf029e3004ec1ed311a86389dee3450be/fonttools-4.67.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/a9/df/e7c10292f348cf55178a5b3c0092a38ea68891a3945f199ae8b7b8ac9dc1/matplotlib-3.11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/ab/43/86aacc027959108b4c66eeae8b73cedb057dfa6eb3a335d05ad65197081c/kiwisolver-1.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/bd/98/ef2b6fe2903e377cbe870c3b2800d62552f1e3dbe81ce49e1923c53d1c5c/h5py-3.16.0-cp313-cp313-manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d6/cb/17a130e548ee1777f2a66e09240c531a9bf79454add7ef1198fe1e41c412/corner-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ef/fe/f5cdaa2d1c4086e757430f368c271a58ee29cfe7378e7ae7b9d964015c25/pillow-13.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.17-py313hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-4.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.7-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.4-pyh293190f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-11-hc364b38_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-global-3.0.4-pyh648e204_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-9_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/scikit-build-core-1.1.1-pyhcb39dcd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sympy-1.14.0-pyh2585a3b_106.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-8_kmp_llvm.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h4e30115_10.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-12.1.0-h99e4e11_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-hf5e55b1_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmpy2-2.3.2-py313h0091f1d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20260526.0-cxx17_h4c27e2a_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-11_h51639a9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-11_hb0561ab_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.4-h55c6f16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.5-h6111c0a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.7.0-h47dc5ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-16.2.0-h3cf6597_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-16.2.0-h07b0088_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-16.2.0-hdb7a957_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-11_hd9741b5_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.34-openmp_h5e6e99c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-7.35.1-h391e224_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpython-3.13.17-h0af5753_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtorch-2.14.1-cpu_generic_h8539c7d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.52.1-h1a92334_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-23.1.4-hdb3d66b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.4-py313h996ddf1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpc-1.4.0-h071a35a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.2-h72846b0_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-he64c551_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.5.4-py313h24c19cf_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/onednn-3.14-omp_hf8bcd58_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/optree-0.20.0-py313h5c89e09_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.17-hb59dee6_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-2.14.1-cpu_generic_py313_hf1850e0_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-cpu-2.14.1-cpu_generic_hcc7c195_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h8b90a29_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sleef-3.9.0-hb028509_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda + - pypi: ../sequince + - pypi: ../sequince-density + - pypi: https://files.pythonhosted.org/packages/01/b9/41642877fe741db56d240833c8822188b663c4c5d52beb087964774035d4/wrapt-2.5.1-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/07/ef/9b77fc80fc9bf28978d5649a3c71c0e77efe9e1966e5f608e7c3d5ba86b4/acai_control-0.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/18/53/84099323c2ec4be98d935f63c033ac4151ee83836ca1050ede3b3aadf155/joblib-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1b/52/859ec72a8a22d616307a933de7edbb9a14b004873a7ac3d830f29dc96880/array_api_extra-0.11.5-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/1e/cf/83c3377e7018ee3c455153d9560c6a972b0a407075868f5e58979fc640a2/minipcn-0.3.0a1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/26/be/fc2924aa70b08fc7ce2555c290cddea18bf9b03695a681a54453cd66f5b4/aspire_inference-0.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/2a/f5/769f36d14922b8071a43e95d24d18b6bdafad10d7f5cf647867e1ac052bc/scipy-1.18.1-cp313-cp313-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/2f/81/3c6392c03665d2899457a76e535a9a6f597dddddf3220fd2e1d790da88c5/scikit_learn-1.9.1-cp313-cp313-macosx_12_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/30/b4/cd473e0a48427003733e92bc3e8077081ba537eb33f7c658f2b7bef63776/fonttools-4.67.0-cp313-cp313-macosx_10_13_universal2.whl + - pypi: https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/3f/2f/103cdc5b7077cd569989d3ddb99ee3d4e96ee31bde8df2a6e426b2dc6195/contourpy-1.4.0-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/47/8b/40d33ffd2f378094ed462e9a9a0907e59d4de9845e65a59561272da350d4/kiwisolver-1.5.1-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/5a/17/cebee01d1c0c1441174cf0456ddc91b280d79acb65340c05e41d77866ee8/python_dateutil-3.0.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/76/3e/0fa5690a3a8303d821a46fd35691b1b6f8a9c06b97b41847ca41aed72e90/orng-0.2.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/95/10/ff159867f522cd98e039e748c5e9777446e8b797a79be691c6b730676094/zuko-1.6.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/98/c8/ccede3dcc4f274b80fb49199eed1ef34ba05566c8b71976b9d1f111da2e3/pillow-13.0.0-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/a9/29/2a47b700545aca050e0ed73c89ba21e08407e11f5f42a567421b220de6c1/matplotlib-3.11.2-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/b0/65/5e088a45d0f43cd814bc5bec521c051d42005a472e804b1a36c48dada09b/h5py-3.16.0-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/d6/cb/17a130e548ee1777f2a66e09240c531a9bf79454add7ef1198fe1e41c412/corner-2.3.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl check: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -796,6 +997,27 @@ packages: - libabseil =*=cxx17* size: 1440678 timestamp: 1791681043356 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda + build_number: 11 + sha256: d942e0c820d60a613a6f786d074f0820fb6343e3f1ccfb110b1d98b44fb75968 + md5: b8cce1486f3c62f33291d6318c193d0d + depends: + - libopenblas >=0.3.34,<0.3.35.0a0 + - libopenblas >=0.3.34,<1.0a0 + constrains: + - blas 2.311 openblas + - libcblas 3.11.0 11*_openblas + - liblapack 3.11.0 11*_openblas + - liblapacke 3.11.0 11*_openblas + - mkl <2027 + license: BSD-3-Clause + license_family: BSD + purls: [] + run_exports: + weak: + - libblas >=3.11.0,<4.0a0 + size: 18246 + timestamp: 1789061062982 - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h5875eb1_mkl.conda build_number: 11 sha256: 3b9862430914d13ae264398340117f80b85720de308f6a80ad463588abe10358 @@ -818,6 +1040,24 @@ packages: - libblas >=3.11.0,<4.0a0 size: 18622 timestamp: 1789061051585 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda + build_number: 11 + sha256: f7d1bbdea61cf94ba219d17b2cb571a29830f8025385af799bff5a7ad1ef45e6 + md5: 73a248c30811075059b5aeda766c2624 + depends: + - libblas 3.11.0 11_h4a7cf45_openblas + constrains: + - blas 2.311 openblas + - liblapack 3.11.0 11*_openblas + - liblapacke 3.11.0 11*_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + run_exports: + weak: + - libcblas >=3.11.0,<4.0a0 + size: 18196 + timestamp: 1789061068819 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_hfef963f_mkl.conda build_number: 11 sha256: 6ebc9042e96050ddb4d57b666415677164561b8229905c52e6f84defbc884b0f @@ -881,6 +1121,33 @@ packages: run_exports: {} size: 1058444 timestamp: 1790303109576 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda + sha256: 9682ae4dd11487e10b904b3cb3ab6379cad25233d45fdfdf90d54349df244494 + md5: 3a8d285f5f22138ef826ad54cf267e73 + depends: + - libgfortran5 16.2.0 h6b99dfc_7 + constrains: + - libgfortran-ng ==16.2.0=*_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + run_exports: {} + size: 28571 + timestamp: 1790303139904 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda + sha256: 04dbab12c925b92977bb835dd2f5eda413607afa79f95a554e5a04b07a380322 + md5: 7719ed7be38ad8c492c4bd5cc2bce0c4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=16.2.0 + constrains: + - libgfortran 16.2.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + run_exports: {} + size: 2528180 + timestamp: 1790303122004 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.conda sha256: 92a0bb350c7be6a4eedcb4e111c60aefd176018e6b1c009a6e025dbe9bbcd758 md5: d904c7ddd95e026254b4b80808ee9e12 @@ -924,6 +1191,24 @@ packages: - libiconv >=1.18,<2.0a0 size: 789471 timestamp: 1787033836207 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda + build_number: 11 + sha256: 1ad3f43c9319ef398a8ef45989f4903a06e3965b51e77fc669a4c894168a8411 + md5: 5622a13917855ce4b953b9e655cf9262 + depends: + - libblas 3.11.0 11_h4a7cf45_openblas + constrains: + - blas 2.311 openblas + - libcblas 3.11.0 11*_openblas + - liblapacke 3.11.0 11*_openblas + license: BSD-3-Clause + license_family: BSD + purls: [] + run_exports: + weak: + - liblapack >=3.11.0,<3.12.0a0 + size: 18227 + timestamp: 1789061073957 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h5e43f62_mkl.conda build_number: 11 sha256: 7b80fc195419463533262b9d327c75559dd820251902e3fa41cce02a3b23bb5b @@ -971,6 +1256,29 @@ packages: run_exports: {} size: 92759 timestamp: 1786650399772 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-openmp_h156ec52_2.conda + sha256: dbcd501070d124ee7e02740e5483e2e83158ab4a0cabfc65fb4253e0168ff428 + md5: 85d0ace74af50f6eea7010679eacb59a + depends: + - __glibc >=2.17,<3.0.a0 + - llvm-openmp >=23.1.1 + - _openmp_mutex >=4.5 + - _openmp_mutex * *_llvm + - libgcc >=15 + - libgfortran5 >=15.3.0 + - libgfortran + constrains: + - openblas >=0.3.34,<0.3.35.0a0 + track_features: + - libopenblas-p-0 + license: BSD-3-Clause + license_family: BSD + purls: [] + run_exports: + weak: + - libopenblas >=0.3.34,<1.0a0 + size: 6856873 + timestamp: 1789141495971 - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-7.35.1-h622638d_3.conda sha256: 37c51fbc936a6bb8bf5f67c8f056edacaaa41e8603738bc8a4dee186292bb114 md5: fd307b61cceb36fdca38e1718bdb2893 @@ -1018,6 +1326,20 @@ packages: - libpython >=3.13,<4.0a0 size: 9718885 timestamp: 1791334276485 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.13.17-hd51c5da_100_cp313.conda + build_number: 100 + sha256: 1082a74cc4f10613f258d4f00d8d80d3aac288039b88718d18e3bd5bede5f514 + md5: e67509e13ba01c938274503c0089c63f + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: Python-2.0 + purls: [] + run_exports: + weak: + - libpython >=3.13,<4.0a0 + size: 9726632 + timestamp: 1792665439303 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.0-h0737f62_101.conda sha256: b4d5d4428bd1931eede11d2d69389c5b9d396a7f3c8df9d7c39c9efd80761eb3 md5: a8b899d3c5fc1034b209045653b86ed2 @@ -1034,6 +1356,22 @@ packages: - libsqlite >=3.54.0,<4.0a0 size: 979215 timestamp: 1791584361438 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_100.conda + sha256: 107ba2f9134b45a6fdaf8d2485f432e3a643fdfaf711a325d0c9139b580b3523 + md5: 5fdfd335c3d653e41c1eea1353d827d0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + constrains: + - icu <0.0a0 + license: blessing + purls: [] + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 980418 + timestamp: 1792175610911 - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda sha256: fa7018298629fc429971fffd6ecba3d27a7b02e4e890d6a93ea01ffebe8cb745 md5: 9b6707e0caca917fa6ea9ee473f37a5d @@ -1048,6 +1386,42 @@ packages: run_exports: {} size: 6615436 timestamp: 1790303132935 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.14.1-cpu_generic_hbc98363_0.conda + sha256: d9e080c47f402a25b9d0aa8b1254a39d6f321d2d169b4be30812d592886a33d2 + md5: 787955daba1e027f076c56a7981a770e + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex * *_llvm + - _openmp_mutex >=4.5 + - fmt >=12.1.0,<12.2.0a0 + - libabseil * cxx17* + - libabseil >=20260526.0,<20260527.0a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=15 + - liblapack >=3.9.0,<4.0a0 + - libprotobuf >=7.35.1,<7.35.2.0a0 + - libstdcxx >=15 + - libuv >=1.52.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - llvm-openmp >=23.1.3 + - onednn >=3.13.4,<4.0a0 + - pybind11-abi 11 + - sleef >=3.9.0,<4.0a0 + constrains: + - libopenblas * openmp_* + - openblas * openmp_* + - pytorch 2.14.1 cpu_generic_*_0 + - pytorch-cpu 2.14.1 + - pytorch-gpu <0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + run_exports: + weak: + - libtorch >=2.14.1,<2.15.0a0 + size: 62384694 + timestamp: 1791586369723 - conda: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.14.1-cpu_mkl_hc3c961d_100.conda sha256: 771a151465e667c6165eace7d61f1eee94c1bb9cbeceaeca55bf14450ef511aa md5: 0d4407c5f1fcbf718363cd1b0579d25d @@ -1181,6 +1555,24 @@ packages: - _openmp_mutex * *_llvm size: 6121536 timestamp: 1791950734069 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-23.1.4-h7148c6a_0.conda + sha256: 7de1204abbcf20aa8cb62c8a1385177ded2b7ca536b79c409866e46f30b0242f + md5: ad441557f951f09d7e4c79731a6a34dc + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - intel-openmp <0.0a0 + - openmp 23.1.4|23.1.4.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + run_exports: + strong: + - llvm-openmp >=23.1.4 + - _openmp_mutex >=4.5 + - _openmp_mutex * *_llvm + size: 6130038 + timestamp: 1792567140233 - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py313h2af15c8_1.conda sha256: 74e611bb15ffe1065c14e9007a6f04f15a53f350524c3cd1d033620ef9c3c035 md5: d15255d7f81d9188edecde1e024a1649 @@ -1297,6 +1689,21 @@ packages: - onednn >=3.13.4,<4.0a0 size: 13798149 timestamp: 1791401101750 +- conda: https://conda.anaconda.org/conda-forge/linux-64/onednn-3.14-omp_h64ed1e9_0.conda + sha256: 8754b6df6700a2c8be192eb954ca29e0f8c874d8349e1fe62b363713f9dfacb4 + md5: c19ba3abba3d276c689e038b7218b009 + depends: + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.28,<3.0.a0 + license: Apache-2.0 + license_family: APACHE + purls: [] + run_exports: + weak: + - onednn >=3.14,<4.0a0 + size: 11397614 + timestamp: 1792776750101 - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda sha256: 9c1533f1cf784f0e250919c0c9762d0b0e6bc727a79290ffb7cea1ceca1d038c md5: 5a51a2ea653f120240b1a9bf76e0aae9 @@ -1395,6 +1802,88 @@ packages: size: 24298220 timestamp: 1791911488431 python_site_packages_path: lib/python3.13/site-packages +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.17-hf47f18c_100_cp313.conda + build_number: 100 + sha256: 689f8815b3af58be7b62cbf900bc1612efbde24763b470e01c292b06cbe2c6b2 + md5: 30b143cde9b0c30caa27ac3ea71ef837 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libgcc >=15 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libpython 3.13.17 hd51c5da_100_cp313 + - libsqlite >=3.54.1,<4.0a0 + - libuuid >=2.42.4,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + license: Python-2.0 + purls: [] + run_exports: + weak: + - python_abi 3.13.* *_cp313 + noarch: + - python + size: 24443038 + timestamp: 1792665475941 + python_site_packages_path: lib/python3.13/site-packages +- conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.14.1-cpu_generic_py313_h2672511_0.conda + sha256: 66452c0e34646f94a3b63559dc0bab8b21f2f08c3aa9d76b1c4f40a6618d5a86 + md5: 5690fc0503ba82d72d857631893693fa + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex * *_llvm + - _openmp_mutex >=4.5 + - filelock + - fmt >=12.1.0,<12.2.0a0 + - fsspec >=0.8.5 + - jinja2 + - libabseil * cxx17* + - libabseil >=20260526.0,<20260527.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=15 + - liblapack >=3.9.0,<4.0a0 + - libprotobuf >=7.35.1,<7.35.2.0a0 + - libstdcxx >=15 + - libtorch 2.14.1 cpu_generic_hbc98363_0 + - libuv >=1.52.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - llvm-openmp >=23.1.3 + - networkx >=2.5.1 + - nomkl + - numpy >=1.25,<3 + - onednn >=3.13.4,<4.0a0 + - optree >=0.13.0 + - pybind11 + - pybind11-abi 11 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + - scikit-build-core + - setuptools >=77.0.3 + - sleef >=3.9.0,<4.0a0 + - sympy >=1.13.3 + - typing_extensions >=4.13.0 + constrains: + - pytorch-cpu 2.14.1 + - pytorch-gpu <0.0a0 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/torch?source=hash-mapping + run_exports: + weak: + - pytorch >=2.14.1,<2.15.0a0 + - libtorch >=2.14.1,<2.15.0a0 + size: 29264712 + timestamp: 1791587979606 - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.14.1-cpu_mkl_py313_h7b4a8e5_100.conda sha256: 154b2357b04753651586dac84fe2cdb673eb26aacf1c72d3eaa20620c2549cce md5: 29ab64128c75eac81d31e6f35eab85ca @@ -1444,6 +1933,17 @@ packages: - libtorch >=2.14.1,<2.15.0a0 size: 29275859 timestamp: 1791586803158 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-cpu-2.14.1-cpu_generic_h6ea6555_0.conda + sha256: 972676e21636cc4dfb1023d27faaad96cb9524ae52dd761a6aab5ddc51388002 + md5: c21fb3c5f8c142abba2dc102b133b0aa + depends: + - pytorch 2.14.1 cpu_generic*0 + license: BSD-3-Clause + license_family: BSD + purls: [] + run_exports: {} + size: 56194 + timestamp: 1791588415255 - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-cpu-2.14.1-cpu_mkl_hd61e0f4_100.conda sha256: c8a8b42cd076c41a7547c96ec9af52bb9d46f03465d83328913658ab57ab58d5 md5: e3d9aa9875bf8cfc0a0f4eb6141d35f4 @@ -1644,6 +2144,16 @@ packages: run_exports: {} size: 92704 timestamp: 1780853175566 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + sha256: 95619b9c1184be7175392eeb0ee7eeb5ccf25d280951f4225f2d62e725790be3 + md5: 3fd02989038a1e1cee627c14c2d73f29 + depends: + - __unix + license: ISC + purls: [] + run_exports: {} + size: 130057 + timestamp: 1792772446739 - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 md5: 0f51e2391ade309db462a55611263e9c @@ -1690,6 +2200,8 @@ packages: - python >=3.9 license: BSD-3-Clause license_family: BSD + purls: + - pkg:pypi/colorama?source=hash-mapping run_exports: {} size: 27011 timestamp: 1733218222191 @@ -1716,6 +2228,18 @@ packages: run_exports: {} size: 49980 timestamp: 1791910441528 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.17-py313hd8ed1ab_100.conda + noarch: generic + sha256: 9875f74d43bc2d30ca88be8d13c8ab70f6ebe493e7522c3d45af6b6da7f34881 + md5: 32554a8e5301bd5b7de7fe38c4eb90b2 + depends: + - python >=3.13,<3.14.0a0 + - python_abi * *_cp313 + license: Python-2.0 + purls: [] + run_exports: {} + size: 49877 + timestamp: 1792664071681 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.3-pyhcf101f3_0.conda sha256: e2753997b8bd34205f42be01b8bab8037423dc30c02a1ec12de23e5b4c0b0a2e md5: 58638f77697c4f6726753eb8be34818b @@ -1760,6 +2284,18 @@ packages: run_exports: {} size: 102017 timestamp: 1791739638282 +- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-4.2.4-pyhd8ed1ab_0.conda + sha256: 47200ebb93b65cb56fe57cb2932d8c80df5e7b7f1e74bedda13a54f305d7ad28 + md5: 03e85ad6d6c66102781d3684fbdbcd6e + depends: + - python >=3.11 + license: MIT + license_family: MIT + purls: + - pkg:pypi/filelock?source=compressed-mapping + run_exports: {} + size: 123546 + timestamp: 1792380881214 - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.9.0-pyhd8ed1ab_0.conda sha256: 7d17272012e7479ba58f8a72b522d3e88e6837a04a111a278ff417aa82364255 md5: 42de5cd170647599a84f468a42fabb89 @@ -1844,6 +2380,8 @@ packages: - python >=3.11 license: MIT license_family: MIT + purls: + - pkg:pypi/iniconfig?source=compressed-mapping run_exports: {} size: 14485 timestamp: 1791588553866 @@ -1960,6 +2498,19 @@ packages: run_exports: {} size: 25877 timestamp: 1764896838868 +- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + sha256: 34c40106bc3172b3a47656e84837e13a5d4829d413d65f30fb214e7568a09cea + md5: 50c6bcd41b7ceaaeeea8852e3198663e + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/pluggy?source=compressed-mapping + run_exports: {} + size: 30111 + timestamp: 1792063298993 - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.6.2-pyha770c72_0.conda sha256: fc0a0620a8f829c46787a9a13ddbae8b6049f2e77da353a8a2adaa01af0da7e2 md5: c36b88db560b4e74f294380613f1a239 @@ -2055,6 +2606,8 @@ packages: - python license: BSD-2-Clause license_family: BSD + purls: + - pkg:pypi/pygments?source=compressed-mapping run_exports: {} size: 959376 timestamp: 1786995678795 @@ -2086,6 +2639,8 @@ packages: - pytest-faulthandler >=2 license: MIT license_family: MIT + purls: + - pkg:pypi/pytest?source=hash-mapping run_exports: {} size: 306724 timestamp: 1782127176429 @@ -2189,6 +2744,18 @@ packages: run_exports: {} size: 524488 timestamp: 1786282924579 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda + sha256: 17add609d1a31c874e39a03935072be59bcafb06d42383eceabea746d12e6025 + md5: d41f95b8f1553165b2cc2f37162dac9c + depends: + - python >=3.11 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=compressed-mapping + run_exports: {} + size: 567436 + timestamp: 1792571495729 - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.1.1-pyhd8ed1ab_0.conda sha256: ad89284ea94821c20ff87e64b948e4afc690cf5202d14c009355b0594cf23aea md5: 46b6abe31482f6bca064b965696ae807 @@ -2374,6 +2941,14 @@ packages: run_exports: {} size: 118849 timestamp: 1784250406640 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + sha256: 2b7ca858879f183ce2dcc65b300f48a0133d5430550f35b23d80d405a0788dbf + md5: abccc3810d2b97e570dee487f2b46e38 + license: LicenseRef-Public-Domain + purls: [] + run_exports: {} + size: 119208 + timestamp: 1792758382821 - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda sha256: c5511c190ab55168ca412f3c54592fbf677ae6250784cb72b227a7cf3f538f7d md5: 407a3d3778570bae8e8fcf554e803e43 @@ -2584,6 +3159,17 @@ packages: run_exports: {} size: 577501 timestamp: 1791337239735 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.4-h55c6f16_2.conda + sha256: 9c390b4f403db32346754ccef6b84b7e5d9b70cb6d76258fd23b05f2db2ab216 + md5: 08f01709cd5f8fd7af2c29e4e3ce1846 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + run_exports: {} + size: 577255 + timestamp: 1792748855178 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.5-h6111c0a_0.conda sha256: 50aa761b83fc7a116ca88fe0cb4cefce5abababb10a926bf8afbafd5c298d102 md5: 5383c550b785bdaafcc4eaf638071a7c @@ -2748,14 +3334,27 @@ packages: md5: bd71eafbdb134f540ae4aacd52ecf977 depends: - __osx >=11.0 - - libcxx >=21 + - libcxx >=21 + license: Python-2.0 + purls: [] + run_exports: + weak: + - libpython >=3.13,<4.0a0 + size: 1816892 + timestamp: 1791332817737 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpython-3.13.17-h0af5753_100_cp313.conda + build_number: 100 + sha256: 718bf1a5e1c412d5cc922d1993509e1be448bee444c00608529a95c0d5d5513d + md5: 7423afe94a754c1b379b81276edd1fbe + depends: + - __osx >=11.0 license: Python-2.0 purls: [] run_exports: weak: - libpython >=3.13,<4.0a0 - size: 1816892 - timestamp: 1791332817737 + size: 1818624 + timestamp: 1792664278397 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.0-h34a968b_101.conda sha256: 7f0f2e4ca2eb6e5059d9593ffe88088debe453b146e2794641d94242b901d85c md5: 42b7a7607b4c9838cc2e72a232af6809 @@ -2771,6 +3370,21 @@ packages: - libsqlite >=3.54.0,<4.0a0 size: 949146 timestamp: 1791584347793 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_100.conda + sha256: ed4bbcbd181a8491245c8120609ea288056c8f90db4f8e18b397066ce2a58ec7 + md5: eb7c3006eba21a8ebc3466dedd542919 + depends: + - __osx >=11.0 + - libzlib >=1.3.2,<2.0a0 + constrains: + - icu <0.0a0 + license: blessing + purls: [] + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 949104 + timestamp: 1792175609612 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtorch-2.14.1-cpu_generic_h8539c7d_0.conda sha256: 611136e49805a77e6c37888a9f9615b9649bff7344adfc4b25df84628b128e4f md5: 5e8ed7a3ce0988cb2730c298c8f16435 @@ -2847,6 +3461,22 @@ packages: - llvm-openmp >=23.1.3 size: 287944 timestamp: 1791950643503 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-23.1.4-hdb3d66b_0.conda + sha256: cc6d67df56d4ea967e17d938d3108cdf7d971531350df9e7fc5e18cb89066a70 + md5: 9a6ec2a53da5d75951b88c51018c27fa + depends: + - __osx >=11.0 + constrains: + - intel-openmp <0.0a0 + - openmp 23.1.4|23.1.4.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + run_exports: + strong: + - llvm-openmp >=23.1.4 + size: 287495 + timestamp: 1792567065537 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.4-py313h996ddf1_1.conda sha256: 9d47cb555572c552de411bb6d140a19cf6fee173dbc712aef4d3a1e36e028363 md5: cf0b179746e4ff1ddf1440355d5f3914 @@ -2941,6 +3571,21 @@ packages: - onednn >=3.13.4,<4.0a0 size: 5498840 timestamp: 1791401174841 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/onednn-3.14-omp_hf8bcd58_0.conda + sha256: 5380c7a8be4dec6cb5fc69276f7e1cc5fd388cfc53b922ee2e5d732f1835738c + md5: dff832d5b1bcc2743655cf935c355372 + depends: + - __osx >=11.0 + - llvm-openmp >=21.1.8 + - libcxx >=21 + license: Apache-2.0 + license_family: APACHE + purls: [] + run_exports: + weak: + - onednn >=3.14,<4.0a0 + size: 6959158 + timestamp: 1792776768907 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda sha256: 44fbc526456571a9fb8fa18157f6f269d4d4bd40eef20183a93b9c9296f94497 md5: 45d9179cdf6e53d88aec034246f0dad6 @@ -3032,6 +3677,36 @@ packages: size: 11933817 timestamp: 1791910728707 python_site_packages_path: lib/python3.13/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.17-hb59dee6_100_cp313.conda + build_number: 100 + sha256: c8fe3a29f397c578eff05ad25d42dc0e92220972ddf784a9278a4d514da70746 + md5: e53c1ad20c5a73235597c851e4cb376f + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libpython 3.13.17 h0af5753_100_cp313 + - libsqlite >=3.54.1,<4.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.3,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + license: Python-2.0 + purls: [] + run_exports: + weak: + - python_abi 3.13.* *_cp313 + noarch: + - python + size: 11954525 + timestamp: 1792664307240 + python_site_packages_path: lib/python3.13/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-2.14.1-cpu_generic_py313_hf1850e0_0.conda sha256: 0ae47b5ea2a73cd5f32cdb7ff068fa6a1be1ad45fc9cb9623c1fd1ce507793df md5: e4e25350ef3367708d502085bf19c7ae @@ -3198,6 +3873,42 @@ packages: - zstd >=1.5.7,<1.6.0a0 size: 433687 timestamp: 1786599629846 +- pypi: ../sequince + name: sequince + requires_dist: + - acai-control>=0.1.0 + - scipy>=1.16 + - matplotlib>=3.5 + - numpy>=1.25.2 + - minipcn>=0.3.0a1 + - array-api-compat>=1.13 + - array-api-extra>=0.10 + - optree>=0.19 + - orng>=0.2.1 + - jax>0.5.3 ; extra == 'jax' + - jaxlib ; extra == 'jax' + - blackjax>=1.2 ; extra == 'blackjax' + - emcee>=3.0 ; extra == 'emcee' + - eryn>=1.2.6 ; extra == 'eryn' + - numpy<2.4 ; extra == 'eryn' + - corner ; extra == 'corner' + - h5py>=3 ; extra == 'hdf5' + requires_python: '>=3.11' +- pypi: ../sequince-density + name: sequince-density + requires_dist: + - array-api-compat>=1.5 + - numpy>=1.25.2 + - orng>=0.2.0a2 + - sequince + - scikit-learn>=1.4 ; extra == 'gmm' + - torch>=2 ; extra == 'zuko' + - zuko>=1.6 ; extra == 'zuko' + - jax>0.5.3 ; extra == 'flowjax' + - flowjax ; extra == 'flowjax' + - equinox ; extra == 'flowjax' + - h5py>=3 ; extra == 'flowjax' + requires_python: '>=3.11' - pypi: git+https://github.com/sequince-dev/sequince-density.git?branch=main#9c57f37db95d702eb75fc8f53d5f656db0ac7de0 name: sequince-density version: 0.1.dev32+g9c57f37db @@ -3214,6 +3925,14 @@ packages: - equinox ; extra == 'flowjax' - h5py>=3 ; extra == 'flowjax' requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/01/b9/41642877fe741db56d240833c8822188b663c4c5d52beb087964774035d4/wrapt-2.5.1-cp313-cp313-macosx_11_0_arm64.whl + name: wrapt + version: 2.5.1 + sha256: ab6db7d2a18d366cc57c2228253cf26443190aba0a6dd0939b3c1e8ac6e29e2c + requires_dist: + - pytest ; extra == 'dev' + - setuptools ; extra == 'dev' + requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/07/ef/9b77fc80fc9bf28978d5649a3c71c0e77efe9e1966e5f608e7c3d5ba86b4/acai_control-0.1.0-py3-none-any.whl name: acai-control version: 0.1.0 @@ -3253,6 +3972,43 @@ packages: - trove-classifiers>=2024.10.12 ; extra == 'tests' - defusedxml ; extra == 'xmp' requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/18/53/84099323c2ec4be98d935f63c033ac4151ee83836ca1050ede3b3aadf155/joblib-1.6.0-py3-none-any.whl + name: joblib + version: 1.6.0 + sha256: 3dbbf9f6e4b592a2357b854608e980fe6390d131d7a82f011a377ef2ebef7aba + requires_dist: + - cloudpickle>=3.0 + - distributed ; extra == 'test' + - lz4 ; extra == 'test' + - numpy ; extra == 'test' + - memory-profiler ; extra == 'test' + - pytest ; extra == 'test' + - pytest-asyncio ; extra == 'test' + - pytest-cov ; extra == 'test' + - pytest-run-parallel ; extra == 'test' + - pytest-timeout ; extra == 'test' + - threadpoolctl ; extra == 'test' + - distributed ; extra == 'docs' + - lz4 ; extra == 'docs' + - numpy ; extra == 'docs' + - numpydoc ; extra == 'docs' + - matplotlib ; extra == 'docs' + - pandas ; extra == 'docs' + - psutil ; extra == 'docs' + - sphinx ; extra == 'docs' + - pydata-sphinx-theme ; extra == 'docs' + - sphinx-gallery ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-design ; extra == 'docs' + - tqdm ; extra == 'docs' + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/1b/52/859ec72a8a22d616307a933de7edbb9a14b004873a7ac3d830f29dc96880/array_api_extra-0.11.5-py3-none-any.whl + name: array-api-extra + version: 0.11.5 + sha256: 872814852b992595ee84ed1356bebb74c6c1b12b6c1546f0169cc4b5ceb59b60 + requires_dist: + - array-api-compat>=1.15.0,<2 + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/1e/cf/83c3377e7018ee3c455153d9560c6a972b0a407075868f5e58979fc640a2/minipcn-0.3.0a1-py3-none-any.whl name: minipcn version: 0.3.0a1 @@ -3274,6 +4030,17 @@ packages: version: 3.4.0 sha256: 69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/23/e5/688703d357e5393f708d98eb189fd415ae69e39f6de03c6bd4005aef6118/scikit_learn-1.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + name: scikit-learn + version: 1.9.1 + sha256: 55e79d6e9b0923f1a978179822bd43d7f5543f45e970a00fe861f43486380aba + requires_dist: + - numpy>=1.24.1 + - scipy>=1.10.0 + - joblib>=1.4.0 + - narwhals>=2.0.1 + - threadpoolctl>=3.5.0 + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/24/ec/014b428c3a05837643768d08aeb8fb1289d119d3f9f6fba479dffae05dbc/jaxlib-0.11.2-cp313-cp313-manylinux_2_27_x86_64.whl name: jaxlib version: 0.11.2 @@ -3283,6 +4050,36 @@ packages: - numpy>=2.0 - ml-dtypes>=0.5.0 requires_python: '>=3.12' +- pypi: https://files.pythonhosted.org/packages/26/be/fc2924aa70b08fc7ce2555c290cddea18bf9b03695a681a54453cd66f5b4/aspire_inference-0.1.0-py3-none-any.whl + name: aspire-inference + version: 0.1.0 + sha256: c7fd738d423b5eef8000de0f8fe41ff459ff0dd926333aeb1182adbe1eb2ea11 + requires_dist: + - matplotlib + - numpy + - array-api-compat + - array-api-extra + - wrapt + - h5py + - orng + - scipy ; extra == 'scipy' + - jax ; extra == 'jax' + - jaxlib<0.8.2 ; python_full_version < '3.12' and extra == 'jax' + - jaxlib ; python_full_version >= '3.12' and extra == 'jax' + - flowjax ; extra == 'jax' + - torch ; extra == 'torch' + - zuko ; extra == 'torch' + - tqdm ; extra == 'torch' + - minipcn[array-api]>=0.2.0a3 ; extra == 'minipcn' + - emcee ; extra == 'emcee' + - blackjax ; extra == 'blackjax' + - fastprogress<1.1.0 ; extra == 'blackjax' + - pytest ; extra == 'test' + - pytest-requires ; extra == 'test' + - pytest-cov ; extra == 'test' + - corner ; extra == 'corner' + - pandas ; extra == 'pandas' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/2a/f5/769f36d14922b8071a43e95d24d18b6bdafad10d7f5cf647867e1ac052bc/scipy-1.18.1-cp313-cp313-macosx_12_0_arm64.whl name: scipy version: 1.18.1 @@ -3329,6 +4126,59 @@ packages: - ruff>=0.12.0 ; extra == 'dev' - cython-lint>=0.12.2 ; extra == 'dev' requires_python: '>=3.12' +- pypi: https://files.pythonhosted.org/packages/2f/81/3c6392c03665d2899457a76e535a9a6f597dddddf3220fd2e1d790da88c5/scikit_learn-1.9.1-cp313-cp313-macosx_12_0_arm64.whl + name: scikit-learn + version: 1.9.1 + sha256: 61cd968ab831a76d0ecbaf0347ab2270268716da28f94fd022497e3d6f205f13 + requires_dist: + - numpy>=1.24.1 + - scipy>=1.10.0 + - joblib>=1.4.0 + - narwhals>=2.0.1 + - threadpoolctl>=3.5.0 + requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/30/b4/cd473e0a48427003733e92bc3e8077081ba537eb33f7c658f2b7bef63776/fonttools-4.67.0-cp313-cp313-macosx_10_13_universal2.whl + name: fonttools + version: 4.67.0 + sha256: 8239e2ca24878715a19f061d065b5721e87da81d145e48b3418f771a469b5a24 + requires_dist: + - lxml>=4.0 ; extra == 'lxml' + - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - zopfli>=0.1.4 ; extra == 'woff' + - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'unicode' + - lz4>=1.7.4.2 ; extra == 'graphite' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - pycairo ; extra == 'interpolatable' + - matplotlib ; extra == 'plot' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - skia-pathops>=0.5.0 ; extra == 'pathops' + - uharfbuzz>=0.45.0 ; extra == 'repacker' + - lxml>=4.0 ; extra == 'all' + - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - zopfli>=0.1.4 ; extra == 'all' + - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'all' + - lz4>=1.7.4.2 ; extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - skia-pathops>=0.5.0 ; extra == 'all' + - uharfbuzz>=0.45.0 ; extra == 'all' + requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/37/62/20edad100b93552ec5c172e509a9db898a73d5043ae701fcb6e9986f9d33/wrapt-2.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl + name: wrapt + version: 2.5.1 + sha256: f1630201b0e2a96bb26304b7adfbd91a4ef486abb5a4c48377444a0bed749f37 + requires_dist: + - pytest ; extra == 'dev' + - setuptools ; extra == 'dev' + requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl name: pyparsing version: 3.3.3 @@ -3410,6 +4260,11 @@ packages: - ruff>=0.12.0 ; extra == 'dev' - cython-lint>=0.12.2 ; extra == 'dev' requires_python: '>=3.12' +- pypi: https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl + name: threadpoolctl + version: 3.7.0 + sha256: cd8b60b5641b45c67bbf73c64c843235fc2d8a480c87389f52f5dbee893b86be + requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/47/7f/f0d33a414e2d84fca39438a30f0588c32f7365746e903293cadad9d52b0d/jaxlib-0.11.2-cp313-cp313-macosx_11_0_arm64.whl name: jaxlib version: 0.11.2 @@ -3477,6 +4332,14 @@ packages: - pylint>=2.6.0 ; extra == 'dev' - pyink ; extra == 'dev' requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/5a/17/cebee01d1c0c1441174cf0456ddc91b280d79acb65340c05e41d77866ee8/python_dateutil-3.0.0-py2.py3-none-any.whl + name: python-dateutil + version: 3.0.0 + sha256: 3c79630202e4152c6add678446984236efe4f57e84d8e892aab0637bab82e9fd + requires_dist: + - six>=1.6 + - tzdata + requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' - pypi: https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl name: packaging version: '26.3' @@ -3530,6 +4393,11 @@ packages: version: 1.15.0 sha256: 7b1b9c53269061403fd5f45a8de349f16e7887653328bfa0c5f2d45299ff0a8e requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl + name: cloudpickle + version: 3.1.2 + sha256: 9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a + requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/89/a5/da8ae6c6f1babe4b68e3e55d43d39b529e29774f10e0910671a6b8c86eb8/ml_dtypes-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: ml-dtypes version: 0.6.0 @@ -3661,6 +4529,11 @@ packages: - numpy ; extra == 'docs' - torch ; extra == 'docs' requires_python: '>=3.9' +- pypi: https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl + name: tzdata + version: '2026.5' + sha256: b683bd1b6659ddcd810ff02ad09ba821d4bf1065072805063eb35c49617905ac + requires_python: '>=2' - pypi: https://files.pythonhosted.org/packages/95/10/ff159867f522cd98e039e748c5e9777446e8b797a79be691c6b730676094/zuko-1.6.0-py3-none-any.whl name: zuko version: 1.6.0 @@ -3678,6 +4551,38 @@ packages: - sphinx==7.3.7 ; extra == 'docs' - pytest>=8.0.0 ; extra == 'test' requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/98/c8/ccede3dcc4f274b80fb49199eed1ef34ba05566c8b71976b9d1f111da2e3/pillow-13.0.0-cp313-cp313-macosx_11_0_arm64.whl + name: pillow + version: 13.0.0 + sha256: f11a3c1358bb3c68012a7b1f41b223c3db9f7bfde90b481df028cfe1c3363313 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx>=8.2 ; extra == 'docs' + - sphinx-autobuild ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - arro3-compute ; extra == 'test-arrow' + - arro3-core ; extra == 'test-arrow' + - nanoarrow ; extra == 'test-arrow' + - pyarrow ; extra == 'test-arrow' + - coverage>=7.4.2 ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - psutil ; (sys_platform == 'darwin' and extra == 'tests') or (sys_platform == 'linux' and extra == 'tests') + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - pytest-xdist ; extra == 'tests' + - setuptools ; extra == 'tests' + - trove-classifiers>=2024.10.12 ; extra == 'tests' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/99/a0/24f50e0cfd432b47103677c6fc6b220acc716c4b20dc9d6021a01d7924fa/blackjax-1.7.1-py3-none-any.whl name: blackjax version: 1.7.1 @@ -3706,6 +4611,40 @@ packages: - envwrap ; extra == 'telegram' - ipywidgets>=6 ; extra == 'notebook' requires_python: '>=3.8' +- pypi: https://files.pythonhosted.org/packages/a8/26/939ae9874dd44116f2ecf61cb0caf029e3004ec1ed311a86389dee3450be/fonttools-4.67.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl + name: fonttools + version: 4.67.0 + sha256: 50c41e30aa2e0130b80d1a58ac0f3ea7c02a854a70dbea1ff8d88e0ce524806f + requires_dist: + - lxml>=4.0 ; extra == 'lxml' + - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' + - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' + - zopfli>=0.1.4 ; extra == 'woff' + - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'unicode' + - lz4>=1.7.4.2 ; extra == 'graphite' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' + - pycairo ; extra == 'interpolatable' + - matplotlib ; extra == 'plot' + - sympy ; extra == 'symfont' + - xattr ; sys_platform == 'darwin' and extra == 'type1' + - skia-pathops>=0.5.0 ; extra == 'pathops' + - uharfbuzz>=0.45.0 ; extra == 'repacker' + - lxml>=4.0 ; extra == 'all' + - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' + - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' + - zopfli>=0.1.4 ; extra == 'all' + - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'all' + - lz4>=1.7.4.2 ; extra == 'all' + - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' + - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' + - pycairo ; extra == 'all' + - matplotlib ; extra == 'all' + - sympy ; extra == 'all' + - xattr ; sys_platform == 'darwin' and extra == 'all' + - skia-pathops>=0.5.0 ; extra == 'all' + - uharfbuzz>=0.45.0 ; extra == 'all' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/a9/29/2a47b700545aca050e0ed73c89ba21e08407e11f5f42a567421b220de6c1/matplotlib-3.11.2-cp313-cp313-macosx_11_0_arm64.whl name: matplotlib version: 3.11.2 @@ -3861,6 +4800,32 @@ packages: - skia-pathops>=0.5.0 ; extra == 'all' - uharfbuzz>=0.45.0 ; extra == 'all' requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl + name: array-api-compat + version: 1.16.0 + sha256: 0464934d7d5f1e9b728b2e248da52400630b1fcb46b70073eab3c7ae084290aa + requires_python: '>=3.10' +- pypi: https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl + name: narwhals + version: 2.27.1 + sha256: d057df13f5852b8e157596e82eb5e955fad267425df5e420e0ee9863da483b31 + requires_dist: + - cudf-cu12>=24.10.0 ; sys_platform == 'linux' and extra == 'cudf' + - dask[dataframe]>=2024.8 ; extra == 'dask' + - duckdb>=1.1 ; extra == 'duckdb' + - ibis-framework>=6.0.0 ; extra == 'ibis' + - packaging>=21.3 ; extra == 'ibis' + - pyarrow-hotfix>=0.7 ; extra == 'ibis' + - modin>=0.22.0 ; extra == 'modin' + - pandas>=1.3.4 ; extra == 'pandas' + - polars>=0.20.4 ; extra == 'polars' + - pyarrow>=13.0.0 ; extra == 'pyarrow' + - pyspark>=3.5.0 ; extra == 'pyspark' + - pyspark[connect]>=3.5.0 ; extra == 'pyspark-connect' + - narwhals[duckdb] ; extra == 'sql' + - sqlparse>=0.5.5 ; extra == 'sql' + - sqlframe>=3.22.0,!=3.39.3 ; extra == 'sqlframe' + requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/d6/cb/17a130e548ee1777f2a66e09240c531a9bf79454add7ef1198fe1e41c412/corner-2.3.0-py3-none-any.whl name: corner version: 2.3.0 @@ -3906,6 +4871,38 @@ packages: requires_dist: - six>=1.5 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' +- pypi: https://files.pythonhosted.org/packages/ef/fe/f5cdaa2d1c4086e757430f368c271a58ee29cfe7378e7ae7b9d964015c25/pillow-13.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + name: pillow + version: 13.0.0 + sha256: 5f56499c1a74d2b862beb0c33b8016f99d095858455df9d21583bbbc1c15b582 + requires_dist: + - furo ; extra == 'docs' + - olefile ; extra == 'docs' + - sphinx>=8.2 ; extra == 'docs' + - sphinx-autobuild ; extra == 'docs' + - sphinx-copybutton ; extra == 'docs' + - sphinx-inline-tabs ; extra == 'docs' + - sphinxext-opengraph ; extra == 'docs' + - olefile ; extra == 'fpx' + - olefile ; extra == 'mic' + - arro3-compute ; extra == 'test-arrow' + - arro3-core ; extra == 'test-arrow' + - nanoarrow ; extra == 'test-arrow' + - pyarrow ; extra == 'test-arrow' + - coverage>=7.4.2 ; extra == 'tests' + - defusedxml ; extra == 'tests' + - markdown2 ; extra == 'tests' + - olefile ; extra == 'tests' + - packaging ; extra == 'tests' + - psutil ; (sys_platform == 'darwin' and extra == 'tests') or (sys_platform == 'linux' and extra == 'tests') + - pytest ; extra == 'tests' + - pytest-cov ; extra == 'tests' + - pytest-timeout ; extra == 'tests' + - pytest-xdist ; extra == 'tests' + - setuptools ; extra == 'tests' + - trove-classifiers>=2024.10.12 ; extra == 'tests' + - defusedxml ; extra == 'xmp' + requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: pillow version: 12.3.0 diff --git a/pyproject.toml b/pyproject.toml index 4d33e4d..46358eb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,6 +34,26 @@ pytorch-cpu = "*" # Use the public repository until sequince-density is released on PyPI. sequince-density = { git = "https://github.com/sequince-dev/sequince-density.git", branch = "main", extras = ["zuko"] } +# Local research environment for the Aspire posterior-expansion examples. +# Keep this separate from cpu/flow so released Sequince is not selected. +[tool.pixi.feature.aspire.dependencies] +pytest = "*" +pytorch-cpu = "*" +libblas = { version = "*", build = "*openblas" } + +[tool.pixi.feature.aspire.pypi-dependencies] +sequince = { path = "../sequince", editable = true, extras = ["corner", "hdf5"] } +sequince-density = { path = "../sequince-density", editable = true, extras = ["zuko", "gmm"] } +aspire-inference = { version = ">=0.1.0", extras = ["torch", "minipcn"] } + +[tool.pixi.feature.aspire.activation.env] +MPLBACKEND = "Agg" + +[tool.pixi.feature.aspire.tasks] +aspire-multimodal = "python examples/aspire_analyses/multimodal.py" +aspire-broadening = "python examples/aspire_analyses/broadening_example.py" +aspire-initial = "python examples/aspire_analyses/initial_example.py" + [tool.pixi.feature.docs.dependencies] sphinx = "8.2.*" sphinx-book-theme = "1.1.*" @@ -47,6 +67,7 @@ pytest = "*" default = { features = ["cpu"], solve-group = "cpu" } jax = { features = ["cpu", "jax"], solve-group = "cpu" } flow = ["cpu", "flow"] +aspire = ["aspire"] docs = ["docs"] check = ["check"] diff --git a/scripts/publish_docs.py b/scripts/publish_docs.py deleted file mode 100644 index ce32516..0000000 --- a/scripts/publish_docs.py +++ /dev/null @@ -1,138 +0,0 @@ -"""Trusted publication only: immutable-by-policy assets, then serialized RTD.""" - -from __future__ import annotations - -import json -import os -import subprocess -import time -import urllib.parse -import urllib.request -from pathlib import Path - -from docs_pipeline import ROOT, bundle, digest, git - - -def gh(*args: str) -> str: - """Call the GitHub CLI, failing on API or permission errors.""" - return subprocess.check_output(["gh", *args], cwd=ROOT, text=True).strip() - - -def rtd(path: str, method: str = "GET") -> dict: - """Call the documented Community API without logging credentials.""" - request = urllib.request.Request( - "https://app.readthedocs.org/api/v3/" + path, - headers={"Authorization": "Token " + os.environ["RTD_TOKEN"]}, - method=method, - ) - with urllib.request.urlopen(request, timeout=60) as response: - return json.load(response) - - -def wait_idle(project: str, deadline: float) -> None: - """Wait through the RTD upload before allowing another publication.""" - while rtd(f"projects/{project}/builds/?running=true")["count"]: - if time.monotonic() > deadline: - raise TimeoutError( - "RTD still running; inspect builds before retrying" - ) - time.sleep(20) - - -def publish_assets(path: Path, tag: str, target: str) -> None: - """Publish a bundle and checksum without replacing existing assets.""" - # Dedicated prereleases in the examples repository cannot become a library - # release or GitHub's latest software release. - view = subprocess.run( - ["gh", "release", "view", tag, "--json", "assets,isDraft"], - cwd=ROOT, - text=True, - capture_output=True, - ) - if view.returncode: - gh( - "release", - "create", - tag, - "--target", - target, - "--title", - tag, - "--notes", - f"Example documentation outputs: {tag}.", - "--prerelease", - "--latest=false", - "--draft", - ) - release = {"assets": [], "isDraft": True} - else: - release = json.loads(view.stdout) - names = {asset["name"] for asset in release["assets"]} - for asset in (path, Path(str(path) + ".sha256")): - if asset.name in names: - existing = ROOT / "build-docs" / "existing" - existing.mkdir(exist_ok=True) - gh( - "release", - "download", - tag, - "--pattern", - asset.name, - "--dir", - str(existing), - "--clobber", - ) - if digest(existing / asset.name) != digest(asset): - raise ValueError( - f"Refusing to replace different asset: {asset.name}" - ) - else: - gh("release", "upload", tag, str(asset)) - if release["isDraft"]: - gh("release", "edit", tag, "--draft=false", "--latest=false") - - -def build_version( - project: str, version: str, sha: str, deadline: float -) -> None: - """Trigger and monitor an RTD version, requiring the expected commit.""" - result = rtd(f"projects/{project}/versions/{version}/builds/", "POST") - build_id = result["build"]["id"] - while True: - build = rtd(f"projects/{project}/builds/{build_id}/") - if build["state"]["code"] in {"finished", "cancelled"}: - break - if time.monotonic() > deadline: - raise TimeoutError( - "RTD build timed out; inspect it before retrying" - ) - time.sleep(20) - if not build["success"] or build["commit"] != sha: - raise ValueError( - f"RTD build {build_id} failed or checked out another commit; " - "inspect RTD and rerun the workflow for the current commit" - ) - print(f"RTD build {build_id} succeeded for {sha}") - - -def main() -> None: - """Publish only main, verify assets, and monitor the triggered build.""" - sha = git("rev-parse", "HEAD") - if git("ls-remote", "origin", "refs/heads/main").split()[0] != sha: - print("Main has advanced; skipping stale publication") - return - if set(git("diff", "--name-only", "HEAD").splitlines()) - {"pixi.lock"}: - raise ValueError("Refusing publication from a modified checkout") - publish_assets(bundle(), f"docs-output-{sha}", sha) - # The workflow's non-cancelling concurrency lock covers this whole wait. - project = urllib.parse.quote(os.environ["RTD_PROJECT"], safe="") - deadline = time.monotonic() + 2400 - wait_idle(project, deadline) - if git("ls-remote", "origin", "refs/heads/main").split()[0] != sha: - print("Bundle uploaded; main advanced, skipping latest trigger") - return - build_version(project, "latest", sha, deadline) - - -if __name__ == "__main__": - main() diff --git a/scripts/publish_pr_docs.py b/scripts/publish_pr_docs.py index 5f57edb..aee81a9 100644 --- a/scripts/publish_pr_docs.py +++ b/scripts/publish_pr_docs.py @@ -1,4 +1,4 @@ -"""Publish PR bundles as data using only trusted default-branch code.""" +"""Prepare PR artifacts as data using only trusted default-branch code.""" from __future__ import annotations @@ -8,20 +8,23 @@ import json import os import re +import stat import subprocess import tarfile import tempfile -import time -import urllib.parse import zipfile from pathlib import Path -from docs_pipeline import REPOSITORY, ROOT, digest, git -from publish_docs import build_version, gh, publish_assets, wait_idle +from docs_pipeline import REPOSITORY, ROOT, digest MAX_BYTES = 128 * 1024 * 1024 +def gh(*args: str) -> str: + """Read GitHub data without executing files from the PR artifact.""" + return subprocess.check_output(["gh", *args], cwd=ROOT, text=True).strip() + + def api(path: str) -> dict | list: """Read GitHub metadata from the fixed examples repository.""" return json.loads(gh("api", f"repos/{REPOSITORY}/{path}")) @@ -88,18 +91,18 @@ def verify_bundle(path: Path, sha: str) -> None: raise ValueError("PR bundle manifest/commit/checksum mismatch") -def download_bundle(run_id: int, sha: str, destination: Path) -> Path: - """Read only the named artifact from this run into an isolated directory.""" +def download_artifact(run_id: int, name: str, destination: Path) -> Path: + """Download one bounded artifact from the exact completed workflow run.""" artifacts = api(f"actions/runs/{run_id}/artifacts?per_page=100") matches = [ item for item in artifacts["artifacts"] - if item["name"] == "validated-bundle" and not item["expired"] + if item["name"] == name and not item["expired"] ] if len(matches) != 1 or matches[0]["size_in_bytes"] > MAX_BYTES: raise ValueError("Missing, ambiguous or oversized PR artifact") artifact_id = int(matches[0]["id"]) - zipped = destination / "artifact.zip" + zipped = destination / f"{name}.zip" with zipped.open("wb") as stream: subprocess.run( [ @@ -113,6 +116,12 @@ def download_bundle(run_id: int, sha: str, destination: Path) -> Path: ) if zipped.stat().st_size > MAX_BYTES: raise ValueError("Oversized PR artifact download") + return zipped + + +def download_bundle(run_id: int, sha: str, destination: Path) -> Path: + """Validate the example provenance bundle from the completed run.""" + zipped = download_artifact(run_id, "validated-bundle", destination) path = destination / f"docs-outputs-{sha}.tar.gz" expected = {path.name, path.name + ".sha256"} with zipfile.ZipFile(zipped) as archive: @@ -132,8 +141,47 @@ def download_bundle(run_id: int, sha: str, destination: Path) -> Path: return path +def download_html(run_id: int, destination: Path) -> Path: + """Extract static HTML as data, rejecting unsafe or oversized archives.""" + zipped = download_artifact(run_id, "documentation-html", destination) + html = destination / "html" + with zipfile.ZipFile(zipped) as archive: + members = archive.infolist() + names = set() + if ( + len(members) > 10000 + or sum(member.file_size for member in members) > MAX_BYTES + ): + raise ValueError("Oversized PR HTML artifact") + # Validate all paths before writing. Never preserve executable modes, + # create links, or extract files into the trusted source checkout. + for member in members: + name = Path(member.filename) + mode = member.external_attr >> 16 + if ( + name.is_absolute() + or ".." in name.parts + or str(name) != member.filename.rstrip("/") + or "\\" in member.filename + or str(name) in names + or stat.S_IFMT(mode) not in {0, stat.S_IFREG, stat.S_IFDIR} + ): + raise ValueError("Unsafe PR HTML artifact") + names.add(str(name)) + for member in members: + target = html / member.filename + if member.is_dir(): + target.mkdir(parents=True, exist_ok=True) + else: + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(archive.read(member)) + if not (html / "index.html").is_file(): + raise ValueError("PR HTML artifact is missing index.html") + return html + + def main() -> None: - """Publish successful current PR runs, then request their RTD preview.""" + """Prepare a current PR's HTML and metadata for the official RTD action.""" event = json.loads(Path(os.environ["GITHUB_EVENT_PATH"]).read_text()) run_id = int(event["workflow_run"]["id"]) run = api(f"actions/runs/{run_id}") @@ -152,23 +200,21 @@ def main() -> None: print("PR closed or advanced; skipping stale publication") return number = int(pr["number"]) - with tempfile.TemporaryDirectory(prefix="pr-docs-") as tmp: - path = download_bundle(run_id, sha, Path(tmp)) - current = current_pr(sha) - if current is None or current["number"] != number: - print("PR changed; skipping stale publication") - return - # Tag only the trusted checkout; PR data has a separate release namespace. - publish_assets( - path, f"docs-pr-{number}-{sha}", git("rev-parse", "HEAD") - ) - project = urllib.parse.quote(os.environ["RTD_PROJECT"], safe="") - deadline = time.monotonic() + 2400 - wait_idle(project, deadline) - if current_pr(sha) is None: - print("Bundle uploaded; PR closed or advanced, skipping preview") + # Keep the HTML until the following action finishes; the hosted runner + # removes its temporary directory after the job. + directory = Path( + tempfile.mkdtemp(prefix="pr-docs-", dir=os.environ["RUNNER_TEMP"]) + ) + download_bundle(run_id, sha, directory) + html = download_html(run_id, directory) + current = current_pr(sha) + if current is None or current["number"] != number: + print("PR changed; skipping stale publication") return - build_version(project, str(number), sha, deadline) + with Path(os.environ["GITHUB_OUTPUT"]).open("a") as output: + output.write( + f"ready=true\nversion={number}\ncommit={sha}\nhtml={html}\n" + ) if __name__ == "__main__": diff --git a/tests/test_publish_docs.py b/tests/test_publish_docs.py deleted file mode 100644 index 204d07c..0000000 --- a/tests/test_publish_docs.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Check publication ordering and refusal paths without external writes.""" - -from __future__ import annotations - -import json -import sys -from pathlib import Path -from types import SimpleNamespace - -import pytest - -sys.path.insert(0, str(Path(__file__).resolve().parents[1] / "scripts")) -import publish_docs as publisher # noqa: E402 - - -@pytest.fixture -def publication( - tmp_path: Path, monkeypatch: pytest.MonkeyPatch -) -> list[tuple]: - """Replace GitHub and RTD calls with a recorded successful publication.""" - calls: list[tuple] = [] - sha = "a" * 40 - monkeypatch.setattr(publisher, "ROOT", tmp_path) - monkeypatch.setattr( - publisher, "git", lambda *args: ("" if args[0] == "diff" else sha) - ) - bundle = tmp_path / "bundle.tar.gz" - bundle.write_bytes(b"validated outputs") - Path(str(bundle) + ".sha256").write_text("checksum") - monkeypatch.setattr(publisher, "bundle", lambda: bundle) - monkeypatch.setattr( - publisher.subprocess, - "run", - lambda *args, **kwargs: (SimpleNamespace(returncode=1, stdout="")), - ) - monkeypatch.setattr( - publisher, "gh", lambda *args: calls.append(args) or "" - ) - monkeypatch.setenv("RTD_PROJECT", "examples") - - def api(path: str, method: str = "GET") -> dict: - calls.append((method, path)) - if "running=true" in path: - return {"count": 0} - if method == "POST": - return {"build": {"id": 123}} - return {"state": {"code": "finished"}, "success": True, "commit": sha} - - monkeypatch.setattr(publisher, "rtd", api) - return calls - - -def test_publish_before_trigger(publication: list[tuple]) -> None: - publisher.main() - uploaded = publication.index( - ( - "release", - "edit", - "docs-output-" + "a" * 40, - "--draft=false", - "--latest=false", - ) - ) - triggered = publication.index( - ( - "POST", - "projects/examples/versions/latest/builds/", - ) - ) - assert uploaded < triggered - assert publication[-1] == ("GET", "projects/examples/builds/123/") - - -def test_stale_run_does_not_publish( - publication: list[tuple], monkeypatch: pytest.MonkeyPatch -) -> None: - monkeypatch.setattr( - publisher, - "git", - lambda *args: ("b" * 40 if args[0] == "ls-remote" else "a" * 40), - ) - publisher.main() - assert not publication - - -def test_different_existing_asset_fails( - publication: list[tuple], tmp_path: Path, monkeypatch: pytest.MonkeyPatch -) -> None: - monkeypatch.setattr( - publisher.subprocess, - "run", - lambda *args, **kwargs: ( - SimpleNamespace( - returncode=0, - stdout=json.dumps( - { - "assets": [{"name": "bundle.tar.gz"}], - "isDraft": False, - } - ), - ) - ), - ) - (tmp_path / "build-docs").mkdir() - - def download(*args: str) -> str: - publication.append(args) - target = Path(args[args.index("--dir") + 1]) / "bundle.tar.gz" - target.write_bytes(b"different uploaded content") - return "" - - monkeypatch.setattr(publisher, "gh", download) - with pytest.raises(ValueError, match="Refusing to replace"): - publisher.main() - assert not any(call[0] == "POST" for call in publication) - - -def test_wait_idle_times_out(monkeypatch: pytest.MonkeyPatch) -> None: - monkeypatch.setattr(publisher, "rtd", lambda path: {"count": 1}) - monkeypatch.setattr(publisher.time, "monotonic", lambda: 10.0) - with pytest.raises(TimeoutError, match="RTD still running"): - publisher.wait_idle("examples", 0.0) diff --git a/tests/test_publish_pr_docs.py b/tests/test_publish_pr_docs.py index 3db4ff8..80e44c6 100644 --- a/tests/test_publish_pr_docs.py +++ b/tests/test_publish_pr_docs.py @@ -5,6 +5,7 @@ import hashlib import io import json +import stat import sys import tarfile import zipfile @@ -114,7 +115,8 @@ def publication(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> list: event = tmp_path / "event.json" event.write_text(json.dumps({"workflow_run": {"id": 123}})) monkeypatch.setenv("GITHUB_EVENT_PATH", str(event)) - monkeypatch.setenv("RTD_PROJECT", "examples") + monkeypatch.setenv("RUNNER_TEMP", str(tmp_path)) + monkeypatch.setenv("GITHUB_OUTPUT", str(tmp_path / "output")) monkeypatch.setattr( publisher, "api", @@ -127,7 +129,6 @@ def publication(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> list: }, ) monkeypatch.setattr(publisher, "current_pr", lambda sha: {"number": 17}) - monkeypatch.setattr(publisher, "git", lambda *args: "b" * 40) monkeypatch.setattr( publisher, "download_bundle", @@ -136,44 +137,40 @@ def publication(tmp_path: Path, monkeypatch: pytest.MonkeyPatch) -> list: ) monkeypatch.setattr( publisher, - "publish_assets", - lambda path, tag, target: calls.append(("publish", tag, target)), - ) - monkeypatch.setattr( - publisher, - "wait_idle", - lambda *args: calls.append(("wait",)), - ) - monkeypatch.setattr( - publisher, - "build_version", - lambda project, version, sha, deadline: calls.append( - ("build", project, version, sha) - ), + "download_html", + lambda run_id, directory: calls.append(("html", run_id)) + or directory / "html", ) return calls -def test_publish_pr_before_preview(publication: list) -> None: +def test_prepare_pr_preview( + publication: list, monkeypatch: pytest.MonkeyPatch +) -> None: publisher.main() - assert publication == [ - ("download", 123, SHA), - ("publish", f"docs-pr-17-{SHA}", "b" * 40), - ("wait",), - ("build", "examples", "17", SHA), - ] + assert publication == [("download", 123, SHA), ("html", 123)] + output = Path(publisher.os.environ["GITHUB_OUTPUT"]) + metadata = dict( + line.split("=", 1) for line in output.read_text().splitlines() + ) + assert metadata["ready"] == "true" + assert metadata["version"] == "17" + assert metadata["commit"] == SHA + html = Path(metadata["html"]) + assert html.name == "html" + assert html.parent.parent == output.parent -@pytest.mark.parametrize("advance_at", [0, 1, 2]) +@pytest.mark.parametrize("advance_at", [0, 1]) def test_stale_or_closed_pr( publication: list, monkeypatch: pytest.MonkeyPatch, advance_at: int ) -> None: responses = iter([{"number": 17}] * advance_at + [None]) monkeypatch.setattr(publisher, "current_pr", lambda sha: next(responses)) publisher.main() - assert not any(call[0] == "build" for call in publication) - if advance_at < 2: - assert not any(call[0] == "publish" for call in publication) + assert not Path(publisher.os.environ["GITHUB_OUTPUT"]).exists() + if advance_at == 0: + assert not publication @pytest.mark.parametrize( @@ -211,3 +208,83 @@ def test_current_pr_uses_github_metadata( assert publisher.current_pr("b" * 40) is None records[0]["state"] = "closed" assert publisher.current_pr(SHA) is None + + +@pytest.mark.parametrize( + "failure", + [None, "path", "absolute", "symlink", "duplicate", "size", "index"], +) +def test_html_archive_validation( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch, failure: str | None +) -> None: + zipped = tmp_path / "html.zip" + with zipfile.ZipFile(zipped, "w") as archive: + archive.writestr("index.html", "Preview") + archive.writestr("_static/style.css", "body {}") + archive.writestr(".buildinfo", "Sphinx metadata") + if failure in {"path", "absolute"}: + archive.writestr( + "../escape" if failure == "path" else "/escape", "bad" + ) + elif failure == "symlink": + member = zipfile.ZipInfo("link") + member.create_system = 3 + member.external_attr = (stat.S_IFLNK | 0o777) << 16 + archive.writestr(member, "/etc/passwd") + elif failure == "duplicate": + with pytest.warns(UserWarning, match="Duplicate name"): + archive.writestr("index.html", "replacement") + if failure == "index": + with zipfile.ZipFile(zipped, "w") as archive: + archive.writestr("other.html", "No index") + if failure == "size": + monkeypatch.setattr(publisher, "MAX_BYTES", 1) + monkeypatch.setattr(publisher, "download_artifact", lambda *args: zipped) + if failure: + with pytest.raises(ValueError): + publisher.download_html(123, tmp_path) + else: + result = publisher.download_html(123, tmp_path) + assert (result / "index.html").read_text() == "Preview" + assert (result / "_static/style.css").read_text() == "body {}" + assert (result / ".buildinfo").is_file() + assert not (tmp_path / "escape").exists() + + +@pytest.mark.parametrize( + "failure", ["missing", "expired", "size", "duplicate"] +) +def test_invalid_artifact_metadata( + tmp_path: Path, monkeypatch: pytest.MonkeyPatch, failure: str +) -> None: + item = { + "id": 456, + "name": "documentation-html", + "expired": False, + "size_in_bytes": 10, + } + records = [item] + if failure == "missing": + records = [] + elif failure == "expired": + item["expired"] = True + elif failure == "size": + item["size_in_bytes"] = publisher.MAX_BYTES + 1 + elif failure == "duplicate": + records.append(item.copy()) + monkeypatch.setattr(publisher, "api", lambda path: {"artifacts": records}) + with pytest.raises(ValueError, match="PR artifact"): + publisher.download_artifact(123, "documentation-html", tmp_path) + + +def test_failed_bundle_does_not_prepare_upload( + publication: list, monkeypatch: pytest.MonkeyPatch +) -> None: + def fail(*args: object) -> None: + raise ValueError("Corrupt bundle") + + monkeypatch.setattr(publisher, "download_bundle", fail) + with pytest.raises(ValueError, match="Corrupt bundle"): + publisher.main() + assert not Path(publisher.os.environ["GITHUB_OUTPUT"]).exists() + assert not publication From cce9377a6fb1bd6140413a8fef98f8fc7a02d1f4 Mon Sep 17 00:00:00 2001 From: "Michael J. Williams" Date: Wed, 28 Oct 2026 09:17:01 +0100 Subject: [PATCH 2/2] BLD: drop aspire --- pixi.lock | 1009 +----------------------------------------------- pyproject.toml | 21 - 2 files changed, 6 insertions(+), 1024 deletions(-) diff --git a/pixi.lock b/pixi.lock index a3c42bf..03f89d8 100644 --- a/pixi.lock +++ b/pixi.lock @@ -12,207 +12,6 @@ platforms: - __osx=13.0 - __archspec=0=m1 environments: - aspire: - channels: - - url: https://conda.anaconda.org/conda-forge/ - indexes: - - https://pypi.org/simple - packages: - linux-64: - - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-8_kmp_llvm.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fmt-12.1.0-h76c4fd7_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gmp-6.3.0-hfd2156b_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gmpy2-2.3.2-py313ha4a6282_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_103.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260526.0-cxx17_h0dc7533_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-hd2095e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-openmp_h156ec52_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-7.35.1-h622638d_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.13.17-hd51c5da_100_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_100.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.14.1-cpu_generic_hbc98363_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.52.1-h280c20c_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-23.1.4-h7148c6a_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py313h2af15c8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpc-1.4.0-ha2cb11d_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mpfr-4.2.2-ha2cb11d_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.4-py313hb5f73ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/onednn-3.14-omp_h64ed1e9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/optree-0.20.0-py313h6bdb861_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.17-hf47f18c_100_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.14.1-cpu_generic_py313_h2672511_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-cpu-2.14.1-cpu_generic_h6ea6555_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/sleef-3.9.0-ha0421bc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.17-py313hd8ed1ab_100.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-4.2.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.7-pyhc364b38_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.4-pyh293190f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-11-hc364b38_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-global-3.0.4-pyh648e204_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-9_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/scikit-build-core-1.1.1-pyhcb39dcd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sympy-1.14.0-pyh2585a3b_106.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda - - pypi: ../sequince - - pypi: ../sequince-density - - pypi: https://files.pythonhosted.org/packages/07/ef/9b77fc80fc9bf28978d5649a3c71c0e77efe9e1966e5f608e7c3d5ba86b4/acai_control-0.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/18/53/84099323c2ec4be98d935f63c033ac4151ee83836ca1050ede3b3aadf155/joblib-1.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/1b/52/859ec72a8a22d616307a933de7edbb9a14b004873a7ac3d830f29dc96880/array_api_extra-0.11.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/1e/cf/83c3377e7018ee3c455153d9560c6a972b0a407075868f5e58979fc640a2/minipcn-0.3.0a1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/23/e5/688703d357e5393f708d98eb189fd415ae69e39f6de03c6bd4005aef6118/scikit_learn-1.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/26/be/fc2924aa70b08fc7ce2555c290cddea18bf9b03695a681a54453cd66f5b4/aspire_inference-0.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/37/62/20edad100b93552ec5c172e509a9db898a73d5043ae701fcb6e9986f9d33/wrapt-2.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/41/48/6450ed9243315322bbc19ac57b9b70d66a20bf1d38d124c96bc4bf6af9ea/scipy-1.18.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/5a/17/cebee01d1c0c1441174cf0456ddc91b280d79acb65340c05e41d77866ee8/python_dateutil-3.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/68/77/8f93ecbde1a4d11dfd460cd19a0c159f5487352e751fa87f5d78cc9db08e/contourpy-1.4.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/76/3e/0fa5690a3a8303d821a46fd35691b1b6f8a9c06b97b41847ca41aed72e90/orng-0.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/95/10/ff159867f522cd98e039e748c5e9777446e8b797a79be691c6b730676094/zuko-1.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a8/26/939ae9874dd44116f2ecf61cb0caf029e3004ec1ed311a86389dee3450be/fonttools-4.67.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/a9/df/e7c10292f348cf55178a5b3c0092a38ea68891a3945f199ae8b7b8ac9dc1/matplotlib-3.11.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/ab/43/86aacc027959108b4c66eeae8b73cedb057dfa6eb3a335d05ad65197081c/kiwisolver-1.5.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/bd/98/ef2b6fe2903e377cbe870c3b2800d62552f1e3dbe81ce49e1923c53d1c5c/h5py-3.16.0-cp313-cp313-manylinux_2_28_x86_64.whl - - pypi: https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d6/cb/17a130e548ee1777f2a66e09240c531a9bf79454add7ef1198fe1e41c412/corner-2.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/ef/fe/f5cdaa2d1c4086e757430f368c271a58ee29cfe7378e7ae7b9d964015c25/pillow-13.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - osx-arm64: - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.17-py313hd8ed1ab_100.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-4.2.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.9.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/mpmath-1.4.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/networkx-3.7-pyhc364b38_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nomkl-1.0-h5ca1d4c_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-3.0.4-pyh293190f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-abi-11-hc364b38_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pybind11-global-3.0.4-pyh648e204_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-9_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/scikit-build-core-1.1.1-pyhcb39dcd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sympy-1.14.0-pyh2585a3b_106.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-8_kmp_llvm.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h4e30115_10.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fmt-12.1.0-h99e4e11_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmp-6.3.0-hf5e55b1_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gmpy2-2.3.2-py313h0091f1d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20260526.0-cxx17_h4c27e2a_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-11_h51639a9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-11_hb0561ab_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.4-h55c6f16_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.5-h6111c0a_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.7.0-h47dc5ef_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-16.2.0-h3cf6597_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-16.2.0-h07b0088_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-16.2.0-hdb7a957_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-11_hd9741b5_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.34-openmp_h5e6e99c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-7.35.1-h391e224_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpython-3.13.17-h0af5753_100_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_100.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtorch-2.14.1-cpu_generic_h8539c7d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.52.1-h1a92334_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-23.1.4-hdb3d66b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.4-py313h996ddf1_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpc-1.4.0-h071a35a_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mpfr-4.2.2-h72846b0_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-he64c551_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.5.4-py313h24c19cf_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/onednn-3.14-omp_hf8bcd58_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/optree-0.20.0-py313h5c89e09_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.17-hb59dee6_100_cp313.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-2.14.1-cpu_generic_py313_hf1850e0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-cpu-2.14.1-cpu_generic_hcc7c195_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h8b90a29_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sleef-3.9.0-hb028509_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda - - pypi: ../sequince - - pypi: ../sequince-density - - pypi: https://files.pythonhosted.org/packages/01/b9/41642877fe741db56d240833c8822188b663c4c5d52beb087964774035d4/wrapt-2.5.1-cp313-cp313-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/07/ef/9b77fc80fc9bf28978d5649a3c71c0e77efe9e1966e5f608e7c3d5ba86b4/acai_control-0.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/18/53/84099323c2ec4be98d935f63c033ac4151ee83836ca1050ede3b3aadf155/joblib-1.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/1b/52/859ec72a8a22d616307a933de7edbb9a14b004873a7ac3d830f29dc96880/array_api_extra-0.11.5-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/1e/cf/83c3377e7018ee3c455153d9560c6a972b0a407075868f5e58979fc640a2/minipcn-0.3.0a1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/26/be/fc2924aa70b08fc7ce2555c290cddea18bf9b03695a681a54453cd66f5b4/aspire_inference-0.1.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/2a/f5/769f36d14922b8071a43e95d24d18b6bdafad10d7f5cf647867e1ac052bc/scipy-1.18.1-cp313-cp313-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/2f/81/3c6392c03665d2899457a76e535a9a6f597dddddf3220fd2e1d790da88c5/scikit_learn-1.9.1-cp313-cp313-macosx_12_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/30/b4/cd473e0a48427003733e92bc3e8077081ba537eb33f7c658f2b7bef63776/fonttools-4.67.0-cp313-cp313-macosx_10_13_universal2.whl - - pypi: https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/3f/2f/103cdc5b7077cd569989d3ddb99ee3d4e96ee31bde8df2a6e426b2dc6195/contourpy-1.4.0-cp313-cp313-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/47/8b/40d33ffd2f378094ed462e9a9a0907e59d4de9845e65a59561272da350d4/kiwisolver-1.5.1-cp313-cp313-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/5a/17/cebee01d1c0c1441174cf0456ddc91b280d79acb65340c05e41d77866ee8/python_dateutil-3.0.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/76/3e/0fa5690a3a8303d821a46fd35691b1b6f8a9c06b97b41847ca41aed72e90/orng-0.2.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/95/10/ff159867f522cd98e039e748c5e9777446e8b797a79be691c6b730676094/zuko-1.6.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/98/c8/ccede3dcc4f274b80fb49199eed1ef34ba05566c8b71976b9d1f111da2e3/pillow-13.0.0-cp313-cp313-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/a7/03/921a3d3c75785aca9ebfbfcabfbc3a1be12e2ab5265deb026d55a5a3f83e/tqdm-4.70.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/a9/29/2a47b700545aca050e0ed73c89ba21e08407e11f5f42a567421b220de6c1/matplotlib-3.11.2-cp313-cp313-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/b0/65/5e088a45d0f43cd814bc5bec521c051d42005a472e804b1a36c48dada09b/h5py-3.16.0-cp313-cp313-macosx_11_0_arm64.whl - - pypi: https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/d6/cb/17a130e548ee1777f2a66e09240c531a9bf79454add7ef1198fe1e41c412/corner-2.3.0-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/e7/05/c19819d5e3d95294a6f5947fb9b9629efb316b96de511b418c53d245aae6/cycler-0.12.1-py3-none-any.whl check: channels: - url: https://conda.anaconda.org/conda-forge/ @@ -997,27 +796,6 @@ packages: - libabseil =*=cxx17* size: 1440678 timestamp: 1791681043356 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda - build_number: 11 - sha256: d942e0c820d60a613a6f786d074f0820fb6343e3f1ccfb110b1d98b44fb75968 - md5: b8cce1486f3c62f33291d6318c193d0d - depends: - - libopenblas >=0.3.34,<0.3.35.0a0 - - libopenblas >=0.3.34,<1.0a0 - constrains: - - blas 2.311 openblas - - libcblas 3.11.0 11*_openblas - - liblapack 3.11.0 11*_openblas - - liblapacke 3.11.0 11*_openblas - - mkl <2027 - license: BSD-3-Clause - license_family: BSD - purls: [] - run_exports: - weak: - - libblas >=3.11.0,<4.0a0 - size: 18246 - timestamp: 1789061062982 - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h5875eb1_mkl.conda build_number: 11 sha256: 3b9862430914d13ae264398340117f80b85720de308f6a80ad463588abe10358 @@ -1040,24 +818,6 @@ packages: - libblas >=3.11.0,<4.0a0 size: 18622 timestamp: 1789061051585 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda - build_number: 11 - sha256: f7d1bbdea61cf94ba219d17b2cb571a29830f8025385af799bff5a7ad1ef45e6 - md5: 73a248c30811075059b5aeda766c2624 - depends: - - libblas 3.11.0 11_h4a7cf45_openblas - constrains: - - blas 2.311 openblas - - liblapack 3.11.0 11*_openblas - - liblapacke 3.11.0 11*_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - run_exports: - weak: - - libcblas >=3.11.0,<4.0a0 - size: 18196 - timestamp: 1789061068819 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_hfef963f_mkl.conda build_number: 11 sha256: 6ebc9042e96050ddb4d57b666415677164561b8229905c52e6f84defbc884b0f @@ -1121,33 +881,6 @@ packages: run_exports: {} size: 1058444 timestamp: 1790303109576 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda - sha256: 9682ae4dd11487e10b904b3cb3ab6379cad25233d45fdfdf90d54349df244494 - md5: 3a8d285f5f22138ef826ad54cf267e73 - depends: - - libgfortran5 16.2.0 h6b99dfc_7 - constrains: - - libgfortran-ng ==16.2.0=*_7 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - run_exports: {} - size: 28571 - timestamp: 1790303139904 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda - sha256: 04dbab12c925b92977bb835dd2f5eda413607afa79f95a554e5a04b07a380322 - md5: 7719ed7be38ad8c492c4bd5cc2bce0c4 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=16.2.0 - constrains: - - libgfortran 16.2.0 - license: GPL-3.0-only WITH GCC-exception-3.1 - license_family: GPL - purls: [] - run_exports: {} - size: 2528180 - timestamp: 1790303122004 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.conda sha256: 92a0bb350c7be6a4eedcb4e111c60aefd176018e6b1c009a6e025dbe9bbcd758 md5: d904c7ddd95e026254b4b80808ee9e12 @@ -1191,24 +924,6 @@ packages: - libiconv >=1.18,<2.0a0 size: 789471 timestamp: 1787033836207 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda - build_number: 11 - sha256: 1ad3f43c9319ef398a8ef45989f4903a06e3965b51e77fc669a4c894168a8411 - md5: 5622a13917855ce4b953b9e655cf9262 - depends: - - libblas 3.11.0 11_h4a7cf45_openblas - constrains: - - blas 2.311 openblas - - libcblas 3.11.0 11*_openblas - - liblapacke 3.11.0 11*_openblas - license: BSD-3-Clause - license_family: BSD - purls: [] - run_exports: - weak: - - liblapack >=3.11.0,<3.12.0a0 - size: 18227 - timestamp: 1789061073957 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h5e43f62_mkl.conda build_number: 11 sha256: 7b80fc195419463533262b9d327c75559dd820251902e3fa41cce02a3b23bb5b @@ -1256,29 +971,6 @@ packages: run_exports: {} size: 92759 timestamp: 1786650399772 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-openmp_h156ec52_2.conda - sha256: dbcd501070d124ee7e02740e5483e2e83158ab4a0cabfc65fb4253e0168ff428 - md5: 85d0ace74af50f6eea7010679eacb59a - depends: - - __glibc >=2.17,<3.0.a0 - - llvm-openmp >=23.1.1 - - _openmp_mutex >=4.5 - - _openmp_mutex * *_llvm - - libgcc >=15 - - libgfortran5 >=15.3.0 - - libgfortran - constrains: - - openblas >=0.3.34,<0.3.35.0a0 - track_features: - - libopenblas-p-0 - license: BSD-3-Clause - license_family: BSD - purls: [] - run_exports: - weak: - - libopenblas >=0.3.34,<1.0a0 - size: 6856873 - timestamp: 1789141495971 - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-7.35.1-h622638d_3.conda sha256: 37c51fbc936a6bb8bf5f67c8f056edacaaa41e8603738bc8a4dee186292bb114 md5: fd307b61cceb36fdca38e1718bdb2893 @@ -1326,20 +1018,6 @@ packages: - libpython >=3.13,<4.0a0 size: 9718885 timestamp: 1791334276485 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpython-3.13.17-hd51c5da_100_cp313.conda - build_number: 100 - sha256: 1082a74cc4f10613f258d4f00d8d80d3aac288039b88718d18e3bd5bede5f514 - md5: e67509e13ba01c938274503c0089c63f - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=15 - license: Python-2.0 - purls: [] - run_exports: - weak: - - libpython >=3.13,<4.0a0 - size: 9726632 - timestamp: 1792665439303 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.0-h0737f62_101.conda sha256: b4d5d4428bd1931eede11d2d69389c5b9d396a7f3c8df9d7c39c9efd80761eb3 md5: a8b899d3c5fc1034b209045653b86ed2 @@ -1356,22 +1034,6 @@ packages: - libsqlite >=3.54.0,<4.0a0 size: 979215 timestamp: 1791584361438 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_100.conda - sha256: 107ba2f9134b45a6fdaf8d2485f432e3a643fdfaf711a325d0c9139b580b3523 - md5: 5fdfd335c3d653e41c1eea1353d827d0 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=15 - - libzlib >=1.3.2,<2.0a0 - constrains: - - icu <0.0a0 - license: blessing - purls: [] - run_exports: - weak: - - libsqlite >=3.54.1,<4.0a0 - size: 980418 - timestamp: 1792175610911 - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda sha256: fa7018298629fc429971fffd6ecba3d27a7b02e4e890d6a93ea01ffebe8cb745 md5: 9b6707e0caca917fa6ea9ee473f37a5d @@ -1386,42 +1048,6 @@ packages: run_exports: {} size: 6615436 timestamp: 1790303132935 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.14.1-cpu_generic_hbc98363_0.conda - sha256: d9e080c47f402a25b9d0aa8b1254a39d6f321d2d169b4be30812d592886a33d2 - md5: 787955daba1e027f076c56a7981a770e - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex * *_llvm - - _openmp_mutex >=4.5 - - fmt >=12.1.0,<12.2.0a0 - - libabseil * cxx17* - - libabseil >=20260526.0,<20260527.0a0 - - libblas >=3.9.0,<4.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc >=15 - - liblapack >=3.9.0,<4.0a0 - - libprotobuf >=7.35.1,<7.35.2.0a0 - - libstdcxx >=15 - - libuv >=1.52.1,<2.0a0 - - libzlib >=1.3.2,<2.0a0 - - llvm-openmp >=23.1.3 - - onednn >=3.13.4,<4.0a0 - - pybind11-abi 11 - - sleef >=3.9.0,<4.0a0 - constrains: - - libopenblas * openmp_* - - openblas * openmp_* - - pytorch 2.14.1 cpu_generic_*_0 - - pytorch-cpu 2.14.1 - - pytorch-gpu <0.0a0 - license: BSD-3-Clause - license_family: BSD - purls: [] - run_exports: - weak: - - libtorch >=2.14.1,<2.15.0a0 - size: 62384694 - timestamp: 1791586369723 - conda: https://conda.anaconda.org/conda-forge/linux-64/libtorch-2.14.1-cpu_mkl_hc3c961d_100.conda sha256: 771a151465e667c6165eace7d61f1eee94c1bb9cbeceaeca55bf14450ef511aa md5: 0d4407c5f1fcbf718363cd1b0579d25d @@ -1555,24 +1181,6 @@ packages: - _openmp_mutex * *_llvm size: 6121536 timestamp: 1791950734069 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-23.1.4-h7148c6a_0.conda - sha256: 7de1204abbcf20aa8cb62c8a1385177ded2b7ca536b79c409866e46f30b0242f - md5: ad441557f951f09d7e4c79731a6a34dc - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - intel-openmp <0.0a0 - - openmp 23.1.4|23.1.4.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - run_exports: - strong: - - llvm-openmp >=23.1.4 - - _openmp_mutex >=4.5 - - _openmp_mutex * *_llvm - size: 6130038 - timestamp: 1792567140233 - conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.4-py313h2af15c8_1.conda sha256: 74e611bb15ffe1065c14e9007a6f04f15a53f350524c3cd1d033620ef9c3c035 md5: d15255d7f81d9188edecde1e024a1649 @@ -1689,21 +1297,6 @@ packages: - onednn >=3.13.4,<4.0a0 size: 13798149 timestamp: 1791401101750 -- conda: https://conda.anaconda.org/conda-forge/linux-64/onednn-3.14-omp_h64ed1e9_0.conda - sha256: 8754b6df6700a2c8be192eb954ca29e0f8c874d8349e1fe62b363713f9dfacb4 - md5: c19ba3abba3d276c689e038b7218b009 - depends: - - libstdcxx >=15 - - libgcc >=15 - - __glibc >=2.28,<3.0.a0 - license: Apache-2.0 - license_family: APACHE - purls: [] - run_exports: - weak: - - onednn >=3.14,<4.0a0 - size: 11397614 - timestamp: 1792776750101 - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda sha256: 9c1533f1cf784f0e250919c0c9762d0b0e6bc727a79290ffb7cea1ceca1d038c md5: 5a51a2ea653f120240b1a9bf76e0aae9 @@ -1802,88 +1395,6 @@ packages: size: 24298220 timestamp: 1791911488431 python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.17-hf47f18c_100_cp313.conda - build_number: 100 - sha256: 689f8815b3af58be7b62cbf900bc1612efbde24763b470e01c292b06cbe2c6b2 - md5: 30b143cde9b0c30caa27ac3ea71ef837 - depends: - - __glibc >=2.17,<3.0.a0 - - bzip2 >=1.0.8,<2.0a0 - - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.8.5,<3.0a0 - - libffi >=3.7.0,<3.8.0a0 - - libgcc >=15 - - liblzma >=5.8.3,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libpython 3.13.17 hd51c5da_100_cp313 - - libsqlite >=3.54.1,<4.0a0 - - libuuid >=2.42.4,<3.0a0 - - libzlib >=1.3.2,<2.0a0 - - ncurses >=6.6,<7.0a0 - - openssl >=3.5.9,<4.0a0 - - python_abi 3.13.* *_cp313 - - readline >=8.3,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - license: Python-2.0 - purls: [] - run_exports: - weak: - - python_abi 3.13.* *_cp313 - noarch: - - python - size: 24443038 - timestamp: 1792665475941 - python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.14.1-cpu_generic_py313_h2672511_0.conda - sha256: 66452c0e34646f94a3b63559dc0bab8b21f2f08c3aa9d76b1c4f40a6618d5a86 - md5: 5690fc0503ba82d72d857631893693fa - depends: - - __glibc >=2.17,<3.0.a0 - - _openmp_mutex * *_llvm - - _openmp_mutex >=4.5 - - filelock - - fmt >=12.1.0,<12.2.0a0 - - fsspec >=0.8.5 - - jinja2 - - libabseil * cxx17* - - libabseil >=20260526.0,<20260527.0a0 - - libcblas >=3.9.0,<4.0a0 - - libgcc >=15 - - liblapack >=3.9.0,<4.0a0 - - libprotobuf >=7.35.1,<7.35.2.0a0 - - libstdcxx >=15 - - libtorch 2.14.1 cpu_generic_hbc98363_0 - - libuv >=1.52.1,<2.0a0 - - libzlib >=1.3.2,<2.0a0 - - llvm-openmp >=23.1.3 - - networkx >=2.5.1 - - nomkl - - numpy >=1.25,<3 - - onednn >=3.13.4,<4.0a0 - - optree >=0.13.0 - - pybind11 - - pybind11-abi 11 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - scikit-build-core - - setuptools >=77.0.3 - - sleef >=3.9.0,<4.0a0 - - sympy >=1.13.3 - - typing_extensions >=4.13.0 - constrains: - - pytorch-cpu 2.14.1 - - pytorch-gpu <0.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/torch?source=hash-mapping - run_exports: - weak: - - pytorch >=2.14.1,<2.15.0a0 - - libtorch >=2.14.1,<2.15.0a0 - size: 29264712 - timestamp: 1791587979606 - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-2.14.1-cpu_mkl_py313_h7b4a8e5_100.conda sha256: 154b2357b04753651586dac84fe2cdb673eb26aacf1c72d3eaa20620c2549cce md5: 29ab64128c75eac81d31e6f35eab85ca @@ -1933,17 +1444,6 @@ packages: - libtorch >=2.14.1,<2.15.0a0 size: 29275859 timestamp: 1791586803158 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-cpu-2.14.1-cpu_generic_h6ea6555_0.conda - sha256: 972676e21636cc4dfb1023d27faaad96cb9524ae52dd761a6aab5ddc51388002 - md5: c21fb3c5f8c142abba2dc102b133b0aa - depends: - - pytorch 2.14.1 cpu_generic*0 - license: BSD-3-Clause - license_family: BSD - purls: [] - run_exports: {} - size: 56194 - timestamp: 1791588415255 - conda: https://conda.anaconda.org/conda-forge/linux-64/pytorch-cpu-2.14.1-cpu_mkl_hd61e0f4_100.conda sha256: c8a8b42cd076c41a7547c96ec9af52bb9d46f03465d83328913658ab57ab58d5 md5: e3d9aa9875bf8cfc0a0f4eb6141d35f4 @@ -2144,16 +1644,6 @@ packages: run_exports: {} size: 92704 timestamp: 1780853175566 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda - sha256: 95619b9c1184be7175392eeb0ee7eeb5ccf25d280951f4225f2d62e725790be3 - md5: 3fd02989038a1e1cee627c14c2d73f29 - depends: - - __unix - license: ISC - purls: [] - run_exports: {} - size: 130057 - timestamp: 1792772446739 - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-hbd8a1cb_0.conda sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 md5: 0f51e2391ade309db462a55611263e9c @@ -2200,8 +1690,6 @@ packages: - python >=3.9 license: BSD-3-Clause license_family: BSD - purls: - - pkg:pypi/colorama?source=hash-mapping run_exports: {} size: 27011 timestamp: 1733218222191 @@ -2228,18 +1716,6 @@ packages: run_exports: {} size: 49980 timestamp: 1791910441528 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.17-py313hd8ed1ab_100.conda - noarch: generic - sha256: 9875f74d43bc2d30ca88be8d13c8ab70f6ebe493e7522c3d45af6b6da7f34881 - md5: 32554a8e5301bd5b7de7fe38c4eb90b2 - depends: - - python >=3.13,<3.14.0a0 - - python_abi * *_cp313 - license: Python-2.0 - purls: [] - run_exports: {} - size: 49877 - timestamp: 1792664071681 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.3-pyhcf101f3_0.conda sha256: e2753997b8bd34205f42be01b8bab8037423dc30c02a1ec12de23e5b4c0b0a2e md5: 58638f77697c4f6726753eb8be34818b @@ -2284,18 +1760,6 @@ packages: run_exports: {} size: 102017 timestamp: 1791739638282 -- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-4.2.4-pyhd8ed1ab_0.conda - sha256: 47200ebb93b65cb56fe57cb2932d8c80df5e7b7f1e74bedda13a54f305d7ad28 - md5: 03e85ad6d6c66102781d3684fbdbcd6e - depends: - - python >=3.11 - license: MIT - license_family: MIT - purls: - - pkg:pypi/filelock?source=compressed-mapping - run_exports: {} - size: 123546 - timestamp: 1792380881214 - conda: https://conda.anaconda.org/conda-forge/noarch/fsspec-2026.9.0-pyhd8ed1ab_0.conda sha256: 7d17272012e7479ba58f8a72b522d3e88e6837a04a111a278ff417aa82364255 md5: 42de5cd170647599a84f468a42fabb89 @@ -2380,8 +1844,6 @@ packages: - python >=3.11 license: MIT license_family: MIT - purls: - - pkg:pypi/iniconfig?source=compressed-mapping run_exports: {} size: 14485 timestamp: 1791588553866 @@ -2498,19 +1960,6 @@ packages: run_exports: {} size: 25877 timestamp: 1764896838868 -- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - sha256: 34c40106bc3172b3a47656e84837e13a5d4829d413d65f30fb214e7568a09cea - md5: 50c6bcd41b7ceaaeeea8852e3198663e - depends: - - python >=3.11 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/pluggy?source=compressed-mapping - run_exports: {} - size: 30111 - timestamp: 1792063298993 - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.6.2-pyha770c72_0.conda sha256: fc0a0620a8f829c46787a9a13ddbae8b6049f2e77da353a8a2adaa01af0da7e2 md5: c36b88db560b4e74f294380613f1a239 @@ -2606,8 +2055,6 @@ packages: - python license: BSD-2-Clause license_family: BSD - purls: - - pkg:pypi/pygments?source=compressed-mapping run_exports: {} size: 959376 timestamp: 1786995678795 @@ -2639,8 +2086,6 @@ packages: - pytest-faulthandler >=2 license: MIT license_family: MIT - purls: - - pkg:pypi/pytest?source=hash-mapping run_exports: {} size: 306724 timestamp: 1782127176429 @@ -2744,18 +2189,6 @@ packages: run_exports: {} size: 524488 timestamp: 1786282924579 -- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-84.2.1-pyhe730653_0.conda - sha256: 17add609d1a31c874e39a03935072be59bcafb06d42383eceabea746d12e6025 - md5: d41f95b8f1553165b2cc2f37162dac9c - depends: - - python >=3.11 - license: MIT - license_family: MIT - purls: - - pkg:pypi/setuptools?source=compressed-mapping - run_exports: {} - size: 567436 - timestamp: 1792571495729 - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.1.1-pyhd8ed1ab_0.conda sha256: ad89284ea94821c20ff87e64b948e4afc690cf5202d14c009355b0594cf23aea md5: 46b6abe31482f6bca064b965696ae807 @@ -2941,14 +2374,6 @@ packages: run_exports: {} size: 118849 timestamp: 1784250406640 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda - sha256: 2b7ca858879f183ce2dcc65b300f48a0133d5430550f35b23d80d405a0788dbf - md5: abccc3810d2b97e570dee487f2b46e38 - license: LicenseRef-Public-Domain - purls: [] - run_exports: {} - size: 119208 - timestamp: 1792758382821 - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda sha256: c5511c190ab55168ca412f3c54592fbf677ae6250784cb72b227a7cf3f538f7d md5: 407a3d3778570bae8e8fcf554e803e43 @@ -3159,17 +2584,6 @@ packages: run_exports: {} size: 577501 timestamp: 1791337239735 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.4-h55c6f16_2.conda - sha256: 9c390b4f403db32346754ccef6b84b7e5d9b70cb6d76258fd23b05f2db2ab216 - md5: 08f01709cd5f8fd7af2c29e4e3ce1846 - depends: - - __osx >=11.0 - license: Apache-2.0 WITH LLVM-exception - license_family: Apache - purls: [] - run_exports: {} - size: 577255 - timestamp: 1792748855178 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.8.5-h6111c0a_0.conda sha256: 50aa761b83fc7a116ca88fe0cb4cefce5abababb10a926bf8afbafd5c298d102 md5: 5383c550b785bdaafcc4eaf638071a7c @@ -3329,32 +2743,19 @@ packages: size: 1814014 timestamp: 1791910695132 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpython-3.13.16-hb350d79_101_cp313.conda - build_number: 101 - sha256: dbae2e688e271f140bf5678257c7f671f06b76045b90418f086427e4dc7c2eca - md5: bd71eafbdb134f540ae4aacd52ecf977 - depends: - - __osx >=11.0 - - libcxx >=21 - license: Python-2.0 - purls: [] - run_exports: - weak: - - libpython >=3.13,<4.0a0 - size: 1816892 - timestamp: 1791332817737 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpython-3.13.17-h0af5753_100_cp313.conda - build_number: 100 - sha256: 718bf1a5e1c412d5cc922d1993509e1be448bee444c00608529a95c0d5d5513d - md5: 7423afe94a754c1b379b81276edd1fbe + build_number: 101 + sha256: dbae2e688e271f140bf5678257c7f671f06b76045b90418f086427e4dc7c2eca + md5: bd71eafbdb134f540ae4aacd52ecf977 depends: - __osx >=11.0 + - libcxx >=21 license: Python-2.0 purls: [] run_exports: weak: - libpython >=3.13,<4.0a0 - size: 1818624 - timestamp: 1792664278397 + size: 1816892 + timestamp: 1791332817737 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.0-h34a968b_101.conda sha256: 7f0f2e4ca2eb6e5059d9593ffe88088debe453b146e2794641d94242b901d85c md5: 42b7a7607b4c9838cc2e72a232af6809 @@ -3370,21 +2771,6 @@ packages: - libsqlite >=3.54.0,<4.0a0 size: 949146 timestamp: 1791584347793 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_100.conda - sha256: ed4bbcbd181a8491245c8120609ea288056c8f90db4f8e18b397066ce2a58ec7 - md5: eb7c3006eba21a8ebc3466dedd542919 - depends: - - __osx >=11.0 - - libzlib >=1.3.2,<2.0a0 - constrains: - - icu <0.0a0 - license: blessing - purls: [] - run_exports: - weak: - - libsqlite >=3.54.1,<4.0a0 - size: 949104 - timestamp: 1792175609612 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtorch-2.14.1-cpu_generic_h8539c7d_0.conda sha256: 611136e49805a77e6c37888a9f9615b9649bff7344adfc4b25df84628b128e4f md5: 5e8ed7a3ce0988cb2730c298c8f16435 @@ -3461,22 +2847,6 @@ packages: - llvm-openmp >=23.1.3 size: 287944 timestamp: 1791950643503 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-23.1.4-hdb3d66b_0.conda - sha256: cc6d67df56d4ea967e17d938d3108cdf7d971531350df9e7fc5e18cb89066a70 - md5: 9a6ec2a53da5d75951b88c51018c27fa - depends: - - __osx >=11.0 - constrains: - - intel-openmp <0.0a0 - - openmp 23.1.4|23.1.4.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - run_exports: - strong: - - llvm-openmp >=23.1.4 - size: 287495 - timestamp: 1792567065537 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.4-py313h996ddf1_1.conda sha256: 9d47cb555572c552de411bb6d140a19cf6fee173dbc712aef4d3a1e36e028363 md5: cf0b179746e4ff1ddf1440355d5f3914 @@ -3571,21 +2941,6 @@ packages: - onednn >=3.13.4,<4.0a0 size: 5498840 timestamp: 1791401174841 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/onednn-3.14-omp_hf8bcd58_0.conda - sha256: 5380c7a8be4dec6cb5fc69276f7e1cc5fd388cfc53b922ee2e5d732f1835738c - md5: dff832d5b1bcc2743655cf935c355372 - depends: - - __osx >=11.0 - - llvm-openmp >=21.1.8 - - libcxx >=21 - license: Apache-2.0 - license_family: APACHE - purls: [] - run_exports: - weak: - - onednn >=3.14,<4.0a0 - size: 6959158 - timestamp: 1792776768907 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda sha256: 44fbc526456571a9fb8fa18157f6f269d4d4bd40eef20183a93b9c9296f94497 md5: 45d9179cdf6e53d88aec034246f0dad6 @@ -3677,36 +3032,6 @@ packages: size: 11933817 timestamp: 1791910728707 python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.17-hb59dee6_100_cp313.conda - build_number: 100 - sha256: c8fe3a29f397c578eff05ad25d42dc0e92220972ddf784a9278a4d514da70746 - md5: e53c1ad20c5a73235597c851e4cb376f - depends: - - __osx >=11.0 - - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.8.5,<3.0a0 - - libffi >=3.7.0,<3.8.0a0 - - liblzma >=5.8.3,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libpython 3.13.17 h0af5753_100_cp313 - - libsqlite >=3.54.1,<4.0a0 - - libzlib >=1.3.2,<2.0a0 - - ncurses >=6.6,<7.0a0 - - openssl >=3.5.9,<4.0a0 - - python_abi 3.13.* *_cp313 - - readline >=8.3,<9.0a0 - - tk >=8.6.13,<8.7.0a0 - - tzdata - license: Python-2.0 - purls: [] - run_exports: - weak: - - python_abi 3.13.* *_cp313 - noarch: - - python - size: 11954525 - timestamp: 1792664307240 - python_site_packages_path: lib/python3.13/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pytorch-2.14.1-cpu_generic_py313_hf1850e0_0.conda sha256: 0ae47b5ea2a73cd5f32cdb7ff068fa6a1be1ad45fc9cb9623c1fd1ce507793df md5: e4e25350ef3367708d502085bf19c7ae @@ -3873,42 +3198,6 @@ packages: - zstd >=1.5.7,<1.6.0a0 size: 433687 timestamp: 1786599629846 -- pypi: ../sequince - name: sequince - requires_dist: - - acai-control>=0.1.0 - - scipy>=1.16 - - matplotlib>=3.5 - - numpy>=1.25.2 - - minipcn>=0.3.0a1 - - array-api-compat>=1.13 - - array-api-extra>=0.10 - - optree>=0.19 - - orng>=0.2.1 - - jax>0.5.3 ; extra == 'jax' - - jaxlib ; extra == 'jax' - - blackjax>=1.2 ; extra == 'blackjax' - - emcee>=3.0 ; extra == 'emcee' - - eryn>=1.2.6 ; extra == 'eryn' - - numpy<2.4 ; extra == 'eryn' - - corner ; extra == 'corner' - - h5py>=3 ; extra == 'hdf5' - requires_python: '>=3.11' -- pypi: ../sequince-density - name: sequince-density - requires_dist: - - array-api-compat>=1.5 - - numpy>=1.25.2 - - orng>=0.2.0a2 - - sequince - - scikit-learn>=1.4 ; extra == 'gmm' - - torch>=2 ; extra == 'zuko' - - zuko>=1.6 ; extra == 'zuko' - - jax>0.5.3 ; extra == 'flowjax' - - flowjax ; extra == 'flowjax' - - equinox ; extra == 'flowjax' - - h5py>=3 ; extra == 'flowjax' - requires_python: '>=3.11' - pypi: git+https://github.com/sequince-dev/sequince-density.git?branch=main#9c57f37db95d702eb75fc8f53d5f656db0ac7de0 name: sequince-density version: 0.1.dev32+g9c57f37db @@ -3925,14 +3214,6 @@ packages: - equinox ; extra == 'flowjax' - h5py>=3 ; extra == 'flowjax' requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/01/b9/41642877fe741db56d240833c8822188b663c4c5d52beb087964774035d4/wrapt-2.5.1-cp313-cp313-macosx_11_0_arm64.whl - name: wrapt - version: 2.5.1 - sha256: ab6db7d2a18d366cc57c2228253cf26443190aba0a6dd0939b3c1e8ac6e29e2c - requires_dist: - - pytest ; extra == 'dev' - - setuptools ; extra == 'dev' - requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/07/ef/9b77fc80fc9bf28978d5649a3c71c0e77efe9e1966e5f608e7c3d5ba86b4/acai_control-0.1.0-py3-none-any.whl name: acai-control version: 0.1.0 @@ -3972,43 +3253,6 @@ packages: - trove-classifiers>=2024.10.12 ; extra == 'tests' - defusedxml ; extra == 'xmp' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/18/53/84099323c2ec4be98d935f63c033ac4151ee83836ca1050ede3b3aadf155/joblib-1.6.0-py3-none-any.whl - name: joblib - version: 1.6.0 - sha256: 3dbbf9f6e4b592a2357b854608e980fe6390d131d7a82f011a377ef2ebef7aba - requires_dist: - - cloudpickle>=3.0 - - distributed ; extra == 'test' - - lz4 ; extra == 'test' - - numpy ; extra == 'test' - - memory-profiler ; extra == 'test' - - pytest ; extra == 'test' - - pytest-asyncio ; extra == 'test' - - pytest-cov ; extra == 'test' - - pytest-run-parallel ; extra == 'test' - - pytest-timeout ; extra == 'test' - - threadpoolctl ; extra == 'test' - - distributed ; extra == 'docs' - - lz4 ; extra == 'docs' - - numpy ; extra == 'docs' - - numpydoc ; extra == 'docs' - - matplotlib ; extra == 'docs' - - pandas ; extra == 'docs' - - psutil ; extra == 'docs' - - sphinx ; extra == 'docs' - - pydata-sphinx-theme ; extra == 'docs' - - sphinx-gallery ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-design ; extra == 'docs' - - tqdm ; extra == 'docs' - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/1b/52/859ec72a8a22d616307a933de7edbb9a14b004873a7ac3d830f29dc96880/array_api_extra-0.11.5-py3-none-any.whl - name: array-api-extra - version: 0.11.5 - sha256: 872814852b992595ee84ed1356bebb74c6c1b12b6c1546f0169cc4b5ceb59b60 - requires_dist: - - array-api-compat>=1.15.0,<2 - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/1e/cf/83c3377e7018ee3c455153d9560c6a972b0a407075868f5e58979fc640a2/minipcn-0.3.0a1-py3-none-any.whl name: minipcn version: 0.3.0a1 @@ -4030,17 +3274,6 @@ packages: version: 3.4.0 sha256: 69bb92469f86a1565195ece4ac0323943e83477171b91d24c35afe028a90d7cd requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/23/e5/688703d357e5393f708d98eb189fd415ae69e39f6de03c6bd4005aef6118/scikit_learn-1.9.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - name: scikit-learn - version: 1.9.1 - sha256: 55e79d6e9b0923f1a978179822bd43d7f5543f45e970a00fe861f43486380aba - requires_dist: - - numpy>=1.24.1 - - scipy>=1.10.0 - - joblib>=1.4.0 - - narwhals>=2.0.1 - - threadpoolctl>=3.5.0 - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/24/ec/014b428c3a05837643768d08aeb8fb1289d119d3f9f6fba479dffae05dbc/jaxlib-0.11.2-cp313-cp313-manylinux_2_27_x86_64.whl name: jaxlib version: 0.11.2 @@ -4050,36 +3283,6 @@ packages: - numpy>=2.0 - ml-dtypes>=0.5.0 requires_python: '>=3.12' -- pypi: https://files.pythonhosted.org/packages/26/be/fc2924aa70b08fc7ce2555c290cddea18bf9b03695a681a54453cd66f5b4/aspire_inference-0.1.0-py3-none-any.whl - name: aspire-inference - version: 0.1.0 - sha256: c7fd738d423b5eef8000de0f8fe41ff459ff0dd926333aeb1182adbe1eb2ea11 - requires_dist: - - matplotlib - - numpy - - array-api-compat - - array-api-extra - - wrapt - - h5py - - orng - - scipy ; extra == 'scipy' - - jax ; extra == 'jax' - - jaxlib<0.8.2 ; python_full_version < '3.12' and extra == 'jax' - - jaxlib ; python_full_version >= '3.12' and extra == 'jax' - - flowjax ; extra == 'jax' - - torch ; extra == 'torch' - - zuko ; extra == 'torch' - - tqdm ; extra == 'torch' - - minipcn[array-api]>=0.2.0a3 ; extra == 'minipcn' - - emcee ; extra == 'emcee' - - blackjax ; extra == 'blackjax' - - fastprogress<1.1.0 ; extra == 'blackjax' - - pytest ; extra == 'test' - - pytest-requires ; extra == 'test' - - pytest-cov ; extra == 'test' - - corner ; extra == 'corner' - - pandas ; extra == 'pandas' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/2a/f5/769f36d14922b8071a43e95d24d18b6bdafad10d7f5cf647867e1ac052bc/scipy-1.18.1-cp313-cp313-macosx_12_0_arm64.whl name: scipy version: 1.18.1 @@ -4126,59 +3329,6 @@ packages: - ruff>=0.12.0 ; extra == 'dev' - cython-lint>=0.12.2 ; extra == 'dev' requires_python: '>=3.12' -- pypi: https://files.pythonhosted.org/packages/2f/81/3c6392c03665d2899457a76e535a9a6f597dddddf3220fd2e1d790da88c5/scikit_learn-1.9.1-cp313-cp313-macosx_12_0_arm64.whl - name: scikit-learn - version: 1.9.1 - sha256: 61cd968ab831a76d0ecbaf0347ab2270268716da28f94fd022497e3d6f205f13 - requires_dist: - - numpy>=1.24.1 - - scipy>=1.10.0 - - joblib>=1.4.0 - - narwhals>=2.0.1 - - threadpoolctl>=3.5.0 - requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/30/b4/cd473e0a48427003733e92bc3e8077081ba537eb33f7c658f2b7bef63776/fonttools-4.67.0-cp313-cp313-macosx_10_13_universal2.whl - name: fonttools - version: 4.67.0 - sha256: 8239e2ca24878715a19f061d065b5721e87da81d145e48b3418f771a469b5a24 - requires_dist: - - lxml>=4.0 ; extra == 'lxml' - - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' - - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' - - zopfli>=0.1.4 ; extra == 'woff' - - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'unicode' - - lz4>=1.7.4.2 ; extra == 'graphite' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' - - pycairo ; extra == 'interpolatable' - - matplotlib ; extra == 'plot' - - sympy ; extra == 'symfont' - - xattr ; sys_platform == 'darwin' and extra == 'type1' - - skia-pathops>=0.5.0 ; extra == 'pathops' - - uharfbuzz>=0.45.0 ; extra == 'repacker' - - lxml>=4.0 ; extra == 'all' - - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' - - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' - - zopfli>=0.1.4 ; extra == 'all' - - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'all' - - lz4>=1.7.4.2 ; extra == 'all' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' - - pycairo ; extra == 'all' - - matplotlib ; extra == 'all' - - sympy ; extra == 'all' - - xattr ; sys_platform == 'darwin' and extra == 'all' - - skia-pathops>=0.5.0 ; extra == 'all' - - uharfbuzz>=0.45.0 ; extra == 'all' - requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/37/62/20edad100b93552ec5c172e509a9db898a73d5043ae701fcb6e9986f9d33/wrapt-2.5.1-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl - name: wrapt - version: 2.5.1 - sha256: f1630201b0e2a96bb26304b7adfbd91a4ef486abb5a4c48377444a0bed749f37 - requires_dist: - - pytest ; extra == 'dev' - - setuptools ; extra == 'dev' - requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/38/bb/d215ee7c73b61497b28a5503f9f53523f294fcc936762b7caf90e0c1c2b5/pyparsing-3.3.3-py3-none-any.whl name: pyparsing version: 3.3.3 @@ -4260,11 +3410,6 @@ packages: - ruff>=0.12.0 ; extra == 'dev' - cython-lint>=0.12.2 ; extra == 'dev' requires_python: '>=3.12' -- pypi: https://files.pythonhosted.org/packages/43/3f/f88a53f60a472b46f4023f56d204dd7de33d34c5d2acbfa0d70a674e639e/threadpoolctl-3.7.0-py3-none-any.whl - name: threadpoolctl - version: 3.7.0 - sha256: cd8b60b5641b45c67bbf73c64c843235fc2d8a480c87389f52f5dbee893b86be - requires_python: '>=3.9' - pypi: https://files.pythonhosted.org/packages/47/7f/f0d33a414e2d84fca39438a30f0588c32f7365746e903293cadad9d52b0d/jaxlib-0.11.2-cp313-cp313-macosx_11_0_arm64.whl name: jaxlib version: 0.11.2 @@ -4332,14 +3477,6 @@ packages: - pylint>=2.6.0 ; extra == 'dev' - pyink ; extra == 'dev' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/5a/17/cebee01d1c0c1441174cf0456ddc91b280d79acb65340c05e41d77866ee8/python_dateutil-3.0.0-py2.py3-none-any.whl - name: python-dateutil - version: 3.0.0 - sha256: 3c79630202e4152c6add678446984236efe4f57e84d8e892aab0637bab82e9fd - requires_dist: - - six>=1.6 - - tzdata - requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' - pypi: https://files.pythonhosted.org/packages/63/34/ba1c580383c9eada3711951fef0795c80b829a078d72188184bcab9dd527/packaging-26.3-py3-none-any.whl name: packaging version: '26.3' @@ -4393,11 +3530,6 @@ packages: version: 1.15.0 sha256: 7b1b9c53269061403fd5f45a8de349f16e7887653328bfa0c5f2d45299ff0a8e requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/88/39/799be3f2f0f38cc727ee3b4f1445fe6d5e4133064ec2e4115069418a5bb6/cloudpickle-3.1.2-py3-none-any.whl - name: cloudpickle - version: 3.1.2 - sha256: 9acb47f6afd73f60dc1df93bb801b472f05ff42fa6c84167d25cb206be1fbf4a - requires_python: '>=3.8' - pypi: https://files.pythonhosted.org/packages/89/a5/da8ae6c6f1babe4b68e3e55d43d39b529e29774f10e0910671a6b8c86eb8/ml_dtypes-0.6.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: ml-dtypes version: 0.6.0 @@ -4529,11 +3661,6 @@ packages: - numpy ; extra == 'docs' - torch ; extra == 'docs' requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/94/21/1e5995a1c920cce14e4bffae20c665ec10e7ed03ab25e006cd741092b718/tzdata-2026.5-py2.py3-none-any.whl - name: tzdata - version: '2026.5' - sha256: b683bd1b6659ddcd810ff02ad09ba821d4bf1065072805063eb35c49617905ac - requires_python: '>=2' - pypi: https://files.pythonhosted.org/packages/95/10/ff159867f522cd98e039e748c5e9777446e8b797a79be691c6b730676094/zuko-1.6.0-py3-none-any.whl name: zuko version: 1.6.0 @@ -4551,38 +3678,6 @@ packages: - sphinx==7.3.7 ; extra == 'docs' - pytest>=8.0.0 ; extra == 'test' requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/98/c8/ccede3dcc4f274b80fb49199eed1ef34ba05566c8b71976b9d1f111da2e3/pillow-13.0.0-cp313-cp313-macosx_11_0_arm64.whl - name: pillow - version: 13.0.0 - sha256: f11a3c1358bb3c68012a7b1f41b223c3db9f7bfde90b481df028cfe1c3363313 - requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx>=8.2 ; extra == 'docs' - - sphinx-autobuild ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - arro3-compute ; extra == 'test-arrow' - - arro3-core ; extra == 'test-arrow' - - nanoarrow ; extra == 'test-arrow' - - pyarrow ; extra == 'test-arrow' - - coverage>=7.4.2 ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - psutil ; (sys_platform == 'darwin' and extra == 'tests') or (sys_platform == 'linux' and extra == 'tests') - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - pytest-xdist ; extra == 'tests' - - setuptools ; extra == 'tests' - - trove-classifiers>=2024.10.12 ; extra == 'tests' - - defusedxml ; extra == 'xmp' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/99/a0/24f50e0cfd432b47103677c6fc6b220acc716c4b20dc9d6021a01d7924fa/blackjax-1.7.1-py3-none-any.whl name: blackjax version: 1.7.1 @@ -4611,40 +3706,6 @@ packages: - envwrap ; extra == 'telegram' - ipywidgets>=6 ; extra == 'notebook' requires_python: '>=3.8' -- pypi: https://files.pythonhosted.org/packages/a8/26/939ae9874dd44116f2ecf61cb0caf029e3004ec1ed311a86389dee3450be/fonttools-4.67.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl - name: fonttools - version: 4.67.0 - sha256: 50c41e30aa2e0130b80d1a58ac0f3ea7c02a854a70dbea1ff8d88e0ce524806f - requires_dist: - - lxml>=4.0 ; extra == 'lxml' - - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'woff' - - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'woff' - - zopfli>=0.1.4 ; extra == 'woff' - - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'unicode' - - lz4>=1.7.4.2 ; extra == 'graphite' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'interpolatable' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'interpolatable' - - pycairo ; extra == 'interpolatable' - - matplotlib ; extra == 'plot' - - sympy ; extra == 'symfont' - - xattr ; sys_platform == 'darwin' and extra == 'type1' - - skia-pathops>=0.5.0 ; extra == 'pathops' - - uharfbuzz>=0.45.0 ; extra == 'repacker' - - lxml>=4.0 ; extra == 'all' - - brotli>=1.0.1 ; platform_python_implementation == 'CPython' and extra == 'all' - - brotlicffi>=0.8.0 ; platform_python_implementation != 'CPython' and extra == 'all' - - zopfli>=0.1.4 ; extra == 'all' - - unicodedata2>=18.0.0 ; python_full_version < '3.16' and extra == 'all' - - lz4>=1.7.4.2 ; extra == 'all' - - scipy ; platform_python_implementation != 'PyPy' and extra == 'all' - - munkres ; platform_python_implementation == 'PyPy' and extra == 'all' - - pycairo ; extra == 'all' - - matplotlib ; extra == 'all' - - sympy ; extra == 'all' - - xattr ; sys_platform == 'darwin' and extra == 'all' - - skia-pathops>=0.5.0 ; extra == 'all' - - uharfbuzz>=0.45.0 ; extra == 'all' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/a9/29/2a47b700545aca050e0ed73c89ba21e08407e11f5f42a567421b220de6c1/matplotlib-3.11.2-cp313-cp313-macosx_11_0_arm64.whl name: matplotlib version: 3.11.2 @@ -4800,32 +3861,6 @@ packages: - skia-pathops>=0.5.0 ; extra == 'all' - uharfbuzz>=0.45.0 ; extra == 'all' requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/d0/09/cab56a48b7e83609831c96f36658f9e30421877875071f2413eb591cf756/array_api_compat-1.16.0-py3-none-any.whl - name: array-api-compat - version: 1.16.0 - sha256: 0464934d7d5f1e9b728b2e248da52400630b1fcb46b70073eab3c7ae084290aa - requires_python: '>=3.10' -- pypi: https://files.pythonhosted.org/packages/d1/89/5d4c86da1130d9059681e5b6cd7645df5c10279a6a079c5c37dcb2cc6f3f/narwhals-2.27.1-py3-none-any.whl - name: narwhals - version: 2.27.1 - sha256: d057df13f5852b8e157596e82eb5e955fad267425df5e420e0ee9863da483b31 - requires_dist: - - cudf-cu12>=24.10.0 ; sys_platform == 'linux' and extra == 'cudf' - - dask[dataframe]>=2024.8 ; extra == 'dask' - - duckdb>=1.1 ; extra == 'duckdb' - - ibis-framework>=6.0.0 ; extra == 'ibis' - - packaging>=21.3 ; extra == 'ibis' - - pyarrow-hotfix>=0.7 ; extra == 'ibis' - - modin>=0.22.0 ; extra == 'modin' - - pandas>=1.3.4 ; extra == 'pandas' - - polars>=0.20.4 ; extra == 'polars' - - pyarrow>=13.0.0 ; extra == 'pyarrow' - - pyspark>=3.5.0 ; extra == 'pyspark' - - pyspark[connect]>=3.5.0 ; extra == 'pyspark-connect' - - narwhals[duckdb] ; extra == 'sql' - - sqlparse>=0.5.5 ; extra == 'sql' - - sqlframe>=3.22.0,!=3.39.3 ; extra == 'sqlframe' - requires_python: '>=3.10' - pypi: https://files.pythonhosted.org/packages/d6/cb/17a130e548ee1777f2a66e09240c531a9bf79454add7ef1198fe1e41c412/corner-2.3.0-py3-none-any.whl name: corner version: 2.3.0 @@ -4871,38 +3906,6 @@ packages: requires_dist: - six>=1.5 requires_python: '>=2.7,!=3.0.*,!=3.1.*,!=3.2.*' -- pypi: https://files.pythonhosted.org/packages/ef/fe/f5cdaa2d1c4086e757430f368c271a58ee29cfe7378e7ae7b9d964015c25/pillow-13.0.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl - name: pillow - version: 13.0.0 - sha256: 5f56499c1a74d2b862beb0c33b8016f99d095858455df9d21583bbbc1c15b582 - requires_dist: - - furo ; extra == 'docs' - - olefile ; extra == 'docs' - - sphinx>=8.2 ; extra == 'docs' - - sphinx-autobuild ; extra == 'docs' - - sphinx-copybutton ; extra == 'docs' - - sphinx-inline-tabs ; extra == 'docs' - - sphinxext-opengraph ; extra == 'docs' - - olefile ; extra == 'fpx' - - olefile ; extra == 'mic' - - arro3-compute ; extra == 'test-arrow' - - arro3-core ; extra == 'test-arrow' - - nanoarrow ; extra == 'test-arrow' - - pyarrow ; extra == 'test-arrow' - - coverage>=7.4.2 ; extra == 'tests' - - defusedxml ; extra == 'tests' - - markdown2 ; extra == 'tests' - - olefile ; extra == 'tests' - - packaging ; extra == 'tests' - - psutil ; (sys_platform == 'darwin' and extra == 'tests') or (sys_platform == 'linux' and extra == 'tests') - - pytest ; extra == 'tests' - - pytest-cov ; extra == 'tests' - - pytest-timeout ; extra == 'tests' - - pytest-xdist ; extra == 'tests' - - setuptools ; extra == 'tests' - - trove-classifiers>=2024.10.12 ; extra == 'tests' - - defusedxml ; extra == 'xmp' - requires_python: '>=3.11' - pypi: https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: pillow version: 12.3.0 diff --git a/pyproject.toml b/pyproject.toml index 46358eb..4d33e4d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,26 +34,6 @@ pytorch-cpu = "*" # Use the public repository until sequince-density is released on PyPI. sequince-density = { git = "https://github.com/sequince-dev/sequince-density.git", branch = "main", extras = ["zuko"] } -# Local research environment for the Aspire posterior-expansion examples. -# Keep this separate from cpu/flow so released Sequince is not selected. -[tool.pixi.feature.aspire.dependencies] -pytest = "*" -pytorch-cpu = "*" -libblas = { version = "*", build = "*openblas" } - -[tool.pixi.feature.aspire.pypi-dependencies] -sequince = { path = "../sequince", editable = true, extras = ["corner", "hdf5"] } -sequince-density = { path = "../sequince-density", editable = true, extras = ["zuko", "gmm"] } -aspire-inference = { version = ">=0.1.0", extras = ["torch", "minipcn"] } - -[tool.pixi.feature.aspire.activation.env] -MPLBACKEND = "Agg" - -[tool.pixi.feature.aspire.tasks] -aspire-multimodal = "python examples/aspire_analyses/multimodal.py" -aspire-broadening = "python examples/aspire_analyses/broadening_example.py" -aspire-initial = "python examples/aspire_analyses/initial_example.py" - [tool.pixi.feature.docs.dependencies] sphinx = "8.2.*" sphinx-book-theme = "1.1.*" @@ -67,7 +47,6 @@ pytest = "*" default = { features = ["cpu"], solve-group = "cpu" } jax = { features = ["cpu", "jax"], solve-group = "cpu" } flow = ["cpu", "flow"] -aspire = ["aspire"] docs = ["docs"] check = ["check"]