From 7bdeaff6e8a2c5cbdb01aed817c4a66605cd8abc Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 10 May 2025 11:08:09 -0400 Subject: [PATCH 01/60] Pyodide: force only one thread --- src/lib.rs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index dad6d95648..e80d04f083 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -703,5 +703,21 @@ fn rustworkx(py: Python<'_>, m: &Bound) -> PyResult<()> { m.add_class::()?; m.add_class::()?; m.add_wrapped(wrap_pymodule!(generators::generators))?; + #[cfg(target_os = "emscripten")] + setup_rayon_for_pyodide(); Ok(()) } + +#[cfg(target_os = "emscripten")] +static PYODIDE_INIT: std::sync::Once = std::sync::Once::new(); + +#[cfg(target_os = "emscripten")] +pub fn setup_rayon_for_pyodide() { + PYODIDE_INIT.call_once(|| { + rayon::ThreadPoolBuilder::new() + .num_threads(1) + .use_current_thread() + .build_global() + .expect("failing setting up threads for pyodide"); + }); +} From 7ce8078d3d76cf5c83634a3a2f7cb9e2a7006da4 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 10 May 2025 23:24:17 -0400 Subject: [PATCH 02/60] Add .cargo/config.toml --- .cargo/config.toml | 10 ++++++++++ Cargo.toml | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index d47f983e47..e8d250e937 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -9,3 +9,13 @@ rustflags = [ "-C", "link-arg=-undefined", "-C", "link-arg=dynamic_lookup", ] + +[target.wasm32-unknown-emscripten] +rustflags = [ + "-C", "target-feature=+atomics,+bulk-memory,+mutable-globals", + "-C", "link-arg=-s", "-C", "link-arg=ALLOW_MEMORY_GROWTH=1", + "-C", "link-arg=-s", "-C", "link-arg=MODULARIZE=1", + "-C", "link-arg=-s", "-C", "link-arg=EXPORT_NAME=createModule", + "-C", "link-arg=-s", "-C", "link-arg=EXPORT_ES6=1", + "-C", "link-arg=-s", "-C", "link-arg=ASSERTIONS=1" +] \ No newline at end of file diff --git a/Cargo.toml b/Cargo.toml index 2b2c09c0b0..fb7d64731c 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,5 +75,5 @@ default-features = false features = ["multi_thread"] [profile.release] -lto = 'fat' +lto = "fat" codegen-units = 1 From b440e6bdb4e4563b82dd378f9ae83b933db92762 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 00:28:13 -0400 Subject: [PATCH 03/60] Unstable feature that makes rayon work --- .cargo/config.toml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index e8d250e937..d73c9f2ca4 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -18,4 +18,7 @@ rustflags = [ "-C", "link-arg=-s", "-C", "link-arg=EXPORT_NAME=createModule", "-C", "link-arg=-s", "-C", "link-arg=EXPORT_ES6=1", "-C", "link-arg=-s", "-C", "link-arg=ASSERTIONS=1" -] \ No newline at end of file +] + +[unstable] +build-std = ["std", "panic_abort"] \ No newline at end of file From e70b2638f2fe169fc5cbd899611331e5e80cd373 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 11:45:48 -0400 Subject: [PATCH 04/60] Newline --- .cargo/config.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index d73c9f2ca4..24fd64b189 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -21,4 +21,4 @@ rustflags = [ ] [unstable] -build-std = ["std", "panic_abort"] \ No newline at end of file +build-std = ["std", "panic_abort"] From 76f5dffa4cf53a3be4cf147a638e699cb5f15cfa Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 12:12:35 -0400 Subject: [PATCH 05/60] Document pyodide --- docs/source/install.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/source/install.rst b/docs/source/install.rst index aeaace305e..f88767817a 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -113,6 +113,10 @@ source. - i686 or x86_64 - :ref:`tier-2` (Python < 3.10), :ref:`tier-3` (Python >= 3.10) - + * - Pyodide + - WASM (Emscripten) + - :ref:`tier-experimental` + - .. _manylinux 2014: https://peps.python.org/pep-0599/> @@ -166,6 +170,18 @@ functioning Python environment and may require a C/C++ compiler or additional programs to build dependencies from source as part of the installation process. Support for these platforms are best effort only. +.. _tier-experimental: + +Tier Experimental +------ + +Tier Experimental platforms are not tested upstream as part of the development process. +Pre-compiled binaries are built by the external community in separate repositories. Not all of rustworkx might compile for +platforms of this tier and features can be removed. Often, platforms in this tier use unstable features +from the Rust compiler and might break at any time. Support for these platforms are best effort only. + +Currently, the only platform in this tier is Pyodide, which is a port of Python that can run in the browser and on Node.js. + Using rustworkx =============== From 4b17893fabefd3b2f2de036a2d132ae5f686ad99 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 12:19:14 -0400 Subject: [PATCH 06/60] Add release note for pyodide --- releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml diff --git a/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml b/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml new file mode 100644 index 0000000000..1a87815cd9 --- /dev/null +++ b/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml @@ -0,0 +1,8 @@ +--- +upgrade: + - | + `rustworkx` now has experimental support for `Pyodide `__. + Pyodide is a Python distribution for WebAssembly that runs in the browser. + Although higly unstable, this is the first release that compiles with Pyodide and will allow + users to run `rustworkx` in web applications. Because Pyodide wheels are not available in PyPI, + we are working with the Pyodide team to publish them in the Pyodide package index. From 0e3b0ce34c6ef318e5bf3cdc0fe8b96cdedde5eb Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 15:59:40 -0400 Subject: [PATCH 07/60] Fix separator --- docs/source/install.rst | 2 +- releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/source/install.rst b/docs/source/install.rst index f88767817a..42bfb2b806 100644 --- a/docs/source/install.rst +++ b/docs/source/install.rst @@ -173,7 +173,7 @@ Support for these platforms are best effort only. .. _tier-experimental: Tier Experimental ------- +----------------- Tier Experimental platforms are not tested upstream as part of the development process. Pre-compiled binaries are built by the external community in separate repositories. Not all of rustworkx might compile for diff --git a/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml b/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml index 1a87815cd9..7e81fdb3d0 100644 --- a/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml +++ b/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml @@ -3,6 +3,6 @@ upgrade: - | `rustworkx` now has experimental support for `Pyodide `__. Pyodide is a Python distribution for WebAssembly that runs in the browser. - Although higly unstable, this is the first release that compiles with Pyodide and will allow - users to run `rustworkx` in web applications. Because Pyodide wheels are not available in PyPI, + This is the first release that compiles with Pyodide and will allow users to run `rustworkx` + in web applications. Because Pyodide wheels are not available in PyPI, we are working with the Pyodide team to publish them in the Pyodide package index. From 3527a6fb58d981fcb1f6cdacc5b9a11a517c7cf9 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 23:06:14 -0400 Subject: [PATCH 08/60] Consolidate the bare minimum of flags --- .cargo/config.toml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.cargo/config.toml b/.cargo/config.toml index 24fd64b189..c44ff90bc1 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -13,11 +13,8 @@ rustflags = [ [target.wasm32-unknown-emscripten] rustflags = [ "-C", "target-feature=+atomics,+bulk-memory,+mutable-globals", - "-C", "link-arg=-s", "-C", "link-arg=ALLOW_MEMORY_GROWTH=1", - "-C", "link-arg=-s", "-C", "link-arg=MODULARIZE=1", - "-C", "link-arg=-s", "-C", "link-arg=EXPORT_NAME=createModule", - "-C", "link-arg=-s", "-C", "link-arg=EXPORT_ES6=1", - "-C", "link-arg=-s", "-C", "link-arg=ASSERTIONS=1" + "-C", "link-arg=-sSIDE_MODULE=2", + "-C", "link-arg=-sWASM_BIGINT", ] [unstable] From 72ceb1a9bceda47534fc166e765c60154cc4cc00 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 11 May 2025 23:46:11 -0400 Subject: [PATCH 09/60] Add emscripten-wasm-eh flag --- .cargo/config.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/.cargo/config.toml b/.cargo/config.toml index c44ff90bc1..1c09ed667c 100644 --- a/.cargo/config.toml +++ b/.cargo/config.toml @@ -15,6 +15,7 @@ rustflags = [ "-C", "target-feature=+atomics,+bulk-memory,+mutable-globals", "-C", "link-arg=-sSIDE_MODULE=2", "-C", "link-arg=-sWASM_BIGINT", + "-Z", "emscripten-wasm-eh", ] [unstable] From 65d4eb8f2a6da5c3cf668618e210e7b6c3e28106 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 18:59:53 -0400 Subject: [PATCH 10/60] Use pixi to have a reproducible pyodide build --- .gitattributes | 2 + .gitignore | 7 + pixi.lock | 1618 ++++++++++++++++++++++++++++++++++++++++++++++++ pyproject.toml | 42 +- 4 files changed, 1662 insertions(+), 7 deletions(-) create mode 100644 pixi.lock diff --git a/.gitattributes b/.gitattributes index 091a2bbb4f..a55fee526b 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1,4 @@ docs/* linguist-documentation releasenotes/* linguist-documentation +# SCM syntax highlighting & preventing 3-way merges +pixi.lock merge=binary linguist-language=YAML linguist-generated=true diff --git a/.gitignore b/.gitignore index ee3e0af630..d1a7bfa375 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,10 @@ rustworkx-core/Cargo.lock **/.DS_Store venv/ .python-version + +# pixi environments +.pixi +*.egg-info + +# pyodide xbuild +.xbuildenv \ No newline at end of file diff --git a/pixi.lock b/pixi.lock new file mode 100644 index 0000000000..48cebde8bf --- /dev/null +++ b/pixi.lock @@ -0,0 +1,1618 @@ +version: 6 +environments: + default: + 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/_libgcc_mutex-0.1-conda_forge.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.1.0-pyh5d45ec7_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-118-he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20-20.1.4-default_h1df26ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20.1.4-default_hfa515fb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-20.1.4-default_h0982aa1_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.0-pyh707e725_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/distlib-0.3.9-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-3.1.58-h84d6215_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.1.0-h4393ad2_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp20.1-20.1.4-default_h1df26ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.1.0-h4c094af_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm20-20.1.4-he9d0ab4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.1.0-h97b714f_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.2-hee588c1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.1.0-h4c094af_102.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h4bc477f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lld-20.1.4-hd51abae_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20-20.1.4-h48f18f5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20.1.4-h84d6215_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.13.0-hf235a45_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py312h680f630_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.2-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0a7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-7_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.1.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.10-py312h66e93f0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.3-pyhf21524f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.3-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.3-h1a15894_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.13.2-h0e9735f_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.17.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h66e93f0_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda + - pypi: https://files.pythonhosted.org/packages/b0/d9/7c338b923c53d431bc837b5b787052fef9ae68a56fe91e325aac0d48226e/numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl +packages: +- conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 + sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 + md5: d7c89558ba9fa0495403155b64376d81 + license: None + purls: [] + size: 2562 + timestamp: 1578324546067 +- conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 + build_number: 16 + sha256: fbe2c5e56a653bebb982eda4876a9178aedfc2b545f25d0ce9c4c0b508253d22 + md5: 73aaf86a425cc6e73fcf236a5a46396d + depends: + - _libgcc_mutex 0.1 conda_forge + - libgomp >=7.5.0 + constrains: + - openmp_impl 9999 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 23621 + timestamp: 1650670423406 +- conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 + md5: 2934f256a8acfe48f6ebb4fce6cde29c + depends: + - python >=3.9 + - typing-extensions >=4.0.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/annotated-types?source=hash-mapping + size: 18074 + timestamp: 1733247158254 +- conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda + sha256: b28e0f78bb0c7962630001e63af25a89224ff504e135a02e50d4d80b6155d386 + md5: 9749a2c77a7c40d432ea0927662d7e52 + depends: + - exceptiongroup >=1.0.2 + - idna >=2.8 + - python >=3.9 + - sniffio >=1.1 + - typing_extensions >=4.5 + - python + constrains: + - trio >=0.26.1 + - uvloop >=0.21 + license: MIT + license_family: MIT + purls: + - pkg:pypi/anyio?source=hash-mapping + size: 126346 + timestamp: 1742243108743 +- conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.1.0-pyh5d45ec7_0.conda + sha256: f4be6666aa141e734c40ef9f2cc554e7042bbc4c3626af36c489e991c69a43b4 + md5: 30fb346da1bfa660012f3418bae7833a + depends: + - leb128 + - packaging + - pyodide-cli + - python >=3.12 + - typer-slim + - wheel + - python + license: MPL-2.0 + license_family: MOZILLA + purls: + - pkg:pypi/auditwheel-emscripten?source=hash-mapping + size: 36278 + timestamp: 1743805929606 +- conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-118-he02047a_1.conda + sha256: 1da7491c524e9c0a41ff3734ded249f4615b9ca63982301a6abc425e5e5a9180 + md5: 096a5c01f3ae8373e27ba4c3bb8523f0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 5804456 + timestamp: 1722550497517 +- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_4.conda + sha256: 194d771be287dc973f6057c0747010ce28adf960f38d6e03ce3e828d7b74833e + md5: ef67db625ad0d2dce398837102f875ed + depends: + - ld_impl_linux-64 2.43 h712a8e2_4 + - sysroot_linux-64 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 6111717 + timestamp: 1740155471052 +- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + sha256: f2a59ccd20b4816dea9a2a5cb917eb69728271dbf1aeab4e1b7e609330a50b6f + md5: b0b867af6fc74b2a0aa206da29c0f3cf + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + constrains: + - libbrotlicommon 1.1.0 hb9d3cd8_2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 349867 + timestamp: 1725267732089 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d + md5: 62ee74e96c5ebb0af99386de58cf9553 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 252783 + timestamp: 1720974456583 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda + sha256: 2a70ed95ace8a3f8a29e6cd1476a943df294a7111dfb3e152e3478c4c889b7ac + md5: 95db94f75ba080a22eb623590993167b + depends: + - __unix + license: ISC + purls: [] + size: 152283 + timestamp: 1745653616541 +- conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + noarch: python + sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 + md5: 9b347a7ec10940d3f7941ff6c460b551 + depends: + - cached_property >=1.5.2,<1.5.3.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 4134 + timestamp: 1615209571450 +- conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + sha256: 6dbf7a5070cc43d90a1e4c2ec0c541c69d8e30a0e25f50ce9f6e4a432e42c5d7 + md5: 576d629e47797577ab0f1b351297ef4a + depends: + - python >=3.6 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/cached-property?source=hash-mapping + size: 11065 + timestamp: 1615209567874 +- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda + sha256: 52aa837642fd851b3f7ad3b1f66afc5366d133c1d452323f786b0378a391915c + md5: c33eeaaa33f45031be34cda513df39b6 + depends: + - python >=3.9 + license: ISC + purls: + - pkg:pypi/certifi?source=hash-mapping + size: 157200 + timestamp: 1746569627830 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 + md5: a861504bbea4161a9170b85d4d2be840 + depends: + - __glibc >=2.17,<3.0.a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - pycparser + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/cffi?source=hash-mapping + size: 294403 + timestamp: 1725560714366 +- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 + md5: 40fe4284b8b5835a9073a645139f35af + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/charset-normalizer?source=compressed-mapping + size: 50481 + timestamp: 1746214981991 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20.1.4-default_hfa515fb_0.conda + sha256: 5931227b657e46393e70e63ba7b42f34ba2f870d89bc7c2e3d1c85faee05e190 + md5: 171787632fe22a28f58af2ea2efe61af + depends: + - binutils_impl_linux-64 + - clang-20 20.1.4 default_h1df26ce_0 + - libgcc-devel_linux-64 + - sysroot_linux-64 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 24099 + timestamp: 1746074888590 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20-20.1.4-default_h1df26ce_0.conda + sha256: 0fc43c57a8a61424c079336aa9c7870355d8d0574280a10a74dac90438c3c8d0 + md5: 5401ebac37b610f8c6ffb074ab9ae57e + depends: + - __glibc >=2.17,<3.0.a0 + - libclang-cpp20.1 20.1.4 default_h1df26ce_0 + - libgcc >=13 + - libllvm20 >=20.1.4,<20.2.0a0 + - libstdcxx >=13 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 810614 + timestamp: 1746074830986 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-20.1.4-default_h0982aa1_0.conda + sha256: e4b18ab8835d54ea4b44d20da41e420d84521d5b9a2a019507ae5f5c11073c09 + md5: d16eef83db3fa90441c8607ea39011fa + depends: + - clang 20.1.4 default_hfa515fb_0 + - libstdcxx-devel_linux-64 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 24216 + timestamp: 1746074899002 +- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.0-pyh707e725_0.conda + sha256: 910f0e5e74a75f6e270b9dedd0f8ac55830250b0874f9f67605816fd069af283 + md5: 4d4f33c3d9e5a23a7f4795d327a5d1f0 + depends: + - __unix + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 87705 + timestamp: 1746951781787 +- conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 + md5: 962b9857ee8e7018c22f2776ffa0b2d7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/colorama?source=hash-mapping + size: 27011 + timestamp: 1733218222191 +- conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda + sha256: 0e160c21776bd881b79ce70053e59736f51036784fa43a50da10a04f0c1b9c45 + md5: 8d88f4a2242e6b96f9ecff9a6a05b2f1 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/distlib?source=hash-mapping + size: 274151 + timestamp: 1733238487461 +- conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-3.1.58-h84d6215_3.conda + sha256: ecec5c721720bfd0763e12bebf696ab79327e1d1cc7d13056b8da2b2feb6a0a8 + md5: 67d4b6102e464fc63a575f2bb4ec4074 + depends: + - __glibc >=2.17,<3.0.a0 + - binaryen >=118,<119.0a0 + - clang + - clangxx + - libgcc >=13 + - libstdcxx >=13 + - lld + - llvm-tools + - nodejs >=18 + - python * + - zlib + constrains: + - python >=3.9 + license: MIT OR NCSA OR MPL-2.0 + purls: [] + size: 118090569 + timestamp: 1725439283866 +- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda + sha256: ce61f4f99401a4bd455b89909153b40b9c823276aefcbb06f2044618696009ca + md5: 72e42d28960d875c7654614f8b50939a + depends: + - python >=3.9 + - typing_extensions >=4.6.0 + license: MIT and PSF-2.0 + purls: + - pkg:pypi/exceptiongroup?source=compressed-mapping + size: 21284 + timestamp: 1746947398083 +- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda + sha256: de7b6d4c4f865609ae88db6fa03c8b7544c2452a1aa5451eb7700aad16824570 + md5: 4547b39256e296bb758166893e909a7c + depends: + - python >=3.9 + license: Unlicense + purls: + - pkg:pypi/filelock?source=hash-mapping + size: 17887 + timestamp: 1741969612334 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.1.0-h4393ad2_2.conda + sha256: 99c545b842edd356d907c51ccd6f894ef6db042c6ebebefd14eb844f53ff8f73 + md5: 240c2af59f95792f60193c1cb9ee42c5 + depends: + - binutils_impl_linux-64 >=2.40 + - libgcc >=15.1.0 + - libgcc-devel_linux-64 15.1.0 h4c094af_102 + - libgomp >=15.1.0 + - libsanitizer 15.1.0 h97b714f_2 + - libstdcxx >=15.1.0 + - sysroot_linux-64 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 76467375 + timestamp: 1746642316078 +- conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda + sha256: f64b68148c478c3bfc8f8d519541de7d2616bf59d44485a5271041d40c061887 + md5: 4b69232755285701bc86a5afe4d9933a + depends: + - python >=3.9 + - typing_extensions + license: MIT + license_family: MIT + purls: + - pkg:pypi/h11?source=hash-mapping + size: 37697 + timestamp: 1745526482242 +- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + sha256: 0aa1cdc67a9fe75ea95b5644b734a756200d6ec9d0dff66530aec3d1c1e9df75 + md5: b4754fb1bdcb70c8fd54f918301582c6 + depends: + - hpack >=4.1,<5 + - hyperframe >=6.1,<7 + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/h2?source=hash-mapping + size: 53888 + timestamp: 1738578623567 +- conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba + md5: 0a802cb9888dd14eeefc611f05c40b6e + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hpack?source=hash-mapping + size: 30731 + timestamp: 1737618390337 +- conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda + sha256: 04d49cb3c42714ce533a8553986e1642d0549a05dc5cc48e0d43ff5be6679a5b + md5: 4f14640d58e2cc0aa0819d9d8ba125bb + depends: + - python >=3.9 + - h11 >=0.16 + - h2 >=3,<5 + - sniffio 1.* + - anyio >=4.0,<5.0 + - certifi + - python + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/httpcore?source=hash-mapping + size: 49483 + timestamp: 1745602916758 +- conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + sha256: cd0f1de3697b252df95f98383e9edb1d00386bfdd03fdf607fa42fe5fcb09950 + md5: d6989ead454181f4f9bc987d3dc4e285 + depends: + - anyio + - certifi + - httpcore 1.* + - idna + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/httpx?source=hash-mapping + size: 63082 + timestamp: 1733663449209 +- conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + sha256: 77af6f5fe8b62ca07d09ac60127a30d9069fdc3c68d6b256754d0ffb1f7779f8 + md5: 8e6923fc12f1fe8f8c4e5c9f343256ac + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/hyperframe?source=hash-mapping + size: 17397 + timestamp: 1737618427549 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda + sha256: 71e750d509f5fa3421087ba88ef9a7b9be11c53174af3aa4d06aff4c18b38e8e + md5: 8b189310083baabfb622af68fd9d3ae3 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc-ng >=12 + - libstdcxx-ng >=12 + license: MIT + license_family: MIT + purls: [] + size: 12129203 + timestamp: 1720853576813 +- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda + sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87 + md5: 39a4f67be3286c86d696df570b1201b7 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/idna?source=hash-mapping + size: 49765 + timestamp: 1733211921194 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda + sha256: 598951ebdb23e25e4cec4bbff0ae369cec65ead80b50bc08b441d8e54de5cf03 + md5: f4b39bf00c69f56ac01e020ebfac066c + depends: + - python >=3.9 + - zipp >=0.5 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-metadata?source=hash-mapping + size: 29141 + timestamp: 1737420302391 +- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda + sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b + md5: ad8527bf134a90e1c9ed35fa0b64318c + constrains: + - sysroot_linux-64 ==2.17 + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 + license_family: GPL + purls: [] + size: 943486 + timestamp: 1729794504440 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda + sha256: db73f38155d901a610b2320525b9dd3b31e4949215c870685fd92ea61b5ce472 + md5: 01f8d123c96816249efd255a31ad7712 + depends: + - __glibc >=2.17,<3.0.a0 + constrains: + - binutils_impl_linux-64 2.43 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 671240 + timestamp: 1740155456116 +- conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda + sha256: 1400274f49883f1c374472f912c960067f5e3201dc1608a4ee7d43074861c2f9 + md5: 8d4fc4a682e89e6d86ab58eeb617fdcd + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/leb128?source=hash-mapping + size: 9108 + timestamp: 1735272991001 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp20.1-20.1.4-default_h1df26ce_0.conda + sha256: 5c28304eaabc2aaeb47e2ba847ae41e0ad7e2a520a7e19a2c5e846c69b417a5b + md5: 96f8d5b2e94c9ba4fef19f1adf068a15 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libllvm20 >=20.1.4,<20.2.0a0 + - libstdcxx >=13 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 20897372 + timestamp: 1746074729385 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda + sha256: 33ab03438aee65d6aa667cf7d90c91e5e7d734c19a67aa4c7040742c0a13d505 + md5: db0bfbe7dd197b68ad5f30333bae6ce0 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - expat 2.7.0.* + license: MIT + license_family: MIT + purls: [] + size: 74427 + timestamp: 1743431794976 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda + sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab + md5: ede4673863426c0883c0063d853bbd85 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + purls: [] + size: 57433 + timestamp: 1743434498161 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda + sha256: 0024f9ab34c09629621aefd8603ef77bf9d708129b0dd79029e502c39ffc2195 + md5: ea8ac52380885ed41c1baa8f1d6d2b93 + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==15.1.0=*_2 + - libgomp 15.1.0 h767d61c_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 829108 + timestamp: 1746642191935 +- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.1.0-h4c094af_102.conda + sha256: f379980c3d48ceabf8ade0ebc5bdb4acd41e4b1c89023b673deb212e51b7a7f6 + md5: c49792270935d4024aef12f8e49f0f9c + depends: + - __unix + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 2733483 + timestamp: 1746642098272 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda + sha256: 0ab5421a89f090f3aa33841036bb3af4ed85e1f91315b528a9d75fab9aad51ae + md5: ddca86c7040dd0e73b2b69bd7833d225 + depends: + - libgcc 15.1.0 h767d61c_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 34586 + timestamp: 1746642200749 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda + sha256: 05fff3dc7e80579bc28de13b511baec281c4343d703c406aefd54389959154fb + md5: fbe7d535ff9d3a168c148e07358cd5b1 + depends: + - __glibc >=2.17,<3.0.a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 452635 + timestamp: 1746642113092 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda + sha256: 18a4afe14f731bfb9cf388659994263904d20111e42f841e9eea1bb6f91f4ab4 + md5: e796ff8ddc598affdf7c173d6145f087 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.1-only + purls: [] + size: 713084 + timestamp: 1740128065462 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm20-20.1.4-he9d0ab4_0.conda + sha256: 56a375dc36df1a4e2061e30ebbacbc9599a11277422a9a3145fd228f772bab53 + md5: 96c33bbd084ef2b2463503fb7f1482ae + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libxml2 >=2.13.7,<2.14.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 43004201 + timestamp: 1746052658083 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda + sha256: eeff241bddc8f1b87567dd6507c9f441f7f472c27f0860a07628260c000ef27c + md5: a76fd702c93cd2dfd89eff30a5fd45a8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - xz 5.8.1.* + - xz ==5.8.1=*_1 + license: 0BSD + purls: [] + size: 112845 + timestamp: 1746531470399 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_1.conda + sha256: f157a2da5f7bf2c5ce5a18c52ccc76c39f075f7fbb1584d585a8d25c1b17cb92 + md5: 5499e2dd2f567a818b9f111e47caebd2 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_1 + license: 0BSD + purls: [] + size: 441592 + timestamp: 1746531484594 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 + md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + depends: + - libgcc-ng >=12 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 33408 + timestamp: 1697359010159 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.1.0-h97b714f_2.conda + sha256: 3f573329431523b2510b9374f4048d87bb603536bc63f66910cd47b5347ea37f + md5: 4de6cfe35a4736a63e4f59602a8ebeec + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15.1.0 + - libstdcxx >=15.1.0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 4539916 + timestamp: 1746642248624 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.2-hee588c1_0.conda + sha256: 525d4a0e24843f90b3ff1ed733f0a2e408aa6dd18b9d4f15465595e078e104a2 + md5: 93048463501053a00739215ea3f36324 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + license: Unlicense + purls: [] + size: 916313 + timestamp: 1746637007836 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda + sha256: 6ae3d153e78f6069d503d9309f2cac6de5b93d067fc6433160a4c05226a5dad4 + md5: 1cb1c67961f6dd257eae9e9691b341aa + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc 15.1.0 h767d61c_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 3902355 + timestamp: 1746642227493 +- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.1.0-h4c094af_102.conda + sha256: 1a401e2256d30b3ef3c93a5f553442748a7045bd19360bb28eaf39458e24e7d6 + md5: 9931ac667ef44e13405ce95c601af775 + depends: + - __unix + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 14749051 + timestamp: 1746642129544 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda + sha256: 11bea86e11de7d6bce87589197a383344df3fa0a3552dab7e931785ff1159a5b + md5: 9d2072af184b5caa29492bf2344597bb + depends: + - libstdcxx 15.1.0 h8f9b012_2 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + purls: [] + size: 34647 + timestamp: 1746642266826 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 + md5: 40b61aab5c7ba9ff276c41cfffe6b80b + depends: + - libgcc-ng >=12 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 33601 + timestamp: 1680112270483 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda + sha256: b4a8890023902aef9f1f33e3e35603ad9c2f16c21fdb58e968fa6c1bd3e94c0b + md5: 771ee65e13bc599b0b62af5359d80169 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: MIT + license_family: MIT + purls: [] + size: 891272 + timestamp: 1737016632446 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 100393 + timestamp: 1702724383534 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h4bc477f_0.conda + sha256: b0b3a96791fa8bb4ec030295e8c8bf2d3278f33c0f9ad540e73b5e538e6268e7 + md5: 14dbe05b929e329dbaa6f2d0aa19466d + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + purls: [] + size: 690864 + timestamp: 1746634244154 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda + sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 + md5: edb0dca6bc32e4f4789199455a1dbeb8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 60963 + timestamp: 1727963148474 +- conda: https://conda.anaconda.org/conda-forge/linux-64/lld-20.1.4-hd51abae_0.conda + sha256: c5e12a2bd9e3faff69b2510923f64aa463e8f81f9751f9e9c0dd347db9a70525 + md5: 8e744c37ae5a4f11c70b620e17bd08e8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libllvm20 >=20.1.4,<20.2.0a0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - llvm ==20.1.4 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 7642872 + timestamp: 1746055864247 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20.1.4-h84d6215_0.conda + sha256: b1cc120328b5608cb216c7fac1cc3e714a302698c96565a7675984c3977e7174 + md5: 0ecc18d6579ffb9f6e981b566ea0463b + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libllvm20 20.1.4 he9d0ab4_0 + - libstdcxx >=13 + - llvm-tools-20 20.1.4 h48f18f5_0 + constrains: + - clang 20.1.4 + - llvmdev 20.1.4 + - llvm 20.1.4 + - clang-tools 20.1.4 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 87987 + timestamp: 1746052887836 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20-20.1.4-h48f18f5_0.conda + sha256: c4c21d6cad99f47581cbdf84d07a3bcd823d621ef515d6005b4b637fc51fae82 + md5: 9342c917b5e1fa34d14c3f9e21c7d87e + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libllvm20 20.1.4 he9d0ab4_0 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 25715324 + timestamp: 1746052816518 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + sha256: 0fbacdfb31e55964152b24d5567e9a9996e1e7902fb08eb7d91b5fd6ce60803a + md5: fee3164ac23dfca50cfcc8b85ddefb81 + depends: + - mdurl >=0.1,<1 + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/markdown-it-py?source=hash-mapping + size: 64430 + timestamp: 1733250550053 +- conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 + md5: 592132998493b3ff25fd7479396e8351 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/mdurl?source=hash-mapping + size: 14465 + timestamp: 1733255681319 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda + sha256: 3fde293232fa3fca98635e1167de6b7c7fda83caf24b9d6c91ec9eefb4f4d586 + md5: 47e340acb35de30501a76c7c799c41d7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: X11 AND BSD-3-Clause + purls: [] + size: 891641 + timestamp: 1738195959188 +- conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.13.0-hf235a45_0.conda + sha256: 925ea8839d6f26d0eb4204675b98a862803a9a9657fd36a4a22c4c29a479a911 + md5: 1f9efd96347aa008bd2c735d7d88fc75 + depends: + - __glibc >=2.28,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=13 + - libstdcxx >=13 + - libuv >=1.50.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.4.1,<4.0a0 + - zlib + license: MIT + license_family: MIT + purls: [] + size: 21691794 + timestamp: 1741809786920 +- pypi: https://files.pythonhosted.org/packages/b0/d9/7c338b923c53d431bc837b5b787052fef9ae68a56fe91e325aac0d48226e/numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + name: numpy + version: 2.2.5 + sha256: 3a801fef99668f309b88640e28d261991bfad9617c27beda4a3aec4f217ea073 + requires_python: '>=3.10' +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda + sha256: b4491077c494dbf0b5eaa6d87738c22f2154e9277e5293175ec187634bd808a0 + md5: de356753cfdbffcde5bb1e86e3aa6cd0 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=13 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 3117410 + timestamp: 1746223723843 +- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + sha256: 289861ed0c13a15d7bbb408796af4de72c2fe67e2bcb0de98f4c3fce259d7991 + md5: 58335b26c38bf4a20f399384c33cbcf9 + depends: + - python >=3.8 + - python + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/packaging?source=compressed-mapping + size: 62477 + timestamp: 1745345660407 +- conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.1-pyh8b19718_0.conda + sha256: 81a7ffe7b7ca8718bc09476a258cd48754e1d4e1bd3b80a6fef41ffb71e3bfc8 + md5: 2247aa245832ea47e8b971bef73d7094 + depends: + - python >=3.9,<3.13.0a0 + - setuptools + - wheel + license: MIT + license_family: MIT + purls: + - pkg:pypi/pip?source=hash-mapping + size: 1247085 + timestamp: 1745671930895 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda + sha256: 0f48999a28019c329cd3f6fd2f01f09fc32cc832f7d6bbe38087ddac858feaa3 + md5: 424844562f5d337077b445ec6b1398a7 + depends: + - python >=3.9 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/platformdirs?source=compressed-mapping + size: 23531 + timestamp: 1746710438805 +- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda + sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 + md5: 12c566707c80111f9799308d9e265aef + depends: + - python >=3.9 + - python + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 110100 + timestamp: 1733195786147 +- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda + sha256: a522473505ac6a9c10bb304d7338459a406ba22a6d3bb1a355c1b5283553a372 + md5: 8ad3ad8db5ce2ba470c9facc37af00a9 + depends: + - annotated-types >=0.6.0 + - pydantic-core 2.33.2 + - python >=3.9 + - typing-extensions >=4.6.1 + - typing-inspection >=0.4.0 + - typing_extensions >=4.12.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic?source=compressed-mapping + size: 306304 + timestamp: 1746632069456 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py312h680f630_0.conda + sha256: 4d14d7634c8f351ff1e63d733f6bb15cba9a0ec77e468b0de9102014a4ddc103 + md5: cfbd96e5a0182dfb4110fc42dda63e57 + depends: + - python + - typing-extensions >=4.6.0,!=4.7.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python_abi 3.12.* *_cp312 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1890081 + timestamp: 1746625309715 +- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b + md5: 232fb4577b6687b2d503ef8e254270c9 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pygments?source=hash-mapping + size: 888600 + timestamp: 1736243563082 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.2-pyhac95a24_0.conda + sha256: 3b07fb5ce926ebaeb018df47a5a64b3238f07598009b223aae346c2e664cd47d + md5: 903583e853d3cc2c82fcdcc698b66940 + depends: + - auditwheel-emscripten ==0.1.0 + - packaging + - platformdirs + - pydantic >=2,<3 + - pyodide-cli >=0.3.0 + - pyodide-lock ==0.1.0a7 + - python >=3.12 + - python-build >=1.2.0,<1.3.dev0 + - requests + - resolvelib + - rich + - ruamel.yaml + - typer >=0.13 + - unearth >=0.6,<1.dev0 + - virtualenv + - wheel + - python + license: MPL-2.0 + license_family: MOZILLA + purls: + - pkg:pypi/pyodide-build?source=hash-mapping + size: 101351 + timestamp: 1746476227410 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda + sha256: 30e4a37a40d7ee47b8be64015674ad7323c6f41e935d080fb6bcfb8ec1f02b3d + md5: 0947e2092ff75a34f5e58bc5f689e247 + depends: + - python >=3.12 + - rich + - typer >=0.6.0 + - python + license: MPL-2.0 + license_family: MOZILLA + purls: + - pkg:pypi/pyodide-cli?source=hash-mapping + size: 24452 + timestamp: 1743860686761 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0a7-pyhd8ed1ab_0.conda + sha256: b73e038d5d0d0a83372d033a79c2f725de151bd4938dd492e7bf650d91376554 + md5: 15a95627f7cd53c532e6403680656a99 + depends: + - pydantic >=2 + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pyodide-lock?source=hash-mapping + size: 15151 + timestamp: 1723471784826 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda + sha256: 065ac44591da9abf1ff740feb25929554b920b00d09287a551fcced2c9791092 + md5: d4582021af437c931d7d77ec39007845 + depends: + - python >=3.9 + - tomli >=1.1.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyproject-hooks?source=hash-mapping + size: 15528 + timestamp: 1733710122949 +- conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + sha256: ba3b032fa52709ce0d9fd388f63d330a026754587a2f461117cac9ab73d8d0d8 + md5: 461219d1a5bd61342293efa2c0c90eac + depends: + - __unix + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pysocks?source=hash-mapping + size: 21085 + timestamp: 1733217331982 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + sha256: 674be31ff152d9f0e0fe16959a45e3803a730fc4f54d87df6a9ac4e6a698c41d + md5: 0515111a9cdf69f83278f7c197db9807 + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libexpat >=2.6.3,<3.0a0 + - libffi >=3.4,<4.0a0 + - libgcc >=13 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.1,<4.0a0 + - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.3.2,<4.0a0 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 + license: Python-2.0 + purls: [] + size: 31574780 + timestamp: 1728059777603 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda + sha256: da40ab7413029351852268ca479e5cc642011c72317bd02dba28235c5c5ec955 + md5: 0903621fe8a9f37286596529528f4f74 + depends: + - colorama + - importlib-metadata >=4.6 + - packaging >=19.0 + - pyproject_hooks + - python >=3.9 + - tomli >=1.1.0 + constrains: + - build <0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/build?source=hash-mapping + size: 25108 + timestamp: 1733230700715 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-7_cp312.conda + build_number: 7 + sha256: a1bbced35e0df66cc713105344263570e835625c28d1bdee8f748f482b2d7793 + md5: 0dfcdc155cf23812a0c9deada86fb723 + constrains: + - python 3.12.* *_cpython + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 6971 + timestamp: 1745258861359 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c + md5: 283b96675859b20a825f8fa30f311446 + depends: + - libgcc >=13 + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 282480 + timestamp: 1740379431762 +- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda + sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad + md5: a9b9368f3701a417eac9edbcae7cb737 + depends: + - certifi >=2017.4.17 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - python >=3.9 + - urllib3 >=1.21.1,<3 + constrains: + - chardet >=3.0.2,<6 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/requests?source=hash-mapping + size: 58723 + timestamp: 1733217126197 +- conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.1.0-pyhd8ed1ab_1.conda + sha256: c48f49bfae4f642364d59fcc7eb328822e9611ef3a393e67d8cbd54753110667 + md5: 0880e9e633e4e5e2b76593f761ac154e + depends: + - python >=3.9 + license: ISC + purls: + - pkg:pypi/resolvelib?source=hash-mapping + size: 335514 + timestamp: 1733599765789 +- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda + sha256: d10e2b66a557ec6296844e04686db87818b0df87d73c06388f2332fda3f7d2d5 + md5: 202f08242192ce3ed8bdb439ba40c0fe + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.9 + - typing_extensions >=4.0.0,<5.0.0 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/rich?source=hash-mapping + size: 200323 + timestamp: 1743371105291 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.10-py312h66e93f0_0.conda + sha256: cd8ed10671111f15245cebadc06b88d6f5fc91f1f7f92456daa568e9d9f5bc42 + md5: 5260b7fb19694ee5bc4ed0ee7a2a769f + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruamel-yaml?source=hash-mapping + size: 267560 + timestamp: 1736248154294 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda + sha256: ac987b1c186d79e4e1ce4354a84724fc68db452b2bd61de3a3e1b6fc7c26138d + md5: 532c3e5d0280be4fea52396ec1fa7d5d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruamel-yaml-clib?source=hash-mapping + size: 145481 + timestamp: 1728724626666 +- conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda + sha256: fa3b6757df927a24c3006bc5bffbac5b0c9a54b9755c08847f8a832ec1b79300 + md5: 98eab8148e1447e79f9e03492d04e291 + depends: + - __glibc >=2.17,<3.0.a0 + - gcc_impl_linux-64 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + - rust-std-x86_64-unknown-linux-gnu 1.86.0 h2c6d0dc_0 + - sysroot_linux-64 >=2.17 + license: MIT + license_family: MIT + purls: [] + size: 218638108 + timestamp: 1743697775334 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda + sha256: 73cc7c49ef8088fc5186f6aee48166ca71c7dc527997a592f5b76a815f4bda88 + md5: 9c2af1ca0493191466b300691edc2145 + depends: + - __unix + constrains: + - rust >=1.86.0,<1.86.1.0a0 + license: MIT + license_family: MIT + purls: [] + size: 3568928 + timestamp: 1743696829470 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda + sha256: c5372b6d23b8826d275e6e09f73a9ea1f7a2e77c3c9fe487f166879c5269e44a + md5: a618a92c573bcf85c9c357f73e35d95e + depends: + - __unix + constrains: + - rust >=1.86.0,<1.86.1.0a0 + license: MIT + license_family: MIT + purls: [] + size: 25522077 + timestamp: 1743697288036 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda + sha256: 8c1c68b7a8ce9657fea7d266607c21c9a00a382c346348a232e539c8a3266e84 + md5: 2fcc4c775a50bd2ce3ccb8dc56e4fb47 + depends: + - __unix + constrains: + - rust >=1.86.0,<1.86.1.0a0 + license: MIT + license_family: MIT + purls: [] + size: 37636509 + timestamp: 1743697574868 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.1.0-pyhff2d567_0.conda + sha256: 777d34ed359cedd5a5004c930077c101bb3b70e5fbb04d29da5058d75b0ba487 + md5: f6f72d0837c79eaec77661be43e8a691 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=compressed-mapping + size: 778484 + timestamp: 1746085063737 +- conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda + sha256: 0557c090913aa63cdbe821dbdfa038a321b488e22bc80196c4b3b1aace4914ef + md5: 7c3c2a0f3ebdea2bbc35538d162b43bf + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/shellingham?source=compressed-mapping + size: 14462 + timestamp: 1733301007770 +- conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda + sha256: c2248418c310bdd1719b186796ae50a8a77ce555228b6acd32768e2543a15012 + md5: bf7a226e58dfb8346c70df36065d86c9 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/sniffio?source=hash-mapping + size: 15019 + timestamp: 1733244175724 +- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda + sha256: 69ab5804bdd2e8e493d5709eebff382a72fab3e9af6adf93a237ccf8f7dbd624 + md5: 460eba7851277ec1fd80a1a24080787a + depends: + - kernel-headers_linux-64 3.10.0 he073ed8_18 + - tzdata + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 + license_family: GPL + purls: [] + size: 15166921 + timestamp: 1735290488259 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda + sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e + md5: d453b98d9c83e71da0741bb0ff4d76bc + depends: + - libgcc-ng >=12 + - libzlib >=1.2.13,<2.0.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3318875 + timestamp: 1699202167581 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda + sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e + md5: ac944244f1fed2eb49bae07193ae8215 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli?source=hash-mapping + size: 19167 + timestamp: 1733256819729 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.3-pyhf21524f_0.conda + sha256: 8cd849ceb5e2f50481b1f30f083ee134fac706a56d7879c61248f0aadad4ea5b + md5: b4bed8eb8dd4fe076f436e5506d31673 + depends: + - typer-slim-standard ==0.15.3 h1a15894_0 + - python >=3.9 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/typer?source=compressed-mapping + size: 77044 + timestamp: 1745886712803 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.3-pyh29332c3_0.conda + sha256: 1768d1d9914d4237b0a1ae8bcb30dace44ac80b9ab1516a2d429d0b27ad70ab9 + md5: 20c0f2ae932004d7118c172eeb035cea + depends: + - python >=3.9 + - click >=8.0.0 + - typing_extensions >=3.7.4.3 + - python + constrains: + - typer 0.15.3.* + - rich >=10.11.0 + - shellingham >=1.3.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/typer-slim?source=compressed-mapping + size: 46152 + timestamp: 1745886712803 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.3-h1a15894_0.conda + sha256: 72f77e8e61b28058562f2782cf32ff84f14f6c11c6cea7a3fe2839d34654ea45 + md5: 120216d3a2e51dfbb87bbba173ebf210 + depends: + - typer-slim ==0.15.3 pyh29332c3_0 + - rich + - shellingham + license: MIT + license_family: MIT + purls: [] + size: 5411 + timestamp: 1745886712803 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.13.2-h0e9735f_0.conda + sha256: 4865fce0897d3cb0ffc8998219157a8325f6011c136e6fd740a9a6b169419296 + md5: 568ed1300869dca0ba09fb750cda5dbb + depends: + - typing_extensions ==4.13.2 pyh29332c3_0 + license: PSF-2.0 + license_family: PSF + purls: [] + size: 89900 + timestamp: 1744302253997 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.0-pyhd8ed1ab_0.conda + sha256: 172f971d70e1dbb978f6061d3f72be463d0f629155338603450d8ffe87cbf89d + md5: c5c76894b6b7bacc888ba25753bc8677 + depends: + - python >=3.9 + - typing_extensions >=4.12.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/typing-inspection?source=hash-mapping + size: 18070 + timestamp: 1741438157162 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda + sha256: a8aaf351e6461de0d5d47e4911257e25eec2fa409d71f3b643bb2f748bde1c08 + md5: 83fc6ae00127671e301c9f44254c31b8 + depends: + - python >=3.9 + - python + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/typing-extensions?source=compressed-mapping + size: 52189 + timestamp: 1744302253997 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda + sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 + md5: 4222072737ccff51314b5ece9c7d6f5a + license: LicenseRef-Public-Domain + purls: [] + size: 122968 + timestamp: 1742727099393 +- conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.17.5-pyhd8ed1ab_0.conda + sha256: bd17f8de2b814083113d964794babc5f8bdaaf590640d27a0395b47eb5b8f499 + md5: c645046441194a2d4fa726c2629f2461 + depends: + - cached-property >=1.5.2 + - httpx + - packaging >=20 + - python >=3.9 + - requests >=2.25 + license: MIT + license_family: MIT + purls: + - pkg:pypi/unearth?source=hash-mapping + size: 285892 + timestamp: 1744177720866 +- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda + sha256: a25403b76f7f03ca1a906e1ef0f88521edded991b9897e7fed56a3e334b3db8c + md5: c1e349028e0052c4eea844e94f773065 + depends: + - brotli-python >=1.0.9 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.9 + - zstandard >=0.18.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/urllib3?source=hash-mapping + size: 100791 + timestamp: 1744323705540 +- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda + sha256: 763dc774200b2eebdf5437b112834c5455a1dd1c9b605340696950277ff36729 + md5: c0600c1b374efa7a1ff444befee108ca + depends: + - distlib >=0.3.7,<1 + - filelock >=3.12.2,<4 + - platformdirs >=3.9.1,<5 + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/virtualenv?source=hash-mapping + size: 4133755 + timestamp: 1746781585998 +- conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda + sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce + md5: 75cb7132eb58d97896e173ef12ac9986 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/wheel?source=hash-mapping + size: 62931 + timestamp: 1733130309598 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_1.conda + sha256: 178b04c2f35261a1f9a272901d2533c88d50416745509450ca56f7bc76f4a268 + md5: 46600bb863ef3f2f565e7e0458f3d3bc + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_1 + - liblzma-devel 5.8.1 hb9d3cd8_1 + - xz-gpl-tools 5.8.1 hbcc6ac9_1 + - xz-tools 5.8.1 hb9d3cd8_1 + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + purls: [] + size: 23933 + timestamp: 1746531531849 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_1.conda + sha256: 1f66e240fd37f66dfaff27f55f0e69008c4fdbbb02766cd2e0a60d2de85d49b4 + md5: 23d49402c43d1ea67aca3685acedc0ae + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_1 + constrains: + - xz 5.8.1.* + - xz ==5.8.1=*_1 + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + purls: [] + size: 33852 + timestamp: 1746531515485 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_1.conda + sha256: d219c162f2bf0bb851bfe4fbcb70f118b4f518e0e1c46ae72726bc5b9dde6f24 + md5: 966d5f3958ecfaf49a9a060dfb81eb85 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_1 + constrains: + - xz 5.8.1.* + - xz ==5.8.1=*_1 + license: 0BSD AND LGPL-2.1-or-later + purls: [] + size: 96134 + timestamp: 1746531500507 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1 + md5: 0c3cc595284c5e8f0f9900a9b228a332 + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/zipp?source=hash-mapping + size: 21809 + timestamp: 1732827613585 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda + sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab + md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib 1.3.1 hb9d3cd8_2 + license: Zlib + license_family: Other + purls: [] + size: 92286 + timestamp: 1727963153079 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h66e93f0_2.conda + sha256: ff62d2e1ed98a3ec18de7e5cf26c0634fd338cb87304cf03ad8cbafe6fe674ba + md5: 630db208bc7bbb96725ce9832c7423bb + depends: + - __glibc >=2.17,<3.0.a0 + - cffi >=1.11 + - libgcc >=13 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/zstandard?source=compressed-mapping + size: 732224 + timestamp: 1745869780524 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda + sha256: a4166e3d8ff4e35932510aaff7aa90772f84b4d07e9f6f83c614cba7ceefe0eb + md5: 6432cb5d4ac0046c3ac0a8a0f95842f9 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libstdcxx >=13 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 567578 + timestamp: 1742433379869 diff --git a/pyproject.toml b/pyproject.toml index 2bbfea637b..0783c88e18 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -111,19 +111,19 @@ target-version = ['py39', 'py310', 'py311', 'py312'] [tool.ruff] line-length = 105 # more lenient than black due to long function signatures src = ["rustworkx", "setup.py", "tests"] -lint.select = [ +target-version = "py39" +extend-exclude = ["doc"] + +[tool.ruff.lint] +select = [ "E", # pycodestyle "F", # pyflakes "UP", # pyupgrade "PYI", # flake8-pyi "Q", # flake8-quotes ] -target-version = "py39" -extend-exclude = ["doc"] +per-file-ignores = {"rustworkx/__init__.py" = ["F405", "F403"], "*.pyi" = ["F403", "F405", "PYI001", "PYI002"]} -[tool.ruff.lint.per-file-ignores] -"rustworkx/__init__.py" = ["F405", "F403"] -"*.pyi" = ["F403", "F405", "PYI001", "PYI002"] [tool.typos.default] extend-ignore-words-re = [ @@ -157,4 +157,32 @@ environment = "MACOSX_DEPLOYMENT_TARGET=10.12" repair-wheel-command = "brew install pipx && pipx ensurepath && pipx run --spec delocate==0.11.0 delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel} && pipx run abi3audit==0.0.9 --strict --report {wheel}" [tool.cibuildwheel.windows] -repair-wheel-command = "cp {wheel} {dest_dir}/. && pipx run abi3audit==0.0.9 --strict --report {wheel}" \ No newline at end of file +repair-wheel-command = "cp {wheel} {dest_dir}/. && pipx run abi3audit==0.0.9 --strict --report {wheel}" + +[tool.pixi.workspace] +channels = ["conda-forge"] +platforms = ["linux-64"] + +[tool.pixi.environments] +default = {features = [], solve-group = "default"} + +[tool.pixi.dependencies] +python = "==3.12.7" +pip="==25.1" +pyodide-build = "==0.30.2" +emscripten = "==3.1.58" +nodejs = ">=22.13.0,<22.14" +rust = "==1.86" +rust-std-wasm32-unknown-emscripten = "==1.86" +rust-src = "==1.86" + +[tool.pixi.tasks.install_xbuildenv] +cmd = ["pyodide", "xbuildenv", "install", "0.27.5"] + +[tool.pixi.tasks.build_pyodide] +cmd = ["pyodide", "build"] +env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-memory,+mutable-globals $(pyodide config get rustflags)" } +depends-on = ["install_xbuildenv"] + +[tool.pyodide.build] +xbuildenv_path = ".xbuildenv" \ No newline at end of file From 8c4ed7b2dd769571ea2855136b28b5467fb33dd1 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 19:03:04 -0400 Subject: [PATCH 11/60] Add GitHub Actions to execute --- .github/workflows/main.yml | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f1c73f8287..59208c6350 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -198,3 +198,14 @@ jobs: with: name: html_docs path: docs/build/html + pyodide-build: + if: github.repository_owner == 'Qiskit' + needs: [tests] + name: Pyodide Build + runs-on: ubuntu-latest + steps: + - uses: prefix-dev/setup-pixi@v0.8.8 + with: + pixi-version: v0.46.0 + environments: default + - run: pixi run build_pyodide From d99c029460e7433c455fcbe990040474ac75f334 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 19:16:38 -0400 Subject: [PATCH 12/60] Fix main.yml syntax --- .github/workflows/main.yml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 59208c6350..f434792a5b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -198,14 +198,14 @@ jobs: with: name: html_docs path: docs/build/html - pyodide-build: - if: github.repository_owner == 'Qiskit' - needs: [tests] - name: Pyodide Build - runs-on: ubuntu-latest - steps: - - uses: prefix-dev/setup-pixi@v0.8.8 - with: - pixi-version: v0.46.0 - environments: default - - run: pixi run build_pyodide + pyodide-build: + if: github.repository_owner == 'Qiskit' + needs: [tests] + name: Pyodide Build + runs-on: ubuntu-latest + steps: + - uses: prefix-dev/setup-pixi@v0.8.8 + with: + pixi-version: v0.46.0 + environments: default + - run: pixi run build_pyodide From 615d5bdca2598951fdc0ca5aff4cb0d536579022 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 19:31:05 -0400 Subject: [PATCH 13/60] Specify pyproject.toml --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index f434792a5b..033f88693b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -206,6 +206,7 @@ jobs: steps: - uses: prefix-dev/setup-pixi@v0.8.8 with: + manifest-path: pyproject.toml pixi-version: v0.46.0 environments: default - run: pixi run build_pyodide From 32e44cfe1ca68ab810411904a10e96b496599106 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 20:41:20 -0400 Subject: [PATCH 14/60] Actually download repo --- .github/workflows/main.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 033f88693b..6b09dc6457 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -204,6 +204,7 @@ jobs: name: Pyodide Build runs-on: ubuntu-latest steps: + - uses: actions/checkout@v4 - uses: prefix-dev/setup-pixi@v0.8.8 with: manifest-path: pyproject.toml From ad1f19d88234255b2fb82c2384ae3988c8cb3f0a Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 22:07:37 -0400 Subject: [PATCH 15/60] Add pyodide build docs --- CONTRIBUTING.md | 52 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index c02d3180d6..3e82c482a9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -542,6 +542,58 @@ has the necessary approvals and is tagged as `automerge` unless it has a merge conflict or has a failed CI run. Doing so will just waste CI resources and delay everything from merging, including your PR. +### Pyodide Support + +`rustworkx` has experimental support for Pyodide, the Python distribution for +the browser. + +Because building for Pyodide is a more involved process, we use [Pixi](https://pixi.sh/latest/) +to manage the dependencies of the build. Currently, the scripts work only for Linux x86-64. +It is also possible to run the build on Windows with Windows Subsystem for Linux (WSL). At +the moment, aarch64 platforms like macOS cannot run the script. + +Please refer to the [Pixi](https://pixi.sh/latest/) page for the latest instructions on how +to install Pixi. Once installed, there's a single command that needs to be run. + +#### Building for Pyodide + +At the root of the directory, simply run: + +```bash +pixi run build_pyodide +``` + +This will create a separate environment with all of the required toolchains. At the end, +a Pyodide wheel will be available in the `dist` folder if the build is successful. + +#### Testing Pyodide Wheels + +Currently, there are no tests for Pyodide wheels. In the future, we plan to add smoke tests +like those in the `pyodide-recipes` repository. + +#### Updating `pyodide-build` and dependencies + +All the dependencies for the Pyodide build are listed under `[tool.pixi.dependencies]`. To find a set +of versions that works, visit the [pyodide-cross-build-environments.json](https://github.com/pyodide/pyodide/blob/main/pyodide-cross-build-environments.json) file in the `pyodide` repository. + +We'll need to align the [Emscripten](https://anaconda.org/conda-forge/emscripten) version from `conda-forge` with one +of the public releases. Then, we pick a `pyodide-build` version higher than the required build version and the equivalent Python +version also specified in the cross build environments. + +Lastly, we need to pin the Rust compiler. To find an appropriate Rust compiler version, run: + +```bash +pixi shell +pyodide config list +``` + +This will output a list including `rust_toolchain`. Currently, `pyodide-build` requires Rust Nightly. Because conda-forge +only provides stable releases, we'll need to map a nightly version to a stable version. Some repositories like [https://github.com/oxalica/rust-overlay/tree/master/manifests/nightly/](oxalica/rust-overlay) contain a list of the nightly releases. For example, `nightly-2025-02-01` +maps roughly to `1.86`. If that version was not yet stable, we could try picking `1.85` as well. + +After updating the versions in `[tool.pixi.dependencies]`, run `pixi lock` which will update `pixi.lock`. Onwards, all builds +will use the same environment. As long as `pixi run build_pyodide` passes locally or on CI it should keep compiling and building. + ### Stable Branch Policy and Backporting The stable branch is intended to be a safe source of fixes for high-impact bugs, From 901c6748f7b6a56b97db0624e40459f9e366c303 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 22:11:10 -0400 Subject: [PATCH 16/60] Minor stuff --- .gitignore | 2 +- CONTRIBUTING.md | 2 +- pyproject.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index d1a7bfa375..d2ce5a97a4 100644 --- a/.gitignore +++ b/.gitignore @@ -31,4 +31,4 @@ venv/ *.egg-info # pyodide xbuild -.xbuildenv \ No newline at end of file +.xbuildenv diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3e82c482a9..9ddd990515 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -588,7 +588,7 @@ pyodide config list ``` This will output a list including `rust_toolchain`. Currently, `pyodide-build` requires Rust Nightly. Because conda-forge -only provides stable releases, we'll need to map a nightly version to a stable version. Some repositories like [https://github.com/oxalica/rust-overlay/tree/master/manifests/nightly/](oxalica/rust-overlay) contain a list of the nightly releases. For example, `nightly-2025-02-01` +only provides stable releases, we'll need to map a nightly version to a stable version. Some repositories like [oxalica/rust-overlay]([oxalica/rust-overlay](https://github.com/oxalica/rust-overlay/tree/master/manifests/nightly/)) contain a list of the nightly releases. For example, `nightly-2025-02-01` maps roughly to `1.86`. If that version was not yet stable, we could try picking `1.85` as well. After updating the versions in `[tool.pixi.dependencies]`, run `pixi lock` which will update `pixi.lock`. Onwards, all builds diff --git a/pyproject.toml b/pyproject.toml index 0783c88e18..6fba9434af 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -185,4 +185,4 @@ env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-mem depends-on = ["install_xbuildenv"] [tool.pyodide.build] -xbuildenv_path = ".xbuildenv" \ No newline at end of file +xbuildenv_path = ".xbuildenv" From 92b89102bfdd098edca1513a2648e2237e908a42 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 13 May 2025 22:15:49 -0400 Subject: [PATCH 17/60] Minor update to CONTRIBUTING.md --- CONTRIBUTING.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ddd990515..7c75cb9b6e 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -578,7 +578,8 @@ of versions that works, visit the [pyodide-cross-build-environments.json](https: We'll need to align the [Emscripten](https://anaconda.org/conda-forge/emscripten) version from `conda-forge` with one of the public releases. Then, we pick a `pyodide-build` version higher than the required build version and the equivalent Python -version also specified in the cross build environments. +version also specified in the cross build environments. Lastly, update `[tool.pixi.tasks.install_xbuildenv]` to install +the selected version of Pyodide. Lastly, we need to pin the Rust compiler. To find an appropriate Rust compiler version, run: From 25a5763a5aea2fc2b5149367553f23f972bc0f66 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 08:09:56 -0400 Subject: [PATCH 18/60] Add very first smoke test --- .gitignore | 5 +++ tests/pyodide_smoke_test/package-lock.json | 45 ++++++++++++++++++++++ tests/pyodide_smoke_test/package.json | 5 +++ tests/pyodide_smoke_test/smoke_test.mjs | 15 ++++++++ 4 files changed, 70 insertions(+) create mode 100644 tests/pyodide_smoke_test/package-lock.json create mode 100644 tests/pyodide_smoke_test/package.json create mode 100644 tests/pyodide_smoke_test/smoke_test.mjs diff --git a/.gitignore b/.gitignore index d2ce5a97a4..bf64c44dc3 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,8 @@ venv/ # pyodide xbuild .xbuildenv + +# Node.js +node_modules/ +jspm_packages/ +.npm diff --git a/tests/pyodide_smoke_test/package-lock.json b/tests/pyodide_smoke_test/package-lock.json new file mode 100644 index 0000000000..f3f3289627 --- /dev/null +++ b/tests/pyodide_smoke_test/package-lock.json @@ -0,0 +1,45 @@ +{ + "name": "pyodide-nodejs", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "dependencies": { + "pyodide": "^0.27.5" + } + }, + "node_modules/pyodide": { + "version": "0.27.5", + "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.27.5.tgz", + "integrity": "sha512-nXErpLzEdtQolt+sNQ/5mKuN9XTUwhxR2MRhRhZ6oDRGpYLXrOp5+kkTPGEwK+wn1ZA8+poNmoxKTj2sq/p9og==", + "license": "Apache-2.0", + "dependencies": { + "ws": "^8.5.0" + }, + "engines": { + "node": ">=18.0.0" + } + }, + "node_modules/ws": { + "version": "8.18.2", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", + "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", + "license": "MIT", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + } + } +} diff --git a/tests/pyodide_smoke_test/package.json b/tests/pyodide_smoke_test/package.json new file mode 100644 index 0000000000..0876dd9cf6 --- /dev/null +++ b/tests/pyodide_smoke_test/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "pyodide": "^0.27.5" + } +} diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs new file mode 100644 index 0000000000..8ec65c1d4d --- /dev/null +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -0,0 +1,15 @@ +import { loadPyodide } from "pyodide"; + +async function rustworkx_python() { + let pyodide = await loadPyodide(); + await pyodide.loadPackage("micropip"); + const micropip = pyodide.pyimport("micropip"); + await micropip.install(`http://localhost:8000/rustworkx-0.17.0-cp39-abi3-pyodide_2024_0_wasm32.whl`); + return pyodide.runPythonAsync(` + import rustworkx + print(rustworkx.__version__) + `); +} + +const result = await rustworkx_python(); +console.log("Smoke test completed successfully"); From a44bcfc0c0ae36ea188218d8188e17fbec41a267 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 08:45:24 -0400 Subject: [PATCH 19/60] Trying to make local test happen --- tests/pyodide_smoke_test/smoke_test.mjs | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index 8ec65c1d4d..f26043302f 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -1,13 +1,28 @@ import { loadPyodide } from "pyodide"; +import * as fs from 'fs'; +import * as path from 'path'; async function rustworkx_python() { let pyodide = await loadPyodide(); await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); - await micropip.install(`http://localhost:8000/rustworkx-0.17.0-cp39-abi3-pyodide_2024_0_wasm32.whl`); + + // Load rustworkx wheel into memory + const filename = 'rustworkx-0.17.0-cp39-abi3-pyodide_2024_0_wasm32.whl'; + + const wheelPath = path.resolve(filename); + const wheelData = fs.readFileSync(wheelPath); + // console.log("Read data"); + + pyodide.FS.mkdir('/tmp', 0o777); + pyodide.FS.writeFile(`/tmp/${filename}`, new Uint8Array(wheelData)); + + // console.log(`Successfully loaded ${filename} into Pyodide's virtual file system`); + + await micropip.install(`emfs://tmp/${filename}`); return pyodide.runPythonAsync(` - import rustworkx - print(rustworkx.__version__) + import rustworkx + print(rustworkx.__version__) `); } From 2bce487f0e2e8e6ee2a379a6c7bfb3b60f27ab4c Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 19:13:21 -0400 Subject: [PATCH 20/60] More smoke test --- tests/pyodide_smoke_test/smoke_test.mjs | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index f26043302f..c1cb35a70f 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -2,29 +2,28 @@ import { loadPyodide } from "pyodide"; import * as fs from 'fs'; import * as path from 'path'; -async function rustworkx_python() { +async function run_smoke_test() { let pyodide = await loadPyodide(); await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); // Load rustworkx wheel into memory - const filename = 'rustworkx-0.17.0-cp39-abi3-pyodide_2024_0_wasm32.whl'; + const filePath = process.argv[2]; + const filename = path.basename(filePath); - const wheelPath = path.resolve(filename); + const wheelPath = path.resolve(filePath); const wheelData = fs.readFileSync(wheelPath); - // console.log("Read data"); - pyodide.FS.mkdir('/tmp', 0o777); pyodide.FS.writeFile(`/tmp/${filename}`, new Uint8Array(wheelData)); - // console.log(`Successfully loaded ${filename} into Pyodide's virtual file system`); - - await micropip.install(`emfs://tmp/${filename}`); + await micropip.install(`emfs:/tmp/${filename}`); + console.log("installed wheel"); + return null; return pyodide.runPythonAsync(` import rustworkx print(rustworkx.__version__) `); } -const result = await rustworkx_python(); +const result = await run_smoke_test(); console.log("Smoke test completed successfully"); From d303f91c8fdaff270c095136456c753f7147153f Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 19:28:45 -0400 Subject: [PATCH 21/60] Use unittest module!? --- tests/pyodide_smoke_test/smoke_test.mjs | 42 ++++++++++++++++++++++--- 1 file changed, 37 insertions(+), 5 deletions(-) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index c1cb35a70f..a907588396 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -2,7 +2,7 @@ import { loadPyodide } from "pyodide"; import * as fs from 'fs'; import * as path from 'path'; -async function run_smoke_test() { +async function get_pyodide_with_rustworkx() { let pyodide = await loadPyodide(); await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); @@ -17,12 +17,44 @@ async function run_smoke_test() { pyodide.FS.writeFile(`/tmp/${filename}`, new Uint8Array(wheelData)); await micropip.install(`emfs:/tmp/${filename}`); - console.log("installed wheel"); - return null; + return pyodide; +} + +async function run_smoke_test() { + let pyodide = await get_pyodide_with_rustworkx(); return pyodide.runPythonAsync(` +import rustworkx +import unittest + +class TestPyodide(unittest.TestCase): + def test_isomorphism(self): + # Adapted from tests/graph/test_isomorphic.py import rustworkx - print(rustworkx.__version__) - `); + + n = 15 + upper_bound_k = (n - 1) // 2 + for k in range(1, upper_bound_k + 1): + for t in range(k, upper_bound_k + 1): + result = rustworkx.is_isomorphic( + rustworkx.generators.generalized_petersen_graph(n, k), + rustworkx.generators.generalized_petersen_graph(n, t), + ) + expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1) + self.assertEqual(result, expected) + + def test_rayon_works(self): + # This essentially tests that multi-threading is set to one core and does not panic + import rustworkx + graph = rustworkx.generators.cycle_graph(10) + path_lenghts_floyd = rustworkx.floyd_warshall(graph) + path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0) + path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()} + self.assertEqual(path_lenghts_floyd, path_lenghts_dijkstra) + +suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) +runner = unittest.TextTestRunner() +runner.run(suite) +`); } const result = await run_smoke_test(); From c03fc6af93f0950756a3b3d636ca9738c1823c9f Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 20:17:18 -0400 Subject: [PATCH 22/60] Add Python smoke test file separately --- tests/pyodide_smoke_test/smoke_test.mjs | 43 ++++++------------------- tests/pyodide_smoke_test/test_smoke.py | 34 +++++++++++++++++++ 2 files changed, 43 insertions(+), 34 deletions(-) create mode 100644 tests/pyodide_smoke_test/test_smoke.py diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index a907588396..c9beeeb688 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -7,7 +7,7 @@ async function get_pyodide_with_rustworkx() { await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); - // Load rustworkx wheel into memory + // Load rustworkx from local file system to Pyodide's const filePath = process.argv[2]; const filename = path.basename(filePath); @@ -16,45 +16,20 @@ async function get_pyodide_with_rustworkx() { pyodide.FS.writeFile(`/tmp/${filename}`, new Uint8Array(wheelData)); + // Install with micropip await micropip.install(`emfs:/tmp/${filename}`); return pyodide; } +async function getUnitTest() { + let unitTestFile = `${__dirname}/test_smoke.py`; + let unitTestData = fs.readFileSync(unitTestFile); + return unitTestData.toString(); +} + async function run_smoke_test() { let pyodide = await get_pyodide_with_rustworkx(); - return pyodide.runPythonAsync(` -import rustworkx -import unittest - -class TestPyodide(unittest.TestCase): - def test_isomorphism(self): - # Adapted from tests/graph/test_isomorphic.py - import rustworkx - - n = 15 - upper_bound_k = (n - 1) // 2 - for k in range(1, upper_bound_k + 1): - for t in range(k, upper_bound_k + 1): - result = rustworkx.is_isomorphic( - rustworkx.generators.generalized_petersen_graph(n, k), - rustworkx.generators.generalized_petersen_graph(n, t), - ) - expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1) - self.assertEqual(result, expected) - - def test_rayon_works(self): - # This essentially tests that multi-threading is set to one core and does not panic - import rustworkx - graph = rustworkx.generators.cycle_graph(10) - path_lenghts_floyd = rustworkx.floyd_warshall(graph) - path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0) - path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()} - self.assertEqual(path_lenghts_floyd, path_lenghts_dijkstra) - -suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) -runner = unittest.TextTestRunner() -runner.run(suite) -`); + return pyodide.runPythonAsync(getUnitTest()); } const result = await run_smoke_test(); diff --git a/tests/pyodide_smoke_test/test_smoke.py b/tests/pyodide_smoke_test/test_smoke.py new file mode 100644 index 0000000000..a76e49bdd2 --- /dev/null +++ b/tests/pyodide_smoke_test/test_smoke.py @@ -0,0 +1,34 @@ +import sys +import rustworkx +import unittest + +@unittest.skipUnless(sys.platform == "emscripten", "Smoke tests target Pyodide") +class TestPyodide(unittest.TestCase): + def test_isomorphism(self): + # Adapted from tests/graph/test_isomorphic.py + import rustworkx + + n = 15 + upper_bound_k = (n - 1) // 2 + for k in range(1, upper_bound_k + 1): + for t in range(k, upper_bound_k + 1): + result = rustworkx.is_isomorphic( + rustworkx.generators.generalized_petersen_graph(n, k), + rustworkx.generators.generalized_petersen_graph(n, t), + ) + expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1) + self.assertEqual(result, expected) + + def test_rayon_works(self): + # This essentially tests that multi-threading is set to one core and does not panic + import rustworkx + graph = rustworkx.generators.cycle_graph(10) + path_lenghts_floyd = rustworkx.floyd_warshall(graph) + path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0) + path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()} + self.assertEqual(path_lenghts_floyd, path_lenghts_dijkstra) + +if sys.platform == "emscripten": + suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) + runner = unittest.TextTestRunner() + runner.run(suite) From 1ca13176f7df6e76bff138be1ae4de4ea4053d5a Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 20:21:05 -0400 Subject: [PATCH 23/60] Handle dirname correctly --- tests/pyodide_smoke_test/smoke_test.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index c9beeeb688..47f51b5c99 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -1,6 +1,7 @@ import { loadPyodide } from "pyodide"; import * as fs from 'fs'; import * as path from 'path'; +import { fileURLToPath } from 'url'; async function get_pyodide_with_rustworkx() { let pyodide = await loadPyodide(); @@ -22,6 +23,8 @@ async function get_pyodide_with_rustworkx() { } async function getUnitTest() { + const __filename = fileURLToPath(import.meta.url); + const __dirname = dirname(__filename); let unitTestFile = `${__dirname}/test_smoke.py`; let unitTestData = fs.readFileSync(unitTestFile); return unitTestData.toString(); From d30857954d185f5e0c601b3b4f71436db921475c Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 20:26:24 -0400 Subject: [PATCH 24/60] Smoke test works now --- tests/pyodide_smoke_test/smoke_test.mjs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index 47f51b5c99..f7da6b4ecc 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -22,9 +22,9 @@ async function get_pyodide_with_rustworkx() { return pyodide; } -async function getUnitTest() { +function getUnitTest() { const __filename = fileURLToPath(import.meta.url); - const __dirname = dirname(__filename); + const __dirname = path.dirname(__filename); let unitTestFile = `${__dirname}/test_smoke.py`; let unitTestData = fs.readFileSync(unitTestFile); return unitTestData.toString(); @@ -32,7 +32,8 @@ async function getUnitTest() { async function run_smoke_test() { let pyodide = await get_pyodide_with_rustworkx(); - return pyodide.runPythonAsync(getUnitTest()); + let unitTest = await getUnitTest(); + return pyodide.runPythonAsync(unitTest); } const result = await run_smoke_test(); From 765ba1ed468e1bde99abc7f1d9fd5cdeda60d4e9 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 20:37:08 -0400 Subject: [PATCH 25/60] Actually catch failures --- tests/pyodide_smoke_test/smoke_test.mjs | 10 +++++----- tests/pyodide_smoke_test/test_smoke.py | 4 ++++ 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index f7da6b4ecc..e52e57a886 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -3,7 +3,7 @@ import * as fs from 'fs'; import * as path from 'path'; import { fileURLToPath } from 'url'; -async function get_pyodide_with_rustworkx() { +async function getPyodideWithRustworkx() { let pyodide = await loadPyodide(); await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); @@ -22,7 +22,7 @@ async function get_pyodide_with_rustworkx() { return pyodide; } -function getUnitTest() { +async function getUnitTest() { const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); let unitTestFile = `${__dirname}/test_smoke.py`; @@ -30,11 +30,11 @@ function getUnitTest() { return unitTestData.toString(); } -async function run_smoke_test() { - let pyodide = await get_pyodide_with_rustworkx(); +async function runSmokeTest() { + let pyodide = await getPyodideWithRustworkx(); let unitTest = await getUnitTest(); return pyodide.runPythonAsync(unitTest); } -const result = await run_smoke_test(); +await runSmokeTest(); console.log("Smoke test completed successfully"); diff --git a/tests/pyodide_smoke_test/test_smoke.py b/tests/pyodide_smoke_test/test_smoke.py index a76e49bdd2..d01020d9aa 100644 --- a/tests/pyodide_smoke_test/test_smoke.py +++ b/tests/pyodide_smoke_test/test_smoke.py @@ -32,3 +32,7 @@ def test_rayon_works(self): suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) runner = unittest.TextTestRunner() runner.run(suite) + if result.wasSuccessful(): + sys.exit(0) + else: + sys.exit(1) From b63e334748e9fe87a4f941050b3955a16ee912fb Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 20:40:19 -0400 Subject: [PATCH 26/60] Local imports only --- tests/pyodide_smoke_test/test_smoke.py | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/tests/pyodide_smoke_test/test_smoke.py b/tests/pyodide_smoke_test/test_smoke.py index d01020d9aa..8417c3884a 100644 --- a/tests/pyodide_smoke_test/test_smoke.py +++ b/tests/pyodide_smoke_test/test_smoke.py @@ -1,5 +1,4 @@ import sys -import rustworkx import unittest @unittest.skipUnless(sys.platform == "emscripten", "Smoke tests target Pyodide") @@ -31,8 +30,6 @@ def test_rayon_works(self): if sys.platform == "emscripten": suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) runner = unittest.TextTestRunner() - runner.run(suite) - if result.wasSuccessful(): - sys.exit(0) - else: + result = runner.run(suite) + if not result.wasSuccessful(): sys.exit(1) From f393309dce702fec52f1e906ed8df28b77ba93e9 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 21:13:30 -0400 Subject: [PATCH 27/60] Add pixi tasks --- .github/workflows/main.yml | 4 +- pyproject.toml | 13 ++++++ tests/pyodide_smoke_test/test_smoke.py | 55 ++++++++++++++------------ tools/find_only_wheel.py | 37 +++++++++++++++++ 4 files changed, 81 insertions(+), 28 deletions(-) create mode 100644 tools/find_only_wheel.py diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6b09dc6457..18b754f405 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -201,7 +201,7 @@ jobs: pyodide-build: if: github.repository_owner == 'Qiskit' needs: [tests] - name: Pyodide Build + name: Pyodide Build + Test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 @@ -210,4 +210,4 @@ jobs: manifest-path: pyproject.toml pixi-version: v0.46.0 environments: default - - run: pixi run build_pyodide + - run: pixi run build_pyodide_and_test diff --git a/pyproject.toml b/pyproject.toml index 6fba9434af..33139b712a 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -184,5 +184,18 @@ cmd = ["pyodide", "build"] env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-memory,+mutable-globals $(pyodide config get rustflags)" } depends-on = ["install_xbuildenv"] +[tool.pixi.tasks.install_smoke_env] +cmd = ["pushd tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "popd", "&&", "popd"] + +[tool.pixi.tasks.smoke_test] +cmd = ["pushd tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}"] +args = [ + { "arg" = "path", "default" = "$(python tools/find_only_wheel.py)" } +] +depends-on = ["install_smoke_env", "find_pyodide_wheel"] + +[tool.pixi.tasks.build_pyodide_and_test] +depends-on = ["build_pyodide", "smoke_test"] + [tool.pyodide.build] xbuildenv_path = ".xbuildenv" diff --git a/tests/pyodide_smoke_test/test_smoke.py b/tests/pyodide_smoke_test/test_smoke.py index 8417c3884a..2a8f673449 100644 --- a/tests/pyodide_smoke_test/test_smoke.py +++ b/tests/pyodide_smoke_test/test_smoke.py @@ -1,35 +1,38 @@ import sys import unittest + @unittest.skipUnless(sys.platform == "emscripten", "Smoke tests target Pyodide") class TestPyodide(unittest.TestCase): - def test_isomorphism(self): - # Adapted from tests/graph/test_isomorphic.py - import rustworkx + def test_isomorphism(self): + # Adapted from tests/graph/test_isomorphic.py + import rustworkx + + n = 15 + upper_bound_k = (n - 1) // 2 + for k in range(1, upper_bound_k + 1): + for t in range(k, upper_bound_k + 1): + result = rustworkx.is_isomorphic( + rustworkx.generators.generalized_petersen_graph(n, k), + rustworkx.generators.generalized_petersen_graph(n, t), + ) + expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1) + self.assertEqual(result, expected) + + def test_rayon_works(self): + # This essentially tests that multi-threading is set to one core and does not panic + import rustworkx - n = 15 - upper_bound_k = (n - 1) // 2 - for k in range(1, upper_bound_k + 1): - for t in range(k, upper_bound_k + 1): - result = rustworkx.is_isomorphic( - rustworkx.generators.generalized_petersen_graph(n, k), - rustworkx.generators.generalized_petersen_graph(n, t), - ) - expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1) - self.assertEqual(result, expected) + graph = rustworkx.generators.cycle_graph(10) + path_lenghts_floyd = rustworkx.floyd_warshall(graph) + path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0) + path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()} + self.assertEqual(path_lenghts_floyd, path_lenghts_dijkstra) - def test_rayon_works(self): - # This essentially tests that multi-threading is set to one core and does not panic - import rustworkx - graph = rustworkx.generators.cycle_graph(10) - path_lenghts_floyd = rustworkx.floyd_warshall(graph) - path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0) - path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()} - self.assertEqual(path_lenghts_floyd, path_lenghts_dijkstra) if sys.platform == "emscripten": - suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) - runner = unittest.TextTestRunner() - result = runner.run(suite) - if not result.wasSuccessful(): - sys.exit(1) + suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) + runner = unittest.TextTestRunner() + result = runner.run(suite) + if not result.wasSuccessful(): + sys.exit(1) diff --git a/tools/find_only_wheel.py b/tools/find_only_wheel.py new file mode 100644 index 0000000000..c00c7abe19 --- /dev/null +++ b/tools/find_only_wheel.py @@ -0,0 +1,37 @@ +import pathlib + + +def find_only_pyodide_wheel(directory): + """ + Find the only pyodide wheel in the current directory. + Throws an error if there is not exactly one .whl file, + to remind users to clean up the directory. + """ + # Filter for .whl files + whl_files = [ + f for f in directory.iterdir() + if f.is_file() and f.suffix == ".whl" + ] + pyodide_whl_files = [ + f for f in whl_files + if "rustworkx" in f.name and "pyodide" in f.name + ] + + # Check if there is exactly one .whl file + if len(whl_files) != 1: + raise RuntimeError( + "There should be exactly one .whl file in the dist/ directory. Please clean up the directory." + ) + + return whl_files[0] # Return the name of the .whl file + +if __name__ == "__main__": + current_dir = pathlib.Path(__file__) + dist_dir = pathlib.Path(__file__).parent / "../dist" + absolute_dist_path = dist_dir.resolve() + + # Find the only pyodide wheel + wheel_path = find_only_pyodide_wheel(absolute_dist_path) + + # Print the name of the wheel file + print(wheel_path) \ No newline at end of file From e2bad5018e8dfb2f43c06f0e200abcdcf95cf251 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 21:26:22 -0400 Subject: [PATCH 28/60] It works! --- pyproject.toml | 8 ++++---- tests/pyodide_smoke_test/package-lock.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 33139b712a..fe1fd3857b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -185,14 +185,14 @@ env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-mem depends-on = ["install_xbuildenv"] [tool.pixi.tasks.install_smoke_env] -cmd = ["pushd tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "popd", "&&", "popd"] +cmd = ["cd", "tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "cd", ".."] [tool.pixi.tasks.smoke_test] -cmd = ["pushd tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}"] +cmd = ["cd", "tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}", "cd", ".."] args = [ - { "arg" = "path", "default" = "$(python tools/find_only_wheel.py)" } + { "arg" = "wheel_path", "default" = "$(python ../../tools/find_only_wheel.py)" }, ] -depends-on = ["install_smoke_env", "find_pyodide_wheel"] +depends-on = ["install_smoke_env"] [tool.pixi.tasks.build_pyodide_and_test] depends-on = ["build_pyodide", "smoke_test"] diff --git a/tests/pyodide_smoke_test/package-lock.json b/tests/pyodide_smoke_test/package-lock.json index f3f3289627..f8fb54afb9 100644 --- a/tests/pyodide_smoke_test/package-lock.json +++ b/tests/pyodide_smoke_test/package-lock.json @@ -1,5 +1,5 @@ { - "name": "pyodide-nodejs", + "name": "pyodide_smoke_test", "lockfileVersion": 3, "requires": true, "packages": { From b8c2f5844cf46ec50b5fa6d936312d25a18478c1 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 21:35:41 -0400 Subject: [PATCH 29/60] Throw error if there are multiple wheels --- tests/pyodide_smoke_test/smoke_test.mjs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index e52e57a886..63e130b37d 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -10,6 +10,9 @@ async function getPyodideWithRustworkx() { // Load rustworkx from local file system to Pyodide's const filePath = process.argv[2]; + if (process.argv[2] === '') { + throw new Error('Wheel path is empty, check the logs to see if there are multiple wheels in dist/.'); + } const filename = path.basename(filePath); const wheelPath = path.resolve(filePath); From 588f0d025f8b33fee473acff9066aaa3dfb2a266 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 21:53:45 -0400 Subject: [PATCH 30/60] Update CONTRIBUTING.md to explain how to run tests --- CONTRIBUTING.md | 27 ++++++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7c75cb9b6e..50da36f10b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -568,8 +568,25 @@ a Pyodide wheel will be available in the `dist` folder if the build is successfu #### Testing Pyodide Wheels -Currently, there are no tests for Pyodide wheels. In the future, we plan to add smoke tests -like those in the `pyodide-recipes` repository. +After running `pixi run build_pyodide`, we can run a simple smoke test with: + +```bash +pixi run smoke_test +``` + +It is also possible to run the smoke test with a specific wheel via an **absolute path**: +``` +pixi run smoke_test $ABSOLUTE_PATH_TO_WHEEL +``` + +> [!WARNING] +> If there are multiple Pyodide wheels in the dist/ folder, the test will fail +> to prevent you from testing an outdated wheel. This scenario can happen when +> we update the rustworkx version, minimum Python version, or Pyodide. To fix, +> clean the directory with `rm -r dist` and re-run `pixi run build_pyodide` + +> [!TIP] +> You can build and test with a single command with `pixi run build_pyodide_and_test`. #### Updating `pyodide-build` and dependencies @@ -581,7 +598,7 @@ of the public releases. Then, we pick a `pyodide-build` version higher than the version also specified in the cross build environments. Lastly, update `[tool.pixi.tasks.install_xbuildenv]` to install the selected version of Pyodide. -Lastly, we need to pin the Rust compiler. To find an appropriate Rust compiler version, run: +We need to pin the Rust compiler. To find an appropriate Rust compiler version, run: ```bash pixi shell @@ -595,6 +612,10 @@ maps roughly to `1.86`. If that version was not yet stable, we could try picking After updating the versions in `[tool.pixi.dependencies]`, run `pixi lock` which will update `pixi.lock`. Onwards, all builds will use the same environment. As long as `pixi run build_pyodide` passes locally or on CI it should keep compiling and building. +Lastly, remember to update the Pyodide version in `tests/pyodide_smoke_test`. Change the version in `tests/pyodide_smoke_test/package.json` +and run `pixi run install_smoke_env` to generate the new lockfile. If you forget to update the Pyodide version, the smoke test +will fail. + ### Stable Branch Policy and Backporting The stable branch is intended to be a safe source of fixes for high-impact bugs, From 233ffe6aea18b55106544df4332b172d9a3866a1 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 21:59:35 -0400 Subject: [PATCH 31/60] Minor improvements --- pyproject.toml | 4 ++-- tools/find_only_wheel.py | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index fe1fd3857b..17c4f5d6ad 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -185,10 +185,10 @@ env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-mem depends-on = ["install_xbuildenv"] [tool.pixi.tasks.install_smoke_env] -cmd = ["cd", "tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "cd", ".."] +cmd = ["cd", "tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "cd", "../.."] [tool.pixi.tasks.smoke_test] -cmd = ["cd", "tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}", "cd", ".."] +cmd = ["cd", "tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}", "cd", "../.."] args = [ { "arg" = "wheel_path", "default" = "$(python ../../tools/find_only_wheel.py)" }, ] diff --git a/tools/find_only_wheel.py b/tools/find_only_wheel.py index c00c7abe19..b77b8f7908 100644 --- a/tools/find_only_wheel.py +++ b/tools/find_only_wheel.py @@ -34,4 +34,4 @@ def find_only_pyodide_wheel(directory): wheel_path = find_only_pyodide_wheel(absolute_dist_path) # Print the name of the wheel file - print(wheel_path) \ No newline at end of file + print(wheel_path) From 7d42387426f390e9ba7289979eb50d8a12e003cc Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 22:07:01 -0400 Subject: [PATCH 32/60] Even more minor fixes --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 17c4f5d6ad..5a289a904c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -188,7 +188,7 @@ depends-on = ["install_xbuildenv"] cmd = ["cd", "tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "cd", "../.."] [tool.pixi.tasks.smoke_test] -cmd = ["cd", "tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}", "cd", "../.."] +cmd = ["cd", "tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}", "&&", "cd", "../.."] args = [ { "arg" = "wheel_path", "default" = "$(python ../../tools/find_only_wheel.py)" }, ] From d81928e67aea2069619ba5a4f0450e39e6e2b8e1 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Wed, 14 May 2025 23:12:34 -0400 Subject: [PATCH 33/60] Minor grammar changes --- CONTRIBUTING.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 50da36f10b..420d453297 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -581,8 +581,8 @@ pixi run smoke_test $ABSOLUTE_PATH_TO_WHEEL > [!WARNING] > If there are multiple Pyodide wheels in the dist/ folder, the test will fail -> to prevent you from testing an outdated wheel. This scenario can happen when -> we update the rustworkx version, minimum Python version, or Pyodide. To fix, +> to prevent anyone from testing an outdated wheel. This scenario can happen when +> we update the rustworkx version, update the minimum Python ABI, or update Pyodide. To fix, > clean the directory with `rm -r dist` and re-run `pixi run build_pyodide` > [!TIP] From fba535193d6fe28bf006b68b52cd79c50767cb71 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 15 May 2025 20:32:40 -0400 Subject: [PATCH 34/60] Complete test suite runs --- tests/pyodide_smoke_test/smoke_test.mjs | 52 +++++++++++++++------- tests/pyodide_smoke_test/test_smoke.py | 59 ++++++++++++------------- 2 files changed, 63 insertions(+), 48 deletions(-) diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_smoke_test/smoke_test.mjs index 63e130b37d..87d6b267f8 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_smoke_test/smoke_test.mjs @@ -1,17 +1,17 @@ import { loadPyodide } from "pyodide"; -import * as fs from 'fs'; -import * as path from 'path'; -import { fileURLToPath } from 'url'; +import * as fs from "fs"; +import * as path from "path"; +import { fileURLToPath } from "url"; -async function getPyodideWithRustworkx() { +async function getPyodideWithDeps() { let pyodide = await loadPyodide(); await pyodide.loadPackage("micropip"); const micropip = pyodide.pyimport("micropip"); // Load rustworkx from local file system to Pyodide's const filePath = process.argv[2]; - if (process.argv[2] === '') { - throw new Error('Wheel path is empty, check the logs to see if there are multiple wheels in dist/.'); + if (process.argv[2] === "") { + throw new Error("Wheel path is empty, check the logs to see if there are multiple wheels in dist/."); } const filename = path.basename(filePath); @@ -20,24 +20,42 @@ async function getPyodideWithRustworkx() { pyodide.FS.writeFile(`/tmp/${filename}`, new Uint8Array(wheelData)); - // Install with micropip - await micropip.install(`emfs:/tmp/${filename}`); + // Install rustworkx + networkx for testing. We ignore the optional dependencies. + await micropip.install.callKwargs({ + requirements: [`emfs:/tmp/${filename}`, "numpy", "networkx"], + deps: false, + }) + return pyodide; } -async function getUnitTest() { +async function getUnitTests(pyodide) { const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); let unitTestFile = `${__dirname}/test_smoke.py`; - let unitTestData = fs.readFileSync(unitTestFile); - return unitTestData.toString(); + let unitTestDir = path.dirname(__dirname); + // Mount test directory to Pyodide's file system + let mountDir = "/tmp/tests"; + pyodide.FS.mkdirTree(mountDir); + pyodide.FS.mount(pyodide.FS.filesystems.NODEFS, { root: unitTestDir }, mountDir); + // Read the test runner file + let unitTestRunner = fs.readFileSync(unitTestFile); + return unitTestRunner.toString(); +} + +async function main() { + let pyodide = await getPyodideWithDeps(); + let unitTests = await getUnitTests(pyodide); + try { + await pyodide.runPythonAsync(unitTests); + console.log("Smoke test completed successfully"); + } catch (error) { + console.error("Error during smoke test:", error); + process.exit(1); + } } -async function runSmokeTest() { - let pyodide = await getPyodideWithRustworkx(); - let unitTest = await getUnitTest(); - return pyodide.runPythonAsync(unitTest); +if (process.argv[1] === import.meta.filename){ + await main(); } -await runSmokeTest(); -console.log("Smoke test completed successfully"); diff --git a/tests/pyodide_smoke_test/test_smoke.py b/tests/pyodide_smoke_test/test_smoke.py index 2a8f673449..84ad7bfc6e 100644 --- a/tests/pyodide_smoke_test/test_smoke.py +++ b/tests/pyodide_smoke_test/test_smoke.py @@ -1,38 +1,35 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +import pathlib import sys import unittest +def main(): + if sys.platform == "emscripten": + tests_folder = "/tmp/tests/" + else: + # Set the path to the code to test + tests_folder = pathlib.Path(__file__).parent.parent.resolve() -@unittest.skipUnless(sys.platform == "emscripten", "Smoke tests target Pyodide") -class TestPyodide(unittest.TestCase): - def test_isomorphism(self): - # Adapted from tests/graph/test_isomorphic.py - import rustworkx - - n = 15 - upper_bound_k = (n - 1) // 2 - for k in range(1, upper_bound_k + 1): - for t in range(k, upper_bound_k + 1): - result = rustworkx.is_isomorphic( - rustworkx.generators.generalized_petersen_graph(n, k), - rustworkx.generators.generalized_petersen_graph(n, t), - ) - expected = (k == t) or (k == n - t) or (k * t % n == 1) or (k * t % n == n - 1) - self.assertEqual(result, expected) - - def test_rayon_works(self): - # This essentially tests that multi-threading is set to one core and does not panic - import rustworkx - - graph = rustworkx.generators.cycle_graph(10) - path_lenghts_floyd = rustworkx.floyd_warshall(graph) - path_lenghts_no_self = rustworkx.all_pairs_dijkstra_path_lengths(graph, lambda _: 1.0) - path_lenghts_dijkstra = {k: {**v, k: 0.0} for k, v in path_lenghts_no_self.items()} - self.assertEqual(path_lenghts_floyd, path_lenghts_dijkstra) + # Discover tests in the specified folder + loader = unittest.TestLoader() + suite = loader.discover(start_dir=tests_folder) - -if sys.platform == "emscripten": - suite = unittest.TestLoader().loadTestsFromTestCase(TestPyodide) + # Run the discovered tests runner = unittest.TextTestRunner() result = runner.run(suite) - if not result.wasSuccessful(): - sys.exit(1) + assert result.wasSuccessful() + + +if __name__ == "__main__" or sys.platform == "emscripten": + main() From a66716e609f8d3c2215284df9b13edd9aeb3ac12 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 15 May 2025 20:39:13 -0400 Subject: [PATCH 35/60] Run complete test suite --- pyproject.toml | 12 ++++----- .../package-lock.json | 2 +- .../package.json | 0 .../pyodide_runner.mjs} | 27 ++++++++++++++++++- .../test_smoke.py => pyodide_tests/runner.py} | 5 ++++ 5 files changed, 38 insertions(+), 8 deletions(-) rename tests/{pyodide_smoke_test => pyodide_tests}/package-lock.json (97%) rename tests/{pyodide_smoke_test => pyodide_tests}/package.json (100%) rename tests/{pyodide_smoke_test/smoke_test.mjs => pyodide_tests/pyodide_runner.mjs} (65%) rename tests/{pyodide_smoke_test/test_smoke.py => pyodide_tests/runner.py} (86%) diff --git a/pyproject.toml b/pyproject.toml index 5a289a904c..a2427c0cf8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -184,18 +184,18 @@ cmd = ["pyodide", "build"] env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-memory,+mutable-globals $(pyodide config get rustflags)" } depends-on = ["install_xbuildenv"] -[tool.pixi.tasks.install_smoke_env] -cmd = ["cd", "tests/pyodide_smoke_test", "&&", "npm", "install", "&&", "cd", "../.."] +[tool.pixi.tasks.install_pyodide_test_env] +cmd = ["cd", "tests/pyodide_tests", "&&", "npm", "install", "&&", "cd", "../.."] -[tool.pixi.tasks.smoke_test] -cmd = ["cd", "tests/pyodide_smoke_test", "&&", "node", "smoke_test.mjs", "{{ wheel_path }}", "&&", "cd", "../.."] +[tool.pixi.tasks.pyodide_test] +cmd = ["cd", "tests/pyodide_tests", "&&", "node", "pyodide_runner.mjs", "{{ wheel_path }}", "&&", "cd", "../.."] args = [ { "arg" = "wheel_path", "default" = "$(python ../../tools/find_only_wheel.py)" }, ] -depends-on = ["install_smoke_env"] +depends-on = ["install_pyodide_test_env"] [tool.pixi.tasks.build_pyodide_and_test] -depends-on = ["build_pyodide", "smoke_test"] +depends-on = ["build_pyodide", "pyodide_test"] [tool.pyodide.build] xbuildenv_path = ".xbuildenv" diff --git a/tests/pyodide_smoke_test/package-lock.json b/tests/pyodide_tests/package-lock.json similarity index 97% rename from tests/pyodide_smoke_test/package-lock.json rename to tests/pyodide_tests/package-lock.json index f8fb54afb9..c982b94203 100644 --- a/tests/pyodide_smoke_test/package-lock.json +++ b/tests/pyodide_tests/package-lock.json @@ -1,5 +1,5 @@ { - "name": "pyodide_smoke_test", + "name": "pyodide_tests", "lockfileVersion": 3, "requires": true, "packages": { diff --git a/tests/pyodide_smoke_test/package.json b/tests/pyodide_tests/package.json similarity index 100% rename from tests/pyodide_smoke_test/package.json rename to tests/pyodide_tests/package.json diff --git a/tests/pyodide_smoke_test/smoke_test.mjs b/tests/pyodide_tests/pyodide_runner.mjs similarity index 65% rename from tests/pyodide_smoke_test/smoke_test.mjs rename to tests/pyodide_tests/pyodide_runner.mjs index 87d6b267f8..6d6ad9a377 100644 --- a/tests/pyodide_smoke_test/smoke_test.mjs +++ b/tests/pyodide_tests/pyodide_runner.mjs @@ -1,3 +1,28 @@ +/* + * Licensed under the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. You may obtain + * a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations + * under the License. + * + * Running this file is the equivalent of running: + * python -m unittest discover . + * at the root of the tests folder. It works both with Pyodide and + * in a normal Python environment. + */ + +/* + Usage: node pyodide_runner.mjs + This loads Pyodide, rustworkx, networkx, numpy, and the test files + and runs the tests in memory with unittest. +*/ + import { loadPyodide } from "pyodide"; import * as fs from "fs"; import * as path from "path"; @@ -32,7 +57,7 @@ async function getPyodideWithDeps() { async function getUnitTests(pyodide) { const __filename = fileURLToPath(import.meta.url); const __dirname = path.dirname(__filename); - let unitTestFile = `${__dirname}/test_smoke.py`; + let unitTestFile = `${__dirname}/runner.py`; let unitTestDir = path.dirname(__dirname); // Mount test directory to Pyodide's file system let mountDir = "/tmp/tests"; diff --git a/tests/pyodide_smoke_test/test_smoke.py b/tests/pyodide_tests/runner.py similarity index 86% rename from tests/pyodide_smoke_test/test_smoke.py rename to tests/pyodide_tests/runner.py index 84ad7bfc6e..ba5c4b0aee 100644 --- a/tests/pyodide_smoke_test/test_smoke.py +++ b/tests/pyodide_tests/runner.py @@ -10,6 +10,11 @@ # License for the specific language governing permissions and limitations # under the License. +# Running this file is the equivalent of running: +# python -m unittest discover . +# At the root of the tests folder. It works both with Pyodide and +# in a normal Python environment. + import pathlib import sys import unittest From 1599f18e805f70a1ee85f5ebaffebdf930e12e28 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 15 May 2025 20:41:20 -0400 Subject: [PATCH 36/60] Update CONTRIBUTING.md to reflect full test suite --- CONTRIBUTING.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 420d453297..9ba730f0f8 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -568,15 +568,15 @@ a Pyodide wheel will be available in the `dist` folder if the build is successfu #### Testing Pyodide Wheels -After running `pixi run build_pyodide`, we can run a simple smoke test with: +After running `pixi run build_pyodide`, we can run the test suite with: ```bash -pixi run smoke_test +pixi run pyodide_test ``` It is also possible to run the smoke test with a specific wheel via an **absolute path**: ``` -pixi run smoke_test $ABSOLUTE_PATH_TO_WHEEL +pixi run pyodide_test $ABSOLUTE_PATH_TO_WHEEL ``` > [!WARNING] @@ -612,8 +612,8 @@ maps roughly to `1.86`. If that version was not yet stable, we could try picking After updating the versions in `[tool.pixi.dependencies]`, run `pixi lock` which will update `pixi.lock`. Onwards, all builds will use the same environment. As long as `pixi run build_pyodide` passes locally or on CI it should keep compiling and building. -Lastly, remember to update the Pyodide version in `tests/pyodide_smoke_test`. Change the version in `tests/pyodide_smoke_test/package.json` -and run `pixi run install_smoke_env` to generate the new lockfile. If you forget to update the Pyodide version, the smoke test +Lastly, remember to update the Pyodide version in `tests/pyodide_tests`. Change the version in `tests/pyodide_tests/package.json` +and run `pixi run install_pyodide_test_env` to generate the new lockfile. If you forget to update the Pyodide version, the smoke test will fail. ### Stable Branch Policy and Backporting From ec111ad5ae634dbdff34de7210851d00923cdf44 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 15 May 2025 20:47:08 -0400 Subject: [PATCH 37/60] Black --- tests/pyodide_tests/pyodide_runner.mjs | 2 +- tests/pyodide_tests/runner.py | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/pyodide_tests/pyodide_runner.mjs b/tests/pyodide_tests/pyodide_runner.mjs index 6d6ad9a377..f70b665747 100644 --- a/tests/pyodide_tests/pyodide_runner.mjs +++ b/tests/pyodide_tests/pyodide_runner.mjs @@ -19,7 +19,7 @@ /* Usage: node pyodide_runner.mjs - This loads Pyodide, rustworkx, networkx, numpy, and the test files + This loads Pyodide, rustworkx, networkx, numpy. Then, it mounts the test folder and runs the tests in memory with unittest. */ diff --git a/tests/pyodide_tests/runner.py b/tests/pyodide_tests/runner.py index ba5c4b0aee..1d431ddd73 100644 --- a/tests/pyodide_tests/runner.py +++ b/tests/pyodide_tests/runner.py @@ -19,6 +19,7 @@ import sys import unittest + def main(): if sys.platform == "emscripten": tests_folder = "/tmp/tests/" From 289329c63838e33639d1de0cbcc5a0572f7907a7 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 15 May 2025 20:50:00 -0400 Subject: [PATCH 38/60] Minor correction --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 9ba730f0f8..942959ce51 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -574,7 +574,7 @@ After running `pixi run build_pyodide`, we can run the test suite with: pixi run pyodide_test ``` -It is also possible to run the smoke test with a specific wheel via an **absolute path**: +It is also possible to run the tests with a specific wheel via an **absolute path**: ``` pixi run pyodide_test $ABSOLUTE_PATH_TO_WHEEL ``` From 65d8a5e05aa3072d281186ee98b38d4423015664 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 17 May 2025 00:02:02 -0400 Subject: [PATCH 39/60] smoke test -> unit test --- CONTRIBUTING.md | 2 +- tests/pyodide_tests/pyodide_runner.mjs | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 942959ce51..b0fd311754 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -613,7 +613,7 @@ After updating the versions in `[tool.pixi.dependencies]`, run `pixi lock` which will use the same environment. As long as `pixi run build_pyodide` passes locally or on CI it should keep compiling and building. Lastly, remember to update the Pyodide version in `tests/pyodide_tests`. Change the version in `tests/pyodide_tests/package.json` -and run `pixi run install_pyodide_test_env` to generate the new lockfile. If you forget to update the Pyodide version, the smoke test +and run `pixi run install_pyodide_test_env` to generate the new lockfile. If you forget to update the Pyodide version, the tests will fail. ### Stable Branch Policy and Backporting diff --git a/tests/pyodide_tests/pyodide_runner.mjs b/tests/pyodide_tests/pyodide_runner.mjs index f70b665747..66aef9fe25 100644 --- a/tests/pyodide_tests/pyodide_runner.mjs +++ b/tests/pyodide_tests/pyodide_runner.mjs @@ -73,9 +73,9 @@ async function main() { let unitTests = await getUnitTests(pyodide); try { await pyodide.runPythonAsync(unitTests); - console.log("Smoke test completed successfully"); + console.log("Unit tests completed successfully"); } catch (error) { - console.error("Error during smoke test:", error); + console.error("Error during unit tests:", error); process.exit(1); } } From aa3451224cad7d95e41134bac7c5aac6f27ff071 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 29 May 2025 08:38:37 -0400 Subject: [PATCH 40/60] Solve nit --- releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml b/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml index 7e81fdb3d0..543443cb81 100644 --- a/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml +++ b/releasenotes/notes/pyodide-support-2172f2313b06f10d.yaml @@ -1,5 +1,5 @@ --- -upgrade: +features: - | `rustworkx` now has experimental support for `Pyodide `__. Pyodide is a Python distribution for WebAssembly that runs in the browser. From d7bb2159fb71434024e1db82d985403f04ead8d5 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 29 May 2025 21:43:41 -0400 Subject: [PATCH 41/60] Bump pyodide to 0.27.6 and pyodide-build to 0.30.4 --- pixi.lock | 12 ++++++------ pyproject.toml | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/pixi.lock b/pixi.lock index 48cebde8bf..5e34702185 100644 --- a/pixi.lock +++ b/pixi.lock @@ -81,7 +81,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py312h680f630_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.2-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.4-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0a7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda @@ -1052,9 +1052,9 @@ packages: - pkg:pypi/pygments?source=hash-mapping size: 888600 timestamp: 1736243563082 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.2-pyhac95a24_0.conda - sha256: 3b07fb5ce926ebaeb018df47a5a64b3238f07598009b223aae346c2e664cd47d - md5: 903583e853d3cc2c82fcdcc698b66940 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.4-pyhac95a24_0.conda + sha256: 97ca682e4bb732b3eb8516dba6863f20ab7cd2cbf1a1f7f0c437678dbee11373 + md5: 262efcb48d7313f522e72da0c11c027c depends: - auditwheel-emscripten ==0.1.0 - packaging @@ -1077,8 +1077,8 @@ packages: license_family: MOZILLA purls: - pkg:pypi/pyodide-build?source=hash-mapping - size: 101351 - timestamp: 1746476227410 + size: 101429 + timestamp: 1747737109119 - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda sha256: 30e4a37a40d7ee47b8be64015674ad7323c6f41e935d080fb6bcfb8ec1f02b3d md5: 0947e2092ff75a34f5e58bc5f689e247 diff --git a/pyproject.toml b/pyproject.toml index 772f29a040..0e73bde703 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,7 +170,7 @@ default = {features = [], solve-group = "default"} [tool.pixi.dependencies] python = "==3.12.7" pip="==25.1" -pyodide-build = "==0.30.2" +pyodide-build = "==0.30.4" emscripten = "==3.1.58" nodejs = ">=22.13.0,<22.14" rust = "==1.86" @@ -178,11 +178,11 @@ rust-std-wasm32-unknown-emscripten = "==1.86" rust-src = "==1.86" [tool.pixi.tasks.install_xbuildenv] -cmd = ["pyodide", "xbuildenv", "install", "0.27.5"] +cmd = ["pyodide", "xbuildenv", "install", "0.27.6"] [tool.pixi.tasks.build_pyodide] cmd = ["pyodide", "build"] -env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-memory,+mutable-globals $(pyodide config get rustflags)" } +env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "$(pyodide config get rustflags) -C target-feature=+atomics,+bulk-memory,+mutable-globals" } depends-on = ["install_xbuildenv"] [tool.pyodide.build] From d6b1faa9ed03e4ae097124d1278697a26898a313 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Thu, 29 May 2025 21:54:40 -0400 Subject: [PATCH 42/60] Update to 0.27.6 and simplify setup --- .../package-lock.json => package-lock.json | 11 ++++++----- package.json | 6 ++++++ pyproject.toml | 6 +++--- tests/pyodide_tests/package.json | 5 ----- 4 files changed, 15 insertions(+), 13 deletions(-) rename tests/pyodide_tests/package-lock.json => package-lock.json (79%) create mode 100644 package.json delete mode 100644 tests/pyodide_tests/package.json diff --git a/tests/pyodide_tests/package-lock.json b/package-lock.json similarity index 79% rename from tests/pyodide_tests/package-lock.json rename to package-lock.json index c982b94203..fa96b31aa7 100644 --- a/tests/pyodide_tests/package-lock.json +++ b/package-lock.json @@ -1,17 +1,18 @@ { - "name": "pyodide_tests", + "name": "rustworkx-pyodide", "lockfileVersion": 3, "requires": true, "packages": { "": { + "name": "rustworkx-pyodide", "dependencies": { - "pyodide": "^0.27.5" + "pyodide": "^0.27.6" } }, "node_modules/pyodide": { - "version": "0.27.5", - "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.27.5.tgz", - "integrity": "sha512-nXErpLzEdtQolt+sNQ/5mKuN9XTUwhxR2MRhRhZ6oDRGpYLXrOp5+kkTPGEwK+wn1ZA8+poNmoxKTj2sq/p9og==", + "version": "0.27.6", + "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.27.6.tgz", + "integrity": "sha512-ahiSHHs6iFKl2f8aO1wALINAlMNDLAtb44xCI87GQyH2tLDk8F8VWip3u1ZNIyglGSCYAOSFzWKwS1f9gBFVdg==", "license": "Apache-2.0", "dependencies": { "ws": "^8.5.0" diff --git a/package.json b/package.json new file mode 100644 index 0000000000..83e8fab2f6 --- /dev/null +++ b/package.json @@ -0,0 +1,6 @@ +{ + "name": "rustworkx-pyodide", + "dependencies": { + "pyodide": "^0.27.6" + } +} diff --git a/pyproject.toml b/pyproject.toml index 3d7dfe78e0..d7c45ec8c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -186,12 +186,12 @@ env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "-C target-feature=+atomics,+bulk-mem depends-on = ["install_xbuildenv"] [tool.pixi.tasks.install_pyodide_test_env] -cmd = ["cd", "tests/pyodide_tests", "&&", "npm", "install", "&&", "cd", "../.."] +cmd = ["npm", "install"] [tool.pixi.tasks.pyodide_test] -cmd = ["cd", "tests/pyodide_tests", "&&", "node", "pyodide_runner.mjs", "{{ wheel_path }}", "&&", "cd", "../.."] +cmd = ["node", "tests/pyodide_tests/pyodide_runner.mjs", "{{ wheel_path }}"] args = [ - { "arg" = "wheel_path", "default" = "$(python ../../tools/find_only_wheel.py)" }, + { "arg" = "wheel_path", "default" = "$(python tools/find_only_wheel.py)" }, ] depends-on = ["install_pyodide_test_env"] diff --git a/tests/pyodide_tests/package.json b/tests/pyodide_tests/package.json deleted file mode 100644 index 0876dd9cf6..0000000000 --- a/tests/pyodide_tests/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "dependencies": { - "pyodide": "^0.27.5" - } -} From 24f000ccbb4d4bb9c42807d2a5ec8f910434d355 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 28 Jun 2025 22:49:08 -0400 Subject: [PATCH 43/60] Update pyodide build & pyodide --- pixi.lock | 12 ++++++------ pyproject.toml | 4 ++-- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/pixi.lock b/pixi.lock index 5e34702185..f941b4dc29 100644 --- a/pixi.lock +++ b/pixi.lock @@ -81,7 +81,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py312h680f630_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.4-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.5-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0a7-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda @@ -1052,9 +1052,9 @@ packages: - pkg:pypi/pygments?source=hash-mapping size: 888600 timestamp: 1736243563082 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.4-pyhac95a24_0.conda - sha256: 97ca682e4bb732b3eb8516dba6863f20ab7cd2cbf1a1f7f0c437678dbee11373 - md5: 262efcb48d7313f522e72da0c11c027c +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.5-pyhac95a24_0.conda + sha256: e05d69ad90d17d67cd3194b8acb02d7b09293fee01405989f407f0394ba97ec1 + md5: 8f8cfa1e405562340cfabd750f445192 depends: - auditwheel-emscripten ==0.1.0 - packaging @@ -1077,8 +1077,8 @@ packages: license_family: MOZILLA purls: - pkg:pypi/pyodide-build?source=hash-mapping - size: 101429 - timestamp: 1747737109119 + size: 101414 + timestamp: 1749078596512 - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda sha256: 30e4a37a40d7ee47b8be64015674ad7323c6f41e935d080fb6bcfb8ec1f02b3d md5: 0947e2092ff75a34f5e58bc5f689e247 diff --git a/pyproject.toml b/pyproject.toml index 0e73bde703..8edbdca7b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,7 +170,7 @@ default = {features = [], solve-group = "default"} [tool.pixi.dependencies] python = "==3.12.7" pip="==25.1" -pyodide-build = "==0.30.4" +pyodide-build = "==0.30.5" emscripten = "==3.1.58" nodejs = ">=22.13.0,<22.14" rust = "==1.86" @@ -178,7 +178,7 @@ rust-std-wasm32-unknown-emscripten = "==1.86" rust-src = "==1.86" [tool.pixi.tasks.install_xbuildenv] -cmd = ["pyodide", "xbuildenv", "install", "0.27.6"] +cmd = ["pyodide", "xbuildenv", "install", "0.27.7"] [tool.pixi.tasks.build_pyodide] cmd = ["pyodide", "build"] From 98c824cc84913d78a1d913b2c054422c729d84d5 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 28 Jun 2025 22:53:02 -0400 Subject: [PATCH 44/60] Bump pyodide --- package-lock.json | 10 +++++----- package.json | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index fa96b31aa7..93f7378b14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -6,14 +6,14 @@ "": { "name": "rustworkx-pyodide", "dependencies": { - "pyodide": "^0.27.6" + "pyodide": "^0.27.7" } }, "node_modules/pyodide": { - "version": "0.27.6", - "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.27.6.tgz", - "integrity": "sha512-ahiSHHs6iFKl2f8aO1wALINAlMNDLAtb44xCI87GQyH2tLDk8F8VWip3u1ZNIyglGSCYAOSFzWKwS1f9gBFVdg==", - "license": "Apache-2.0", + "version": "0.27.7", + "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.27.7.tgz", + "integrity": "sha512-RUSVJlhQdfWfgO9hVHCiXoG+nVZQRS5D9FzgpLJ/VcgGBLSAKoPL8kTiOikxbHQm1kRISeWUBdulEgO26qpSRA==", + "license": "MPL-2.0", "dependencies": { "ws": "^8.5.0" }, diff --git a/package.json b/package.json index 83e8fab2f6..30fd79263f 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rustworkx-pyodide", "dependencies": { - "pyodide": "^0.27.6" + "pyodide": "^0.27.7" } } From 618a669c4da108d899375115bd33a2dde7edb79a Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 17:22:37 -0500 Subject: [PATCH 45/60] Bump emscripten and Pyodide --- pixi.lock | 2022 +++++++++++++++++++++++++++++++++++++++--------- pyproject.toml | 20 +- 2 files changed, 1671 insertions(+), 371 deletions(-) diff --git a/pixi.lock b/pixi.lock index f941b4dc29..f7d65fc763 100644 --- a/pixi.lock +++ b/pixi.lock @@ -5,30 +5,35 @@ environments: - url: https://conda.anaconda.org/conda-forge/ indexes: - https://pypi.org/simple + options: + pypi-prerelease-mode: if-necessary-or-explicit packages: linux-64: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.1.0-pyh5d45ec7_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-118-he02047a_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-117-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py313hf159716_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf01b4d8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20-20.1.4-default_h1df26ce_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20.1.4-default_hfa515fb_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-20.1.4-default_h0982aa1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21-21.1.7-default_h99862b1_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21.1.7-default_h36abe19_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-21.1.7-default_h363a0c9_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.0-pyh707e725_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt21-21.1.7-hb700be7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_linux-64-21.1.7-hffcefe0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-3.1.58-h84d6215_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-4.0.9-ha4b6fd6_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.1.0-h4393ad2_2.conda @@ -44,7 +49,12 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp20.1-20.1.4-default_h1df26ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250512.1-cxx17_hba17884_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.7-default_h99862b1_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda @@ -52,54 +62,54 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm20-20.1.4-he9d0ab4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.7-hf7376ad_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.1.0-h97b714f_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.2-hee588c1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.1.0-h4c094af_102.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h4bc477f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lld-20.1.4-hd51abae_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20-20.1.4-h48f18f5_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20.1.4-h84d6215_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lld-21.1.7-hef48ded_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.7-h4922eb0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21-21.1.7-h3b15d91_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21.1.7-hb700be7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.13.0-hf235a45_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.2.1-he2c55a7_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.1-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py312h680f630_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py313h4b2b08d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.5-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.9-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0a7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.2-hf636f53_101_cp313.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-7_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.10-py312h66e93f0_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.1.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py313h07c4f96_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py313h07c4f96_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.91.0-h53717f1_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.91.0-h2c6d0dc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda @@ -116,14 +126,123 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h66e93f0_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda - - pypi: https://files.pythonhosted.org/packages/b0/d9/7c338b923c53d431bc837b5b787052fef9ae68a56fe91e325aac0d48226e/numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py313hf42fe89_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/binaryen-117-hebf3989_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py313hde1f3bb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.6-hc919400_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21-21.1.7-default_h489deba_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21.1.7-default_hf9bcbb7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-21.1.7-default_h36137df_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt21-21.1.7-h855ad52_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_osx-arm64-21.1.7-h2514db7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/emscripten-4.0.9-hbafa43b_0.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-3.20.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-956.6-llvm21_1_h5d6df6c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm21_1_hde6573c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20250512.1-cxx17_hd41c47c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.2.0-hc919400_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.2.0-hc919400_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.2.0-hc919400_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp21.1-21.1.7-default_h73dfc95_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.7-hf598326_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-21.1.7-h6dc3340_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-21.1.7-h707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.3-haf25636_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-he5f378a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm21-21.1.7-h8e0c9ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h9a5124b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.51.0-h6caf38d_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h0ff4647_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h9329255_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lld-21.1.7-ha4b1419_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.7-h4a912ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21-21.1.7-h91fd4e7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21.1.7-h855ad52_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-25.2.1-h5230ea7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.0-h5503f6c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py313h2c089d5_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.9-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.4.0-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.2-h81fe080_101_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.2.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py313h6535dbc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py313h6535dbc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.91.0-h4ff7c5d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.91.0-hf6ec828_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.20.0-pyhefaf540_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.20.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.20.0-h4daf872_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h8577fbf_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda + - pypi: https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 @@ -158,6 +277,24 @@ packages: - pkg:pypi/annotated-types?source=hash-mapping size: 18074 timestamp: 1733247158254 +- conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda + sha256: 830fc81970cd9d19869909b9b16d241f4d557e4f201a1030aa6ed87c6aa8b930 + md5: 9958d4a1ee7e9c768fe8f4fb51bd07ea + depends: + - exceptiongroup >=1.0.2 + - idna >=2.8 + - python >=3.10 + - typing_extensions >=4.5 + - python + constrains: + - trio >=0.32.0 + - uvloop >=0.21 + license: MIT + license_family: MIT + purls: + - pkg:pypi/anyio?source=hash-mapping + size: 144702 + timestamp: 1764375386926 - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda sha256: b28e0f78bb0c7962630001e63af25a89224ff504e135a02e50d4d80b6155d386 md5: 9749a2c77a7c40d432ea0927662d7e52 @@ -177,9 +314,9 @@ packages: - pkg:pypi/anyio?source=hash-mapping size: 126346 timestamp: 1742243108743 -- conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.1.0-pyh5d45ec7_0.conda - sha256: f4be6666aa141e734c40ef9f2cc554e7042bbc4c3626af36c489e991c69a43b4 - md5: 30fb346da1bfa660012f3418bae7833a +- conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda + sha256: b35aedf5a6d6a7fb7886f1c9362c9b10dfa373f16074e19c194e592ba93b9dbd + md5: 332b9f86138b5df01219b489065cb349 depends: - leb128 - packaging @@ -192,20 +329,43 @@ packages: license_family: MOZILLA purls: - pkg:pypi/auditwheel-emscripten?source=hash-mapping - size: 36278 - timestamp: 1743805929606 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-118-he02047a_1.conda - sha256: 1da7491c524e9c0a41ff3734ded249f4615b9ca63982301a6abc425e5e5a9180 - md5: 096a5c01f3ae8373e27ba4c3bb8523f0 + size: 36799 + timestamp: 1748543354122 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py313hf42fe89_0.conda + sha256: 7b0ac5df8d6cbcd5a9c20421ac984369c6204b891a4bb2e66c1754416c2115fc + md5: 1d0e9ba81b540cd787ef87e914ef4826 + depends: + - python + - python 3.13.* *_cp313 + - __osx >=11.0 + - python_abi 3.13.* *_cp313 + - zstd >=1.5.7,<1.6.0a0 + license: BSD-3-Clause AND MIT AND EPL-2.0 + purls: + - pkg:pypi/backports-zstd?source=hash-mapping + size: 244691 + timestamp: 1765057712738 +- conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-117-h59595ed_0.conda + sha256: f6d7f876c514d2d138fd8b06e485b042598cf3dcda40a8a346252bb7e1adf8d7 + md5: 58aea5eaef8cb663104654734d432ba3 depends: - - __glibc >=2.17,<3.0.a0 - libgcc-ng >=12 - libstdcxx-ng >=12 license: Apache-2.0 license_family: APACHE purls: [] - size: 5804456 - timestamp: 1722550497517 + size: 5783056 + timestamp: 1709092512197 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/binaryen-117-hebf3989_0.conda + sha256: 9f4696ff6bf7a43261e549c1142dc24f45905fff68a6c0a1ebbdd0a84acd9056 + md5: 26d849f5539e7e20d8b7465a3616a622 + depends: + - libcxx >=16 + license: Apache-2.0 + license_family: APACHE + purls: [] + size: 3466426 + timestamp: 1709092708128 - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_4.conda sha256: 194d771be287dc973f6057c0747010ce28adf960f38d6e03ce3e828d7b74833e md5: ef67db625ad0d2dce398837102f875ed @@ -217,23 +377,40 @@ packages: purls: [] size: 6111717 timestamp: 1740155471052 -- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.1.0-py312h2ec8cdc_2.conda - sha256: f2a59ccd20b4816dea9a2a5cb917eb69728271dbf1aeab4e1b7e609330a50b6f - md5: b0b867af6fc74b2a0aa206da29c0f3cf +- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py313hf159716_1.conda + sha256: dadec2879492adede0a9af0191203f9b023f788c18efd45ecac676d424c458ae + md5: 6c4d3597cf43f3439a51b2b13e29a4ba depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - libgcc >=14 + - libstdcxx >=14 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 constrains: - - libbrotlicommon 1.1.0 hb9d3cd8_2 + - libbrotlicommon 1.2.0 hb03c661_1 license: MIT license_family: MIT purls: - pkg:pypi/brotli?source=hash-mapping - size: 349867 - timestamp: 1725267732089 + size: 367721 + timestamp: 1764017371123 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py313hde1f3bb_1.conda + sha256: 2e21dccccd68bedd483300f9ab87a425645f6776e6e578e10e0dd98c946e1be9 + md5: b03732afa9f4f54634d94eb920dfb308 + depends: + - __osx >=11.0 + - libcxx >=19 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + constrains: + - libbrotlicommon 1.2.0 hc919400_1 + license: MIT + license_family: MIT + purls: + - pkg:pypi/brotli?source=hash-mapping + size: 359568 + timestamp: 1764018359470 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d md5: 62ee74e96c5ebb0af99386de58cf9553 @@ -245,6 +422,46 @@ packages: purls: [] size: 252783 timestamp: 1720974456583 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda + sha256: b456200636bd5fecb2bec63f7e0985ad2097cf1b83d60ce0b6968dffa6d02aa1 + md5: 58fd217444c2a5701a44244faf518206 + depends: + - __osx >=11.0 + license: bzip2-1.0.6 + license_family: BSD + purls: [] + size: 125061 + timestamp: 1757437486465 +- conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda + sha256: cc9accf72fa028d31c2a038460787751127317dcfa991f8d1f1babf216bb454e + md5: 920bb03579f15389b9e512095ad995b7 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + purls: [] + size: 207882 + timestamp: 1765214722852 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.6-hc919400_0.conda + sha256: 2995f2aed4e53725e5efbc28199b46bf311c3cab2648fc4f10c2227d6d5fa196 + md5: bcb3cba70cf1eec964a03b4ba7775f01 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 180327 + timestamp: 1765215064054 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda + sha256: b986ba796d42c9d3265602bc038f6f5264095702dd546c14bc684e60c385e773 + md5: f0991f0f84902f6b6009b4d2350a83aa + depends: + - __unix + license: ISC + purls: [] + size: 152432 + timestamp: 1762967197890 - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda sha256: 2a70ed95ace8a3f8a29e6cd1476a943df294a7111dfb3e152e3478c4c889b7ac md5: 95db94f75ba080a22eb623590993167b @@ -276,6 +493,16 @@ packages: - pkg:pypi/cached-property?source=hash-mapping size: 11065 timestamp: 1615209567874 +- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda + sha256: 083a2bdad892ccf02b352ecab38ee86c3e610ba9a4b11b073ea769d55a115d32 + md5: 96a02a5c1a65470a7e4eedb644c872fd + depends: + - python >=3.10 + license: ISC + purls: + - pkg:pypi/certifi?source=compressed-mapping + size: 157131 + timestamp: 1762976260320 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda sha256: 52aa837642fd851b3f7ad3b1f66afc5366d133c1d452323f786b0378a391915c md5: c33eeaaa33f45031be34cda513df39b6 @@ -286,22 +513,22 @@ packages: - pkg:pypi/certifi?source=hash-mapping size: 157200 timestamp: 1746569627830 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-1.17.1-py312h06ac9bb_0.conda - sha256: cba6ea83c4b0b4f5b5dc59cb19830519b28f95d7ebef7c9c5cf1c14843621457 - md5: a861504bbea4161a9170b85d4d2be840 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf01b4d8_0.conda + sha256: cbead764b88c986642578bb39f77d234fbc3890bd301ed29f849a6d3898ed0fc + md5: 062317cc1cd26fbf6454e86ddd3622c4 depends: - __glibc >=2.17,<3.0.a0 - - libffi >=3.4,<4.0a0 - - libgcc >=13 + - libffi >=3.4.6,<3.5.0a0 + - libgcc >=14 - pycparser - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 license: MIT license_family: MIT purls: - pkg:pypi/cffi?source=hash-mapping - size: 294403 - timestamp: 1725560714366 + size: 298211 + timestamp: 1758716239290 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 md5: 40fe4284b8b5835a9073a645139f35af @@ -313,44 +540,95 @@ packages: - pkg:pypi/charset-normalizer?source=compressed-mapping size: 50481 timestamp: 1746214981991 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20.1.4-default_hfa515fb_0.conda - sha256: 5931227b657e46393e70e63ba7b42f34ba2f870d89bc7c2e3d1c85faee05e190 - md5: 171787632fe22a28f58af2ea2efe61af +- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda + sha256: b32f8362e885f1b8417bac2b3da4db7323faa12d5db62b7fd6691c02d60d6f59 + md5: a22d1fd9bf98827e280a02875d9a007a + depends: + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/charset-normalizer?source=hash-mapping + size: 50965 + timestamp: 1760437331772 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21.1.7-default_h36abe19_1.conda + sha256: 456d8bb50746651eb07c235f7274374a0dd1ce71ce9fcc921fa88dbaf48d19ab + md5: 124799a73e470abb22df2fc184780235 depends: - binutils_impl_linux-64 - - clang-20 20.1.4 default_h1df26ce_0 + - clang-21 21.1.7 default_h99862b1_1 - libgcc-devel_linux-64 + - llvm-openmp >=21.1.7 - sysroot_linux-64 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 24099 - timestamp: 1746074888590 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-20-20.1.4-default_h1df26ce_0.conda - sha256: 0fc43c57a8a61424c079336aa9c7870355d8d0574280a10a74dac90438c3c8d0 - md5: 5401ebac37b610f8c6ffb074ab9ae57e + size: 26977 + timestamp: 1764816560104 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21.1.7-default_hf9bcbb7_1.conda + sha256: f7c08be0e20951a507f495656df7a7def845a74f004c9ef61698b313d9159775 + md5: d80343c595b8b886aa728a2cb1297f8e + depends: + - clang-21 21.1.7 default_h489deba_1 + - ld64 + - ld64_osx-arm64 * llvm21_1_* + - llvm-openmp >=21.1.7 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 27312 + timestamp: 1764812156188 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21-21.1.7-default_h99862b1_1.conda + sha256: e7b19bcfa14019245a284d5d4c1375d30fab520be9ab93d912b551b6f1912cb7 + md5: 4c6ee33850a156ec3390930a924b28d0 depends: - __glibc >=2.17,<3.0.a0 - - libclang-cpp20.1 20.1.4 default_h1df26ce_0 - - libgcc >=13 - - libllvm20 >=20.1.4,<20.2.0a0 - - libstdcxx >=13 + - compiler-rt21 21.1.7.* + - libclang-cpp21.1 21.1.7 default_h99862b1_1 + - libgcc >=14 + - libllvm21 >=21.1.7,<21.2.0a0 + - libstdcxx >=14 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 831340 + timestamp: 1764816470424 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21-21.1.7-default_h489deba_1.conda + sha256: 3e889cfc23e290c55d5183d99cd802c41885e6f4242b6e3aa5e45cc3d0036e27 + md5: 0ba3e611abc3287c109fb003e7eb5b4c + depends: + - __osx >=11.0 + - compiler-rt21 21.1.7.* + - libclang-cpp21.1 21.1.7 default_h73dfc95_1 + - libcxx >=21.1.7 + - libllvm21 >=21.1.7,<21.2.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 810614 - timestamp: 1746074830986 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-20.1.4-default_h0982aa1_0.conda - sha256: e4b18ab8835d54ea4b44d20da41e420d84521d5b9a2a019507ae5f5c11073c09 - md5: d16eef83db3fa90441c8607ea39011fa + size: 819071 + timestamp: 1764812034052 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-21.1.7-default_h363a0c9_1.conda + sha256: 8b7d7067c17b780dc898b4dcae0b21f11388569656e446aab7cbe1f993b34c9e + md5: 6122bf75594bde0e8cb9d90718bd8353 depends: - - clang 20.1.4 default_hfa515fb_0 + - clang 21.1.7 default_h36abe19_1 - libstdcxx-devel_linux-64 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 24216 - timestamp: 1746074899002 + size: 27065 + timestamp: 1764816580945 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-21.1.7-default_h36137df_1.conda + sha256: 2b7181a74fe1068b1104fb861c2641f5f84f7dd758c01bd7e74d0fcbe7add01d + md5: fb3fed080f59e309556822d3663278a7 + depends: + - clang 21.1.7 default_hf9bcbb7_1 + - libcxx-devel 21.1.* + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 27384 + timestamp: 1764812174045 - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.0-pyh707e725_0.conda sha256: 910f0e5e74a75f6e270b9dedd0f8ac55830250b0874f9f67605816fd069af283 md5: 4d4f33c3d9e5a23a7f4795d327a5d1f0 @@ -363,6 +641,19 @@ packages: - pkg:pypi/click?source=hash-mapping size: 87705 timestamp: 1746951781787 +- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda + sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715 + md5: ea8a6c3256897cc31263de9f455e25d9 + depends: + - python >=3.10 + - __unix + - python + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/click?source=hash-mapping + size: 97676 + timestamp: 1764518652276 - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 md5: 962b9857ee8e7018c22f2776ffa0b2d7 @@ -374,6 +665,50 @@ packages: - pkg:pypi/colorama?source=hash-mapping size: 27011 timestamp: 1733218222191 +- conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt21-21.1.7-hb700be7_0.conda + sha256: 40d94a16674b7ff35d765fa4d2572c5061d6d26c87fe0636efa4a4e219819745 + md5: 1feb50fc3c348b9c2b1228c9e8591ab9 + depends: + - __glibc >=2.17,<3.0.a0 + - compiler-rt21_linux-64 21.1.7.* + - libgcc >=14 + - libstdcxx >=14 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 114042 + timestamp: 1764722702812 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt21-21.1.7-h855ad52_0.conda + sha256: 9202f987138486183798f06b73dc9f25cab7dce80d50360d76ee613b6b2c53c6 + md5: 1d6a36d81ee0e293443bd5ccefc88366 + depends: + - __osx >=11.0 + - compiler-rt21_osx-arm64 21.1.7.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 98348 + timestamp: 1764723933513 +- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_linux-64-21.1.7-hffcefe0_0.conda + sha256: 055db902df4715261b123568f09af4311060f3810f340969064e0718e02d4966 + md5: 9b1c4f25cd8a99131fb19acd3b29e4f5 + constrains: + - compiler-rt >=9.0.1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 47702465 + timestamp: 1764722602 +- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_osx-arm64-21.1.7-h2514db7_0.conda + sha256: a27658929464454c4ba07e8ce6cf03f085acc84378e05d7f1ad833953eb5ca2f + md5: a0fb0846568b235bd52438d8cf88a03b + constrains: + - compiler-rt >=9.0.1 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 10728171 + timestamp: 1764723879940 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda sha256: 0e160c21776bd881b79ce70053e59736f51036784fa43a50da10a04f0c1b9c45 md5: 8d88f4a2242e6b96f9ecff9a6a05b2f1 @@ -385,27 +720,51 @@ packages: - pkg:pypi/distlib?source=hash-mapping size: 274151 timestamp: 1733238487461 -- conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-3.1.58-h84d6215_3.conda - sha256: ecec5c721720bfd0763e12bebf696ab79327e1d1cc7d13056b8da2b2feb6a0a8 - md5: 67d4b6102e464fc63a575f2bb4ec4074 +- conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda + sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e + md5: 003b8ba0a94e2f1e117d0bd46aebc901 + depends: + - python >=3.9 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/distlib?source=hash-mapping + size: 275642 + timestamp: 1752823081585 +- conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-4.0.9-ha4b6fd6_0.conda + sha256: db0dde25270779131b0d7fe8ad25a6a6a3703fa8a725dbf78effa882c8cedd7c + md5: 838bd0957f06e777cbbd65a8cb0e39fc depends: - __glibc >=2.17,<3.0.a0 - - binaryen >=118,<119.0a0 - - clang - - clangxx - - libgcc >=13 - - libstdcxx >=13 - - lld - - llvm-tools - - nodejs >=18 + - binaryen >=117,<118.0a0 + - clang 21.* + - clangxx 21.* + - lld 21.* + - llvm-tools 21.* + - nodejs >=20 - python * - zlib - constrains: - - python >=3.9 license: MIT OR NCSA OR MPL-2.0 purls: [] - size: 118090569 - timestamp: 1725439283866 + size: 129824616 + timestamp: 1764067360445 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/emscripten-4.0.9-hbafa43b_0.conda + sha256: 65a1cf8eef27520bcee099b9822c778b8ac84ea137bc44c4eef0b72b8c27acfb + md5: ac697a70b10310fe8569a01ad4051c17 + depends: + - __osx >=11.0 + - binaryen >=117,<118.0a0 + - clang 21.* + - clangxx 21.* + - lld 21.* + - llvm-tools 21.* + - nodejs >=20 + - python * + - zlib + license: MIT OR NCSA OR MPL-2.0 + purls: [] + size: 112522409 + timestamp: 1764067709702 - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda sha256: ce61f4f99401a4bd455b89909153b40b9c823276aefcbb06f2044618696009ca md5: 72e42d28960d875c7654614f8b50939a @@ -417,6 +776,17 @@ packages: - pkg:pypi/exceptiongroup?source=compressed-mapping size: 21284 timestamp: 1746947398083 +- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 + md5: 8e662bd460bda79b1ea39194e3c4c9ab + depends: + - python >=3.10 + - typing_extensions >=4.6.0 + license: MIT and PSF-2.0 + purls: + - pkg:pypi/exceptiongroup?source=compressed-mapping + size: 21333 + timestamp: 1763918099466 - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda sha256: de7b6d4c4f865609ae88db6fa03c8b7544c2452a1aa5451eb7700aad16824570 md5: 4547b39256e296bb758166893e909a7c @@ -427,6 +797,16 @@ packages: - pkg:pypi/filelock?source=hash-mapping size: 17887 timestamp: 1741969612334 +- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda + sha256: 19025a4078ff3940d97eb0da29983d5e0deac9c3e09b0eabf897daeaf9d1114e + md5: 66b8b26023b8efdf8fcb23bac4b6325d + depends: + - python >=3.10 + license: Unlicense + purls: + - pkg:pypi/filelock?source=hash-mapping + size: 17976 + timestamp: 1759948208140 - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.1.0-h4393ad2_2.conda sha256: 99c545b842edd356d907c51ccd6f894ef6db042c6ebebefd14eb844f53ff8f73 md5: 240c2af59f95792f60193c1cb9ee42c5 @@ -468,6 +848,20 @@ packages: - pkg:pypi/h2?source=hash-mapping size: 53888 timestamp: 1738578623567 +- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda + sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 + md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 + depends: + - python >=3.10 + - hyperframe >=6.1,<7 + - hpack >=4.1,<5 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/h2?source=compressed-mapping + size: 95967 + timestamp: 1756364871835 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba md5: 0a802cb9888dd14eeefc611f05c40b6e @@ -534,6 +928,16 @@ packages: purls: [] size: 12129203 timestamp: 1720853576813 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda + sha256: 9ba12c93406f3df5ab0a43db8a4b4ef67a5871dfd401010fbe29b218b2cbe620 + md5: 5eb22c1d7b3fc4abb50d92d621583137 + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 11857802 + timestamp: 1720853997952 - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87 md5: 39a4f67be3286c86d696df570b1201b7 @@ -545,6 +949,17 @@ packages: - pkg:pypi/idna?source=hash-mapping size: 49765 timestamp: 1733211921194 +- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda + sha256: ae89d0299ada2a3162c2614a9d26557a92aa6a77120ce142f8e0109bbf0342b0 + md5: 53abe63df7e10a6ba605dc5f9f961d36 + depends: + - python >=3.10 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/idna?source=hash-mapping + size: 50721 + timestamp: 1760286526795 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda sha256: 598951ebdb23e25e4cec4bbff0ae369cec65ead80b50bc08b441d8e54de5cf03 md5: f4b39bf00c69f56ac01e020ebfac066c @@ -557,6 +972,19 @@ packages: - pkg:pypi/importlib-metadata?source=hash-mapping size: 29141 timestamp: 1737420302391 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 + md5: 63ccfdc3a3ce25b027b8767eb722fca8 + depends: + - python >=3.9 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-metadata?source=hash-mapping + size: 34641 + timestamp: 1747934053147 - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b md5: ad8527bf134a90e1c9ed35fa0b64318c @@ -567,6 +995,39 @@ packages: purls: [] size: 943486 timestamp: 1729794504440 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-956.6-llvm21_1_h5d6df6c_1.conda + sha256: cfb3612bde5233ef62b73b507e5fe2efb069d077f1d6ca50ec44aef40078b520 + md5: 4b659bb7a1a49f9aacffb344712cbe06 + depends: + - ld64_osx-arm64 956.6 llvm21_1_hde6573c_1 + - libllvm21 >=21.1.6,<21.2.0a0 + constrains: + - cctools 1030.6.3.* + - cctools_osx-arm64 1030.6.3.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 21152 + timestamp: 1764351682250 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm21_1_hde6573c_1.conda + sha256: f6628fd72a9188c16c13059484b5b0b4d6c4ced7703baf7ff2700d43078523e7 + md5: 228ec02f6e40967703d7254672f24813 + depends: + - __osx >=11.0 + - libcxx + - libllvm21 >=21.1.6,<21.2.0a0 + - sigtool + - tapi >=1600.0.11.8,<1601.0a0 + constrains: + - cctools 1030.6.3.* + - cctools_impl_osx-arm64 1030.6.3.* + - ld64 956.6.* + - clang 21.1.* + license: APSL-2.0 + license_family: Other + purls: [] + size: 1037660 + timestamp: 1764351616909 - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda sha256: db73f38155d901a610b2320525b9dd3b31e4949215c870685fd92ea61b5ce472 md5: 01f8d123c96816249efd255a31ad7712 @@ -590,19 +1051,178 @@ packages: - pkg:pypi/leb128?source=hash-mapping size: 9108 timestamp: 1735272991001 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp20.1-20.1.4-default_h1df26ce_0.conda - sha256: 5c28304eaabc2aaeb47e2ba847ae41e0ad7e2a520a7e19a2c5e846c69b417a5b - md5: 96f8d5b2e94c9ba4fef19f1adf068a15 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250512.1-cxx17_hba17884_0.conda + sha256: dcd1429a1782864c452057a6c5bc1860f2b637dc20a2b7e6eacd57395bbceff8 + md5: 83b160d4da3e1e847bf044997621ed63 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - libllvm20 >=20.1.4,<20.2.0a0 - libstdcxx >=13 + constrains: + - libabseil-static =20250512.1=cxx17* + - abseil-cpp =20250512.1 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 1310612 + timestamp: 1750194198254 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20250512.1-cxx17_hd41c47c_0.conda + sha256: 7f0ee9ae7fa2cf7ac92b0acf8047c8bac965389e48be61bf1d463e057af2ea6a + md5: 360dbb413ee2c170a0a684a33c4fc6b8 + depends: + - __osx >=11.0 + - libcxx >=18 + constrains: + - libabseil-static =20250512.1=cxx17* + - abseil-cpp =20250512.1 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 1174081 + timestamp: 1750194620012 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda + sha256: 318f36bd49ca8ad85e6478bd8506c88d82454cc008c1ac1c6bf00a3c42fa610e + md5: 72c8fd1af66bd67bf580645b426513ed + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + license: MIT + license_family: MIT + purls: [] + size: 79965 + timestamp: 1764017188531 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.2.0-hc919400_1.conda + sha256: a7cb9e660531cf6fbd4148cff608c85738d0b76f0975c5fc3e7d5e92840b7229 + md5: 006e7ddd8a110771134fcc4e1e3a6ffa + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 79443 + timestamp: 1764017945924 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda + sha256: 12fff21d38f98bc446d82baa890e01fd82e3b750378fedc720ff93522ffb752b + md5: 366b40a69f0ad6072561c1d09301c886 + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.2.0 hb03c661_1 + - libgcc >=14 + license: MIT + license_family: MIT + purls: [] + size: 34632 + timestamp: 1764017199083 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.2.0-hc919400_1.conda + sha256: 2eae444039826db0454b19b52a3390f63bfe24f6b3e63089778dd5a5bf48b6bf + md5: 079e88933963f3f149054eec2c487bc2 + depends: + - __osx >=11.0 + - libbrotlicommon 1.2.0 hc919400_1 + license: MIT + license_family: MIT + purls: [] + size: 29452 + timestamp: 1764017979099 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda + sha256: a0c15c79997820bbd3fbc8ecf146f4fe0eca36cc60b62b63ac6cf78857f1dd0d + md5: 4ffbb341c8b616aa2494b6afb26a0c5f + depends: + - __glibc >=2.17,<3.0.a0 + - libbrotlicommon 1.2.0 hb03c661_1 + - libgcc >=14 + license: MIT + license_family: MIT + purls: [] + size: 298378 + timestamp: 1764017210931 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.2.0-hc919400_1.conda + sha256: 01436c32bb41f9cb4bcf07dda647ce4e5deb8307abfc3abdc8da5317db8189d1 + md5: b2b7c8288ca1a2d71ff97a8e6a1e8883 + depends: + - __osx >=11.0 + - libbrotlicommon 1.2.0 hc919400_1 + license: MIT + license_family: MIT + purls: [] + size: 290754 + timestamp: 1764018009077 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.7-default_h99862b1_1.conda + sha256: ce8b8464b1230dd93d2b5a2646d2c80639774c9e781097f041581c07b83d4795 + md5: d3042ebdaacc689fd1daa701885fc96c + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libllvm21 >=21.1.7,<21.2.0a0 + - libstdcxx >=14 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 20897372 - timestamp: 1746074729385 + size: 21055642 + timestamp: 1764816319608 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp21.1-21.1.7-default_h73dfc95_1.conda + sha256: d4358e346720afaa04b63e24f64bf54495b778df33b3d42297b080e5c9f17a14 + md5: 9f3b1d61d285890914769cc3e6153092 + depends: + - __osx >=11.0 + - libcxx >=21.1.7 + - libllvm21 >=21.1.7,<21.2.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 13682873 + timestamp: 1764811907305 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.7-hf598326_0.conda + sha256: 4bdbef0241b52e7a8552e8af7425f0b56d5621dd69df46c816546fefa17d77ab + md5: 0de94f39727c31c0447e408c5a210a56 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 568715 + timestamp: 1764676451068 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-21.1.7-h6dc3340_0.conda + sha256: 1ec451ef74a8849b34438b792d19813ce7c6711de0d5c453c62347a24037cefd + md5: dd6f02f49c21e59364f35cc59753d80a + depends: + - libcxx >=21.1.7 + - libcxx-headers >=21.1.7,<21.1.8.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 21809 + timestamp: 1764676497231 +- conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-21.1.7-h707e725_0.conda + sha256: 04cb0e488ab6be30e1db3218787d25f2d09f55ca798dc3878b69e3d162902dd9 + md5: dfa19db0a0d180e3c8a2a73c764d565c + depends: + - __unix + constrains: + - libcxx-devel 21.1.7 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 1130298 + timestamp: 1764676081621 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda + sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 + md5: 172bf1cd1ff8629f2b1179945ed45055 + depends: + - libgcc-ng >=12 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 112766 + timestamp: 1702146165126 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda + sha256: 95cecb3902fbe0399c3a7e67a5bed1db813e5ab0e22f4023a5e0f722f2cc214f + md5: 36d33e440c31857372a72137f78bacf5 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 107458 + timestamp: 1702146414478 - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda sha256: 33ab03438aee65d6aa667cf7d90c91e5e7d734c19a67aa4c7040742c0a13d505 md5: db0bfbe7dd197b68ad5f30333bae6ce0 @@ -616,6 +1236,18 @@ packages: purls: [] size: 74427 timestamp: 1743431794976 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.3-haf25636_0.conda + sha256: fce22610ecc95e6d149e42a42fbc3cc9d9179bd4eb6232639a60f06e080eec98 + md5: b79875dbb5b1db9a4a22a4520f918e1a + depends: + - __osx >=11.0 + constrains: + - expat 2.7.3.* + license: MIT + license_family: MIT + purls: [] + size: 67800 + timestamp: 1763549994166 - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab md5: ede4673863426c0883c0063d853bbd85 @@ -627,6 +1259,16 @@ packages: purls: [] size: 57433 timestamp: 1743434498161 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-he5f378a_0.conda + sha256: 9b8acdf42df61b7bfe8bdc545c016c29e61985e79748c64ad66df47dbc2e295f + md5: 411ff7cd5d1472bba0f55c0faf04453b + depends: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: [] + size: 40251 + timestamp: 1760295839166 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda sha256: 0024f9ab34c09629621aefd8603ef77bf9d708129b0dd79029e502c39ffc2195 md5: ea8ac52380885ed41c1baa8f1d6d2b93 @@ -681,21 +1323,46 @@ packages: purls: [] size: 713084 timestamp: 1740128065462 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm20-20.1.4-he9d0ab4_0.conda - sha256: 56a375dc36df1a4e2061e30ebbacbc9599a11277422a9a3145fd228f772bab53 - md5: 96c33bbd084ef2b2463503fb7f1482ae +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda + sha256: de0336e800b2af9a40bdd694b03870ac4a848161b35c8a2325704f123f185f03 + md5: 4d5a7445f0b25b6a3ddbb56e790f5251 + depends: + - __osx >=11.0 + license: LGPL-2.1-only + purls: [] + size: 750379 + timestamp: 1754909073836 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.7-hf7376ad_0.conda + sha256: afe5c5cfc90dc8b5b394e21cf02188394e36766119ad5d78a1d8619d011bbfb1 + md5: 27dc1a582b442f24979f2a28641fe478 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - - libxml2 >=2.13.7,<2.14.0a0 + - libgcc >=14 + - libstdcxx >=14 + - libxml2 + - libxml2-16 >=2.14.6 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 43004201 - timestamp: 1746052658083 + size: 44320825 + timestamp: 1764711528746 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm21-21.1.7-h8e0c9ce_0.conda + sha256: c314555be004f72798c203552554596ac49aa9924ec492d41a0a687d45bf1d99 + md5: 3abc4690cf43342493e7bbb3ffeeecf3 + depends: + - __osx >=11.0 + - libcxx >=19 + - libxml2 + - libxml2-16 >=2.14.6 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 29397925 + timestamp: 1764710482321 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda sha256: eeff241bddc8f1b87567dd6507c9f441f7f472c27f0860a07628260c000ef27c md5: a76fd702c93cd2dfd89eff30a5fd45a8 @@ -709,27 +1376,71 @@ packages: purls: [] size: 112845 timestamp: 1746531470399 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_1.conda - sha256: f157a2da5f7bf2c5ce5a18c52ccc76c39f075f7fbb1584d585a8d25c1b17cb92 - md5: 5499e2dd2f567a818b9f111e47caebd2 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda + sha256: 0cb92a9e026e7bd4842f410a5c5c665c89b2eb97794ffddba519a626b8ce7285 + md5: d6df911d4564d77c4374b02552cb17d1 + depends: + - __osx >=11.0 + constrains: + - xz 5.8.1.* + license: 0BSD + purls: [] + size: 92286 + timestamp: 1749230283517 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda + sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee + md5: c7e925f37e3b40d893459e625f6a53f1 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_1 - license: 0BSD + license: BSD-2-Clause + license_family: BSD purls: [] - size: 441592 - timestamp: 1746531484594 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hd590300_0.conda - sha256: 26d77a3bb4dceeedc2a41bd688564fe71bf2d149fdcf117049970bc02ff1add6 - md5: 30fd6e37fe21f86f4bd26d6ee73eeec7 + size: 91183 + timestamp: 1748393666725 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda + sha256: 0a1875fc1642324ebd6c4ac864604f3f18f57fbcf558a8264f6ced028a3c75b2 + md5: 85ccccb47823dd9f7a99d2c7f530342f depends: - - libgcc-ng >=12 - license: LGPL-2.1-only - license_family: GPL + - __osx >=11.0 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 71829 + timestamp: 1748393749336 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda + sha256: a4a7dab8db4dc81c736e9a9b42bdfd97b087816e029e221380511960ac46c690 + md5: b499ce4b026493a13774bcf0f4c33849 + depends: + - __glibc >=2.17,<3.0.a0 + - c-ares >=1.34.5,<2.0a0 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libgcc >=14 + - libstdcxx >=14 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.5.2,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 666600 + timestamp: 1756834976695 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda + sha256: a07cb53b5ffa2d5a18afc6fd5a526a5a53dd9523fbc022148bd2f9395697c46d + md5: a4b4dd73c67df470d091312ab87bf6ae + depends: + - __osx >=11.0 + - c-ares >=1.34.5,<2.0a0 + - libcxx >=19 + - libev >=4.33,<4.34.0a0 + - libev >=4.33,<5.0a0 + - libzlib >=1.3.1,<2.0a0 + - openssl >=3.5.2,<4.0a0 + license: MIT + license_family: MIT purls: [] - size: 33408 - timestamp: 1697359010159 + size: 575454 + timestamp: 1756835746393 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.1.0-h97b714f_2.conda sha256: 3f573329431523b2510b9374f4048d87bb603536bc63f66910cd47b5347ea37f md5: 4de6cfe35a4736a63e4f59602a8ebeec @@ -742,17 +1453,27 @@ packages: purls: [] size: 4539916 timestamp: 1746642248624 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.49.2-hee588c1_0.conda - sha256: 525d4a0e24843f90b3ff1ed733f0a2e408aa6dd18b9d4f15465595e078e104a2 - md5: 93048463501053a00739215ea3f36324 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda + sha256: 6f0e8a812e8e33a4d8b7a0e595efe28373080d27b78ee4828aa4f6649a088454 + md5: 2e1b84d273b01835256e53fd938de355 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 - libzlib >=1.3.1,<2.0a0 - license: Unlicense + license: blessing + purls: [] + size: 938979 + timestamp: 1764359444435 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h9a5124b_0.conda + sha256: a46b167447e2a9e38586320c30b29e3b68b6f7e6b873c18d6b1aa2efd2626917 + md5: 67e50e5bd4e5e2310d66b88c4da50096 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: blessing purls: [] - size: 916313 - timestamp: 1746637007836 + size: 906292 + timestamp: 1764359907797 - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda sha256: 6ae3d153e78f6069d503d9309f2cac6de5b93d067fc6433160a4c05226a5dad4 md5: 1cb1c67961f6dd257eae9e9691b341aa @@ -794,41 +1515,91 @@ packages: purls: [] size: 33601 timestamp: 1680112270483 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.50.0-hb9d3cd8_0.conda - sha256: b4a8890023902aef9f1f33e3e35603ad9c2f16c21fdb58e968fa6c1bd3e94c0b - md5: 771ee65e13bc599b0b62af5359d80169 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda + sha256: c180f4124a889ac343fc59d15558e93667d894a966ec6fdb61da1604481be26b + md5: 0f03292cc56bf91a077a134ea8747118 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 license: MIT license_family: MIT purls: [] - size: 891272 - timestamp: 1737016632446 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c - md5: 5aa797f8787fe7a17d1b0821485b5adc + size: 895108 + timestamp: 1753948278280 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.51.0-h6caf38d_1.conda + sha256: 042c7488ad97a5629ec0a991a8b2a3345599401ecc75ad6a5af73b60e6db9689 + md5: c0d87c3c8e075daf1daf6c31b53e8083 depends: - - libgcc-ng >=12 - license: LGPL-2.1-or-later + - __osx >=11.0 + license: MIT + license_family: MIT purls: [] - size: 100393 - timestamp: 1702724383534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.13.8-h4bc477f_0.conda - sha256: b0b3a96791fa8bb4ec030295e8c8bf2d3278f33c0f9ad540e73b5e538e6268e7 - md5: 14dbe05b929e329dbaa6f2d0aa19466d + size: 421195 + timestamp: 1753948426421 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda + sha256: ec0735ae56c3549149eebd7dc22c0bed91fd50c02eaa77ff418613ddda190aa8 + md5: e512be7dc1f84966d50959e900ca121f depends: - __glibc >=2.17,<3.0.a0 - icu >=75.1,<76.0a0 - - libgcc >=13 + - libgcc >=14 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libxml2-16 2.15.1 ha9997c6_0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + purls: [] + size: 45283 + timestamp: 1761015644057 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h9329255_0.conda + sha256: c409e384ddf5976a42959265100d6b2c652017d250171eb10bae47ef8166193f + md5: fb5ce61da27ee937751162f86beba6d1 + depends: + - __osx >=11.0 + - icu >=75.1,<76.0a0 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libxml2-16 2.15.1 h0ff4647_0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + license_family: MIT + purls: [] + size: 40607 + timestamp: 1761016108361 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda + sha256: 71436e72a286ef8b57d6f4287626ff91991eb03c7bdbe835280521791efd1434 + md5: e7733bc6785ec009e47a224a71917e84 + depends: + - __glibc >=2.17,<3.0.a0 + - icu >=75.1,<76.0a0 + - libgcc >=14 + - libiconv >=1.18,<2.0a0 + - liblzma >=5.8.1,<6.0a0 + - libzlib >=1.3.1,<2.0a0 + constrains: + - libxml2 2.15.1 + license: MIT + license_family: MIT + purls: [] + size: 556302 + timestamp: 1761015637262 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h0ff4647_0.conda + sha256: ebe2dd9da94280ad43da936efa7127d329b559f510670772debc87602b49b06d + md5: 438c97d1e9648dd7342f86049dd44638 + depends: + - __osx >=11.0 + - icu >=75.1,<76.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - libzlib >=1.3.1,<2.0a0 + constrains: + - libxml2 2.15.1 license: MIT license_family: MIT purls: [] - size: 690864 - timestamp: 1746634244154 + size: 464952 + timestamp: 1761016087733 - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda sha256: d4bfe88d7cb447768e31650f06257995601f89076080e76df55e3112d4e47dc4 md5: edb0dca6bc32e4f4789199455a1dbeb8 @@ -842,57 +1613,142 @@ packages: purls: [] size: 60963 timestamp: 1727963148474 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lld-20.1.4-hd51abae_0.conda - sha256: c5e12a2bd9e3faff69b2510923f64aa463e8f81f9751f9e9c0dd347db9a70525 - md5: 8e744c37ae5a4f11c70b620e17bd08e8 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda + sha256: ce34669eadaba351cd54910743e6a2261b67009624dbc7daeeafdef93616711b + md5: 369964e85dc26bfe78f41399b366c435 + depends: + - __osx >=11.0 + constrains: + - zlib 1.3.1 *_2 + license: Zlib + license_family: Other + purls: [] + size: 46438 + timestamp: 1727963202283 +- conda: https://conda.anaconda.org/conda-forge/linux-64/lld-21.1.7-hef48ded_0.conda + sha256: c5d5f1257d65687759b180a721af493623568b9431d2d46efc8e405d3fb65404 + md5: 7bc3df8dd8818e4a31a20e9a0208248e depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libllvm20 >=20.1.4,<20.2.0a0 - - libstdcxx >=13 + - libgcc >=14 + - libllvm21 >=21.1.7,<21.2.0a0 + - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - llvm ==20.1.4 + - llvm ==21.1.7 license: Apache-2.0 WITH LLVM-exception license_family: APACHE purls: [] - size: 7642872 - timestamp: 1746055864247 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20.1.4-h84d6215_0.conda - sha256: b1cc120328b5608cb216c7fac1cc3e714a302698c96565a7675984c3977e7174 - md5: 0ecc18d6579ffb9f6e981b566ea0463b + size: 11596333 + timestamp: 1764722363851 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lld-21.1.7-ha4b1419_0.conda + sha256: cb08a07ab39b7c6a94dbf1372314d0546dd6e278ce1e2e7483b2f63c7040a2df + md5: a8ef35ef9aaf32e75de7094187d87bd8 + depends: + - __osx >=11.0 + - libcxx >=19.1.7 + - libllvm21 >=21.1.7,<21.2.0a0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - llvm ==21.1.7 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 3016364 + timestamp: 1764723006462 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.7-h4922eb0_0.conda + sha256: 6579325669ba27344be66f319c316396f09d9f1a054178df257009591b7d7f43 + md5: ec29f865968a81e1961b3c2f2765eebb depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libllvm20 20.1.4 he9d0ab4_0 - - libstdcxx >=13 - - llvm-tools-20 20.1.4 h48f18f5_0 constrains: - - clang 20.1.4 - - llvmdev 20.1.4 - - llvm 20.1.4 - - clang-tools 20.1.4 + - intel-openmp <0.0a0 + - openmp 21.1.7|21.1.7.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 6115936 + timestamp: 1764721254857 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.7-h4a912ad_0.conda + sha256: 002695e79b0e4c2d117a8bd190ffd62ef3d74a4cae002afa580bd1f98f9560a3 + md5: 05d475f50ddcc2173a6beece9960c6cb + depends: + - __osx >=11.0 + constrains: + - openmp 21.1.7|21.1.7.* + - intel-openmp <0.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + purls: [] + size: 286129 + timestamp: 1764721670250 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21.1.7-hb700be7_0.conda + sha256: 11bdef13a5e3b88aa7e69b3e28a30238cd3ca01f29fef36f7eef23053c87e720 + md5: 0db933d747c5fb74406329d694d120d8 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libllvm21 21.1.7 hf7376ad_0 + - libstdcxx >=14 + - llvm-tools-21 21.1.7 h3b15d91_0 + constrains: + - llvmdev 21.1.7 + - llvm 21.1.7 + - clang-tools 21.1.7 + - clang 21.1.7 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 88403 + timestamp: 1764711725273 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21.1.7-h855ad52_0.conda + sha256: 772fbc8b42ad495c28ea2bd6a0f487061434aa8af6c03bbad4c1912ebf4de365 + md5: a00e55b48b7ee286062b85c190e1dc80 + depends: + - __osx >=11.0 + - libllvm21 21.1.7 h8e0c9ce_0 + - llvm-tools-21 21.1.7 h91fd4e7_0 + constrains: + - clang 21.1.7 + - llvmdev 21.1.7 + - llvm 21.1.7 + - clang-tools 21.1.7 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 87987 - timestamp: 1746052887836 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-20-20.1.4-h48f18f5_0.conda - sha256: c4c21d6cad99f47581cbdf84d07a3bcd823d621ef515d6005b4b637fc51fae82 - md5: 9342c917b5e1fa34d14c3f9e21c7d87e + size: 88822 + timestamp: 1764710932573 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21-21.1.7-h3b15d91_0.conda + sha256: b5931d1b7628f2832a98f9fc6336978e5519b3c57dbe3610f624ca4901f33238 + md5: 7f80fc8ff55ecf9028945301a8a8d21a depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libllvm20 20.1.4 he9d0ab4_0 - - libstdcxx >=13 + - libgcc >=14 + - libllvm21 21.1.7 hf7376ad_0 + - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 25715324 - timestamp: 1746052816518 + size: 26562891 + timestamp: 1764711663874 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21-21.1.7-h91fd4e7_0.conda + sha256: 611d0f787b3a837ad33df6b3b0fc804e8636547105ae9abea7098d0d2367d804 + md5: 665e987adbd92502f67ebff539591da5 + depends: + - __osx >=11.0 + - libcxx >=19 + - libllvm21 21.1.7 h8e0c9ce_0 + - libzlib >=1.3.1,<2.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + purls: [] + size: 17925948 + timestamp: 1764710793972 - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda sha256: 0fbacdfb31e55964152b24d5567e9a9996e1e7902fb08eb7d91b5fd6ce60803a md5: fee3164ac23dfca50cfcc8b85ddefb81 @@ -905,6 +1761,18 @@ packages: - pkg:pypi/markdown-it-py?source=hash-mapping size: 64430 timestamp: 1733250550053 +- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda + sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e + md5: 5b5203189eb668f042ac2b0826244964 + depends: + - mdurl >=0.1,<1 + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/markdown-it-py?source=hash-mapping + size: 64736 + timestamp: 1754951288511 - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda sha256: 78c1bbe1723449c52b7a9df1af2ee5f005209f67e40b6e1d3c7619127c43b1c7 md5: 592132998493b3ff25fd7479396e8351 @@ -926,40 +1794,96 @@ packages: purls: [] size: 891641 timestamp: 1738195959188 -- conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-22.13.0-hf235a45_0.conda - sha256: 925ea8839d6f26d0eb4204675b98a862803a9a9657fd36a4a22c4c29a479a911 - md5: 1f9efd96347aa008bd2c735d7d88fc75 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda + sha256: 2827ada40e8d9ca69a153a45f7fd14f32b2ead7045d3bbb5d10964898fe65733 + md5: 068d497125e4bf8a66bf707254fff5ae + depends: + - __osx >=11.0 + license: X11 AND BSD-3-Clause + purls: [] + size: 797030 + timestamp: 1738196177597 +- conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.2.1-he2c55a7_1.conda + sha256: 6516f99fe400181ebe27cba29180ca0c7425c15d7392f74220a028ad0e0064a2 + md5: d8005b3a90515c952b51026f6b7d005d depends: - __glibc >=2.28,<3.0.a0 - - icu >=75.1,<76.0a0 - - libgcc >=13 - - libstdcxx >=13 - - libuv >=1.50.0,<2.0a0 + - libstdcxx >=14 + - libgcc >=14 + - zstd >=1.5.7,<1.6.0a0 + - c-ares >=1.34.6,<2.0a0 + - libuv >=1.51.0,<2.0a0 + - libsqlite >=3.51.1,<4.0a0 + - libnghttp2 >=1.67.0,<2.0a0 + - openssl >=3.5.4,<4.0a0 + - libabseil >=20250512.1,<20250513.0a0 + - libabseil * cxx17* - libzlib >=1.3.1,<2.0a0 - - openssl >=3.4.1,<4.0a0 - - zlib + - libbrotlicommon >=1.2.0,<1.3.0a0 + - libbrotlienc >=1.2.0,<1.3.0a0 + - libbrotlidec >=1.2.0,<1.3.0a0 + - icu >=75.1,<76.0a0 license: MIT license_family: MIT purls: [] - size: 21691794 - timestamp: 1741809786920 -- pypi: https://files.pythonhosted.org/packages/b0/d9/7c338b923c53d431bc837b5b787052fef9ae68a56fe91e325aac0d48226e/numpy-2.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl + size: 17246248 + timestamp: 1765444698486 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-25.2.1-h5230ea7_1.conda + sha256: acb4a33a096fa89d0ec0eea5d5f19988594d4e5c8d482ac60d2b0365d16dd984 + md5: 0b6dfe96bcfb469afe82885b3fecbd56 + depends: + - __osx >=11.0 + - libcxx >=19 + - libsqlite >=3.51.1,<4.0a0 + - libbrotlicommon >=1.2.0,<1.3.0a0 + - libbrotlienc >=1.2.0,<1.3.0a0 + - libbrotlidec >=1.2.0,<1.3.0a0 + - openssl >=3.5.4,<4.0a0 + - c-ares >=1.34.6,<2.0a0 + - icu >=75.1,<76.0a0 + - zstd >=1.5.7,<1.6.0a0 + - libabseil >=20250512.1,<20250513.0a0 + - libabseil * cxx17* + - libnghttp2 >=1.67.0,<2.0a0 + - libuv >=1.51.0,<2.0a0 + - libzlib >=1.3.1,<2.0a0 + license: MIT + purls: [] + size: 16202237 + timestamp: 1765482731453 +- pypi: https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl + name: numpy + version: 2.3.5 + sha256: aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 + requires_python: '>=3.11' +- pypi: https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: numpy - version: 2.2.5 - sha256: 3a801fef99668f309b88640e28d261991bfad9617c27beda4a3aec4f217ea073 - requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.5.0-h7b32b05_1.conda - sha256: b4491077c494dbf0b5eaa6d87738c22f2154e9277e5293175ec187634bd808a0 - md5: de356753cfdbffcde5bb1e86e3aa6cd0 + version: 2.3.5 + sha256: 11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 + requires_python: '>=3.11' +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda + sha256: a47271202f4518a484956968335b2521409c8173e123ab381e775c358c67fe6d + md5: 9ee58d5c534af06558933af3c845a780 depends: - __glibc >=2.17,<3.0.a0 - ca-certificates - - libgcc >=13 + - libgcc >=14 + license: Apache-2.0 + license_family: Apache + purls: [] + size: 3165399 + timestamp: 1762839186699 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.0-h5503f6c_0.conda + sha256: ebe93dafcc09e099782fe3907485d4e1671296bc14f8c383cb6f3dfebb773988 + md5: b34dc4172653c13dcf453862f251af2b + depends: + - __osx >=11.0 + - ca-certificates license: Apache-2.0 license_family: Apache purls: [] - size: 3117410 - timestamp: 1746223723843 + size: 3108371 + timestamp: 1762839712322 - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda sha256: 289861ed0c13a15d7bbb408796af4de72c2fe67e2bcb0de98f4c3fce259d7991 md5: 58335b26c38bf4a20f399384c33cbcf9 @@ -969,22 +1893,20 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/packaging?source=compressed-mapping + - pkg:pypi/packaging?source=hash-mapping size: 62477 timestamp: 1745345660407 -- conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.1-pyh8b19718_0.conda - sha256: 81a7ffe7b7ca8718bc09476a258cd48754e1d4e1bd3b80a6fef41ffb71e3bfc8 - md5: 2247aa245832ea47e8b971bef73d7094 +- conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda + sha256: 4d5e2faca810459724f11f78d19a0feee27a7be2b3fc5f7abbbec4c9fdcae93d + md5: bf47878473e5ab9fdb4115735230e191 depends: - - python >=3.9,<3.13.0a0 - - setuptools - - wheel + - python >=3.13.0a0 license: MIT license_family: MIT purls: - pkg:pypi/pip?source=hash-mapping - size: 1247085 - timestamp: 1745671930895 + size: 1177084 + timestamp: 1762776338614 - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda sha256: 0f48999a28019c329cd3f6fd2f01f09fc32cc832f7d6bbe38087ddac858feaa3 md5: 424844562f5d337077b445ec6b1398a7 @@ -997,6 +1919,18 @@ packages: - pkg:pypi/platformdirs?source=compressed-mapping size: 23531 timestamp: 1746710438805 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda + sha256: 04c64fb78c520e5c396b6e07bc9082735a5cc28175dbe23138201d0a9441800b + md5: 1bd2e65c8c7ef24f4639ae6e850dacc2 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/platformdirs?source=hash-mapping + size: 23922 + timestamp: 1764950726246 - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 md5: 12c566707c80111f9799308d9e265aef @@ -1005,7 +1939,8 @@ packages: - python license: BSD-3-Clause license_family: BSD - purls: [] + purls: + - pkg:pypi/pycparser?source=hash-mapping size: 110100 timestamp: 1733195786147 - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda @@ -1024,23 +1959,57 @@ packages: - pkg:pypi/pydantic?source=compressed-mapping size: 306304 timestamp: 1746632069456 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py312h680f630_0.conda - sha256: 4d14d7634c8f351ff1e63d733f6bb15cba9a0ec77e468b0de9102014a4ddc103 - md5: cfbd96e5a0182dfb4110fc42dda63e57 +- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + sha256: 868569d9505b7fe246c880c11e2c44924d7613a8cdcc1f6ef85d5375e892f13d + md5: c3946ed24acdb28db1b5d63321dbca7d + depends: + - typing-inspection >=0.4.2 + - typing_extensions >=4.14.1 + - python >=3.10 + - typing-extensions >=4.6.1 + - annotated-types >=0.6.0 + - pydantic-core ==2.41.5 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic?source=hash-mapping + size: 340482 + timestamp: 1764434463101 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py313h4b2b08d_0.conda + sha256: 754e3739e4b2a8856573e75829a1cccc0d16ee59dbee6ad594a70728a90e2854 + md5: 04b21004fe9316e29c92aa3accd528e5 depends: - python - typing-extensions >=4.6.0,!=4.7.0 - - __glibc >=2.17,<3.0.a0 - libgcc >=13 - - python_abi 3.12.* *_cp312 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.13.* *_cp313 constrains: - __glibc >=2.17 license: MIT license_family: MIT purls: - pkg:pypi/pydantic-core?source=hash-mapping - size: 1890081 - timestamp: 1746625309715 + size: 1894157 + timestamp: 1746625309269 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py313h2c089d5_1.conda + sha256: 08398c0599084837ba89d69db00b3d0973dc86d6519957dc6c1b480e2571451a + md5: eaeed566f6d88c0a08d73700b34be4a2 + depends: + - python + - typing-extensions >=4.6.0,!=4.7.0 + - python 3.13.* *_cp313 + - __osx >=11.0 + - python_abi 3.13.* *_cp313 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pydantic-core?source=hash-mapping + size: 1778337 + timestamp: 1762989007829 - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b md5: 232fb4577b6687b2d503ef8e254270c9 @@ -1052,16 +2021,27 @@ packages: - pkg:pypi/pygments?source=hash-mapping size: 888600 timestamp: 1736243563082 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.5-pyhac95a24_0.conda - sha256: e05d69ad90d17d67cd3194b8acb02d7b09293fee01405989f407f0394ba97ec1 - md5: 8f8cfa1e405562340cfabd750f445192 +- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda + sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a + md5: 6b6ece66ebcae2d5f326c77ef2c5a066 + depends: + - python >=3.9 + license: BSD-2-Clause + license_family: BSD + purls: + - pkg:pypi/pygments?source=hash-mapping + size: 889287 + timestamp: 1750615908735 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.9-pyhac95a24_0.conda + sha256: 2518e773641ad035d55fba795c6a4e26e35935116dfabcec38961b2a5290898c + md5: f1e159b0fce91898185fb7deb46b5b59 depends: - - auditwheel-emscripten ==0.1.0 + - auditwheel-emscripten >=0.2.0,<0.3.0 - packaging - platformdirs - pydantic >=2,<3 - pyodide-cli >=0.3.0 - - pyodide-lock ==0.1.0a7 + - pyodide-lock >=0.1.0,<0.2.0 - python >=3.12 - python-build >=1.2.0,<1.3.dev0 - requests @@ -1077,8 +2057,8 @@ packages: license_family: MOZILLA purls: - pkg:pypi/pyodide-build?source=hash-mapping - size: 101414 - timestamp: 1749078596512 + size: 104573 + timestamp: 1762983623558 - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda sha256: 30e4a37a40d7ee47b8be64015674ad7323c6f41e935d080fb6bcfb8ec1f02b3d md5: 0947e2092ff75a34f5e58bc5f689e247 @@ -1093,18 +2073,33 @@ packages: - pkg:pypi/pyodide-cli?source=hash-mapping size: 24452 timestamp: 1743860686761 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0a7-pyhd8ed1ab_0.conda - sha256: b73e038d5d0d0a83372d033a79c2f725de151bd4938dd492e7bf650d91376554 - md5: 15a95627f7cd53c532e6403680656a99 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.4.0-pyhac95a24_0.conda + sha256: 1b42ea542aff734bfa9e6b93c09844a04fbce7dd1836d1fee129df645c415a2a + md5: de53b454ef9f3233135eba0d6cc58313 + depends: + - python >=3.12 + - rich + - typer >=0.6.0 + - python + license: MPL-2.0 + license_family: MOZILLA + purls: + - pkg:pypi/pyodide-cli?source=hash-mapping + size: 25499 + timestamp: 1757710711552 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0-pyhcf101f3_0.conda + sha256: a8b666cf8986938b0c75483dce35dcf40a448c1b4d13501e74b2bf1f829d77ab + md5: 160dbd5a3b4a4ccd6c6eeeb069096ebe depends: - pydantic >=2 - python >=3.10 + - python license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/pyodide-lock?source=hash-mapping - size: 15151 - timestamp: 1723471784826 + size: 17935 + timestamp: 1755447839894 - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda sha256: 065ac44591da9abf1ff740feb25929554b920b00d09287a551fcced2c9791092 md5: d4582021af437c931d7d77ec39007845 @@ -1129,33 +2124,57 @@ packages: - pkg:pypi/pysocks?source=hash-mapping size: 21085 timestamp: 1733217331982 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda - sha256: 674be31ff152d9f0e0fe16959a45e3803a730fc4f54d87df6a9ac4e6a698c41d - md5: 0515111a9cdf69f83278f7c197db9807 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.2-hf636f53_101_cp313.conda + build_number: 101 + sha256: cc1984ee54261cee6a2db75c65fc7d2967bc8c6e912d332614df15244d7730ef + md5: a7902a3611fe773da3921cbbf7bc2c5c depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.6.3,<3.0a0 + - libexpat >=2.6.4,<3.0a0 - libffi >=3.4,<4.0a0 - libgcc >=13 - - libnsl >=2.0.1,<2.1.0a0 - - libsqlite >=3.46.1,<4.0a0 + - liblzma >=5.6.4,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.48.0,<4.0a0 - libuuid >=2.38.1,<3.0a0 - - libxcrypt >=4.4.36 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.3.2,<4.0a0 + - openssl >=3.4.1,<4.0a0 + - python_abi 3.13.* *_cp313 + - readline >=8.2,<9.0a0 + - tk >=8.6.13,<8.7.0a0 + - tzdata + license: Python-2.0 + purls: [] + size: 33233150 + timestamp: 1739803603242 + python_site_packages_path: lib/python3.13/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.2-h81fe080_101_cp313.conda + build_number: 101 + sha256: 6239a14c39a9902d6b617d57efe3eefbab23cf30cdc67122fdab81d04da193cd + md5: 71a76067a1cac1a2f03b43a08646a63e + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.6.4,<3.0a0 + - libffi >=3.4,<4.0a0 + - liblzma >=5.6.4,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.48.0,<4.0a0 + - libzlib >=1.3.1,<2.0a0 + - ncurses >=6.5,<7.0a0 + - openssl >=3.4.1,<4.0a0 + - python_abi 3.13.* *_cp313 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - - xz >=5.2.6,<6.0a0 - constrains: - - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 31574780 - timestamp: 1728059777603 + size: 11682568 + timestamp: 1739801342527 + python_site_packages_path: lib/python3.13/site-packages - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda sha256: da40ab7413029351852268ca479e5cc642011c72317bd02dba28235c5c5ec955 md5: 0903621fe8a9f37286596529528f4f74 @@ -1174,17 +2193,17 @@ packages: - pkg:pypi/build?source=hash-mapping size: 25108 timestamp: 1733230700715 -- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-7_cp312.conda - build_number: 7 - sha256: a1bbced35e0df66cc713105344263570e835625c28d1bdee8f748f482b2d7793 - md5: 0dfcdc155cf23812a0c9deada86fb723 +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda + build_number: 8 + sha256: 210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7 + md5: 94305520c52a4aa3f6c2b1ff6008d9f8 constrains: - - python 3.12.* *_cpython + - python 3.13.* *_cp313 license: BSD-3-Clause license_family: BSD purls: [] - size: 6971 - timestamp: 1745258861359 + size: 7002 + timestamp: 1752805902938 - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c md5: 283b96675859b20a825f8fa30f311446 @@ -1196,6 +2215,16 @@ packages: purls: [] size: 282480 timestamp: 1740379431762 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + sha256: 7db04684d3904f6151eff8673270922d31da1eea7fa73254d01c437f49702e34 + md5: 63ef3f6e6d6d5c589e64f11263dc5676 + depends: + - ncurses >=6.5,<7.0a0 + license: GPL-3.0-only + license_family: GPL + purls: [] + size: 252359 + timestamp: 1740379663071 - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad md5: a9b9368f3701a417eac9edbcae7cb737 @@ -1213,6 +2242,23 @@ packages: - pkg:pypi/requests?source=hash-mapping size: 58723 timestamp: 1733217126197 +- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda + sha256: 8dc54e94721e9ab545d7234aa5192b74102263d3e704e6d0c8aa7008f2da2a7b + md5: db0c6b99149880c8ba515cf4abe93ee4 + depends: + - certifi >=2017.4.17 + - charset-normalizer >=2,<4 + - idna >=2.5,<4 + - python >=3.9 + - urllib3 >=1.21.1,<3 + constrains: + - chardet >=3.0.2,<6 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/requests?source=hash-mapping + size: 59263 + timestamp: 1755614348400 - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.1.0-pyhd8ed1ab_1.conda sha256: c48f49bfae4f642364d59fcc7eb328822e9611ef3a393e67d8cbd54753110667 md5: 0880e9e633e4e5e2b76593f761ac154e @@ -1223,6 +2269,16 @@ packages: - pkg:pypi/resolvelib?source=hash-mapping size: 335514 timestamp: 1733599765789 +- conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.2.1-pyhd8ed1ab_0.conda + sha256: 92027319cfb2ab3e38dc11594d7704d301d4048a1e2be531f55f7eafe744ffa5 + md5: 1a8bcf0bb5d49ce0b1e9e31cceeb2b45 + depends: + - python >=3.10 + license: ISC + purls: + - pkg:pypi/resolvelib?source=hash-mapping + size: 335755 + timestamp: 1760802465911 - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda sha256: d10e2b66a557ec6296844e04686db87818b0df87d73c06388f2332fda3f7d2d5 md5: 202f08242192ce3ed8bdb439ba40c0fe @@ -1238,97 +2294,152 @@ packages: - pkg:pypi/rich?source=hash-mapping size: 200323 timestamp: 1743371105291 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.10-py312h66e93f0_0.conda - sha256: cd8ed10671111f15245cebadc06b88d6f5fc91f1f7f92456daa568e9d9f5bc42 - md5: 5260b7fb19694ee5bc4ed0ee7a2a769f +- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda + sha256: edfb44d0b6468a8dfced728534c755101f06f1a9870a7ad329ec51389f16b086 + md5: a247579d8a59931091b16a1e932bbed6 + depends: + - markdown-it-py >=2.2.0 + - pygments >=2.13.0,<3.0.0 + - python >=3.10 + - typing_extensions >=4.0.0,<5.0.0 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/rich?source=hash-mapping + size: 200840 + timestamp: 1760026188268 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py313h07c4f96_0.conda + sha256: fa1667f1c61610191960d0f6c33a55f3afacfd9c43ff4c9b1507ba164eb3f28f + md5: 88717b72e54ee6ef081c9ecfafd728c8 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - libgcc >=14 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT purls: - pkg:pypi/ruamel-yaml?source=hash-mapping - size: 267560 - timestamp: 1736248154294 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.8-py312h66e93f0_1.conda - sha256: ac987b1c186d79e4e1ce4354a84724fc68db452b2bd61de3a3e1b6fc7c26138d - md5: 532c3e5d0280be4fea52396ec1fa7d5d + size: 272227 + timestamp: 1761160797563 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py313h6535dbc_0.conda + sha256: ddd6eaaa278772b760dd3e3176b70db71b26a8e8f1f27d7619ec2a638bf872af + md5: d9915dc9a5b3ce03810bd0024b62afac + depends: + - __osx >=11.0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 + - ruamel.yaml.clib >=0.1.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruamel-yaml?source=hash-mapping + size: 272094 + timestamp: 1761160998422 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py313h07c4f96_0.conda + sha256: 1d5607b463001ed480aea45b7f3c1035151c0c44a3bf4f3539a00fe097c5e30a + md5: 3cff82488dd3935fdb3ba37911387fec depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - libgcc >=14 + - python >=3.13,<3.14.0a0 + - python_abi 3.13.* *_cp313 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruamel-yaml-clib?source=hash-mapping + size: 140261 + timestamp: 1760564339468 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py313h6535dbc_0.conda + sha256: ade7d57e7c4b92bc4b003a59e9a40d8d241d113fc8e4c051ecb7dd689d9360f4 + md5: 844260acfdd85139049b9c806862e15c + depends: + - __osx >=11.0 + - python >=3.13,<3.14.0a0 + - python >=3.13,<3.14.0a0 *_cp313 + - python_abi 3.13.* *_cp313 license: MIT license_family: MIT purls: - pkg:pypi/ruamel-yaml-clib?source=hash-mapping - size: 145481 - timestamp: 1728724626666 -- conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda - sha256: fa3b6757df927a24c3006bc5bffbac5b0c9a54b9755c08847f8a832ec1b79300 - md5: 98eab8148e1447e79f9e03492d04e291 + size: 116501 + timestamp: 1760564812152 +- conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.91.0-h53717f1_0.conda + sha256: e28695b4b100630fc41f6f5f4a345a652faea5921f3a264f085abf1ce57e18c0 + md5: 8cd76142f2bd3c5d9271282bbc795ba7 depends: - __glibc >=2.17,<3.0.a0 - gcc_impl_linux-64 - - libgcc >=13 + - libgcc >=14 - libzlib >=1.3.1,<2.0a0 - - rust-std-x86_64-unknown-linux-gnu 1.86.0 h2c6d0dc_0 + - rust-std-x86_64-unknown-linux-gnu 1.91.0 h2c6d0dc_0 - sysroot_linux-64 >=2.17 license: MIT license_family: MIT purls: [] - size: 218638108 - timestamp: 1743697775334 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda - sha256: 73cc7c49ef8088fc5186f6aee48166ca71c7dc527997a592f5b76a815f4bda88 - md5: 9c2af1ca0493191466b300691edc2145 + size: 233367042 + timestamp: 1762437215143 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.91.0-h4ff7c5d_0.conda + sha256: e4409d457bf8e35977137a8ed10d97e1e3cf4b144c4ddbdd7ca5ca8c3f8b75a9 + md5: 412771062ed3a4768fabf2c722121f3f + depends: + - rust-std-aarch64-apple-darwin 1.91.0 hf6ec828_0 + license: MIT + license_family: MIT + purls: [] + size: 240624653 + timestamp: 1762437162283 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda + sha256: 101be935423bf3465736ae2a0d7d70727f31887ed79dd85fc70d90d8b96ac3ff + md5: ad5cf9189283a23c389848a458e82d68 depends: - __unix constrains: - - rust >=1.86.0,<1.86.1.0a0 + - rust >=1.91.0,<1.91.1.0a0 license: MIT license_family: MIT purls: [] - size: 3568928 - timestamp: 1743696829470 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda - sha256: c5372b6d23b8826d275e6e09f73a9ea1f7a2e77c3c9fe487f166879c5269e44a - md5: a618a92c573bcf85c9c357f73e35d95e + size: 4132270 + timestamp: 1762436613257 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.91.0-hf6ec828_0.conda + sha256: ef4924db46910c48c83ac3c18a8e6b01625a3c51205450911c7987c52eee4373 + md5: 9c77bee3cfdf2f715281ddce5359838f depends: - __unix constrains: - - rust >=1.86.0,<1.86.1.0a0 + - rust >=1.91.0,<1.91.1.0a0 license: MIT license_family: MIT purls: [] - size: 25522077 - timestamp: 1743697288036 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda - sha256: 8c1c68b7a8ce9657fea7d266607c21c9a00a382c346348a232e539c8a3266e84 - md5: 2fcc4c775a50bd2ce3ccb8dc56e4fb47 + size: 34788424 + timestamp: 1762436839115 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda + sha256: 3fa1484671d3859d342548f93fdca1fd2337455494e4d7bd0ad352bf4b495d40 + md5: 735380990a3a6a59923428d36670b434 depends: - __unix constrains: - - rust >=1.86.0,<1.86.1.0a0 + - rust >=1.91.0,<1.91.1.0a0 license: MIT license_family: MIT purls: [] - size: 37636509 - timestamp: 1743697574868 -- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.1.0-pyhff2d567_0.conda - sha256: 777d34ed359cedd5a5004c930077c101bb3b70e5fbb04d29da5058d75b0ba487 - md5: f6f72d0837c79eaec77661be43e8a691 + size: 26712606 + timestamp: 1762436895985 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.91.0-h2c6d0dc_0.conda + sha256: 8777d4b65e74d05a60e737ccc6c3127cacae3e08426fe6cb48a17fa88b028b9b + md5: 2e30a8da5860a3ab9e794a984067ba45 depends: - - python >=3.9 + - __unix + constrains: + - rust >=1.91.0,<1.91.1.0a0 license: MIT license_family: MIT - purls: - - pkg:pypi/setuptools?source=compressed-mapping - size: 778484 - timestamp: 1746085063737 + purls: [] + size: 39154444 + timestamp: 1762437071320 - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda sha256: 0557c090913aa63cdbe821dbdfa038a321b488e22bc80196c4b3b1aace4914ef md5: 7c3c2a0f3ebdea2bbc35538d162b43bf @@ -1340,6 +2451,27 @@ packages: - pkg:pypi/shellingham?source=compressed-mapping size: 14462 timestamp: 1733301007770 +- conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda + sha256: 1d6534df8e7924d9087bd388fbac5bd868c5bf8971c36885f9f016da0657d22b + md5: 83ea3a2ddb7a75c1b09cea582aa4f106 + depends: + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/shellingham?source=hash-mapping + size: 15018 + timestamp: 1762858315311 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 + sha256: 70791ae00a3756830cb50451db55f63e2a42a2fa2a8f1bab1ebd36bbb7d55bff + md5: 4a2cac04f86a4540b8c9b8d8f597848f + depends: + - openssl >=3.0.0,<4.0a0 + license: MIT + license_family: MIT + purls: [] + size: 210264 + timestamp: 1643442231687 - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda sha256: c2248418c310bdd1719b186796ae50a8a77ce555228b6acd32768e2543a15012 md5: bf7a226e58dfb8346c70df36065d86c9 @@ -1351,6 +2483,17 @@ packages: - pkg:pypi/sniffio?source=hash-mapping size: 15019 timestamp: 1733244175724 +- conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda + sha256: dce518f45e24cd03f401cb0616917773159a210c19d601c5f2d4e0e5879d30ad + md5: 03fe290994c5e4ec17293cfb6bdce520 + depends: + - python >=3.10 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/sniffio?source=compressed-mapping + size: 15698 + timestamp: 1762941572482 - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda sha256: 69ab5804bdd2e8e493d5709eebff382a72fab3e9af6adf93a237ccf8f7dbd624 md5: 460eba7851277ec1fd80a1a24080787a @@ -1362,6 +2505,17 @@ packages: purls: [] size: 15166921 timestamp: 1735290488259 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda + sha256: dcb678fa77f448fa981bf3783902afe09b8838436f3092e9ecaf6a718c87f642 + md5: 347261d575a245cb6111fb2cb5a79fc7 + depends: + - libcxx >=19.0.0.a0 + - __osx >=11.0 + - ncurses >=6.5,<7.0a0 + license: NCSA + purls: [] + size: 199699 + timestamp: 1762535277608 - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e md5: d453b98d9c83e71da0741bb0ff4d76bc @@ -1373,6 +2527,17 @@ packages: purls: [] size: 3318875 timestamp: 1699202167581 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda + sha256: ad0c67cb03c163a109820dc9ecf77faf6ec7150e942d1e8bb13e5d39dc058ab7 + md5: a73d54a5abba6543cb2f0af1bfbd6851 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: TCL + license_family: BSD + purls: [] + size: 3125484 + timestamp: 1763055028377 - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e md5: ac944244f1fed2eb49bae07193ae8215 @@ -1384,6 +2549,18 @@ packages: - pkg:pypi/tomli?source=hash-mapping size: 19167 timestamp: 1733256819729 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + sha256: cb77c660b646c00a48ef942a9e1721ee46e90230c7c570cdeb5a893b5cce9bff + md5: d2732eb636c264dc9aa4cbee404b1a53 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/tomli?source=compressed-mapping + size: 20973 + timestamp: 1760014679845 - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.3-pyhf21524f_0.conda sha256: 8cd849ceb5e2f50481b1f30f083ee134fac706a56d7879c61248f0aadad4ea5b md5: b4bed8eb8dd4fe076f436e5506d31673 @@ -1397,6 +2574,19 @@ packages: - pkg:pypi/typer?source=compressed-mapping size: 77044 timestamp: 1745886712803 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.20.0-pyhefaf540_1.conda + sha256: 17a1e572939af33d709248170871d4da74f7e32b48f2e9b5abca613e201c6e64 + md5: 23a53fdefc45ba3f4e075cc0997fd13b + depends: + - typer-slim-standard ==0.20.0 h4daf872_1 + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/typer?source=hash-mapping + size: 79829 + timestamp: 1762984042927 - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.3-pyh29332c3_0.conda sha256: 1768d1d9914d4237b0a1ae8bcb30dace44ac80b9ab1516a2d429d0b27ad70ab9 md5: 20c0f2ae932004d7118c172eeb035cea @@ -1415,6 +2605,24 @@ packages: - pkg:pypi/typer-slim?source=compressed-mapping size: 46152 timestamp: 1745886712803 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.20.0-pyhcf101f3_1.conda + sha256: 4b5ded929080b91367f128e7299619f6116f08bc77d9924a2f8766e2a1b18161 + md5: 4b02a515f3e882dcfe9cfbf0a1f5cd3a + depends: + - python >=3.10 + - click >=8.0.0 + - typing_extensions >=3.7.4.3 + - python + constrains: + - typer 0.20.0.* + - rich >=10.11.0 + - shellingham >=1.3.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/typer-slim?source=compressed-mapping + size: 47951 + timestamp: 1762984042920 - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.3-h1a15894_0.conda sha256: 72f77e8e61b28058562f2782cf32ff84f14f6c11c6cea7a3fe2839d34654ea45 md5: 120216d3a2e51dfbb87bbba173ebf210 @@ -1427,6 +2635,18 @@ packages: purls: [] size: 5411 timestamp: 1745886712803 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.20.0-h4daf872_1.conda + sha256: 5027768bc9a580c8ffbf25872bb2208c058cbb79ae959b1cf2cc54b5d32c0377 + md5: 37b26aafb15a6687b31a3d8d7a1f04e7 + depends: + - typer-slim ==0.20.0 pyhcf101f3_1 + - rich + - shellingham + license: MIT + license_family: MIT + purls: [] + size: 5322 + timestamp: 1762984042927 - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.13.2-h0e9735f_0.conda sha256: 4865fce0897d3cb0ffc8998219157a8325f6011c136e6fd740a9a6b169419296 md5: 568ed1300869dca0ba09fb750cda5dbb @@ -1437,6 +2657,16 @@ packages: purls: [] size: 89900 timestamp: 1744302253997 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c + md5: edd329d7d3a4ab45dcf905899a7a6115 + depends: + - typing_extensions ==4.15.0 pyhcf101f3_0 + license: PSF-2.0 + license_family: PSF + purls: [] + size: 91383 + timestamp: 1756220668932 - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.0-pyhd8ed1ab_0.conda sha256: 172f971d70e1dbb978f6061d3f72be463d0f629155338603450d8ffe87cbf89d md5: c5c76894b6b7bacc888ba25753bc8677 @@ -1449,6 +2679,18 @@ packages: - pkg:pypi/typing-inspection?source=hash-mapping size: 18070 timestamp: 1741438157162 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + sha256: 70db27de58a97aeb7ba7448366c9853f91b21137492e0b4430251a1870aa8ff4 + md5: a0a4a3035667fc34f29bfbd5c190baa6 + depends: + - python >=3.10 + - typing_extensions >=4.12.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/typing-inspection?source=compressed-mapping + size: 18923 + timestamp: 1764158430324 - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda sha256: a8aaf351e6461de0d5d47e4911257e25eec2fa409d71f3b643bb2f748bde1c08 md5: 83fc6ae00127671e301c9f44254c31b8 @@ -1461,6 +2703,18 @@ packages: - pkg:pypi/typing-extensions?source=compressed-mapping size: 52189 timestamp: 1744302253997 +- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 + md5: 0caa1af407ecff61170c9437a808404d + depends: + - python >=3.10 + - python + license: PSF-2.0 + license_family: PSF + purls: + - pkg:pypi/typing-extensions?source=hash-mapping + size: 51692 + timestamp: 1756220668932 - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 md5: 4222072737ccff51314b5ece9c7d6f5a @@ -1468,6 +2722,13 @@ packages: purls: [] size: 122968 timestamp: 1742727099393 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h8577fbf_1.conda + sha256: 865716d3e2ccaca1218462645830d2370ab075a9a118c238728e1231a234bc6c + md5: e4e8496b68cf5f25e76fbe67f3856550 + license: LicenseRef-Public-Domain + purls: [] + size: 119010 + timestamp: 1765580300078 - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.17.5-pyhd8ed1ab_0.conda sha256: bd17f8de2b814083113d964794babc5f8bdaaf590640d27a0395b47eb5b8f499 md5: c645046441194a2d4fa726c2629f2461 @@ -1483,6 +2744,21 @@ packages: - pkg:pypi/unearth?source=hash-mapping size: 285892 timestamp: 1744177720866 +- conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.1-pyhd8ed1ab_0.conda + sha256: 7c4105042aadf7397e017929233ad456288295079a96158d5bf59a3baf67a0aa + md5: a68a2d04d596069745f4657318a5f1bc + depends: + - cached-property >=1.5.2 + - httpx + - packaging >=20 + - python >=3.10 + - requests >=2.25 + license: MIT + license_family: MIT + purls: + - pkg:pypi/unearth?source=hash-mapping + size: 286162 + timestamp: 1760524561716 - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda sha256: a25403b76f7f03ca1a906e1ef0f88521edded991b9897e7fed56a3e334b3db8c md5: c1e349028e0052c4eea844e94f773065 @@ -1498,6 +2774,21 @@ packages: - pkg:pypi/urllib3?source=hash-mapping size: 100791 timestamp: 1744323705540 +- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda + sha256: a66fc716c9dc6eb048c40381b0d1c5842a1d74bba7ce3d16d80fc0a7232d8644 + md5: fb84f0f6ee8a0ad67213cd1bea98bf5b + depends: + - backports.zstd >=1.0.0 + - brotli-python >=1.2.0 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/urllib3?source=compressed-mapping + size: 102817 + timestamp: 1765212810619 - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda sha256: 763dc774200b2eebdf5437b112834c5455a1dd1c9b605340696950277ff36729 md5: c0600c1b374efa7a1ff444befee108ca @@ -1512,6 +2803,21 @@ packages: - pkg:pypi/virtualenv?source=hash-mapping size: 4133755 timestamp: 1746781585998 +- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda + sha256: 77193c99c6626c58446168d3700f9643d8c0dab1f6deb6b9dd039e6872781bfb + md5: cfccfd4e8d9de82ed75c8e2c91cab375 + depends: + - distlib >=0.3.7,<1 + - filelock >=3.12.2,<4 + - platformdirs >=3.9.1,<5 + - python >=3.10 + - typing_extensions >=4.13.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/virtualenv?source=hash-mapping + size: 4401341 + timestamp: 1761726489722 - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce md5: 75cb7132eb58d97896e173ef12ac9986 @@ -1523,48 +2829,6 @@ packages: - pkg:pypi/wheel?source=hash-mapping size: 62931 timestamp: 1733130309598 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_1.conda - sha256: 178b04c2f35261a1f9a272901d2533c88d50416745509450ca56f7bc76f4a268 - md5: 46600bb863ef3f2f565e7e0458f3d3bc - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_1 - - liblzma-devel 5.8.1 hb9d3cd8_1 - - xz-gpl-tools 5.8.1 hbcc6ac9_1 - - xz-tools 5.8.1 hb9d3cd8_1 - license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later - purls: [] - size: 23933 - timestamp: 1746531531849 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_1.conda - sha256: 1f66e240fd37f66dfaff27f55f0e69008c4fdbbb02766cd2e0a60d2de85d49b4 - md5: 23d49402c43d1ea67aca3685acedc0ae - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_1 - constrains: - - xz 5.8.1.* - - xz ==5.8.1=*_1 - license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later - purls: [] - size: 33852 - timestamp: 1746531515485 -- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_1.conda - sha256: d219c162f2bf0bb851bfe4fbcb70f118b4f518e0e1c46ae72726bc5b9dde6f24 - md5: 966d5f3958ecfaf49a9a060dfb81eb85 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - liblzma 5.8.1 hb9d3cd8_1 - constrains: - - xz 5.8.1.* - - xz ==5.8.1=*_1 - license: 0BSD AND LGPL-2.1-or-later - purls: [] - size: 96134 - timestamp: 1746531500507 - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1 md5: 0c3cc595284c5e8f0f9900a9b228a332 @@ -1576,6 +2840,18 @@ packages: - pkg:pypi/zipp?source=hash-mapping size: 21809 timestamp: 1732827613585 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda + sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae + md5: 30cd29cb87d819caead4d55184c1d115 + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/zipp?source=compressed-mapping + size: 24194 + timestamp: 1764460141901 - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda sha256: 5d7c0e5f0005f74112a34a7425179f4eb6e73c92f5d109e6af4ddeca407c92ab md5: c9f075ab2f33b3bbee9e62d4ad0a6cd8 @@ -1588,21 +2864,34 @@ packages: purls: [] size: 92286 timestamp: 1727963153079 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.23.0-py312h66e93f0_2.conda - sha256: ff62d2e1ed98a3ec18de7e5cf26c0634fd338cb87304cf03ad8cbafe6fe674ba - md5: 630db208bc7bbb96725ce9832c7423bb +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda + sha256: 58f8860756680a4831c1bf4f294e2354d187f2e999791d53b1941834c4b37430 + md5: e3170d898ca6cb48f1bb567afb92f775 depends: - - __glibc >=2.17,<3.0.a0 + - __osx >=11.0 + - libzlib 1.3.1 h8359307_2 + license: Zlib + license_family: Other + purls: [] + size: 77606 + timestamp: 1727963209370 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_1.conda + sha256: e6921de3669e1bbd5d050a3b771b46a887e7f4ffeb1ddd5e4d9fb01062a2f6e9 + md5: 710d4663806d0f72b2fb414e936223b5 + depends: + - python - cffi >=1.11 - - libgcc >=13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - zstd >=1.5.7,<1.5.8.0a0 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.13.* *_cp313 + - zstd >=1.5.7,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/zstandard?source=compressed-mapping - size: 732224 - timestamp: 1745869780524 + - pkg:pypi/zstandard?source=hash-mapping + size: 471496 + timestamp: 1762512679097 - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda sha256: a4166e3d8ff4e35932510aaff7aa90772f84b4d07e9f6f83c614cba7ceefe0eb md5: 6432cb5d4ac0046c3ac0a8a0f95842f9 @@ -1616,3 +2905,14 @@ packages: purls: [] size: 567578 timestamp: 1742433379869 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda + sha256: 9485ba49e8f47d2b597dd399e88f4802e100851b27c21d7525625b0b4025a5d9 + md5: ab136e4c34e97f34fb621d2592a393d8 + depends: + - __osx >=11.0 + - libzlib >=1.3.1,<2.0a0 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 433413 + timestamp: 1764777166076 diff --git a/pyproject.toml b/pyproject.toml index 454570ea3b..acc0bfdbcf 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -156,23 +156,23 @@ repair-wheel-command = "cp {wheel} {dest_dir}/. && pipx run abi3audit==0.0.9 --s [tool.pixi.workspace] channels = ["conda-forge"] -platforms = ["linux-64"] +platforms = ["linux-64", "osx-arm64"] [tool.pixi.environments] default = {features = [], solve-group = "default"} [tool.pixi.dependencies] -python = "==3.12.7" -pip="==25.1" -pyodide-build = "==0.30.5" -emscripten = "==3.1.58" -nodejs = ">=22.13.0,<22.14" -rust = "==1.86" -rust-std-wasm32-unknown-emscripten = "==1.86" -rust-src = "==1.86" +python = "==3.13.2" +pip="==25.3" +pyodide-build = "==0.30.9" +emscripten = "==4.0.9" +nodejs = ">=25.2.1,<25.3" +rust = "==1.91" +rust-std-wasm32-unknown-emscripten = "==1.91" +rust-src = "==1.91" [tool.pixi.tasks.install_xbuildenv] -cmd = ["pyodide", "xbuildenv", "install", "0.27.7"] +cmd = ["pyodide", "xbuildenv", "install", "0.29.0"] [tool.pixi.tasks.build_pyodide] cmd = ["pyodide", "build"] From 71f03f8982a89feb7d61a27301c0c908d93bb313 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 17:26:10 -0500 Subject: [PATCH 46/60] Bump pixi --- .github/workflows/main.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 5cf022a743..2ebc44dab9 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -206,9 +206,9 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: prefix-dev/setup-pixi@v0.8.8 + - uses: prefix-dev/setup-pixi@v0.9.3 with: manifest-path: pyproject.toml - pixi-version: v0.46.0 + pixi-version: v0.61.0 environments: default - run: pixi run build_pyodide From 0884ce428599ee1483c583578cd108da4a7ef331 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 17:29:01 -0500 Subject: [PATCH 47/60] Refresh lock file to fix failure --- pixi.lock | 872 ++++++++++++++---------------------------------------- 1 file changed, 219 insertions(+), 653 deletions(-) diff --git a/pixi.lock b/pixi.lock index f7d65fc763..b9963681dd 100644 --- a/pixi.lock +++ b/pixi.lock @@ -12,42 +12,42 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-2_gnu.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.2.0-py313h18e8e13_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-117-h59595ed_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45-default_hfdba357_104.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py313hf159716_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf01b4d8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21-21.1.7-default_h99862b1_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21.1.7-default_h36abe19_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-21.1.7-default_h363a0c9_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.0-pyh707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt21-21.1.7-hb700be7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_linux-64-21.1.7-hffcefe0_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-4.0.9-ha4b6fd6_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.1.0-h4393ad2_2.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-3.20.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.2.0-hc5723f1_16.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httpcore-1.0.9-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/httpx-0.28.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-75.1-he02047a_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda - conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20250512.1-cxx17_hba17884_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda @@ -55,23 +55,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.7-default_h99862b1_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.1.0-h4c094af_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h9ec8514_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_16.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_116.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_16.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.7-hf7376ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.1.0-h97b714f_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.1.0-h4c094af_102.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.2.0-hd446a21_116.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-h5347b49_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda @@ -80,20 +80,19 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.7-h4922eb0_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21-21.1.7-h3b15d91_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21.1.7-hb700be7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.2.1-he2c55a7_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py313h4b2b08d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py313h843e2db_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.9-pyhac95a24_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.4.0-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda @@ -101,35 +100,34 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.2.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py313h07c4f96_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py313h07c4f96_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.91.0-h53717f1_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.91.0-h2c6d0dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.3-pyhf21524f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.3-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.3-h1a15894_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.13.2-h0e9735f_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.17.5-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.20.0-pyhefaf540_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.20.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.20.0-h4daf872_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h8577fbf_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - pypi: https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda @@ -295,25 +293,6 @@ packages: - pkg:pypi/anyio?source=hash-mapping size: 144702 timestamp: 1764375386926 -- conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.9.0-pyh29332c3_0.conda - sha256: b28e0f78bb0c7962630001e63af25a89224ff504e135a02e50d4d80b6155d386 - md5: 9749a2c77a7c40d432ea0927662d7e52 - depends: - - exceptiongroup >=1.0.2 - - idna >=2.8 - - python >=3.9 - - sniffio >=1.1 - - typing_extensions >=4.5 - - python - constrains: - - trio >=0.26.1 - - uvloop >=0.21 - license: MIT - license_family: MIT - purls: - - pkg:pypi/anyio?source=hash-mapping - size: 126346 - timestamp: 1742243108743 - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda sha256: b35aedf5a6d6a7fb7886f1c9362c9b10dfa373f16074e19c194e592ba93b9dbd md5: 332b9f86138b5df01219b489065cb349 @@ -331,6 +310,20 @@ packages: - pkg:pypi/auditwheel-emscripten?source=hash-mapping size: 36799 timestamp: 1748543354122 +- conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.2.0-py313h18e8e13_0.conda + sha256: dac72e2f4f64d8d7eccd424dd02d90c2c7229d6d3e0fa4a819ab41e6c7d30351 + md5: ab79cf30dea6ef4d1ab2623c5ac5601b + depends: + - python + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 + - python_abi 3.13.* *_cp313 + license: BSD-3-Clause AND MIT AND EPL-2.0 + purls: + - pkg:pypi/backports-zstd?source=hash-mapping + size: 240935 + timestamp: 1765057668668 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py313hf42fe89_0.conda sha256: 7b0ac5df8d6cbcd5a9c20421ac984369c6204b891a4bb2e66c1754416c2115fc md5: 1d0e9ba81b540cd787ef87e914ef4826 @@ -366,17 +359,18 @@ packages: purls: [] size: 3466426 timestamp: 1709092708128 -- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.43-h4bf12b8_4.conda - sha256: 194d771be287dc973f6057c0747010ce28adf960f38d6e03ce3e828d7b74833e - md5: ef67db625ad0d2dce398837102f875ed +- conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45-default_hfdba357_104.conda + sha256: 054a77ccab631071a803737ea8e5d04b5b18e57db5b0826a04495bd3fdf39a7c + md5: a7a67bf132a4a2dea92a7cb498cdc5b1 depends: - - ld_impl_linux-64 2.43 h712a8e2_4 + - ld_impl_linux-64 2.45 default_hbd61a6d_104 - sysroot_linux-64 + - zstd >=1.5.7,<1.6.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 6111717 - timestamp: 1740155471052 + size: 3747046 + timestamp: 1764007847963 - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py313hf159716_1.conda sha256: dadec2879492adede0a9af0191203f9b023f788c18efd45ecac676d424c458ae md5: 6c4d3597cf43f3439a51b2b13e29a4ba @@ -411,17 +405,17 @@ packages: - pkg:pypi/brotli?source=hash-mapping size: 359568 timestamp: 1764018359470 -- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h4bc722e_7.conda - sha256: 5ced96500d945fb286c9c838e54fa759aa04a7129c59800f0846b4335cee770d - md5: 62ee74e96c5ebb0af99386de58cf9553 +- conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda + sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 + md5: 51a19bba1b8ebfb60df25cde030b7ebc depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 + - libgcc >=14 license: bzip2-1.0.6 license_family: BSD purls: [] - size: 252783 - timestamp: 1720974456583 + size: 260341 + timestamp: 1757437258798 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda sha256: b456200636bd5fecb2bec63f7e0985ad2097cf1b83d60ce0b6968dffa6d02aa1 md5: 58fd217444c2a5701a44244faf518206 @@ -462,15 +456,6 @@ packages: purls: [] size: 152432 timestamp: 1762967197890 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.4.26-hbd8a1cb_0.conda - sha256: 2a70ed95ace8a3f8a29e6cd1476a943df294a7111dfb3e152e3478c4c889b7ac - md5: 95db94f75ba080a22eb623590993167b - depends: - - __unix - license: ISC - purls: [] - size: 152283 - timestamp: 1745653616541 - conda: https://conda.anaconda.org/conda-forge/noarch/cached-property-1.5.2-hd8ed1ab_1.tar.bz2 noarch: python sha256: 561e6660f26c35d137ee150187d89767c988413c978e1b712d53f27ddf70ea17 @@ -503,43 +488,6 @@ packages: - pkg:pypi/certifi?source=compressed-mapping size: 157131 timestamp: 1762976260320 -- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.4.26-pyhd8ed1ab_0.conda - sha256: 52aa837642fd851b3f7ad3b1f66afc5366d133c1d452323f786b0378a391915c - md5: c33eeaaa33f45031be34cda513df39b6 - depends: - - python >=3.9 - license: ISC - purls: - - pkg:pypi/certifi?source=hash-mapping - size: 157200 - timestamp: 1746569627830 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf01b4d8_0.conda - sha256: cbead764b88c986642578bb39f77d234fbc3890bd301ed29f849a6d3898ed0fc - md5: 062317cc1cd26fbf6454e86ddd3622c4 - depends: - - __glibc >=2.17,<3.0.a0 - - libffi >=3.4.6,<3.5.0a0 - - libgcc >=14 - - pycparser - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: MIT - license_family: MIT - purls: - - pkg:pypi/cffi?source=hash-mapping - size: 298211 - timestamp: 1758716239290 -- conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.2-pyhd8ed1ab_0.conda - sha256: 535ae5dcda8022e31c6dc063eb344c80804c537a5a04afba43a845fa6fa130f5 - md5: 40fe4284b8b5835a9073a645139f35af - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/charset-normalizer?source=compressed-mapping - size: 50481 - timestamp: 1746214981991 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda sha256: b32f8362e885f1b8417bac2b3da4db7323faa12d5db62b7fd6691c02d60d6f59 md5: a22d1fd9bf98827e280a02875d9a007a @@ -629,18 +577,6 @@ packages: purls: [] size: 27384 timestamp: 1764812174045 -- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.2.0-pyh707e725_0.conda - sha256: 910f0e5e74a75f6e270b9dedd0f8ac55830250b0874f9f67605816fd069af283 - md5: 4d4f33c3d9e5a23a7f4795d327a5d1f0 - depends: - - __unix - - python >=3.10 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/click?source=hash-mapping - size: 87705 - timestamp: 1746951781787 - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715 md5: ea8a6c3256897cc31263de9f455e25d9 @@ -709,17 +645,6 @@ packages: purls: [] size: 10728171 timestamp: 1764723879940 -- conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.3.9-pyhd8ed1ab_1.conda - sha256: 0e160c21776bd881b79ce70053e59736f51036784fa43a50da10a04f0c1b9c45 - md5: 8d88f4a2242e6b96f9ecff9a6a05b2f1 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/distlib?source=hash-mapping - size: 274151 - timestamp: 1733238487461 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e md5: 003b8ba0a94e2f1e117d0bd46aebc901 @@ -765,17 +690,6 @@ packages: purls: [] size: 112522409 timestamp: 1764067709702 -- conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.0-pyhd8ed1ab_0.conda - sha256: ce61f4f99401a4bd455b89909153b40b9c823276aefcbb06f2044618696009ca - md5: 72e42d28960d875c7654614f8b50939a - depends: - - python >=3.9 - - typing_extensions >=4.6.0 - license: MIT and PSF-2.0 - purls: - - pkg:pypi/exceptiongroup?source=compressed-mapping - size: 21284 - timestamp: 1746947398083 - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 md5: 8e662bd460bda79b1ea39194e3c4c9ab @@ -787,16 +701,6 @@ packages: - pkg:pypi/exceptiongroup?source=compressed-mapping size: 21333 timestamp: 1763918099466 -- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.18.0-pyhd8ed1ab_0.conda - sha256: de7b6d4c4f865609ae88db6fa03c8b7544c2452a1aa5451eb7700aad16824570 - md5: 4547b39256e296bb758166893e909a7c - depends: - - python >=3.9 - license: Unlicense - purls: - - pkg:pypi/filelock?source=hash-mapping - size: 17887 - timestamp: 1741969612334 - conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda sha256: 19025a4078ff3940d97eb0da29983d5e0deac9c3e09b0eabf897daeaf9d1114e md5: 66b8b26023b8efdf8fcb23bac4b6325d @@ -807,22 +711,23 @@ packages: - pkg:pypi/filelock?source=hash-mapping size: 17976 timestamp: 1759948208140 -- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.1.0-h4393ad2_2.conda - sha256: 99c545b842edd356d907c51ccd6f894ef6db042c6ebebefd14eb844f53ff8f73 - md5: 240c2af59f95792f60193c1cb9ee42c5 - depends: - - binutils_impl_linux-64 >=2.40 - - libgcc >=15.1.0 - - libgcc-devel_linux-64 15.1.0 h4c094af_102 - - libgomp >=15.1.0 - - libsanitizer 15.1.0 h97b714f_2 - - libstdcxx >=15.1.0 +- conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.2.0-hc5723f1_16.conda + sha256: dfd180b9df441b57aa539dfcfcc416c804638b3bc5ec9dbb5d7bdbc009eba497 + md5: 83c672f0e373c37436953413b2272a42 + depends: + - binutils_impl_linux-64 >=2.45 + - libgcc >=15.2.0 + - libgcc-devel_linux-64 15.2.0 hcc6f6b0_116 + - libgomp >=15.2.0 + - libsanitizer 15.2.0 h90f66d4_16 + - libstdcxx >=15.2.0 + - libstdcxx-devel_linux-64 15.2.0 hd446a21_116 - sysroot_linux-64 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 76467375 - timestamp: 1746642316078 + size: 80309755 + timestamp: 1765256937267 - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda sha256: f64b68148c478c3bfc8f8d519541de7d2616bf59d44485a5271041d40c061887 md5: 4b69232755285701bc86a5afe4d9933a @@ -835,19 +740,6 @@ packages: - pkg:pypi/h11?source=hash-mapping size: 37697 timestamp: 1745526482242 -- conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.2.0-pyhd8ed1ab_0.conda - sha256: 0aa1cdc67a9fe75ea95b5644b734a756200d6ec9d0dff66530aec3d1c1e9df75 - md5: b4754fb1bdcb70c8fd54f918301582c6 - depends: - - hpack >=4.1,<5 - - hyperframe >=6.1,<7 - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/h2?source=hash-mapping - size: 53888 - timestamp: 1738578623567 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 @@ -938,17 +830,6 @@ packages: purls: [] size: 11857802 timestamp: 1720853997952 -- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.10-pyhd8ed1ab_1.conda - sha256: d7a472c9fd479e2e8dcb83fb8d433fce971ea369d704ece380e876f9c3494e87 - md5: 39a4f67be3286c86d696df570b1201b7 - depends: - - python >=3.9 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/idna?source=hash-mapping - size: 49765 - timestamp: 1733211921194 - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda sha256: ae89d0299ada2a3162c2614a9d26557a92aa6a77120ce142f8e0109bbf0342b0 md5: 53abe63df7e10a6ba605dc5f9f961d36 @@ -960,18 +841,6 @@ packages: - pkg:pypi/idna?source=hash-mapping size: 50721 timestamp: 1760286526795 -- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.6.1-pyha770c72_0.conda - sha256: 598951ebdb23e25e4cec4bbff0ae369cec65ead80b50bc08b441d8e54de5cf03 - md5: f4b39bf00c69f56ac01e020ebfac066c - depends: - - python >=3.9 - - zipp >=0.5 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/importlib-metadata?source=hash-mapping - size: 29141 - timestamp: 1737420302391 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda sha256: c18ab120a0613ada4391b15981d86ff777b5690ca461ea7e9e49531e8f374745 md5: 63ccfdc3a3ce25b027b8767eb722fca8 @@ -985,16 +854,16 @@ packages: - pkg:pypi/importlib-metadata?source=hash-mapping size: 34641 timestamp: 1747934053147 -- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-3.10.0-he073ed8_18.conda - sha256: a922841ad80bd7b222502e65c07ecb67e4176c4fa5b03678a005f39fcc98be4b - md5: ad8527bf134a90e1c9ed35fa0b64318c +- conda: https://conda.anaconda.org/conda-forge/noarch/kernel-headers_linux-64-4.18.0-he073ed8_9.conda + sha256: 41557eeadf641de6aeae49486cef30d02a6912d8da98585d687894afd65b356a + md5: 86d9cba083cd041bfbf242a01a7a1999 constrains: - - sysroot_linux-64 ==2.17 - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 + - sysroot_linux-64 ==2.28 + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later license_family: GPL purls: [] - size: 943486 - timestamp: 1729794504440 + size: 1278712 + timestamp: 1765578681495 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-956.6-llvm21_1_h5d6df6c_1.conda sha256: cfb3612bde5233ef62b73b507e5fe2efb069d077f1d6ca50ec44aef40078b520 md5: 4b659bb7a1a49f9aacffb344712cbe06 @@ -1028,18 +897,19 @@ packages: purls: [] size: 1037660 timestamp: 1764351616909 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.43-h712a8e2_4.conda - sha256: db73f38155d901a610b2320525b9dd3b31e4949215c870685fd92ea61b5ce472 - md5: 01f8d123c96816249efd255a31ad7712 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda + sha256: 9e191baf2426a19507f1d0a17be0fdb7aa155cdf0f61d5a09c808e0a69464312 + md5: a6abd2796fc332536735f68ba23f7901 depends: - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 constrains: - - binutils_impl_linux-64 2.43 + - binutils_impl_linux-64 2.45 license: GPL-3.0-only license_family: GPL purls: [] - size: 671240 - timestamp: 1740155456116 + size: 725545 + timestamp: 1764007826689 - conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda sha256: 1400274f49883f1c374472f912c960067f5e3201dc1608a4ee7d43074861c2f9 md5: 8d4fc4a682e89e6d86ab58eeb617fdcd @@ -1223,19 +1093,19 @@ packages: purls: [] size: 107458 timestamp: 1702146414478 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.0-h5888daf_0.conda - sha256: 33ab03438aee65d6aa667cf7d90c91e5e7d734c19a67aa4c7040742c0a13d505 - md5: db0bfbe7dd197b68ad5f30333bae6ce0 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda + sha256: 1e1b08f6211629cbc2efe7a5bca5953f8f6b3cae0eeb04ca4dacee1bd4e2db2f + md5: 8b09ae86839581147ef2e5c5e229d164 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 constrains: - - expat 2.7.0.* + - expat 2.7.3.* license: MIT license_family: MIT purls: [] - size: 74427 - timestamp: 1743431794976 + size: 76643 + timestamp: 1763549731408 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.3-haf25636_0.conda sha256: fce22610ecc95e6d149e42a42fbc3cc9d9179bd4eb6232639a60f06e080eec98 md5: b79875dbb5b1db9a4a22a4520f918e1a @@ -1248,17 +1118,17 @@ packages: purls: [] size: 67800 timestamp: 1763549994166 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.4.6-h2dba641_1.conda - sha256: 764432d32db45466e87f10621db5b74363a9f847d2b8b1f9743746cd160f06ab - md5: ede4673863426c0883c0063d853bbd85 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h9ec8514_0.conda + sha256: 25cbdfa65580cfab1b8d15ee90b4c9f1e0d72128f1661449c9a999d341377d54 + md5: 35f29eec58405aaf55e01cb470d8c26a depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 license: MIT license_family: MIT purls: [] - size: 57433 - timestamp: 1743434498161 + size: 57821 + timestamp: 1760295480630 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-he5f378a_0.conda sha256: 9b8acdf42df61b7bfe8bdc545c016c29e61985e79748c64ad66df47dbc2e295f md5: 411ff7cd5d1472bba0f55c0faf04453b @@ -1269,60 +1139,60 @@ packages: purls: [] size: 40251 timestamp: 1760295839166 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.1.0-h767d61c_2.conda - sha256: 0024f9ab34c09629621aefd8603ef77bf9d708129b0dd79029e502c39ffc2195 - md5: ea8ac52380885ed41c1baa8f1d6d2b93 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_16.conda + sha256: 6eed58051c2e12b804d53ceff5994a350c61baf117ec83f5f10c953a3f311451 + md5: 6d0363467e6ed84f11435eb309f2ff06 depends: - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 constrains: - - libgcc-ng ==15.1.0=*_2 - - libgomp 15.1.0 h767d61c_2 + - libgcc-ng ==15.2.0=*_16 + - libgomp 15.2.0 he0feb66_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 829108 - timestamp: 1746642191935 -- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.1.0-h4c094af_102.conda - sha256: f379980c3d48ceabf8ade0ebc5bdb4acd41e4b1c89023b673deb212e51b7a7f6 - md5: c49792270935d4024aef12f8e49f0f9c + size: 1042798 + timestamp: 1765256792743 +- conda: https://conda.anaconda.org/conda-forge/noarch/libgcc-devel_linux-64-15.2.0-hcc6f6b0_116.conda + sha256: 48d7d8dded34100d9065d1c0df86a11ab2cd8ddfd1590512b304527ed25b6d93 + md5: e67832fdbf2382757205bb4b38800643 depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 2733483 - timestamp: 1746642098272 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.1.0-h69a702a_2.conda - sha256: 0ab5421a89f090f3aa33841036bb3af4ed85e1f91315b528a9d75fab9aad51ae - md5: ddca86c7040dd0e73b2b69bd7833d225 + size: 3094906 + timestamp: 1765256682321 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda + sha256: 5f07f9317f596a201cc6e095e5fc92621afca64829785e483738d935f8cab361 + md5: 5a68259fac2da8f2ee6f7bfe49c9eb8b depends: - - libgcc 15.1.0 h767d61c_2 + - libgcc 15.2.0 he0feb66_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 34586 - timestamp: 1746642200749 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.1.0-h767d61c_2.conda - sha256: 05fff3dc7e80579bc28de13b511baec281c4343d703c406aefd54389959154fb - md5: fbe7d535ff9d3a168c148e07358cd5b1 + size: 27256 + timestamp: 1765256804124 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_16.conda + sha256: 5b3e5e4e9270ecfcd48f47e3a68f037f5ab0f529ccb223e8e5d5ac75a58fc687 + md5: 26c46f90d0e727e95c6c9498a33a09f3 depends: - __glibc >=2.17,<3.0.a0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 452635 - timestamp: 1746642113092 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h4ce23a2_1.conda - sha256: 18a4afe14f731bfb9cf388659994263904d20111e42f841e9eea1bb6f91f4ab4 - md5: e796ff8ddc598affdf7c173d6145f087 + size: 603284 + timestamp: 1765256703881 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda + sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f + md5: 915f5995e94f60e9a4826e0b0920ee88 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 license: LGPL-2.1-only purls: [] - size: 713084 - timestamp: 1740128065462 + size: 790176 + timestamp: 1754908768807 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda sha256: de0336e800b2af9a40bdd694b03870ac4a848161b35c8a2325704f123f185f03 md5: 4d5a7445f0b25b6a3ddbb56e790f5251 @@ -1363,19 +1233,18 @@ packages: purls: [] size: 29397925 timestamp: 1764710482321 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_1.conda - sha256: eeff241bddc8f1b87567dd6507c9f441f7f472c27f0860a07628260c000ef27c - md5: a76fd702c93cd2dfd89eff30a5fd45a8 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda + sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 + md5: 1a580f7796c7bf6393fddb8bbbde58dc depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 constrains: - xz 5.8.1.* - - xz ==5.8.1=*_1 license: 0BSD purls: [] - size: 112845 - timestamp: 1746531470399 + size: 112894 + timestamp: 1749230047870 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda sha256: 0cb92a9e026e7bd4842f410a5c5c665c89b2eb97794ffddba519a626b8ce7285 md5: d6df911d4564d77c4374b02552cb17d1 @@ -1441,18 +1310,18 @@ packages: purls: [] size: 575454 timestamp: 1756835746393 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.1.0-h97b714f_2.conda - sha256: 3f573329431523b2510b9374f4048d87bb603536bc63f66910cd47b5347ea37f - md5: 4de6cfe35a4736a63e4f59602a8ebeec +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_16.conda + sha256: 50d8082749e760454fb1489c2a47c6fa80cbf3893ec1c1a085747d46484ffd7f + md5: 0841a98bda756af037eb07d36cacada5 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=15.1.0 - - libstdcxx >=15.1.0 + - libgcc >=15.2.0 + - libstdcxx >=15.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 4539916 - timestamp: 1746642248624 + size: 7660762 + timestamp: 1765256861607 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda sha256: 6f0e8a812e8e33a4d8b7a0e595efe28373080d27b78ee4828aa4f6649a088454 md5: 2e1b84d273b01835256e53fd938de355 @@ -1474,47 +1343,50 @@ packages: purls: [] size: 906292 timestamp: 1764359907797 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.1.0-h8f9b012_2.conda - sha256: 6ae3d153e78f6069d503d9309f2cac6de5b93d067fc6433160a4c05226a5dad4 - md5: 1cb1c67961f6dd257eae9e9691b341aa +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda + sha256: 813427918316a00c904723f1dfc3da1bbc1974c5cfe1ed1e704c6f4e0798cbc6 + md5: 68f68355000ec3f1d6f26ea13e8f525f depends: - __glibc >=2.17,<3.0.a0 - - libgcc 15.1.0 h767d61c_2 + - libgcc 15.2.0 he0feb66_16 + constrains: + - libstdcxx-ng ==15.2.0=*_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 3902355 - timestamp: 1746642227493 -- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.1.0-h4c094af_102.conda - sha256: 1a401e2256d30b3ef3c93a5f553442748a7045bd19360bb28eaf39458e24e7d6 - md5: 9931ac667ef44e13405ce95c601af775 + size: 5856456 + timestamp: 1765256838573 +- conda: https://conda.anaconda.org/conda-forge/noarch/libstdcxx-devel_linux-64-15.2.0-hd446a21_116.conda + sha256: cb331c51739cc68257c7d7eef0e29c355b46b2d72f630854506dbc99240057c1 + md5: 2730e07e576ffbd7bf13f8de34835d41 depends: - __unix license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 14749051 - timestamp: 1746642129544 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.1.0-h4852527_2.conda - sha256: 11bea86e11de7d6bce87589197a383344df3fa0a3552dab7e931785ff1159a5b - md5: 9d2072af184b5caa29492bf2344597bb + size: 20763949 + timestamp: 1765256724565 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda + sha256: 81f2f246c7533b41c5e0c274172d607829019621c4a0823b5c0b4a8c7028ee84 + md5: 1b3152694d236cf233b76b8c56bf0eae depends: - - libstdcxx 15.1.0 h8f9b012_2 + - libstdcxx 15.2.0 h934c35e_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 34647 - timestamp: 1746642266826 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.38.1-h0b41bf4_0.conda - sha256: 787eb542f055a2b3de553614b25f09eefb0a0931b0c87dbcce6efdfd92f04f18 - md5: 40b61aab5c7ba9ff276c41cfffe6b80b + size: 27300 + timestamp: 1765256885128 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-h5347b49_1.conda + sha256: 030447cf827c471abd37092ab9714fde82b8222106f22fde94bc7a64e2704c40 + md5: 41f5c09a211985c3ce642d60721e7c3e depends: - - libgcc-ng >=12 + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 license: BSD-3-Clause license_family: BSD purls: [] - size: 33601 - timestamp: 1680112270483 + size: 40235 + timestamp: 1764790744114 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda sha256: c180f4124a889ac343fc59d15558e93667d894a966ec6fdb61da1604481be26b md5: 0f03292cc56bf91a077a134ea8747118 @@ -1749,18 +1621,6 @@ packages: purls: [] size: 17925948 timestamp: 1764710793972 -- conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-3.0.0-pyhd8ed1ab_1.conda - sha256: 0fbacdfb31e55964152b24d5567e9a9996e1e7902fb08eb7d91b5fd6ce60803a - md5: fee3164ac23dfca50cfcc8b85ddefb81 - depends: - - mdurl >=0.1,<1 - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/markdown-it-py?source=hash-mapping - size: 64430 - timestamp: 1733250550053 - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e md5: 5b5203189eb668f042ac2b0826244964 @@ -1907,18 +1767,6 @@ packages: - pkg:pypi/pip?source=hash-mapping size: 1177084 timestamp: 1762776338614 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.3.8-pyhe01879c_0.conda - sha256: 0f48999a28019c329cd3f6fd2f01f09fc32cc832f7d6bbe38087ddac858feaa3 - md5: 424844562f5d337077b445ec6b1398a7 - depends: - - python >=3.9 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/platformdirs?source=compressed-mapping - size: 23531 - timestamp: 1746710438805 - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda sha256: 04c64fb78c520e5c396b6e07bc9082735a5cc28175dbe23138201d0a9441800b md5: 1bd2e65c8c7ef24f4639ae6e850dacc2 @@ -1931,34 +1779,6 @@ packages: - pkg:pypi/platformdirs?source=hash-mapping size: 23922 timestamp: 1764950726246 -- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-2.22-pyh29332c3_1.conda - sha256: 79db7928d13fab2d892592223d7570f5061c192f27b9febd1a418427b719acc6 - md5: 12c566707c80111f9799308d9e265aef - depends: - - python >=3.9 - - python - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/pycparser?source=hash-mapping - size: 110100 - timestamp: 1733195786147 -- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.11.4-pyh3cfb1c2_0.conda - sha256: a522473505ac6a9c10bb304d7338459a406ba22a6d3bb1a355c1b5283553a372 - md5: 8ad3ad8db5ce2ba470c9facc37af00a9 - depends: - - annotated-types >=0.6.0 - - pydantic-core 2.33.2 - - python >=3.9 - - typing-extensions >=4.6.1 - - typing-inspection >=0.4.0 - - typing_extensions >=4.12.2 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pydantic?source=compressed-mapping - size: 306304 - timestamp: 1746632069456 - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda sha256: 868569d9505b7fe246c880c11e2c44924d7613a8cdcc1f6ef85d5375e892f13d md5: c3946ed24acdb28db1b5d63321dbca7d @@ -1976,13 +1796,13 @@ packages: - pkg:pypi/pydantic?source=hash-mapping size: 340482 timestamp: 1764434463101 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.33.2-py313h4b2b08d_0.conda - sha256: 754e3739e4b2a8856573e75829a1cccc0d16ee59dbee6ad594a70728a90e2854 - md5: 04b21004fe9316e29c92aa3accd528e5 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py313h843e2db_1.conda + sha256: b15568ddc03bd33ea41610e5df951be4e245cd61957cbf8c2cfd12557f3d53b5 + md5: f27c39a1906771bbe56cd26a76bf0b8b depends: - python - typing-extensions >=4.6.0,!=4.7.0 - - libgcc >=13 + - libgcc >=14 - __glibc >=2.17,<3.0.a0 - python_abi 3.13.* *_cp313 constrains: @@ -1991,8 +1811,8 @@ packages: license_family: MIT purls: - pkg:pypi/pydantic-core?source=hash-mapping - size: 1894157 - timestamp: 1746625309269 + size: 1940186 + timestamp: 1762989000579 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py313h2c089d5_1.conda sha256: 08398c0599084837ba89d69db00b3d0973dc86d6519957dc6c1b480e2571451a md5: eaeed566f6d88c0a08d73700b34be4a2 @@ -2010,17 +1830,6 @@ packages: - pkg:pypi/pydantic-core?source=hash-mapping size: 1778337 timestamp: 1762989007829 -- conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.1-pyhd8ed1ab_0.conda - sha256: 28a3e3161390a9d23bc02b4419448f8d27679d9e2c250e29849e37749c8de86b - md5: 232fb4577b6687b2d503ef8e254270c9 - depends: - - python >=3.9 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/pygments?source=hash-mapping - size: 888600 - timestamp: 1736243563082 - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a md5: 6b6ece66ebcae2d5f326c77ef2c5a066 @@ -2059,20 +1868,6 @@ packages: - pkg:pypi/pyodide-build?source=hash-mapping size: 104573 timestamp: 1762983623558 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.3.0-pyh5d45ec7_0.conda - sha256: 30e4a37a40d7ee47b8be64015674ad7323c6f41e935d080fb6bcfb8ec1f02b3d - md5: 0947e2092ff75a34f5e58bc5f689e247 - depends: - - python >=3.12 - - rich - - typer >=0.6.0 - - python - license: MPL-2.0 - license_family: MOZILLA - purls: - - pkg:pypi/pyodide-cli?source=hash-mapping - size: 24452 - timestamp: 1743860686761 - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.4.0-pyhac95a24_0.conda sha256: 1b42ea542aff734bfa9e6b93c09844a04fbce7dd1836d1fee129df645c415a2a md5: de53b454ef9f3233135eba0d6cc58313 @@ -2225,23 +2020,6 @@ packages: purls: [] size: 252359 timestamp: 1740379663071 -- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.3-pyhd8ed1ab_1.conda - sha256: d701ca1136197aa121bbbe0e8c18db6b5c94acbd041c2b43c70e5ae104e1d8ad - md5: a9b9368f3701a417eac9edbcae7cb737 - depends: - - certifi >=2017.4.17 - - charset-normalizer >=2,<4 - - idna >=2.5,<4 - - python >=3.9 - - urllib3 >=1.21.1,<3 - constrains: - - chardet >=3.0.2,<6 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/requests?source=hash-mapping - size: 58723 - timestamp: 1733217126197 - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda sha256: 8dc54e94721e9ab545d7234aa5192b74102263d3e704e6d0c8aa7008f2da2a7b md5: db0c6b99149880c8ba515cf4abe93ee4 @@ -2259,16 +2037,6 @@ packages: - pkg:pypi/requests?source=hash-mapping size: 59263 timestamp: 1755614348400 -- conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.1.0-pyhd8ed1ab_1.conda - sha256: c48f49bfae4f642364d59fcc7eb328822e9611ef3a393e67d8cbd54753110667 - md5: 0880e9e633e4e5e2b76593f761ac154e - depends: - - python >=3.9 - license: ISC - purls: - - pkg:pypi/resolvelib?source=hash-mapping - size: 335514 - timestamp: 1733599765789 - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.2.1-pyhd8ed1ab_0.conda sha256: 92027319cfb2ab3e38dc11594d7704d301d4048a1e2be531f55f7eafe744ffa5 md5: 1a8bcf0bb5d49ce0b1e9e31cceeb2b45 @@ -2279,21 +2047,6 @@ packages: - pkg:pypi/resolvelib?source=hash-mapping size: 335755 timestamp: 1760802465911 -- conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.0.0-pyh29332c3_0.conda - sha256: d10e2b66a557ec6296844e04686db87818b0df87d73c06388f2332fda3f7d2d5 - md5: 202f08242192ce3ed8bdb439ba40c0fe - depends: - - markdown-it-py >=2.2.0 - - pygments >=2.13.0,<3.0.0 - - python >=3.9 - - typing_extensions >=4.0.0,<5.0.0 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/rich?source=hash-mapping - size: 200323 - timestamp: 1743371105291 - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda sha256: edfb44d0b6468a8dfced728534c755101f06f1a9870a7ad329ec51389f16b086 md5: a247579d8a59931091b16a1e932bbed6 @@ -2440,17 +2193,6 @@ packages: purls: [] size: 39154444 timestamp: 1762437071320 -- conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_1.conda - sha256: 0557c090913aa63cdbe821dbdfa038a321b488e22bc80196c4b3b1aace4914ef - md5: 7c3c2a0f3ebdea2bbc35538d162b43bf - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/shellingham?source=compressed-mapping - size: 14462 - timestamp: 1733301007770 - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda sha256: 1d6534df8e7924d9087bd388fbac5bd868c5bf8971c36885f9f016da0657d22b md5: 83ea3a2ddb7a75c1b09cea582aa4f106 @@ -2472,17 +2214,6 @@ packages: purls: [] size: 210264 timestamp: 1643442231687 -- conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_1.conda - sha256: c2248418c310bdd1719b186796ae50a8a77ce555228b6acd32768e2543a15012 - md5: bf7a226e58dfb8346c70df36065d86c9 - depends: - - python >=3.9 - license: Apache-2.0 - license_family: Apache - purls: - - pkg:pypi/sniffio?source=hash-mapping - size: 15019 - timestamp: 1733244175724 - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda sha256: dce518f45e24cd03f401cb0616917773159a210c19d601c5f2d4e0e5879d30ad md5: 03fe290994c5e4ec17293cfb6bdce520 @@ -2494,17 +2225,18 @@ packages: - pkg:pypi/sniffio?source=compressed-mapping size: 15698 timestamp: 1762941572482 -- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.17-h0157908_18.conda - sha256: 69ab5804bdd2e8e493d5709eebff382a72fab3e9af6adf93a237ccf8f7dbd624 - md5: 460eba7851277ec1fd80a1a24080787a +- conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda + sha256: c47299fe37aebb0fcf674b3be588e67e4afb86225be4b0d452c7eb75c086b851 + md5: 13dc3adbc692664cd3beabd216434749 depends: - - kernel-headers_linux-64 3.10.0 he073ed8_18 + - __glibc >=2.28 + - kernel-headers_linux-64 4.18.0 he073ed8_9 - tzdata - license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later AND MPL-2.0 + license: LGPL-2.0-or-later AND LGPL-2.0-or-later WITH exceptions AND GPL-2.0-or-later license_family: GPL purls: [] - size: 15166921 - timestamp: 1735290488259 + size: 24008591 + timestamp: 1765578833462 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda sha256: dcb678fa77f448fa981bf3783902afe09b8838436f3092e9ecaf6a718c87f642 md5: 347261d575a245cb6111fb2cb5a79fc7 @@ -2516,17 +2248,20 @@ packages: purls: [] size: 199699 timestamp: 1762535277608 -- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h4845f30_101.conda - sha256: e0569c9caa68bf476bead1bed3d79650bb080b532c64a4af7d8ca286c08dea4e - md5: d453b98d9c83e71da0741bb0ff4d76bc +- conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda + sha256: 1544760538a40bcd8ace2b1d8ebe3eb5807ac268641f8acdc18c69c5ebfeaf64 + md5: 86bc20552bf46075e3d92b67f089172d depends: - - libgcc-ng >=12 - - libzlib >=1.2.13,<2.0.0a0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - libzlib >=1.3.1,<2.0a0 + constrains: + - xorg-libx11 >=1.8.12,<2.0a0 license: TCL license_family: BSD purls: [] - size: 3318875 - timestamp: 1699202167581 + size: 3284905 + timestamp: 1763054914403 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda sha256: ad0c67cb03c163a109820dc9ecf77faf6ec7150e942d1e8bb13e5d39dc058ab7 md5: a73d54a5abba6543cb2f0af1bfbd6851 @@ -2538,17 +2273,6 @@ packages: purls: [] size: 3125484 timestamp: 1763055028377 -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.2.1-pyhd8ed1ab_1.conda - sha256: 18636339a79656962723077df9a56c0ac7b8a864329eb8f847ee3d38495b863e - md5: ac944244f1fed2eb49bae07193ae8215 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/tomli?source=hash-mapping - size: 19167 - timestamp: 1733256819729 - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda sha256: cb77c660b646c00a48ef942a9e1721ee46e90230c7c570cdeb5a893b5cce9bff md5: d2732eb636c264dc9aa4cbee404b1a53 @@ -2561,19 +2285,6 @@ packages: - pkg:pypi/tomli?source=compressed-mapping size: 20973 timestamp: 1760014679845 -- conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.15.3-pyhf21524f_0.conda - sha256: 8cd849ceb5e2f50481b1f30f083ee134fac706a56d7879c61248f0aadad4ea5b - md5: b4bed8eb8dd4fe076f436e5506d31673 - depends: - - typer-slim-standard ==0.15.3 h1a15894_0 - - python >=3.9 - - python - license: MIT - license_family: MIT - purls: - - pkg:pypi/typer?source=compressed-mapping - size: 77044 - timestamp: 1745886712803 - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.20.0-pyhefaf540_1.conda sha256: 17a1e572939af33d709248170871d4da74f7e32b48f2e9b5abca613e201c6e64 md5: 23a53fdefc45ba3f4e075cc0997fd13b @@ -2587,24 +2298,6 @@ packages: - pkg:pypi/typer?source=hash-mapping size: 79829 timestamp: 1762984042927 -- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.15.3-pyh29332c3_0.conda - sha256: 1768d1d9914d4237b0a1ae8bcb30dace44ac80b9ab1516a2d429d0b27ad70ab9 - md5: 20c0f2ae932004d7118c172eeb035cea - depends: - - python >=3.9 - - click >=8.0.0 - - typing_extensions >=3.7.4.3 - - python - constrains: - - typer 0.15.3.* - - rich >=10.11.0 - - shellingham >=1.3.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/typer-slim?source=compressed-mapping - size: 46152 - timestamp: 1745886712803 - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.20.0-pyhcf101f3_1.conda sha256: 4b5ded929080b91367f128e7299619f6116f08bc77d9924a2f8766e2a1b18161 md5: 4b02a515f3e882dcfe9cfbf0a1f5cd3a @@ -2623,18 +2316,6 @@ packages: - pkg:pypi/typer-slim?source=compressed-mapping size: 47951 timestamp: 1762984042920 -- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.15.3-h1a15894_0.conda - sha256: 72f77e8e61b28058562f2782cf32ff84f14f6c11c6cea7a3fe2839d34654ea45 - md5: 120216d3a2e51dfbb87bbba173ebf210 - depends: - - typer-slim ==0.15.3 pyh29332c3_0 - - rich - - shellingham - license: MIT - license_family: MIT - purls: [] - size: 5411 - timestamp: 1745886712803 - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.20.0-h4daf872_1.conda sha256: 5027768bc9a580c8ffbf25872bb2208c058cbb79ae959b1cf2cc54b5d32c0377 md5: 37b26aafb15a6687b31a3d8d7a1f04e7 @@ -2647,16 +2328,6 @@ packages: purls: [] size: 5322 timestamp: 1762984042927 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.13.2-h0e9735f_0.conda - sha256: 4865fce0897d3cb0ffc8998219157a8325f6011c136e6fd740a9a6b169419296 - md5: 568ed1300869dca0ba09fb750cda5dbb - depends: - - typing_extensions ==4.13.2 pyh29332c3_0 - license: PSF-2.0 - license_family: PSF - purls: [] - size: 89900 - timestamp: 1744302253997 - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c md5: edd329d7d3a4ab45dcf905899a7a6115 @@ -2667,18 +2338,6 @@ packages: purls: [] size: 91383 timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.0-pyhd8ed1ab_0.conda - sha256: 172f971d70e1dbb978f6061d3f72be463d0f629155338603450d8ffe87cbf89d - md5: c5c76894b6b7bacc888ba25753bc8677 - depends: - - python >=3.9 - - typing_extensions >=4.12.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/typing-inspection?source=hash-mapping - size: 18070 - timestamp: 1741438157162 - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.2-pyhd8ed1ab_1.conda sha256: 70db27de58a97aeb7ba7448366c9853f91b21137492e0b4430251a1870aa8ff4 md5: a0a4a3035667fc34f29bfbd5c190baa6 @@ -2691,18 +2350,6 @@ packages: - pkg:pypi/typing-inspection?source=compressed-mapping size: 18923 timestamp: 1764158430324 -- conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.13.2-pyh29332c3_0.conda - sha256: a8aaf351e6461de0d5d47e4911257e25eec2fa409d71f3b643bb2f748bde1c08 - md5: 83fc6ae00127671e301c9f44254c31b8 - depends: - - python >=3.9 - - python - license: PSF-2.0 - license_family: PSF - purls: - - pkg:pypi/typing-extensions?source=compressed-mapping - size: 52189 - timestamp: 1744302253997 - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda sha256: 032271135bca55aeb156cee361c81350c6f3fb203f57d024d7e5a1fc9ef18731 md5: 0caa1af407ecff61170c9437a808404d @@ -2715,13 +2362,6 @@ packages: - pkg:pypi/typing-extensions?source=hash-mapping size: 51692 timestamp: 1756220668932 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 - md5: 4222072737ccff51314b5ece9c7d6f5a - license: LicenseRef-Public-Domain - purls: [] - size: 122968 - timestamp: 1742727099393 - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h8577fbf_1.conda sha256: 865716d3e2ccaca1218462645830d2370ab075a9a118c238728e1231a234bc6c md5: e4e8496b68cf5f25e76fbe67f3856550 @@ -2729,21 +2369,6 @@ packages: purls: [] size: 119010 timestamp: 1765580300078 -- conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.17.5-pyhd8ed1ab_0.conda - sha256: bd17f8de2b814083113d964794babc5f8bdaaf590640d27a0395b47eb5b8f499 - md5: c645046441194a2d4fa726c2629f2461 - depends: - - cached-property >=1.5.2 - - httpx - - packaging >=20 - - python >=3.9 - - requests >=2.25 - license: MIT - license_family: MIT - purls: - - pkg:pypi/unearth?source=hash-mapping - size: 285892 - timestamp: 1744177720866 - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.1-pyhd8ed1ab_0.conda sha256: 7c4105042aadf7397e017929233ad456288295079a96158d5bf59a3baf67a0aa md5: a68a2d04d596069745f4657318a5f1bc @@ -2759,21 +2384,6 @@ packages: - pkg:pypi/unearth?source=hash-mapping size: 286162 timestamp: 1760524561716 -- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.4.0-pyhd8ed1ab_0.conda - sha256: a25403b76f7f03ca1a906e1ef0f88521edded991b9897e7fed56a3e334b3db8c - md5: c1e349028e0052c4eea844e94f773065 - depends: - - brotli-python >=1.0.9 - - h2 >=4,<5 - - pysocks >=1.5.6,<2.0,!=1.5.7 - - python >=3.9 - - zstandard >=0.18.0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/urllib3?source=hash-mapping - size: 100791 - timestamp: 1744323705540 - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda sha256: a66fc716c9dc6eb048c40381b0d1c5842a1d74bba7ce3d16d80fc0a7232d8644 md5: fb84f0f6ee8a0ad67213cd1bea98bf5b @@ -2789,20 +2399,6 @@ packages: - pkg:pypi/urllib3?source=compressed-mapping size: 102817 timestamp: 1765212810619 -- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.31.2-pyhd8ed1ab_0.conda - sha256: 763dc774200b2eebdf5437b112834c5455a1dd1c9b605340696950277ff36729 - md5: c0600c1b374efa7a1ff444befee108ca - depends: - - distlib >=0.3.7,<1 - - filelock >=3.12.2,<4 - - platformdirs >=3.9.1,<5 - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/virtualenv?source=hash-mapping - size: 4133755 - timestamp: 1746781585998 - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda sha256: 77193c99c6626c58446168d3700f9643d8c0dab1f6deb6b9dd039e6872781bfb md5: cfccfd4e8d9de82ed75c8e2c91cab375 @@ -2829,17 +2425,6 @@ packages: - pkg:pypi/wheel?source=hash-mapping size: 62931 timestamp: 1733130309598 -- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.21.0-pyhd8ed1ab_1.conda - sha256: 567c04f124525c97a096b65769834b7acb047db24b15a56888a322bf3966c3e1 - md5: 0c3cc595284c5e8f0f9900a9b228a332 - depends: - - python >=3.9 - license: MIT - license_family: MIT - purls: - - pkg:pypi/zipp?source=hash-mapping - size: 21809 - timestamp: 1732827613585 - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae md5: 30cd29cb87d819caead4d55184c1d115 @@ -2875,36 +2460,17 @@ packages: purls: [] size: 77606 timestamp: 1727963209370 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_1.conda - sha256: e6921de3669e1bbd5d050a3b771b46a887e7f4ffeb1ddd5e4d9fb01062a2f6e9 - md5: 710d4663806d0f72b2fb414e936223b5 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 + md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 depends: - - python - - cffi >=1.11 - - zstd >=1.5.7,<1.5.8.0a0 - - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 - - zstd >=1.5.7,<1.6.0a0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/zstandard?source=hash-mapping - size: 471496 - timestamp: 1762512679097 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb8e6e7a_2.conda - sha256: a4166e3d8ff4e35932510aaff7aa90772f84b4d07e9f6f83c614cba7ceefe0eb - md5: 6432cb5d4ac0046c3ac0a8a0f95842f9 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 567578 - timestamp: 1742433379869 + size: 601375 + timestamp: 1764777111296 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda sha256: 9485ba49e8f47d2b597dd399e88f4802e100851b27c21d7525625b0b4025a5d9 md5: ab136e4c34e97f34fb621d2592a393d8 From c7af71ab95f0d38663e605137909da9c18e3fb3e Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 17:32:23 -0500 Subject: [PATCH 48/60] Try to align Rust version with pyodide recipes --- pixi.lock | 90 +++++++++++++++++++++++++------------------------- pyproject.toml | 6 ++-- 2 files changed, 48 insertions(+), 48 deletions(-) diff --git a/pixi.lock b/pixi.lock index b9963681dd..96a4476c48 100644 --- a/pixi.lock +++ b/pixi.lock @@ -105,10 +105,10 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py313h07c4f96_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py313h07c4f96_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.91.0-h53717f1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.91.0-h2c6d0dc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda @@ -216,10 +216,10 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py313h6535dbc_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py313h6535dbc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.91.0-h4ff7c5d_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.91.0-hf6ec828_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.86.0-h4ff7c5d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.86.0-hf6ec828_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda @@ -2120,79 +2120,79 @@ packages: - pkg:pypi/ruamel-yaml-clib?source=hash-mapping size: 116501 timestamp: 1760564812152 -- conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.91.0-h53717f1_0.conda - sha256: e28695b4b100630fc41f6f5f4a345a652faea5921f3a264f085abf1ce57e18c0 - md5: 8cd76142f2bd3c5d9271282bbc795ba7 +- conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda + sha256: fa3b6757df927a24c3006bc5bffbac5b0c9a54b9755c08847f8a832ec1b79300 + md5: 98eab8148e1447e79f9e03492d04e291 depends: - __glibc >=2.17,<3.0.a0 - gcc_impl_linux-64 - - libgcc >=14 + - libgcc >=13 - libzlib >=1.3.1,<2.0a0 - - rust-std-x86_64-unknown-linux-gnu 1.91.0 h2c6d0dc_0 + - rust-std-x86_64-unknown-linux-gnu 1.86.0 h2c6d0dc_0 - sysroot_linux-64 >=2.17 license: MIT license_family: MIT purls: [] - size: 233367042 - timestamp: 1762437215143 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.91.0-h4ff7c5d_0.conda - sha256: e4409d457bf8e35977137a8ed10d97e1e3cf4b144c4ddbdd7ca5ca8c3f8b75a9 - md5: 412771062ed3a4768fabf2c722121f3f + size: 218638108 + timestamp: 1743697775334 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.86.0-h4ff7c5d_0.conda + sha256: 84eed612b108a2ac5db2eb76c5f2cd596fec8e21a3cb1eb478080d74a39fab13 + md5: 05c1a701cdb550b46e0526c2453b7337 depends: - - rust-std-aarch64-apple-darwin 1.91.0 hf6ec828_0 + - rust-std-aarch64-apple-darwin 1.86.0 hf6ec828_0 license: MIT license_family: MIT purls: [] - size: 240624653 - timestamp: 1762437162283 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.91.0-unix_0.conda - sha256: 101be935423bf3465736ae2a0d7d70727f31887ed79dd85fc70d90d8b96ac3ff - md5: ad5cf9189283a23c389848a458e82d68 + size: 224722205 + timestamp: 1743697077568 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda + sha256: 73cc7c49ef8088fc5186f6aee48166ca71c7dc527997a592f5b76a815f4bda88 + md5: 9c2af1ca0493191466b300691edc2145 depends: - __unix constrains: - - rust >=1.91.0,<1.91.1.0a0 + - rust >=1.86.0,<1.86.1.0a0 license: MIT license_family: MIT purls: [] - size: 4132270 - timestamp: 1762436613257 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.91.0-hf6ec828_0.conda - sha256: ef4924db46910c48c83ac3c18a8e6b01625a3c51205450911c7987c52eee4373 - md5: 9c77bee3cfdf2f715281ddce5359838f + size: 3568928 + timestamp: 1743696829470 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.86.0-hf6ec828_0.conda + sha256: 13ece700416fd30628019ee589b8de01a66991c2ff583e876057309cd4a0b59a + md5: e1a76ff63763cf04e06eca94978b9dd0 depends: - __unix constrains: - - rust >=1.91.0,<1.91.1.0a0 + - rust >=1.86.0,<1.86.1.0a0 license: MIT license_family: MIT purls: [] - size: 34788424 - timestamp: 1762436839115 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.91.0-unix_0.conda - sha256: 3fa1484671d3859d342548f93fdca1fd2337455494e4d7bd0ad352bf4b495d40 - md5: 735380990a3a6a59923428d36670b434 + size: 32999893 + timestamp: 1743696811586 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda + sha256: c5372b6d23b8826d275e6e09f73a9ea1f7a2e77c3c9fe487f166879c5269e44a + md5: a618a92c573bcf85c9c357f73e35d95e depends: - __unix constrains: - - rust >=1.91.0,<1.91.1.0a0 + - rust >=1.86.0,<1.86.1.0a0 license: MIT license_family: MIT purls: [] - size: 26712606 - timestamp: 1762436895985 -- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.91.0-h2c6d0dc_0.conda - sha256: 8777d4b65e74d05a60e737ccc6c3127cacae3e08426fe6cb48a17fa88b028b9b - md5: 2e30a8da5860a3ab9e794a984067ba45 + size: 25522077 + timestamp: 1743697288036 +- conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda + sha256: 8c1c68b7a8ce9657fea7d266607c21c9a00a382c346348a232e539c8a3266e84 + md5: 2fcc4c775a50bd2ce3ccb8dc56e4fb47 depends: - __unix constrains: - - rust >=1.91.0,<1.91.1.0a0 + - rust >=1.86.0,<1.86.1.0a0 license: MIT license_family: MIT purls: [] - size: 39154444 - timestamp: 1762437071320 + size: 37636509 + timestamp: 1743697574868 - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda sha256: 1d6534df8e7924d9087bd388fbac5bd868c5bf8971c36885f9f016da0657d22b md5: 83ea3a2ddb7a75c1b09cea582aa4f106 diff --git a/pyproject.toml b/pyproject.toml index acc0bfdbcf..431efaa492 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -167,9 +167,9 @@ pip="==25.3" pyodide-build = "==0.30.9" emscripten = "==4.0.9" nodejs = ">=25.2.1,<25.3" -rust = "==1.91" -rust-std-wasm32-unknown-emscripten = "==1.91" -rust-src = "==1.91" +rust = "==1.86" +rust-std-wasm32-unknown-emscripten = "==1.86" +rust-src = "==1.86" [tool.pixi.tasks.install_xbuildenv] cmd = ["pyodide", "xbuildenv", "install", "0.29.0"] From b3f4d2a67d85c9047aada914f54d26636d241453 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 17:59:13 -0500 Subject: [PATCH 49/60] Revert to Pyodide 0.27.7 with emscripten 3.1.58 --- pixi.lock | 887 ++++++++++++++++++++++++------------------------- pyproject.toml | 6 +- 2 files changed, 437 insertions(+), 456 deletions(-) diff --git a/pixi.lock b/pixi.lock index 96a4476c48..20fca01ebf 100644 --- a/pixi.lock +++ b/pixi.lock @@ -14,10 +14,10 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.2.0-py313h18e8e13_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.2.0-py312h90b7ffd_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-117-h59595ed_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/binutils_impl_linux-64-2.45-default_hfdba357_104.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py313hf159716_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py312hdb49522_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.6-hb03c661_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda @@ -25,15 +25,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21-21.1.7-default_h99862b1_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21.1.7-default_h36abe19_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-21.1.7-default_h363a0c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-19-19.1.7-default_h99862b1_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clang-19.1.7-default_h36abe19_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-19.1.7-default_h363a0c9_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt21-21.1.7-hb700be7_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_linux-64-21.1.7-hffcefe0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-4.0.9-ha4b6fd6_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-3.1.58-hb700be7_5.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-3.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/gcc_impl_linux-64-15.2.0-hc5723f1_16.conda @@ -53,7 +51,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.0-hb03c661_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.0-hb03c661_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.7-default_h99862b1_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.7-default_h99862b1_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.7.3-hecca717_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.5.2-h9ec8514_0.conda @@ -62,10 +60,11 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.7-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.7-hf7376ad_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.conda @@ -73,42 +72,43 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-h5347b49_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libuv-1.51.0-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lld-21.1.7-hef48ded_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.7-h4922eb0_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21-21.1.7-h3b15d91_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21.1.7-hb700be7_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lld-19.1.7-hef48ded_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-19-19.1.7-h3b15d91_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-19.1.7-hb700be7_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.5-h2d0b736_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/nodejs-25.2.1-he2c55a7_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py313h843e2db_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py312h868fb18_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.9-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.4.0-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.2-hf636f53_101_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py313h07c4f96_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py313h07c4f96_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py312h4c3975b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py312h4c3975b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-x86_64-unknown-linux-gnu-1.86.0-h2c6d0dc_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sysroot_linux-64-2.28-h4ee821c_9.conda @@ -125,17 +125,20 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda - - pypi: https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/b6/23/2a1b231b8ff672b4c450dac27164a8b2ca7d9b7144f9c02d2396518352eb/numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl osx-arm64: - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/auditwheel-emscripten-0.2.0-pyhac95a24_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py313hf42fe89_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py312h84d6f5f_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/binaryen-117-hebf3989_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py313hde1f3bb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-hd037594_8.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.6-hc919400_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda @@ -143,15 +146,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/cached_property-1.5.2-pyha770c72_1.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21-21.1.7-default_h489deba_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21.1.7-default_hf9bcbb7_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-21.1.7-default_h36137df_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19-19.1.7-default_h73dfc95_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19.1.7-default_hf9bcbb7_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-19.1.7-default_h36137df_5.conda - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt21-21.1.7-h855ad52_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_osx-arm64-21.1.7-h2514db7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/emscripten-4.0.9-hbafa43b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/emscripten-3.1.58-ha7d2532_5.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-3.20.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda @@ -163,67 +164,63 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-956.6-llvm21_1_h5d6df6c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm21_1_hde6573c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/leb128-1.0.8-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20250512.1-cxx17_hd41c47c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.2.0-hc919400_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.2.0-hc919400_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.2.0-hc919400_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp21.1-21.1.7-default_h73dfc95_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_h73dfc95_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.7-hf598326_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-21.1.7-h6dc3340_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-21.1.7-h707e725_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-19.1.7-h6dc3340_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-19.1.7-h707e725_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.7.3-haf25636_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.5.2-he5f378a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-h23cfdf5_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm21-21.1.7-h8e0c9ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm19-19.1.7-h8e0c9ce_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-devel-5.8.1-h39f12f2_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.67.0-hc438710_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h9a5124b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libuv-1.51.0-h6caf38d_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h0ff4647_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h9329255_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lld-21.1.7-ha4b1419_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.7-h4a912ad_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21-21.1.7-h91fd4e7_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21.1.7-h855ad52_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lld-19.1.7-ha4b1419_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19-19.1.7-h91fd4e7_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19.1.7-h855ad52_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.5-h5e97a16_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nodejs-25.2.1-h5230ea7_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.0-h5503f6c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py313h2c089d5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-build-0.30.9-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-cli-0.4.0-pyhac95a24_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyodide-lock-0.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.2-h81fe080_101_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/resolvelib-1.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py313h6535dbc_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py313h6535dbc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py312h4409184_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py312h4409184_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rust-1.86.0-h4ff7c5d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-src-1.86.0-unix_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-aarch64-apple-darwin-1.86.0-hf6ec828_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rust-std-wasm32-unknown-emscripten-1.86.0-unix_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-h892fb3f_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.20.0-pyhefaf540_1.conda @@ -237,10 +234,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.8.1-h9a6d368_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-gpl-tools-5.8.1-h9a6d368_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-tools-5.8.1-h39f12f2_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.1-h8359307_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - - pypi: https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl + - pypi: https://files.pythonhosted.org/packages/c5/65/df0db6c097892c9380851ab9e44b52d4f7ba576b833996e0080181c0c439/numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 @@ -310,34 +310,34 @@ packages: - pkg:pypi/auditwheel-emscripten?source=hash-mapping size: 36799 timestamp: 1748543354122 -- conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.2.0-py313h18e8e13_0.conda - sha256: dac72e2f4f64d8d7eccd424dd02d90c2c7229d6d3e0fa4a819ab41e6c7d30351 - md5: ab79cf30dea6ef4d1ab2623c5ac5601b +- conda: https://conda.anaconda.org/conda-forge/linux-64/backports.zstd-1.2.0-py312h90b7ffd_0.conda + sha256: c0e375fd6a67a39b3d855d1cb53c2017faf436e745a780ca2bbb527f4cac25fd + md5: 9fc7e65938c0e4b2658631b8bfd380e8 depends: - python - libgcc >=14 - __glibc >=2.17,<3.0.a0 + - python_abi 3.12.* *_cp312 - zstd >=1.5.7,<1.6.0a0 - - python_abi 3.13.* *_cp313 license: BSD-3-Clause AND MIT AND EPL-2.0 purls: - pkg:pypi/backports-zstd?source=hash-mapping - size: 240935 - timestamp: 1765057668668 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py313hf42fe89_0.conda - sha256: 7b0ac5df8d6cbcd5a9c20421ac984369c6204b891a4bb2e66c1754416c2115fc - md5: 1d0e9ba81b540cd787ef87e914ef4826 + size: 238087 + timestamp: 1765057663263 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.2.0-py312h84d6f5f_0.conda + sha256: 833370729199ef55f3f9efd024e28bba87fcd8b5c397d8afecefde63851e6997 + md5: c0ca697637ef6cf0ac768a50964e4af6 depends: - python - - python 3.13.* *_cp313 - __osx >=11.0 - - python_abi 3.13.* *_cp313 + - python 3.12.* *_cpython + - python_abi 3.12.* *_cp312 - zstd >=1.5.7,<1.6.0a0 license: BSD-3-Clause AND MIT AND EPL-2.0 purls: - pkg:pypi/backports-zstd?source=hash-mapping - size: 244691 - timestamp: 1765057712738 + size: 241337 + timestamp: 1765057702057 - conda: https://conda.anaconda.org/conda-forge/linux-64/binaryen-117-h59595ed_0.conda sha256: f6d7f876c514d2d138fd8b06e485b042598cf3dcda40a8a346252bb7e1adf8d7 md5: 58aea5eaef8cb663104654734d432ba3 @@ -371,40 +371,40 @@ packages: purls: [] size: 3747046 timestamp: 1764007847963 -- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py313hf159716_1.conda - sha256: dadec2879492adede0a9af0191203f9b023f788c18efd45ecac676d424c458ae - md5: 6c4d3597cf43f3439a51b2b13e29a4ba +- conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-python-1.2.0-py312hdb49522_1.conda + sha256: 49df13a1bb5e388ca0e4e87022260f9501ed4192656d23dc9d9a1b4bf3787918 + md5: 64088dffd7413a2dd557ce837b4cbbdb depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 constrains: - libbrotlicommon 1.2.0 hb03c661_1 license: MIT license_family: MIT purls: - - pkg:pypi/brotli?source=hash-mapping - size: 367721 - timestamp: 1764017371123 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py313hde1f3bb_1.conda - sha256: 2e21dccccd68bedd483300f9ab87a425645f6776e6e578e10e0dd98c946e1be9 - md5: b03732afa9f4f54634d94eb920dfb308 + - pkg:pypi/brotli?source=compressed-mapping + size: 368300 + timestamp: 1764017300621 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda + sha256: 6178775a86579d5e8eec6a7ab316c24f1355f6c6ccbe84bb341f342f1eda2440 + md5: 311fcf3f6a8c4eb70f912798035edd35 depends: - __osx >=11.0 - libcxx >=19 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 constrains: - libbrotlicommon 1.2.0 hc919400_1 license: MIT license_family: MIT purls: - pkg:pypi/brotli?source=hash-mapping - size: 359568 - timestamp: 1764018359470 + size: 359503 + timestamp: 1764018572368 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 md5: 51a19bba1b8ebfb60df25cde030b7ebc @@ -499,84 +499,78 @@ packages: - pkg:pypi/charset-normalizer?source=hash-mapping size: 50965 timestamp: 1760437331772 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21.1.7-default_h36abe19_1.conda - sha256: 456d8bb50746651eb07c235f7274374a0dd1ce71ce9fcc921fa88dbaf48d19ab - md5: 124799a73e470abb22df2fc184780235 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-19.1.7-default_h36abe19_5.conda + sha256: 04ea571050e512ba11eb03419371c436dd0a01fae20732358c1c9be16702f3f7 + md5: f76ab771361df7a1ccbd6b7e00c46a77 depends: - binutils_impl_linux-64 - - clang-21 21.1.7 default_h99862b1_1 + - clang-19 19.1.7 default_h99862b1_5 - libgcc-devel_linux-64 - - llvm-openmp >=21.1.7 - sysroot_linux-64 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 26977 - timestamp: 1764816560104 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21.1.7-default_hf9bcbb7_1.conda - sha256: f7c08be0e20951a507f495656df7a7def845a74f004c9ef61698b313d9159775 - md5: d80343c595b8b886aa728a2cb1297f8e + size: 24253 + timestamp: 1759437580572 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19.1.7-default_hf9bcbb7_5.conda + sha256: 6e9cb7e80a41dbbfd95e86d87c8e5dafc3171aadda16ca33a1e2136748267318 + md5: 6773a2b7d7d1b0a8d0e0f3bf4e928936 depends: - - clang-21 21.1.7 default_h489deba_1 - - ld64 - - ld64_osx-arm64 * llvm21_1_* - - llvm-openmp >=21.1.7 + - clang-19 19.1.7 default_h73dfc95_5 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 27312 - timestamp: 1764812156188 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-21-21.1.7-default_h99862b1_1.conda - sha256: e7b19bcfa14019245a284d5d4c1375d30fab520be9ab93d912b551b6f1912cb7 - md5: 4c6ee33850a156ec3390930a924b28d0 + size: 24502 + timestamp: 1759435412103 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clang-19-19.1.7-default_h99862b1_5.conda + sha256: 8efe828b5b75c91c54e4bd2cd0d1a1ea85a173ed34b22be24f99b4ede7ebaf19 + md5: 175bfa32809e9bd69f4eb8af86655875 depends: - __glibc >=2.17,<3.0.a0 - - compiler-rt21 21.1.7.* - - libclang-cpp21.1 21.1.7 default_h99862b1_1 + - libclang-cpp19.1 19.1.7 default_h99862b1_5 - libgcc >=14 - - libllvm21 >=21.1.7,<21.2.0a0 + - libllvm19 >=19.1.7,<19.2.0a0 - libstdcxx >=14 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 831340 - timestamp: 1764816470424 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-21-21.1.7-default_h489deba_1.conda - sha256: 3e889cfc23e290c55d5183d99cd802c41885e6f4242b6e3aa5e45cc3d0036e27 - md5: 0ba3e611abc3287c109fb003e7eb5b4c + size: 776356 + timestamp: 1759437534972 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clang-19-19.1.7-default_h73dfc95_5.conda + sha256: f1c8f4e8735918aacd7cab058fff389fc639d4537221753f0e9b44e120892f9a + md5: 561b822bdb2c1bb41e16e59a090f1e36 depends: - __osx >=11.0 - - compiler-rt21 21.1.7.* - - libclang-cpp21.1 21.1.7 default_h73dfc95_1 - - libcxx >=21.1.7 - - libllvm21 >=21.1.7,<21.2.0a0 + - libclang-cpp19.1 19.1.7 default_h73dfc95_5 + - libcxx >=19.1.7 + - libllvm19 >=19.1.7,<19.2.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 819071 - timestamp: 1764812034052 -- conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-21.1.7-default_h363a0c9_1.conda - sha256: 8b7d7067c17b780dc898b4dcae0b21f11388569656e446aab7cbe1f993b34c9e - md5: 6122bf75594bde0e8cb9d90718bd8353 + size: 763853 + timestamp: 1759435247449 +- conda: https://conda.anaconda.org/conda-forge/linux-64/clangxx-19.1.7-default_h363a0c9_5.conda + sha256: a1626180195a38173aaa13ac8f7b7b9ca4d33bae703f61ca0dda09e923a3ed5d + md5: 9ca8e305d7d3106f4a6d1e22a303abdc depends: - - clang 21.1.7 default_h36abe19_1 + - clang 19.1.7 default_h36abe19_5 - libstdcxx-devel_linux-64 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 27065 - timestamp: 1764816580945 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-21.1.7-default_h36137df_1.conda - sha256: 2b7181a74fe1068b1104fb861c2641f5f84f7dd758c01bd7e74d0fcbe7add01d - md5: fb3fed080f59e309556822d3663278a7 + size: 24362 + timestamp: 1759437591626 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/clangxx-19.1.7-default_h36137df_5.conda + sha256: f8f94321aee9ad83cb1cdf90660885fccb482c34c82ba84c2c167d452376834f + md5: c11a3a5a0cdb74d8ce58c6eac8d1f662 depends: - - clang 21.1.7 default_hf9bcbb7_1 - - libcxx-devel 21.1.* + - clang 19.1.7 default_hf9bcbb7_5 + - libcxx-devel 19.1.* license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 27384 - timestamp: 1764812174045 + size: 24587 + timestamp: 1759435427954 - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.3.1-pyh8f84b5b_1.conda sha256: 38cfe1ee75b21a8361c8824f5544c3866f303af1762693a178266d7f198e8715 md5: ea8a6c3256897cc31263de9f455e25d9 @@ -601,50 +595,6 @@ packages: - pkg:pypi/colorama?source=hash-mapping size: 27011 timestamp: 1733218222191 -- conda: https://conda.anaconda.org/conda-forge/linux-64/compiler-rt21-21.1.7-hb700be7_0.conda - sha256: 40d94a16674b7ff35d765fa4d2572c5061d6d26c87fe0636efa4a4e219819745 - md5: 1feb50fc3c348b9c2b1228c9e8591ab9 - depends: - - __glibc >=2.17,<3.0.a0 - - compiler-rt21_linux-64 21.1.7.* - - libgcc >=14 - - libstdcxx >=14 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 114042 - timestamp: 1764722702812 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/compiler-rt21-21.1.7-h855ad52_0.conda - sha256: 9202f987138486183798f06b73dc9f25cab7dce80d50360d76ee613b6b2c53c6 - md5: 1d6a36d81ee0e293443bd5ccefc88366 - depends: - - __osx >=11.0 - - compiler-rt21_osx-arm64 21.1.7.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 98348 - timestamp: 1764723933513 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_linux-64-21.1.7-hffcefe0_0.conda - sha256: 055db902df4715261b123568f09af4311060f3810f340969064e0718e02d4966 - md5: 9b1c4f25cd8a99131fb19acd3b29e4f5 - constrains: - - compiler-rt >=9.0.1 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 47702465 - timestamp: 1764722602 -- conda: https://conda.anaconda.org/conda-forge/noarch/compiler-rt21_osx-arm64-21.1.7-h2514db7_0.conda - sha256: a27658929464454c4ba07e8ce6cf03f085acc84378e05d7f1ad833953eb5ca2f - md5: a0fb0846568b235bd52438d8cf88a03b - constrains: - - compiler-rt >=9.0.1 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 10728171 - timestamp: 1764723879940 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e md5: 003b8ba0a94e2f1e117d0bd46aebc901 @@ -656,40 +606,43 @@ packages: - pkg:pypi/distlib?source=hash-mapping size: 275642 timestamp: 1752823081585 -- conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-4.0.9-ha4b6fd6_0.conda - sha256: db0dde25270779131b0d7fe8ad25a6a6a3703fa8a725dbf78effa882c8cedd7c - md5: 838bd0957f06e777cbbd65a8cb0e39fc +- conda: https://conda.anaconda.org/conda-forge/linux-64/emscripten-3.1.58-hb700be7_5.conda + sha256: b9bcb432797c50a1a82d524201d827023dcc4450954825c12d9ffad4d1eec325 + md5: e3ba8f5f585f3baa3218ec3aefae8655 depends: - __glibc >=2.17,<3.0.a0 - binaryen >=117,<118.0a0 - - clang 21.* - - clangxx 21.* - - lld 21.* - - llvm-tools 21.* + - clang 19.* + - clangxx 19.* + - libgcc >=14 + - libstdcxx >=14 + - lld 19.* + - llvm-tools 19.* - nodejs >=20 - python * - zlib license: MIT OR NCSA OR MPL-2.0 purls: [] - size: 129824616 - timestamp: 1764067360445 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/emscripten-4.0.9-hbafa43b_0.conda - sha256: 65a1cf8eef27520bcee099b9822c778b8ac84ea137bc44c4eef0b72b8c27acfb - md5: ac697a70b10310fe8569a01ad4051c17 + size: 118085101 + timestamp: 1763444353777 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/emscripten-3.1.58-ha7d2532_5.conda + sha256: 8a79ac19e79ad204fb879a18c21130ef9de203c3f2192b186511a2c8246bb45b + md5: 7606e93c699ca64e92755a9e93c75bcb depends: - __osx >=11.0 - binaryen >=117,<118.0a0 - - clang 21.* - - clangxx 21.* - - lld 21.* - - llvm-tools 21.* + - clang 19.* + - clangxx 19.* + - libcxx >=19 + - lld 19.* + - llvm-tools 19.* - nodejs >=20 - python * - zlib license: MIT OR NCSA OR MPL-2.0 purls: [] - size: 112522409 - timestamp: 1764067709702 + size: 102236039 + timestamp: 1763444361109 - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 md5: 8e662bd460bda79b1ea39194e3c4c9ab @@ -864,39 +817,6 @@ packages: purls: [] size: 1278712 timestamp: 1765578681495 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64-956.6-llvm21_1_h5d6df6c_1.conda - sha256: cfb3612bde5233ef62b73b507e5fe2efb069d077f1d6ca50ec44aef40078b520 - md5: 4b659bb7a1a49f9aacffb344712cbe06 - depends: - - ld64_osx-arm64 956.6 llvm21_1_hde6573c_1 - - libllvm21 >=21.1.6,<21.2.0a0 - constrains: - - cctools 1030.6.3.* - - cctools_osx-arm64 1030.6.3.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 21152 - timestamp: 1764351682250 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ld64_osx-arm64-956.6-llvm21_1_hde6573c_1.conda - sha256: f6628fd72a9188c16c13059484b5b0b4d6c4ced7703baf7ff2700d43078523e7 - md5: 228ec02f6e40967703d7254672f24813 - depends: - - __osx >=11.0 - - libcxx - - libllvm21 >=21.1.6,<21.2.0a0 - - sigtool - - tapi >=1600.0.11.8,<1601.0a0 - constrains: - - cctools 1030.6.3.* - - cctools_impl_osx-arm64 1030.6.3.* - - ld64 956.6.* - - clang 21.1.* - license: APSL-2.0 - license_family: Other - purls: [] - size: 1037660 - timestamp: 1764351616909 - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda sha256: 9e191baf2426a19507f1d0a17be0fdb7aa155cdf0f61d5a09c808e0a69464312 md5: a6abd2796fc332536735f68ba23f7901 @@ -1017,31 +937,31 @@ packages: purls: [] size: 290754 timestamp: 1764018009077 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.7-default_h99862b1_1.conda - sha256: ce8b8464b1230dd93d2b5a2646d2c80639774c9e781097f041581c07b83d4795 - md5: d3042ebdaacc689fd1daa701885fc96c +- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp19.1-19.1.7-default_h99862b1_5.conda + sha256: 1aeacc24c49355992968452ab209fcf91a638ce550290d6528f0d93c455873d5 + md5: 68285505efe44eded837be21deec1614 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - libllvm21 >=21.1.7,<21.2.0a0 + - libllvm19 >=19.1.7,<19.2.0a0 - libstdcxx >=14 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 21055642 - timestamp: 1764816319608 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp21.1-21.1.7-default_h73dfc95_1.conda - sha256: d4358e346720afaa04b63e24f64bf54495b778df33b3d42297b080e5c9f17a14 - md5: 9f3b1d61d285890914769cc3e6153092 + size: 20849192 + timestamp: 1759437442452 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_h73dfc95_5.conda + sha256: 6e62da7915a4a8b8bcd9a646e23c8a2180015d85a606c2a64e2385e6d0618949 + md5: 0b1110de04b80ea62e93fef6f8056fbb depends: - __osx >=11.0 - - libcxx >=21.1.7 - - libllvm21 >=21.1.7,<21.2.0a0 + - libcxx >=19.1.7 + - libllvm19 >=19.1.7,<19.2.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 13682873 - timestamp: 1764811907305 + size: 14064272 + timestamp: 1759435091038 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.7-hf598326_0.conda sha256: 4bdbef0241b52e7a8552e8af7425f0b56d5621dd69df46c816546fefa17d77ab md5: 0de94f39727c31c0447e408c5a210a56 @@ -1052,29 +972,29 @@ packages: purls: [] size: 568715 timestamp: 1764676451068 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-21.1.7-h6dc3340_0.conda - sha256: 1ec451ef74a8849b34438b792d19813ce7c6711de0d5c453c62347a24037cefd - md5: dd6f02f49c21e59364f35cc59753d80a +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-devel-19.1.7-h6dc3340_2.conda + sha256: ec07ebaa226792f4e2bf0f5dba50325632a7474d5f04b951d8291be70af215da + md5: 9f7810b7c0a731dbc84d46d6005890ef depends: - - libcxx >=21.1.7 - - libcxx-headers >=21.1.7,<21.1.8.0a0 + - libcxx >=19.1.7 + - libcxx-headers >=19.1.7,<19.1.8.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 21809 - timestamp: 1764676497231 -- conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-21.1.7-h707e725_0.conda - sha256: 04cb0e488ab6be30e1db3218787d25f2d09f55ca798dc3878b69e3d162902dd9 - md5: dfa19db0a0d180e3c8a2a73c764d565c + size: 23000 + timestamp: 1764648270121 +- conda: https://conda.anaconda.org/conda-forge/noarch/libcxx-headers-19.1.7-h707e725_2.conda + sha256: 36485e6807e03a4f15a8018ec982457a9de0a1318b4b49a44c5da75849dbe24f + md5: de91b5ce46dc7968b6e311f9add055a2 depends: - __unix constrains: - - libcxx-devel 21.1.7 + - libcxx-devel 19.1.7 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 1130298 - timestamp: 1764676081621 + size: 830747 + timestamp: 1764647922410 - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-hd590300_2.conda sha256: 1cd6048169fa0395af74ed5d8f1716e22c19a81a8a36f934c110ca3ad4dd27b4 md5: 172bf1cd1ff8629f2b1179945ed45055 @@ -1202,37 +1122,37 @@ packages: purls: [] size: 750379 timestamp: 1754909073836 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.7-hf7376ad_0.conda - sha256: afe5c5cfc90dc8b5b394e21cf02188394e36766119ad5d78a1d8619d011bbfb1 - md5: 27dc1a582b442f24979f2a28641fe478 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm19-19.1.7-hf7376ad_2.conda + sha256: 8310e3bf47af086ef9d4434d69139c888e2c13b66d8815d6dc5e7c272a267538 + md5: 8131707c4e4fac60e6e7da4d532484a4 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 - libxml2 - - libxml2-16 >=2.14.6 + - libxml2-16 >=2.14.5 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 44320825 - timestamp: 1764711528746 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm21-21.1.7-h8e0c9ce_0.conda - sha256: c314555be004f72798c203552554596ac49aa9924ec492d41a0a687d45bf1d99 - md5: 3abc4690cf43342493e7bbb3ffeeecf3 + size: 41033274 + timestamp: 1757357153329 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm19-19.1.7-h8e0c9ce_2.conda + sha256: 46f8ff3d86438c0af1bebe0c18261ce5de9878d58b4fe399a3a125670e4f0af5 + md5: d1d9b233830f6631800acc1e081a9444 depends: - __osx >=11.0 - libcxx >=19 - libxml2 - - libxml2-16 >=2.14.6 + - libxml2-16 >=2.14.5 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 29397925 - timestamp: 1764710482321 + size: 26914852 + timestamp: 1757353228286 - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.1-hb9d3cd8_2.conda sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 md5: 1a580f7796c7bf6393fddb8bbbde58dc @@ -1256,27 +1176,27 @@ packages: purls: [] size: 92286 timestamp: 1749230283517 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda - sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee - md5: c7e925f37e3b40d893459e625f6a53f1 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-devel-5.8.1-hb9d3cd8_2.conda + sha256: 329e66330a8f9cbb6a8d5995005478188eb4ba8a6b6391affa849744f4968492 + md5: f61edadbb301530bd65a32646bd81552 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=13 - license: BSD-2-Clause - license_family: BSD + - liblzma 5.8.1 hb9d3cd8_2 + license: 0BSD purls: [] - size: 91183 - timestamp: 1748393666725 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h5505292_0.conda - sha256: 0a1875fc1642324ebd6c4ac864604f3f18f57fbcf558a8264f6ced028a3c75b2 - md5: 85ccccb47823dd9f7a99d2c7f530342f + size: 439868 + timestamp: 1749230061968 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-devel-5.8.1-h39f12f2_2.conda + sha256: 974804430e24f0b00f3a48b67ec10c9f5441c9bb3d82cc0af51ba45b8a75a241 + md5: 1201137f1a5ec9556032ffc04dcdde8d depends: - __osx >=11.0 - license: BSD-2-Clause - license_family: BSD + - liblzma 5.8.1 h39f12f2_2 + license: 0BSD purls: [] - size: 71829 - timestamp: 1748393749336 + size: 116244 + timestamp: 1749230297170 - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.67.0-had1ee68_0.conda sha256: a4a7dab8db4dc81c736e9a9b42bdfd97b087816e029e221380511960ac46c690 md5: b499ce4b026493a13774bcf0f4c33849 @@ -1310,6 +1230,17 @@ packages: purls: [] size: 575454 timestamp: 1756835746393 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libnsl-2.0.1-hb9d3cd8_1.conda + sha256: 927fe72b054277cde6cb82597d0fcf6baf127dcbce2e0a9d8925a68f1265eef5 + md5: d864d34357c3b65a4b731f78c0801dc4 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + license: LGPL-2.1-only + license_family: GPL + purls: [] + size: 33731 + timestamp: 1750274110928 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsanitizer-15.2.0-h90f66d4_16.conda sha256: 50d8082749e760454fb1489c2a47c6fa80cbf3893ec1c1a085747d46484ffd7f md5: 0841a98bda756af037eb07d36cacada5 @@ -1408,6 +1339,15 @@ packages: purls: [] size: 421195 timestamp: 1753948426421 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.36-hd590300_1.conda + sha256: 6ae68e0b86423ef188196fff6207ed0c8195dd84273cb5623b85aa08033a410c + md5: 5aa797f8787fe7a17d1b0821485b5adc + depends: + - libgcc-ng >=12 + license: LGPL-2.1-or-later + purls: [] + size: 100393 + timestamp: 1702724383534 - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda sha256: ec0735ae56c3549149eebd7dc22c0bed91fd50c02eaa77ff418613ddda190aa8 md5: e512be7dc1f84966d50959e900ca121f @@ -1497,130 +1437,104 @@ packages: purls: [] size: 46438 timestamp: 1727963202283 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lld-21.1.7-hef48ded_0.conda - sha256: c5d5f1257d65687759b180a721af493623568b9431d2d46efc8e405d3fb65404 - md5: 7bc3df8dd8818e4a31a20e9a0208248e +- conda: https://conda.anaconda.org/conda-forge/linux-64/lld-19.1.7-hef48ded_1.conda + sha256: 5fcdaa6c67a1a41ffc86a9ec6d6a5074fed6a071a0112a99f1a23f2c31c6ad02 + md5: 072d0e0da97861dce1a66045e468286b depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - libllvm21 >=21.1.7,<21.2.0a0 + - libllvm19 >=19.1.7,<19.2.0a0 - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - llvm ==21.1.7 + - llvm ==19.1.7 license: Apache-2.0 WITH LLVM-exception license_family: APACHE purls: [] - size: 11596333 - timestamp: 1764722363851 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lld-21.1.7-ha4b1419_0.conda - sha256: cb08a07ab39b7c6a94dbf1372314d0546dd6e278ce1e2e7483b2f63c7040a2df - md5: a8ef35ef9aaf32e75de7094187d87bd8 + size: 7106986 + timestamp: 1757394377244 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lld-19.1.7-ha4b1419_1.conda + sha256: fc220b6e7c5b2d157244d42a99987ba5368489d874d55721dd45332ec98691f0 + md5: 3f7d6019e5b2dcf1fb19a21da07080c3 depends: - __osx >=11.0 - libcxx >=19.1.7 - - libllvm21 >=21.1.7,<21.2.0a0 + - libllvm19 >=19.1.7,<19.2.0a0 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - llvm ==21.1.7 + - llvm ==19.1.7 license: Apache-2.0 WITH LLVM-exception license_family: APACHE purls: [] - size: 3016364 - timestamp: 1764723006462 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-openmp-21.1.7-h4922eb0_0.conda - sha256: 6579325669ba27344be66f319c316396f09d9f1a054178df257009591b7d7f43 - md5: ec29f865968a81e1961b3c2f2765eebb - depends: - - __glibc >=2.17,<3.0.a0 - constrains: - - intel-openmp <0.0a0 - - openmp 21.1.7|21.1.7.* - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 6115936 - timestamp: 1764721254857 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.7-h4a912ad_0.conda - sha256: 002695e79b0e4c2d117a8bd190ffd62ef3d74a4cae002afa580bd1f98f9560a3 - md5: 05d475f50ddcc2173a6beece9960c6cb - depends: - - __osx >=11.0 - constrains: - - openmp 21.1.7|21.1.7.* - - intel-openmp <0.0a0 - license: Apache-2.0 WITH LLVM-exception - license_family: APACHE - purls: [] - size: 286129 - timestamp: 1764721670250 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21.1.7-hb700be7_0.conda - sha256: 11bdef13a5e3b88aa7e69b3e28a30238cd3ca01f29fef36f7eef23053c87e720 - md5: 0db933d747c5fb74406329d694d120d8 + size: 4348536 + timestamp: 1757395078257 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-19.1.7-hb700be7_2.conda + sha256: 6ffcc46246c0f8c0a6cea64333674069838c34e58f4b8bfe33452ed431c6b3bd + md5: f477bd4a351e7158a3b0f342445a3a95 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - libllvm21 21.1.7 hf7376ad_0 + - libllvm19 19.1.7 hf7376ad_2 - libstdcxx >=14 - - llvm-tools-21 21.1.7 h3b15d91_0 + - llvm-tools-19 19.1.7 h3b15d91_2 constrains: - - llvmdev 21.1.7 - - llvm 21.1.7 - - clang-tools 21.1.7 - - clang 21.1.7 + - clang 19.1.7 + - clang-tools 19.1.7 + - llvmdev 19.1.7 + - llvm 19.1.7 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 88403 - timestamp: 1764711725273 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21.1.7-h855ad52_0.conda - sha256: 772fbc8b42ad495c28ea2bd6a0f487061434aa8af6c03bbad4c1912ebf4de365 - md5: a00e55b48b7ee286062b85c190e1dc80 + size: 87601 + timestamp: 1757357321202 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19.1.7-h855ad52_2.conda + sha256: 09750c33b5d694c494cad9eafda56c61a62622264173d760341b49fb001afe82 + md5: 3e3ac06efc5fdc1aa675ca30bf7d53df depends: - __osx >=11.0 - - libllvm21 21.1.7 h8e0c9ce_0 - - llvm-tools-21 21.1.7 h91fd4e7_0 + - libllvm19 19.1.7 h8e0c9ce_2 + - llvm-tools-19 19.1.7 h91fd4e7_2 constrains: - - clang 21.1.7 - - llvmdev 21.1.7 - - llvm 21.1.7 - - clang-tools 21.1.7 + - llvm 19.1.7 + - llvmdev 19.1.7 + - clang-tools 19.1.7 + - clang 19.1.7 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 88822 - timestamp: 1764710932573 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-21-21.1.7-h3b15d91_0.conda - sha256: b5931d1b7628f2832a98f9fc6336978e5519b3c57dbe3610f624ca4901f33238 - md5: 7f80fc8ff55ecf9028945301a8a8d21a + size: 88390 + timestamp: 1757353535760 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvm-tools-19-19.1.7-h3b15d91_2.conda + sha256: 8e432eb9fe310429dbfa6f99678c509d9e677de81de354f2ed89d5a0a75396de + md5: c1908ce1b43123bc068f7226927e1bff depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - libllvm21 21.1.7 hf7376ad_0 + - libllvm19 19.1.7 hf7376ad_2 - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 26562891 - timestamp: 1764711663874 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-21-21.1.7-h91fd4e7_0.conda - sha256: 611d0f787b3a837ad33df6b3b0fc804e8636547105ae9abea7098d0d2367d804 - md5: 665e987adbd92502f67ebff539591da5 + size: 23196756 + timestamp: 1757357268176 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-tools-19-19.1.7-h91fd4e7_2.conda + sha256: 73f9506f7c32a448071340e73a0e8461e349082d63ecc4849e3eb2d1efc357dd + md5: 8237b150fcd7baf65258eef9a0fc76ef depends: - __osx >=11.0 - libcxx >=19 - - libllvm21 21.1.7 h8e0c9ce_0 + - libllvm19 19.1.7 h8e0c9ce_2 - libzlib >=1.3.1,<2.0a0 - zstd >=1.5.7,<1.6.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 17925948 - timestamp: 1764710793972 + size: 16376095 + timestamp: 1757353442671 - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.0.0-pyhd8ed1ab_0.conda sha256: 7b1da4b5c40385791dbc3cc85ceea9fad5da680a27d5d3cb8bfaa185e304a89e md5: 5b5203189eb668f042ac2b0826244964 @@ -1711,15 +1625,15 @@ packages: purls: [] size: 16202237 timestamp: 1765482731453 -- pypi: https://files.pythonhosted.org/packages/79/fb/f505c95ceddd7027347b067689db71ca80bd5ecc926f913f1a23e65cf09b/numpy-2.3.5-cp313-cp313-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/b6/23/2a1b231b8ff672b4c450dac27164a8b2ca7d9b7144f9c02d2396518352eb/numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl name: numpy version: 2.3.5 - sha256: aa5bc7c5d59d831d9773d1170acac7893ce3a5e130540605770ade83280e7188 + sha256: 0d8163f43acde9a73c2a33605353a4f1bc4798745a8b1d73183b28e5b435ae28 requires_python: '>=3.11' -- pypi: https://files.pythonhosted.org/packages/f5/10/ca162f45a102738958dcec8023062dad0cbc17d1ab99d68c4e4a6c45fb2b/numpy-2.3.5-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/c5/65/df0db6c097892c9380851ab9e44b52d4f7ba576b833996e0080181c0c439/numpy-2.3.5-cp312-cp312-macosx_11_0_arm64.whl name: numpy version: 2.3.5 - sha256: 11e06aa0af8c0f05104d56450d6093ee639e15f24ecf62d417329d06e522e017 + sha256: ee3888d9ff7c14604052b2ca5535a30216aa0a58e948cdd3eeb8d3415f638769 requires_python: '>=3.11' - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.0-h26f9b46_0.conda sha256: a47271202f4518a484956968335b2521409c8173e123ab381e775c358c67fe6d @@ -1756,17 +1670,19 @@ packages: - pkg:pypi/packaging?source=hash-mapping size: 62477 timestamp: 1745345660407 -- conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda - sha256: 4d5e2faca810459724f11f78d19a0feee27a7be2b3fc5f7abbbec4c9fdcae93d - md5: bf47878473e5ab9fdb4115735230e191 +- conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh8b19718_0.conda + sha256: b67692da1c0084516ac1c9ada4d55eaf3c5891b54980f30f3f444541c2706f1e + md5: c55515ca43c6444d2572e0f0d93cb6b9 depends: - - python >=3.13.0a0 + - python >=3.10,<3.13.0a0 + - setuptools + - wheel license: MIT license_family: MIT purls: - pkg:pypi/pip?source=hash-mapping - size: 1177084 - timestamp: 1762776338614 + size: 1177534 + timestamp: 1762776258783 - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda sha256: 04c64fb78c520e5c396b6e07bc9082735a5cc28175dbe23138201d0a9441800b md5: 1bd2e65c8c7ef24f4639ae6e850dacc2 @@ -1796,40 +1712,40 @@ packages: - pkg:pypi/pydantic?source=hash-mapping size: 340482 timestamp: 1764434463101 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py313h843e2db_1.conda - sha256: b15568ddc03bd33ea41610e5df951be4e245cd61957cbf8c2cfd12557f3d53b5 - md5: f27c39a1906771bbe56cd26a76bf0b8b +- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.41.5-py312h868fb18_1.conda + sha256: 07f899d035e06598682d3904d55f1529fac71b15e12b61d44d6a5fbf8521b0fe + md5: 56a776330a7d21db63a7c9d6c3711a04 depends: - python - typing-extensions >=4.6.0,!=4.7.0 - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 + - python_abi 3.12.* *_cp312 constrains: - __glibc >=2.17 license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-core?source=hash-mapping - size: 1940186 - timestamp: 1762989000579 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py313h2c089d5_1.conda - sha256: 08398c0599084837ba89d69db00b3d0973dc86d6519957dc6c1b480e2571451a - md5: eaeed566f6d88c0a08d73700b34be4a2 + - pkg:pypi/pydantic-core?source=compressed-mapping + size: 1935221 + timestamp: 1762989004359 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda + sha256: 048da0a49d644dba126905a1abcea0aee75efe88b5d621b9007b569dd753cfbc + md5: 88a76b4c912b6127d64298e3d8db980c depends: - python - typing-extensions >=4.6.0,!=4.7.0 - - python 3.13.* *_cp313 + - python 3.12.* *_cpython - __osx >=11.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.12.* *_cp312 constrains: - __osx >=11.0 license: MIT license_family: MIT purls: - pkg:pypi/pydantic-core?source=hash-mapping - size: 1778337 - timestamp: 1762989007829 + size: 1769018 + timestamp: 1762989029329 - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda sha256: 5577623b9f6685ece2697c6eb7511b4c9ac5fb607c9babc2646c811b428fd46a md5: 6b6ece66ebcae2d5f326c77ef2c5a066 @@ -1919,57 +1835,55 @@ packages: - pkg:pypi/pysocks?source=hash-mapping size: 21085 timestamp: 1733217331982 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.2-hf636f53_101_cp313.conda - build_number: 101 - sha256: cc1984ee54261cee6a2db75c65fc7d2967bc8c6e912d332614df15244d7730ef - md5: a7902a3611fe773da3921cbbf7bc2c5c +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.12.7-hc5c86c4_0_cpython.conda + sha256: 674be31ff152d9f0e0fe16959a45e3803a730fc4f54d87df6a9ac4e6a698c41d + md5: 0515111a9cdf69f83278f7c197db9807 depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.6.4,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - libgcc >=13 - - liblzma >=5.6.4,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.48.0,<4.0a0 + - libnsl >=2.0.1,<2.1.0a0 + - libsqlite >=3.46.1,<4.0a0 - libuuid >=2.38.1,<3.0a0 + - libxcrypt >=4.4.36 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.4.1,<4.0a0 - - python_abi 3.13.* *_cp313 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 33233150 - timestamp: 1739803603242 - python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.13.2-h81fe080_101_cp313.conda - build_number: 101 - sha256: 6239a14c39a9902d6b617d57efe3eefbab23cf30cdc67122fdab81d04da193cd - md5: 71a76067a1cac1a2f03b43a08646a63e + size: 31574780 + timestamp: 1728059777603 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.7-h739c21a_0_cpython.conda + sha256: 45d7ca2074aa92594bd2f91a9003b338cc1df8a46b9492b7fc8167110783c3ef + md5: e0d82e57ebb456077565e6d82cd4a323 depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.6.4,<3.0a0 + - libexpat >=2.6.3,<3.0a0 - libffi >=3.4,<4.0a0 - - liblzma >=5.6.4,<6.0a0 - - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.48.0,<4.0a0 + - libsqlite >=3.46.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - - openssl >=3.4.1,<4.0a0 - - python_abi 3.13.* *_cp313 + - openssl >=3.3.2,<4.0a0 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata + - xz >=5.2.6,<6.0a0 + constrains: + - python_abi 3.12.* *_cp312 license: Python-2.0 purls: [] - size: 11682568 - timestamp: 1739801342527 - python_site_packages_path: lib/python3.13/site-packages + size: 12975439 + timestamp: 1728057819519 - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.2.2.post1-pyhff2d567_1.conda sha256: da40ab7413029351852268ca479e5cc642011c72317bd02dba28235c5c5ec955 md5: 0903621fe8a9f37286596529528f4f74 @@ -1988,17 +1902,17 @@ packages: - pkg:pypi/build?source=hash-mapping size: 25108 timestamp: 1733230700715 -- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda +- conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda build_number: 8 - sha256: 210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7 - md5: 94305520c52a4aa3f6c2b1ff6008d9f8 + sha256: 80677180dd3c22deb7426ca89d6203f1c7f1f256f2d5a94dc210f6e758229809 + md5: c3efd25ac4d74b1584d2f7a57195ddf1 constrains: - - python 3.13.* *_cp313 + - python 3.12.* *_cpython license: BSD-3-Clause license_family: BSD purls: [] - size: 7002 - timestamp: 1752805902938 + size: 6958 + timestamp: 1752805918820 - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c md5: 283b96675859b20a825f8fa30f311446 @@ -2062,64 +1976,64 @@ packages: - pkg:pypi/rich?source=hash-mapping size: 200840 timestamp: 1760026188268 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py313h07c4f96_0.conda - sha256: fa1667f1c61610191960d0f6c33a55f3afacfd9c43ff4c9b1507ba164eb3f28f - md5: 88717b72e54ee6ef081c9ecfafd728c8 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml-0.18.16-py312h4c3975b_0.conda + sha256: c792402cccee6a6dc01ad1451621e3ca002d72208ee28a33dc8594a19e3f7504 + md5: 04c3560d6229bdfc73fc97586d8fe1a6 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT purls: - pkg:pypi/ruamel-yaml?source=hash-mapping - size: 272227 - timestamp: 1761160797563 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py313h6535dbc_0.conda - sha256: ddd6eaaa278772b760dd3e3176b70db71b26a8e8f1f27d7619ec2a638bf872af - md5: d9915dc9a5b3ce03810bd0024b62afac + size: 269849 + timestamp: 1761160693733 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml-0.18.16-py312h4409184_0.conda + sha256: a7d944ed52656ff0ae85199bb1fe152298ab9613daca4d83653fc12a3c9f2ebf + md5: 1672b251b3ef1ea8d1c36450d5a5cd54 depends: - __osx >=11.0 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 - ruamel.yaml.clib >=0.1.2 license: MIT license_family: MIT purls: - pkg:pypi/ruamel-yaml?source=hash-mapping - size: 272094 - timestamp: 1761160998422 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py313h07c4f96_0.conda - sha256: 1d5607b463001ed480aea45b7f3c1035151c0c44a3bf4f3539a00fe097c5e30a - md5: 3cff82488dd3935fdb3ba37911387fec + size: 270195 + timestamp: 1761161065046 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.14-py312h4c3975b_0.conda + sha256: 4c3c9311590f1ca072ac956aa2df712600a385ffc52e90982ebfc84da8db31c3 + md5: b59f191f3cd25057889dbe91e1387231 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - pkg:pypi/ruamel-yaml-clib?source=hash-mapping - size: 140261 - timestamp: 1760564339468 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py313h6535dbc_0.conda - sha256: ade7d57e7c4b92bc4b003a59e9a40d8d241d113fc8e4c051ecb7dd689d9360f4 - md5: 844260acfdd85139049b9c806862e15c + size: 138966 + timestamp: 1760564285617 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.14-py312h4409184_0.conda + sha256: 6e3b59e64c26f62562834752476b7308e72b9aada1a85ee98d3b57c4f7ab9139 + md5: 701d9a8bcd57c5221df9b2384a6aef93 depends: - __osx >=11.0 - - python >=3.13,<3.14.0a0 - - python >=3.13,<3.14.0a0 *_cp313 - - python_abi 3.13.* *_cp313 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - pkg:pypi/ruamel-yaml-clib?source=hash-mapping - size: 116501 - timestamp: 1760564812152 + size: 116030 + timestamp: 1760564523506 - conda: https://conda.anaconda.org/conda-forge/linux-64/rust-1.86.0-h1a8d7c4_0.conda sha256: fa3b6757df927a24c3006bc5bffbac5b0c9a54b9755c08847f8a832ec1b79300 md5: 98eab8148e1447e79f9e03492d04e291 @@ -2193,6 +2107,17 @@ packages: purls: [] size: 37636509 timestamp: 1743697574868 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + sha256: 972560fcf9657058e3e1f97186cc94389144b46dbdf58c807ce62e83f977e863 + md5: 4de79c071274a53dcaf2a8c749d1499e + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/setuptools?source=hash-mapping + size: 748788 + timestamp: 1748804951958 - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda sha256: 1d6534df8e7924d9087bd388fbac5bd868c5bf8971c36885f9f016da0657d22b md5: 83ea3a2ddb7a75c1b09cea582aa4f106 @@ -2204,16 +2129,6 @@ packages: - pkg:pypi/shellingham?source=hash-mapping size: 15018 timestamp: 1762858315311 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/sigtool-0.1.3-h44b9a77_0.tar.bz2 - sha256: 70791ae00a3756830cb50451db55f63e2a42a2fa2a8f1bab1ebd36bbb7d55bff - md5: 4a2cac04f86a4540b8c9b8d8f597848f - depends: - - openssl >=3.0.0,<4.0a0 - license: MIT - license_family: MIT - purls: [] - size: 210264 - timestamp: 1643442231687 - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda sha256: dce518f45e24cd03f401cb0616917773159a210c19d601c5f2d4e0e5879d30ad md5: 03fe290994c5e4ec17293cfb6bdce520 @@ -2237,17 +2152,6 @@ packages: purls: [] size: 24008591 timestamp: 1765578833462 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tapi-1600.0.11.8-h997e182_0.conda - sha256: dcb678fa77f448fa981bf3783902afe09b8838436f3092e9ecaf6a718c87f642 - md5: 347261d575a245cb6111fb2cb5a79fc7 - depends: - - libcxx >=19.0.0.a0 - - __osx >=11.0 - - ncurses >=6.5,<7.0a0 - license: NCSA - purls: [] - size: 199699 - timestamp: 1762535277608 - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_ha0e22de_103.conda sha256: 1544760538a40bcd8ace2b1d8ebe3eb5807ac268641f8acdc18c69c5ebfeaf64 md5: 86bc20552bf46075e3d92b67f089172d @@ -2425,6 +2329,83 @@ packages: - pkg:pypi/wheel?source=hash-mapping size: 62931 timestamp: 1733130309598 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda + sha256: 802725371682ea06053971db5b4fb7fbbcaee9cb1804ec688f55e51d74660617 + md5: 68eae977d7d1196d32b636a026dc015d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_2 + - liblzma-devel 5.8.1 hb9d3cd8_2 + - xz-gpl-tools 5.8.1 hbcc6ac9_2 + - xz-tools 5.8.1 hb9d3cd8_2 + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + purls: [] + size: 23987 + timestamp: 1749230104359 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.8.1-h9a6d368_2.conda + sha256: afb747cf017b67cc31d54c6e6c4bd1b1e179fe487a3d23a856232ed7fd0b099b + md5: 39435c82e5a007ef64cbb153ecc40cfd + depends: + - __osx >=11.0 + - liblzma 5.8.1 h39f12f2_2 + - liblzma-devel 5.8.1 h39f12f2_2 + - xz-gpl-tools 5.8.1 h9a6d368_2 + - xz-tools 5.8.1 h39f12f2_2 + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + purls: [] + size: 23995 + timestamp: 1749230346887 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-gpl-tools-5.8.1-hbcc6ac9_2.conda + sha256: 840838dca829ec53f1160f3fca6dbfc43f2388b85f15d3e867e69109b168b87b + md5: bf627c16aa26231720af037a2709ab09 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_2 + constrains: + - xz 5.8.1.* + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + purls: [] + size: 33911 + timestamp: 1749230090353 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-gpl-tools-5.8.1-h9a6d368_2.conda + sha256: a0790cfb48d240e7b655b0d797a00040219cf39e3ee38e2104e548515df4f9c2 + md5: 09b1442c1d49ac7c5f758c44695e77d1 + depends: + - __osx >=11.0 + - liblzma 5.8.1 h39f12f2_2 + constrains: + - xz 5.8.1.* + license: 0BSD AND LGPL-2.1-or-later AND GPL-2.0-or-later + purls: [] + size: 34103 + timestamp: 1749230329933 +- conda: https://conda.anaconda.org/conda-forge/linux-64/xz-tools-5.8.1-hb9d3cd8_2.conda + sha256: 58034f3fca491075c14e61568ad8b25de00cb3ae479de3e69be6d7ee5d3ace28 + md5: 1bad2995c8f1c8075c6c331bf96e46fb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=13 + - liblzma 5.8.1 hb9d3cd8_2 + constrains: + - xz 5.8.1.* + license: 0BSD AND LGPL-2.1-or-later + purls: [] + size: 96433 + timestamp: 1749230076687 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-tools-5.8.1-h39f12f2_2.conda + sha256: 9d1232705e3d175f600dc8e344af9182d0341cdaa73d25330591a28532951063 + md5: 37996935aa33138fca43e4b4563b6a28 + depends: + - __osx >=11.0 + - liblzma 5.8.1 h39f12f2_2 + constrains: + - xz 5.8.1.* + license: 0BSD AND LGPL-2.1-or-later + purls: [] + size: 86425 + timestamp: 1749230316106 - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda sha256: b4533f7d9efc976511a73ef7d4a2473406d7f4c750884be8e8620b0ce70f4dae md5: 30cd29cb87d819caead4d55184c1d115 diff --git a/pyproject.toml b/pyproject.toml index 431efaa492..be435af05c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -162,17 +162,17 @@ platforms = ["linux-64", "osx-arm64"] default = {features = [], solve-group = "default"} [tool.pixi.dependencies] -python = "==3.13.2" +python = "==3.12.7" pip="==25.3" pyodide-build = "==0.30.9" -emscripten = "==4.0.9" +emscripten = "==3.1.58" nodejs = ">=25.2.1,<25.3" rust = "==1.86" rust-std-wasm32-unknown-emscripten = "==1.86" rust-src = "==1.86" [tool.pixi.tasks.install_xbuildenv] -cmd = ["pyodide", "xbuildenv", "install", "0.29.0"] +cmd = ["pyodide", "xbuildenv", "install", "0.27.7"] [tool.pixi.tasks.build_pyodide] cmd = ["pyodide", "build"] From 6f1be333fcb1541cb2772b5699e8e0123d6ad085 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 22:10:20 -0500 Subject: [PATCH 50/60] Use uv to run Pyodide tests --- pixi.lock | 27 ++++++++ pyproject.toml | 23 +++++-- tests/pyodide_tests/pyodide_runner.mjs | 86 -------------------------- tests/pyodide_tests/runner.py | 41 ------------ 4 files changed, 44 insertions(+), 133 deletions(-) delete mode 100644 tests/pyodide_tests/pyodide_runner.mjs delete mode 100644 tests/pyodide_tests/runner.py diff --git a/pixi.lock b/pixi.lock index 20fca01ebf..1aaea1f113 100644 --- a/pixi.lock +++ b/pixi.lock @@ -123,6 +123,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h8577fbf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.9.7-h30787bc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/xz-5.8.1-hbcc6ac9_2.conda @@ -232,6 +233,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h8577fbf_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/unearth-0.18.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.9.7-h194b5f9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xz-5.8.1-h9a6d368_2.conda @@ -2303,6 +2305,31 @@ packages: - pkg:pypi/urllib3?source=compressed-mapping size: 102817 timestamp: 1765212810619 +- conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.9.7-h30787bc_0.conda + sha256: 949e98185f68242eaf5e205925e59cede4890811b7fbd7891b65e7aca71f1ffe + md5: 5144aa8155f23052977571a63ce8d03f + depends: + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + constrains: + - __glibc >=2.17 + license: Apache-2.0 OR MIT + purls: [] + size: 17163738 + timestamp: 1761878731952 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.9.7-h194b5f9_0.conda + sha256: 89e581024afc5c460136be55243256ef2fd7a4d34e3150184731dcd907fb2542 + md5: 1d32ad5e2585cc65de1fc2fd3e649617 + depends: + - __osx >=11.0 + - libcxx >=19 + constrains: + - __osx >=11.0 + license: Apache-2.0 OR MIT + purls: [] + size: 14810041 + timestamp: 1761878272306 - conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda sha256: 77193c99c6626c58446168d3700f9643d8c0dab1f6deb6b9dd039e6872781bfb md5: cfccfd4e8d9de82ed75c8e2c91cab375 diff --git a/pyproject.toml b/pyproject.toml index 7c50ef8789..7150f8d4c8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -170,6 +170,7 @@ nodejs = ">=25.2.1,<25.3" rust = "==1.86" rust-std-wasm32-unknown-emscripten = "==1.86" rust-src = "==1.86" +uv = "==0.9.7" [tool.pixi.tasks.install_xbuildenv] cmd = ["pyodide", "xbuildenv", "install", "0.27.7"] @@ -179,15 +180,25 @@ cmd = ["pyodide", "build"] env = { RUSTC_BOOTSTRAP = "1", RUSTFLAGS = "$(pyodide config get rustflags) -C target-feature=+atomics,+bulk-memory,+mutable-globals" } depends-on = ["install_xbuildenv"] -[tool.pixi.tasks.install_pyodide_test_env] -cmd = ["npm", "install"] - [tool.pixi.tasks.pyodide_test] -cmd = ["node", "tests/pyodide_tests/pyodide_runner.mjs", "{{ wheel_path }}"] +cmd = [ + "cd", "tests", "&&", + "uvx", + "--no-config", + "--isolated", + "--python", "{{ python_version }}", + "--with", "{{ wheel_path }}", + "--with", "networkx", + "--no-build", + "--extra-index-url", "{{ index_url }}", + "--index-strategy", "unsafe-best-match", + "python", "-m", "unittest", "discover", "." +] args = [ - { "arg" = "wheel_path", "default" = "$(python tools/find_only_wheel.py)" }, + { "arg" = "wheel_path", "default" = "$(uvx python ../tools/find_only_wheel.py)" }, + { "arg" = "python_version", "default" = "cpython-3.12.7-emscripten-wasm32-musl" }, + { "arg" = "index_url", "default" = "https://index.pyodide.org/0.27.7/" }, ] -depends-on = ["install_pyodide_test_env"] [tool.pixi.tasks.build_pyodide_and_test] depends-on = ["build_pyodide", "pyodide_test"] diff --git a/tests/pyodide_tests/pyodide_runner.mjs b/tests/pyodide_tests/pyodide_runner.mjs deleted file mode 100644 index 66aef9fe25..0000000000 --- a/tests/pyodide_tests/pyodide_runner.mjs +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Licensed under the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. You may obtain - * a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations - * under the License. - * - * Running this file is the equivalent of running: - * python -m unittest discover . - * at the root of the tests folder. It works both with Pyodide and - * in a normal Python environment. - */ - -/* - Usage: node pyodide_runner.mjs - This loads Pyodide, rustworkx, networkx, numpy. Then, it mounts the test folder - and runs the tests in memory with unittest. -*/ - -import { loadPyodide } from "pyodide"; -import * as fs from "fs"; -import * as path from "path"; -import { fileURLToPath } from "url"; - -async function getPyodideWithDeps() { - let pyodide = await loadPyodide(); - await pyodide.loadPackage("micropip"); - const micropip = pyodide.pyimport("micropip"); - - // Load rustworkx from local file system to Pyodide's - const filePath = process.argv[2]; - if (process.argv[2] === "") { - throw new Error("Wheel path is empty, check the logs to see if there are multiple wheels in dist/."); - } - const filename = path.basename(filePath); - - const wheelPath = path.resolve(filePath); - const wheelData = fs.readFileSync(wheelPath); - - pyodide.FS.writeFile(`/tmp/${filename}`, new Uint8Array(wheelData)); - - // Install rustworkx + networkx for testing. We ignore the optional dependencies. - await micropip.install.callKwargs({ - requirements: [`emfs:/tmp/${filename}`, "numpy", "networkx"], - deps: false, - }) - - return pyodide; -} - -async function getUnitTests(pyodide) { - const __filename = fileURLToPath(import.meta.url); - const __dirname = path.dirname(__filename); - let unitTestFile = `${__dirname}/runner.py`; - let unitTestDir = path.dirname(__dirname); - // Mount test directory to Pyodide's file system - let mountDir = "/tmp/tests"; - pyodide.FS.mkdirTree(mountDir); - pyodide.FS.mount(pyodide.FS.filesystems.NODEFS, { root: unitTestDir }, mountDir); - // Read the test runner file - let unitTestRunner = fs.readFileSync(unitTestFile); - return unitTestRunner.toString(); -} - -async function main() { - let pyodide = await getPyodideWithDeps(); - let unitTests = await getUnitTests(pyodide); - try { - await pyodide.runPythonAsync(unitTests); - console.log("Unit tests completed successfully"); - } catch (error) { - console.error("Error during unit tests:", error); - process.exit(1); - } -} - -if (process.argv[1] === import.meta.filename){ - await main(); -} - diff --git a/tests/pyodide_tests/runner.py b/tests/pyodide_tests/runner.py deleted file mode 100644 index 1d431ddd73..0000000000 --- a/tests/pyodide_tests/runner.py +++ /dev/null @@ -1,41 +0,0 @@ -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# Running this file is the equivalent of running: -# python -m unittest discover . -# At the root of the tests folder. It works both with Pyodide and -# in a normal Python environment. - -import pathlib -import sys -import unittest - - -def main(): - if sys.platform == "emscripten": - tests_folder = "/tmp/tests/" - else: - # Set the path to the code to test - tests_folder = pathlib.Path(__file__).parent.parent.resolve() - - # Discover tests in the specified folder - loader = unittest.TestLoader() - suite = loader.discover(start_dir=tests_folder) - - # Run the discovered tests - runner = unittest.TextTestRunner() - result = runner.run(suite) - assert result.wasSuccessful() - - -if __name__ == "__main__" or sys.platform == "emscripten": - main() From afc66e93ae913ff759f05baeb2838600171741b9 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 22:14:40 -0500 Subject: [PATCH 51/60] Update CONTRIBUTING.md --- CONTRIBUTING.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index d9ad401e28..d7ff3737e2 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -630,9 +630,7 @@ maps roughly to `1.86`. If that version was not yet stable, we could try picking After updating the versions in `[tool.pixi.dependencies]`, run `pixi lock` which will update `pixi.lock`. Onwards, all builds will use the same environment. As long as `pixi run build_pyodide` passes locally or on CI it should keep compiling and building. -Lastly, remember to update the Pyodide version in `tests/pyodide_tests`. Change the version in `tests/pyodide_tests/package.json` -and run `pixi run install_pyodide_test_env` to generate the new lockfile. If you forget to update the Pyodide version, the tests -will fail. +Lastly, remember to update the Pyodide version in the test command as well. Update the `python_version` and `index_url` variables. ### Stable Branch Policy and Backporting From 5d5117e09d057add723d285896e73ff704d9cfd0 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 22:22:58 -0500 Subject: [PATCH 52/60] Force reinstall --- pyproject.toml | 1 + 1 file changed, 1 insertion(+) diff --git a/pyproject.toml b/pyproject.toml index 7150f8d4c8..1ad2f7296b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -192,6 +192,7 @@ cmd = [ "--no-build", "--extra-index-url", "{{ index_url }}", "--index-strategy", "unsafe-best-match", + "--reinstall", "python", "-m", "unittest", "discover", "." ] args = [ From 8e43abf9602482e8e38662e0e0860e1f5c8ef266 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 22:45:54 -0500 Subject: [PATCH 53/60] Cleaner command --- pyproject.toml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 1ad2f7296b..aa87f8fd74 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -182,7 +182,8 @@ depends-on = ["install_xbuildenv"] [tool.pixi.tasks.pyodide_test] cmd = [ - "cd", "tests", "&&", + "uv", "cache", "clean", "rustworkx", + "&&", "uvx", "--no-config", "--isolated", @@ -192,11 +193,11 @@ cmd = [ "--no-build", "--extra-index-url", "{{ index_url }}", "--index-strategy", "unsafe-best-match", - "--reinstall", + "--directory", "tests", "python", "-m", "unittest", "discover", "." ] args = [ - { "arg" = "wheel_path", "default" = "$(uvx python ../tools/find_only_wheel.py)" }, + { "arg" = "wheel_path", "default" = "$(uvx python tools/find_only_wheel.py)" }, { "arg" = "python_version", "default" = "cpython-3.12.7-emscripten-wasm32-musl" }, { "arg" = "index_url", "default" = "https://index.pyodide.org/0.27.7/" }, ] From 4282f8e46eb765258c681e70092f576dd5e3b705 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 22:58:25 -0500 Subject: [PATCH 54/60] Use cache pruning --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index aa87f8fd74..ce3e1c5a8f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -182,7 +182,7 @@ depends-on = ["install_xbuildenv"] [tool.pixi.tasks.pyodide_test] cmd = [ - "uv", "cache", "clean", "rustworkx", + "uv", "cache", "prune", "--ci", "&&", "uvx", "--no-config", From 07226d8e5e6e524a41d6abbaa16decc9b18c9ffb Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 23:05:17 -0500 Subject: [PATCH 55/60] Avoid clearing global uv cache --- .gitignore | 6 ++---- pyproject.toml | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index bf64c44dc3..c3a492612b 100644 --- a/.gitignore +++ b/.gitignore @@ -33,7 +33,5 @@ venv/ # pyodide xbuild .xbuildenv -# Node.js -node_modules/ -jspm_packages/ -.npm +# uv for pyodide +.uv_pyodide_cache/ \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index ce3e1c5a8f..5f323f564f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -201,6 +201,7 @@ args = [ { "arg" = "python_version", "default" = "cpython-3.12.7-emscripten-wasm32-musl" }, { "arg" = "index_url", "default" = "https://index.pyodide.org/0.27.7/" }, ] +env = { UV_CACHE_DIR = "$PWD/.uv_pyodide_cache" } [tool.pixi.tasks.build_pyodide_and_test] depends-on = ["build_pyodide", "pyodide_test"] From 6416b3d84bad8fa927ee826d038cb257630b252b Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sat, 13 Dec 2025 23:32:09 -0500 Subject: [PATCH 56/60] No need for NPM lock files anymore --- package-lock.json | 46 ---------------------------------------------- package.json | 6 ------ 2 files changed, 52 deletions(-) delete mode 100644 package-lock.json delete mode 100644 package.json diff --git a/package-lock.json b/package-lock.json deleted file mode 100644 index 93f7378b14..0000000000 --- a/package-lock.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "name": "rustworkx-pyodide", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "rustworkx-pyodide", - "dependencies": { - "pyodide": "^0.27.7" - } - }, - "node_modules/pyodide": { - "version": "0.27.7", - "resolved": "https://registry.npmjs.org/pyodide/-/pyodide-0.27.7.tgz", - "integrity": "sha512-RUSVJlhQdfWfgO9hVHCiXoG+nVZQRS5D9FzgpLJ/VcgGBLSAKoPL8kTiOikxbHQm1kRISeWUBdulEgO26qpSRA==", - "license": "MPL-2.0", - "dependencies": { - "ws": "^8.5.0" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/ws": { - "version": "8.18.2", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.2.tgz", - "integrity": "sha512-DMricUmwGZUVr++AEAe2uiVM7UoO9MAVZMDu05UQOaUII0lp+zOzLLU4Xqh/JvTqklB1T4uELaaPBKyjE1r4fQ==", - "license": "MIT", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - } - } -} diff --git a/package.json b/package.json deleted file mode 100644 index 30fd79263f..0000000000 --- a/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "rustworkx-pyodide", - "dependencies": { - "pyodide": "^0.27.7" - } -} From 58ee2d554d4fa81b4fe894a57d297d19c7361302 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 14 Dec 2025 11:16:47 -0500 Subject: [PATCH 57/60] Clean just rustworkx from the cache --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 5f323f564f..db3599c695 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -182,7 +182,7 @@ depends-on = ["install_xbuildenv"] [tool.pixi.tasks.pyodide_test] cmd = [ - "uv", "cache", "prune", "--ci", + "uv", "cache", "clean", "rustworkx", "&&", "uvx", "--no-config", From a18f64cb181d1c6b255e4fc06e2984c3694f5444 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Sun, 14 Dec 2025 11:34:22 -0500 Subject: [PATCH 58/60] Revert "Clean just rustworkx from the cache" This reverts commit 58ee2d554d4fa81b4fe894a57d297d19c7361302. --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index db3599c695..5f323f564f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -182,7 +182,7 @@ depends-on = ["install_xbuildenv"] [tool.pixi.tasks.pyodide_test] cmd = [ - "uv", "cache", "clean", "rustworkx", + "uv", "cache", "prune", "--ci", "&&", "uvx", "--no-config", From a4c1b21fba5591cb5686426295eb5e3320ed3142 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 16 Dec 2025 09:06:05 -0500 Subject: [PATCH 59/60] Smaller diff now that pixi understands TOML better --- pyproject.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0db3c4c23c..6ea7df440e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -120,10 +120,12 @@ select = [ "PYI", # flake8-pyi "Q", # flake8-quotes ] -per-file-ignores = {"rustworkx/__init__.py" = ["F405", "F403"], "*.pyi" = ["F403", "F405", "PYI001", "PYI002"]} target-version = "py310" extend-exclude = ["doc"] +[tool.ruff.lint.per-file-ignores] +"rustworkx/__init__.py" = ["F405", "F403"] +"*.pyi" = ["F403", "F405", "PYI001", "PYI002"] [tool.typos.default] extend-ignore-words-re = [ From cb9e76f66bad9857c26f2bd67f06a7108774bd60 Mon Sep 17 00:00:00 2001 From: Ivan Carvalho Date: Tue, 16 Dec 2025 09:07:28 -0500 Subject: [PATCH 60/60] Fix toml --- pyproject.toml | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6ea7df440e..eb6f5eff74 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -109,8 +109,8 @@ target-version = ['py310', 'py311', 'py312', 'py313'] [tool.ruff] line-length = 105 # more lenient than black due to long function signatures src = ["rustworkx", "setup.py", "tests"] -target-version = "py39" extend-exclude = ["doc"] +target-version = "py310" [tool.ruff.lint] select = [ @@ -120,8 +120,6 @@ select = [ "PYI", # flake8-pyi "Q", # flake8-quotes ] -target-version = "py310" -extend-exclude = ["doc"] [tool.ruff.lint.per-file-ignores] "rustworkx/__init__.py" = ["F405", "F403"]