diff --git a/pixi.lock b/pixi.lock index d02f8cbdb..07e4042e7 100644 --- a/pixi.lock +++ b/pixi.lock @@ -6,43 +6,45 @@ environments: - url: https://prefix.dev/pixi-build-backends/ 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/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.14-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.13.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-auth-0.12.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.14.0-pyhcf101f3_0.conda - 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/anyio-4.12.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py313h07c4f96_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py314h5bd0f2a_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.3.0-py314h680f03e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boolean.py-5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-1.2.0-hed03a55_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/brotli-bin-1.2.0-hb03c661_1.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-py314h3de4e8d_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.5-hb9d3cd8_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/linux-64/c-ares-1.34.6-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_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/linux-64/cairo-1.18.4-h3394656_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf46b229_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-he90730b_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-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/noarch/check-wheel-contents-0.6.3-pyhcf101f3_0.conda @@ -52,23 +54,24 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.12.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py313h7037e92_3.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.12.0-py313h3dea7bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.9-py313hd8ed1ab_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py314h97ea11e_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.13.1-py314h67df5f8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-46.0.3-py314h7fe84b3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-9.1.0-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-11.6.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/dbus-1.16.2-h24cb091_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.17-py313h5d5ffb9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.18-py314h42812f9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.1-h5888daf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_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/executing-2.2.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/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 @@ -76,67 +79,73 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/fontconfig-2.15.0-h7e30c49_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.61.0-py313h3dea7bd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fonttools-4.61.1-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/freetype-2.14.1-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/graphite2-1.3.14-hecca717_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/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py313h253c126_101.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.2.0-h15599e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py314hc32fe06_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyhd8ed1ab_2.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/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyha191276_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.8-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.7.0-pyh53cf698_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.9.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py313h78bf25f_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyha804496_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py313hc8edb43_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py314h97ea11e_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.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/linux-64/lcms2-2.18-h0c24ade_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libaec-1.1.4-h3f801dc_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-2_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.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/libcblas-3.11.0-2_h0358290_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.6-default_h99862b1_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.6-default_h746c552_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.8-default_h99862b1_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.8-default_h746c552_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-hb8b1518_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.17.0-h4e3cde8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.18.0-h4e3cde8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-h17f619e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libdrm-2.4.125-hb03c661_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h7949ede_0.conda @@ -146,145 +155,152 @@ environments: - 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/libfreetype-2.14.1-ha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libfreetype6-2.14.1-h73754d4_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_14.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_16.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/libgfortran-15.2.0-h69a702a_16.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_16.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.2-h32235b2_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.3-h6548e54_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libglx-1.7.0-ha4b6fd6_2.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_14.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/libjpeg-turbo-3.1.2-hb03c661_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-2_h47877c9_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.6-hf7376ad_0.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/liblapack-3.11.0-5_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_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/libntlm-1.8-hb9d3cd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.30-pthreads_h94d23a6_4.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libpciaccess-0.18-hb9d3cd8_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.51-h421ea60_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-h5c52fec_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_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/libsqlite-3.51.2-hf4e2dac_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_14.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_14.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_16.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/libtiff-4.7.1-h9d88235_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libwebp-base-1.6.0-hd42ef1d_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcb-1.17.0-h8a09558_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/libxkbcommon-1.13.0-hca5e8e5_0.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/libxkbcommon-1.13.1-hca5e8e5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.1-hb9d3cd8_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/license-expression-30.4.4-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.45.1-py313hdd307be_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.46.0-py314h946fb2a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lmfit-1.3.4-pyhd8ed1ab_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/linux-64/markupsafe-3.0.3-py313h3dea7bd_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py313h78bf25f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py313h683a580_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py314hdafbbf9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py314h1194b4b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-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/noarch/mistune-3.1.4-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py313h7037e92_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py314h9891dd4_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.19.0-py313h07c4f96_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.19.1-py314h5bd0f2a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-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/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.62.1-py313hd8e3f9f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.5-py313hf6604e3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.63.1-py314h8169c2f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.5-py314h2b28147_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/openldap-2.6.10-he970967_0.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/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packageurl-python-0.17.6-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py313h08cd8bf_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.0.0-py314hb4ffadd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.46-h1321c63_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.0.0-py313h80991f8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.1.0-py314h8ec4b1a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-api-0.0.34-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-audit-2.9.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-audit-2.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-requirements-parser-32.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pixman-0.46.4-h54a6638_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pkce-1.0.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.1.3-py313h54dd161_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.1-py314h0f05182_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-serializable-2.1.0-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.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-py314h2e6c369_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.12.0-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.9.3-py313h85046ba_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py314hf36963e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-qt-4.5.0-pyhdecd6ff_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xvfb-3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.9-hc97d973_101_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.2-h32b2ec7_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.9-h4df99d1_101.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.7.3-py313h54dd161_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.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/python-librt-0.7.8-py314h0f05182_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyvirtualdisplay-3.0-pyhd8ed1ab_4.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py313h3dea7bd_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/qhull-2020.2-h434a139_5.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.9.3-h5c1c036_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.10.1-hb82b983_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/readchar-4.2.1-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_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/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py313h843e2db_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py313h11c21cd_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py314h2e6c369_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py314hf07bd8e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.4.1-py314hdafbbf9_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.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/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.0.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda @@ -292,32 +308,34 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-1.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.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/toml-0.10.2-pyhcf101f3_3.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.2-py313h07c4f96_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.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/typer-0.21.1-pyhf8876ea_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.21.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.21.1-h378290b_0.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/typing_utils-0.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py313h7037e92_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py314h9891dd4_6.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-17.0.0-py314h5bd0f2a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/versioningit-3.3.0-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/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-hd6090a7_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda @@ -350,47 +368,51 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h280c20c_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.5-h387f397_9.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-ng-2.3.1-hde8ca8f_0.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-h3691f8a_4.conda - - pypi: https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/79/b6/e6a5665d43a7c42467138c8a2549be432bad22cbd206f5ec87162de74bd7/regex-2026.1.15-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.2-hceb46e0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py314h0f05182_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/07/78/c77f644b68ab054e5a674fb4da40ff7bffb2c88df58afa82dbf86573092d/regex-2026.1.15-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl - pypi: https://files.pythonhosted.org/packages/d2/b8/f0b9b880c03a3db8eaff63d76ca751ac7d8e45483fb7a0bb9f8e5c6ce433/toml_cli-0.8.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl - - pypi: ./ + - pypi: . osx-64: - conda: https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-7_kmp_llvm.conda - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.13.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-auth-0.12.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.14.0-pyhcf101f3_0.conda - 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/anyio-4.12.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-25.1.0-py312h80b0991_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-25.1.0-py314h6482030_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.3.0-py314h680f03e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boolean.py-5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-1.2.0-hf139dec_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-bin-1.2.0-h8616949_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py312h4b46afd_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py314h3262eb8_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h500dc9f_8.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.5-hf13058a_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/osx-64/c-ares-1.34.6-hb5e19a0_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_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/osx-64/cairo-1.18.4-h950ec3b_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h7656bdc_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py314h8ca4d5a_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-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/noarch/check-wheel-contents-0.6.3-pyhcf101f3_0.conda @@ -400,22 +422,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.12.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py312hd099df3_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.12.0-py312hacf3034_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py314h22a2ed9_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.13.1-py314h10d0514_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py314he083015_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-11.6.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/cyrus-sasl-2.1.28-h610c526_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.17-py312hbfd3414_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.19-py314h655ac26_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/double-conversion-3.3.1-h240833e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/double-conversion-3.4.0-heffb93a_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/executing-2.2.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/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 @@ -423,65 +446,70 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/fontconfig-2.15.0-h37eeddb_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.61.0-py312hacf3034_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fonttools-4.61.1-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/freetype-2.14.1-h694c41f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/graphite2-1.3.14-h21dd04a_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/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py312hcf08926_101.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.2.0-hc5d3ef4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py314hf613b1f_101.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyhd8ed1ab_2.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-64/icu-75.1-h120a0e1_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.8-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.8.0-pyh53cf698_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py312h90e26e8_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh534df25_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py314hf3ac25a_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.21.3-h37d8d59_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/lerc-4.0.0-hcca01a6_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libaec-1.1.4-ha6bc127_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-4_he492b99_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.2.0-h8616949_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.2.0-h8616949_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.2.0-h8616949_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-4_h9b27e0a_openblas.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_hc369343_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang13-21.1.7-default_h7f9524c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.17.0-h7dd4100_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.7-h3d58e20_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_hd70426c_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libclang13-21.1.8-default_h5e75a71_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.18.0-h9348e2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.8-h3d58e20_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libdeflate-1.25-h517ebb2_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321ha958ccf_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-h10d778d_2.conda @@ -492,133 +520,140 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_15.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_15.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_15.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.86.2-h6ca3a76_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.86.3-hf241ffe_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h57a12c2_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libintl-0.25.1-h3184127_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libjpeg-turbo-3.1.2-h8616949_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-4_h859234e_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm19-19.1.7-h56e7563_2.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm21-21.1.7-h56e7563_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm21-21.1.8-h56e7563_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.67.0-h3338091_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libntlm-1.8-h6e16a3a_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.30-openmp_h6006d49_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.51-h380d223_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-18.1-h1e038c5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-18.1-hb73b81d_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libsodium-1.0.20-hfdf4475_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-h6cc646a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hed3591d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libtiff-4.7.1-ha0a348c_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libwebp-base-1.6.0-hb807250_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxcb-1.17.0-hf1f96e2_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-ha1d9b0f_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h7b7ecba_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h24ca049_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libxslt-1.1.43-h486b42e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.1-hd23fc13_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/license-expression-30.4.4-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.7-h472b3d1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.45.1-py312h331d821_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.46.0-py314h85c3bf0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lmfit-1.3.4-pyhd8ed1ab_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/osx-64/markupsafe-3.0.3-py312hacf3034_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.10.8-py312hb401068_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py312h7894933_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.10.8-py314hee6578b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py314hd47142c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-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/noarch/mistune-3.1.4-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.1.2-py312hd099df3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.1.2-py314h00ed6fe_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.19.0-py312h80b0991_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.19.1-py314h6482030_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.5-h0622a9a_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.62.1-py312h8e2b66f_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.5-py312ha3982b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.63.1-py314h385e359_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.5-py314hfc4c462_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openjpeg-2.5.4-h87e8dc5_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openldap-2.6.10-hd8a590d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.0-h230baf5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packageurl-python-0.17.6-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.3-py312h86abcb1_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-3.0.0-py314h550b3c8_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.46-ha3e7e28_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.47-h13923f0_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.0.0-py312hea0c9db_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh8b19718_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.1.0-py314hf9dbaa9_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-api-0.0.34-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-audit-2.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-requirements-parser-32.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pixman-0.46.4-ha059160_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pkce-1.0.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.1.3-py312h01f6755_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.1-py314hd330473_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pthread-stubs-0.4-h00291cd_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-serializable-2.1.0-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.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py312h8a6388b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py314ha7b6dee_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.12.0-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-12.1-py312h4a480f0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-12.1-py312h1993040_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyside6-6.9.3-py312h956e4eb_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-12.1-py314h681fd4f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-12.1-py314h9720295_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyside6-6.10.1-py314h47fa43d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-qt-4.5.0-pyhdecd6ff_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xvfb-3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.12-h74c2667_1_cpython.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.2-hf88997e_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.7.3-py312h01f6755_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.7.8-py314hd330473_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyvirtualdisplay-3.0-pyhd8ed1ab_4.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312hacf3034_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyzmq-27.1.0-py312hb7d603e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/qhull-2020.2-h3c5361c_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/qt6-main-6.9.3-hac9256e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/qt6-main-6.10.1-h88ed066_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/readchar-4.2.1-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.2-h7cca4af_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_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/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py312h8a6388b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312he2acf2f_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py314ha7b6dee_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py314h6328ba2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.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/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.0.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda @@ -626,39 +661,38 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-1.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-hf689a15_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhcf101f3_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/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.2-py312h80b0991_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py314h3d180e3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.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/typer-0.21.1-pyhf8876ea_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.21.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.21.1-h378290b_0.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/typing_utils-0.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hedd4973_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.3-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-17.0.0-py312h80b0991_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py314hd4d8fbc_6.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-17.0.0-py314h6482030_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/versioningit-3.3.0-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/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-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/wheel-filename-1.4.2-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/xorg-libxau-1.0.12-h8616949_1.conda @@ -666,31 +700,35 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-h4132b18_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.5-h6c33b1e_9.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.3.2-h53ec75d_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.25.0-py312h01f6755_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.3.2-h8bce59a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.25.0-py314hd1e8ddb_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h3eecb57_6.conda - - pypi: https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/90/b0/7c2a74e74ef2a7c32de724658a69a862880e3e4155cba992ba04d1c70400/regex-2026.1.15-cp312-cp312-macosx_10_13_x86_64.whl + - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/ac/c4/d000e9b7296c15737c9301708e9e7fbdea009f8e93541b6b43bdb8219646/regex-2026.1.15-cp314-cp314-macosx_10_13_x86_64.whl - pypi: https://files.pythonhosted.org/packages/d2/b8/f0b9b880c03a3db8eaff63d76ca751ac7d8e45483fb7a0bb9f8e5c6ce433/toml_cli-0.8.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl - - pypi: ./ + - pypi: . osx-arm64: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-7_kmp_llvm.conda - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.13.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-auth-0.12.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.14.0-pyhcf101f3_0.conda - 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/anyio-4.12.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-25.1.0-py312h4409184_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.3.0-py312h44dc372_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda @@ -699,13 +737,13 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-bin-1.2.0-hc919400_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.5-h5505292_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/osx-arm64/c-ares-1.34.6-hc919400_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_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/osx-arm64/cairo-1.18.4-h6a3b0d2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.4-he0f2337_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda @@ -716,22 +754,23 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.12.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h84eede6_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.12.0-py312h5748b74_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h3093aea_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.13.1-py312h04c11ed_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312hd13a024_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-11.6.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cyrus-sasl-2.1.28-ha1cbb27_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.17-py312h56d30c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.19-py312h56d30c9_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/double-conversion-3.3.1-h286801f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/double-conversion-3.4.0-haf25636_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/executing-2.2.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/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 @@ -739,65 +778,70 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fontconfig-2.15.0-h1383a14_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.61.0-py312h5748b74_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.61.1-py312h5748b74_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/freetype-2.14.1-hce30654_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/graphite2-1.3.14-hec049ff_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/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py312h4eecd6b_101.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.2.0-haf38c7b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyhd8ed1ab_2.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/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.8-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.8.0-pyh53cf698_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyhc90fa1f_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh534df25_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py312hd8c8125_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.21.3-h237132a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lerc-4.0.0-hd64df32_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libaec-1.1.4-h51d1e36_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-4_h51639a9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.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/libcblas-3.11.0-4_hb0561ab_openblas.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/libclang13-21.1.7-default_h6e8f826_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.17.0-hdece5d2_0.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/libcblas-3.11.0-5_hb0561ab_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_hf3020a7_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-21.1.8-default_h13b06bd_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.18.0-he38603e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.8-hf598326_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libdeflate-1.25-hc11a715_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321hafb1f1b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h93a5062_2.conda @@ -805,35 +849,35 @@ environments: - 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/libfreetype-2.14.1-hce30654_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libfreetype6-2.14.1-h6da58f4_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_15.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_15.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_15.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.2-he69a767_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_16.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_16.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_16.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.3-hfe11c1f_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/libintl-0.25.1-h493aca8_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libjpeg-turbo-3.1.2-hc919400_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-4_hd9741b5_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.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/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/libllvm21-21.1.8-h8e0c9ce_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_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/libntlm-1.8-h5505292_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.51-hfab5511_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-18.1-h944245b_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-18.1-h6caddbb_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.20-h99b78c6_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/libsqlite-3.51.2-h1ae2325_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-h1590b86_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libtiff-4.7.1-h4030677_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libwebp-base-1.6.0-h07db88b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxcb-1.17.0-hdb1d25a_0.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/libxml2-16-2.15.1-h5ef1a60_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxslt-1.1.43-hb2570ba_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.1-h8359307_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/license-expression-30.4.4-pyhe01879c_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/llvmlite-0.45.1-py312hc82e5dd_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.46.0-py312hc82e5dd_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lmfit-1.3.4-pyhd8ed1ab_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/osx-arm64/markupsafe-3.0.3-py312h5748b74_0.conda @@ -841,44 +885,46 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.10.8-py312h605b88b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-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/noarch/mistune-3.1.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.2-py312h84eede6_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.19.0-py312hefc2c51_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.19.1-py312hefc2c51_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-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/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.62.1-py312he2ad07c_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.3.5-py312h85ea64e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.63.1-py312h5d8d915_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.3.5-py312he281c53_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openjpeg-2.5.4-hbfb3c88_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openldap-2.6.10-hbe55e7a_0.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/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packageurl-python-0.17.6-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.3.3-py312h5978115_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-3.0.0-py312hae6be28_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.46-h7125dd6_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.0.0-py312h95c711c_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.1.0-py312h4e908a4_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh8b19718_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-api-0.0.34-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-audit-2.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-requirements-parser-32.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pixman-0.46.4-h81086ad_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pkce-1.0.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.1.3-py312h37e1c23_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.1-py312hb3ab3e3_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pthread-stubs-0.4-hd74edd7_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ptyprocess-0.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda @@ -888,12 +934,13 @@ environments: - 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/pydantic-settings-2.12.0-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-12.1-py312h19bbe71_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-12.1-py312h1de3e18_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyside6-6.9.3-py312h56a303a_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyside6-6.10.1-py312h56a303a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-qt-4.5.0-pyhdecd6ff_0.conda @@ -904,37 +951,40 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.12.12-hd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.7.3-py312h37e1c23_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.7.8-py312hb3ab3e3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyvirtualdisplay-3.0-pyhd8ed1ab_4.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h5748b74_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyzmq-27.1.0-py312hd65ceae_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qhull-2020.2-h420ef59_5.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qt6-main-6.9.3-hb266e41_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/qt6-main-6.10.1-h9aec236_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/readchar-4.2.1-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_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/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.30.0-py312h6ef9ec0_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312ha6bbf71_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.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/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.0.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda @@ -942,39 +992,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-1.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_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/toml-0.10.2-pyhcf101f3_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/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.2-py312h4409184_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py312h4409184_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.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/typer-0.21.1-pyhf8876ea_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.21.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.21.1-h378290b_0.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/typing_utils-0.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312ha0dd364_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-17.0.0-py312h4409184_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/versioningit-3.3.0-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/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/websocket-client-1.9.0-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/wheel-0.46.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.2-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/widgetsnbextension-4.0.15-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/xorg-libxau-1.0.12-hc919400_1.conda @@ -982,45 +1032,49 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h925e9cb_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zeromq-4.3.5-h888dc83_9.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-ng-2.3.2-h248ca61_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-ng-2.3.2-hed4e4f5_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.25.0-py312h37e1c23_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hbf9d68e_6.conda - - pypi: https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl - pypi: https://files.pythonhosted.org/packages/d2/b8/f0b9b880c03a3db8eaff63d76ca751ac7d8e45483fb7a0bb9f8e5c6ce433/toml_cli-0.8.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl - - pypi: ./ + - pypi: . win-64: - conda: https://conda.anaconda.org/conda-forge/win-64/_openmp_mutex-4.5-2_gnu.conda - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/alabaster-1.0.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.13.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-auth-0.12.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.14.0-pyhcf101f3_0.conda - 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/anyio-4.12.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/argon2-cffi-25.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-25.1.0-py313h5ea7bf4_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-25.1.0-py314h5a2d7ad_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.7-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/babel-2.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.3.0-py314h680f03e_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-6.3.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/bleach-with-css-6.3.0-h5f6438b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/boolean.py-5.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-1.2.0-h2d644bc_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-bin-1.2.0-hfd05255_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.2.0-py313h3ebfc14_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.2.0-py314he701e3d_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_8.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-h4c7d964_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_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/win-64/cairo-1.18.4-h5782bbf_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py313h5ea7bf4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h477c42c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py314h5a2d7ad_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-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/noarch/check-wheel-contents-0.6.3-pyhcf101f3_0.conda @@ -1030,21 +1084,22 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/comm-0.2.3-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-handling-2.4.0-pyh7900ff3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/conda-package-streaming-0.12.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py313hf069bd2_3.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.12.0-py313hd650c13_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.10-py313hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py314hf309875_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.13.1-py314h2359020_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py314he884d78_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-11.6.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.17-py313h927ade5_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.19-py314hb98de8c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 - - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/docutils-0.21.2-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.1-he0c23c2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.4.0-hac47afa_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/executing-2.2.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/filelock-3.20.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-inconsolata-3.000-h77eed37_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-source-code-pro-2.038-h77eed37_0.tar.bz2 @@ -1052,191 +1107,203 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/fontconfig-2.15.0-h765892d_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-ecosystem-1-0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/fonts-conda-forge-1-hc364b38_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.61.0-py313hd650c13_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/fonttools-4.61.1-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/freetype-2.14.1-h57928b3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/future-1.0.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/graphite2-1.3.14-hac47afa_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/h11-0.16.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py313hf7f959b_101.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.2.0-h5f2951f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py314hc249e69_101.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.3.0-h5a1b470_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/html5lib-1.1-pyhd8ed1ab_2.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/win-64/icu-75.1-he0c23c2_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.2-h637d24d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/imagesize-1.4.1-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-8.7.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh6dadd2b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipympl-0.9.8-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.8.0-pyhe2676ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyhe2676ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/ipywidgets-8.1.8-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/isoduration-20.11.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py313hfa70ccb_2.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_events-0.12.0-pyh29332c3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server-2.17.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_server-2.28.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_widgets-3.0.16-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py313h1a38498_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh7428d3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py314hf309875_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.21.3-hdf4eb48_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lark-1.3.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/lerc-4.0.0-h6470a55_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libaec-1.1.4-h20038f6_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-4_hf2e6a31_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-5_hf2e6a31_mkl.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.2.0-hfd05255_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.2.0-hfd05255_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.2.0-hfd05255_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-4_h2a3cdd5_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-21.1.7-default_ha2db4b5_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.17.0-h43ecb02_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-5_h2a3cdd5_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-21.1.8-default_ha2db4b5_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.18.0-h43ecb02_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libdeflate-1.25-h51727cc_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.7.3-hac47afa_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.5.2-h52bdfb6_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype-2.14.1-h57928b3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libfreetype6-2.14.1-hdbac1cb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.2.0-h8ee18e1_15.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.2-hd9c3897_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.2.0-h8ee18e1_15.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h64bd3f2_1002.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.2.0-h8ee18e1_16.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.3-h0c9aed9_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.2.0-h8ee18e1_16.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libintl-0.22.5-h5728263_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libjpeg-turbo-3.1.2-hfd05255_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-4_hf9ab0e9_mkl.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-5_hf9ab0e9_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.51-h7351971_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.20-hc70643c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h9aa295b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libtiff-4.7.1-h8f73337_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libvulkan-loader-1.4.328.1-h477610d_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwebp-base-1.6.0-h4d5522a_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r4.gg4f2fc60ca-h57928b3_10.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libxcb-1.17.0-h0e4246c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.1-h06f855e_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.15.1-ha29bfb0_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.1-h3cfd58e_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.15.1-h779ef1b_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libxslt-1.1.43-h0fbe4c1_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.1-h2466b09_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/license-expression-30.4.4-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.7-h4fa8253_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.45.1-py313h5c49287_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.8-h4fa8253_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.46.0-py314hb492ee6_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/lmfit-1.3.4-pyhd8ed1ab_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/win-64/markupsafe-3.0.3-py313hd650c13_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.8-py313hfa70ccb_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.8-py313he1ded55_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.8-py314h86ab7b2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.8-py314hfa45d96_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-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/noarch/mistune-3.1.4-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.0-hac47afa_454.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.2-py313hf069bd2_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.0-hac47afa_455.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.2-py314h909e829_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.19.0-py313h5ea7bf4_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.19.1-py314h5a2d7ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nbformat-5.10.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/nest-asyncio-1.6.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.62.1-py313h7bbedcd_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.5-py313hce7ae62_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.63.1-py314h36f8cf2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.5-py314h06c3c77_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openjpeg-2.5.4-h24db6dd_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.6.0-h725018a_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/overrides-7.7.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/packageurl-python-0.17.6-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.3.3-py313hc90dcd4_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-3.0.0-py314hf700ef7_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/parso-0.8.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.0.0-py313h38f99e1_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.47-hd2b5f0e_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.1.0-py314h61b30b5_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-api-0.0.34-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-audit-2.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-requirements-parser-32.0.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pixman-0.46.4-h5112557_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pkce-1.0.3-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.1.3-py313h5fd188c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.2.1-py314hc5dbbe4_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pthread-stubs-0.4-h0e40799_1002.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pure_eval-0.2.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-serializable-2.1.0-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.12.5-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.41.5-py313hfbe8231_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.41.5-py314h9f07db2_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.12.0-pyh3cfb1c2_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.9.3-py313h475ba69_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py314h2c9462b_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.15.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-qt-4.5.0-pyhdecd6ff_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-xvfb-3.1.1-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.10-h09917c8_100_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.14.2-h4b44e0e_100_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.21.2-pyhe01879c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.10-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.7.3-py313h5fd188c_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.13-8_cp313.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.7.8-py314hc5dbbe4_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-8_cp314.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pyvirtualdisplay-3.0-pyhd8ed1ab_4.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py313h40c08fc_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.15-py313h5813708_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.3-py313hd650c13_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py314h8f8f202_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py314h86ab7b2_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.15-py314h51f0985_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyzmq-27.1.0-py312hbb5da91_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/qhull-2020.2-hc790b64_5.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.9.3-ha0de62e_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.10.1-h68b6638_4.conda - conda: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.3-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/readchar-4.2.1-pyhe01879c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_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/requests-2.32.5-pyhcf101f3_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3339-validator-0.1.4-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3986-validator-0.1.1-pyh9f0ad1d_0.tar.bz2 - conda: https://conda.anaconda.org/conda-forge/noarch/rfc3987-syntax-1.1.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/rich-14.2.0-pyhcf101f3_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py313hfbe8231_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py313h7aa983e_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh5737063_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py314h9f07db2_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py314h221f224_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.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/six-1.17.0-pyhe01879c_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sniffio-1.3.1-pyhd8ed1ab_2.conda - conda: https://conda.anaconda.org/conda-forge/noarch/snowballstemmer-3.0.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sortedcontainers-2.4.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx_rtd_theme-3.0.2-pyha770c72_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-applehelp-2.0.0-pyhd8ed1ab_1.conda @@ -1244,38 +1311,39 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-htmlhelp-2.1.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jquery-4.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-jsmath-1.0.1-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-1.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-2.0.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.10-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/stack_data-0.6.3-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh5737063_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh6dadd2b_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h2c6b04d_3.conda - conda: https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhcf101f3_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/tomli-2.4.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.2-py313h5ea7bf4_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py314h5a2d7ad_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/traitlets-5.14.3-pyhd8ed1ab_1.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/typer-0.21.1-pyhf8876ea_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.21.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.21.1-h378290b_0.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/typing_utils-0.1.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py313hf069bd2_6.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py314h909e829_6.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.4-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-17.0.0-py314h5a2d7ad_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h2b53caa_32.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_32.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_32.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda - conda: https://conda.anaconda.org/conda-forge/noarch/versioningit-3.3.0-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/virtualenv-20.36.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.2.14-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webcolors-25.10.0-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-pyhd8ed1ab_3.conda @@ -1289,14 +1357,14 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-h6a83c73_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.5-h5bddc39_9.conda - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-3.23.0-pyhcf101f3_1.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.3.2-h5112557_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.25.0-py313h5fd188c_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.3.2-h0261ad2_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.25.0-py314hc5dbbe4_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h534d264_6.conda - - pypi: https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl - - pypi: https://files.pythonhosted.org/packages/4f/16/5bfbb89e435897bff28cf0352a992ca719d9e55ebf8b629203c96b6ce4f7/regex-2026.1.15-cp313-cp313-win_amd64.whl + - pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl + - pypi: https://files.pythonhosted.org/packages/4a/a9/ab16b4649524ca9e05213c1cdbb7faa85cc2aa90a0230d2f796cbaf22736/regex-2026.1.15-cp314-cp314-win_amd64.whl - pypi: https://files.pythonhosted.org/packages/d2/b8/f0b9b880c03a3db8eaff63d76ca751ac7d8e45483fb7a0bb9f8e5c6ce433/toml_cli-0.8.2-py3-none-any.whl - pypi: https://files.pythonhosted.org/packages/b5/11/87d6d29fb5d237229d67973a6c9e06e048f01cf4994dee194ab0ea841814/tomlkit-0.14.0-py3-none-any.whl - - pypi: ./ + - pypi: . packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2 sha256: fe51de6107f9edc7aa4f786a70f4a883943bc9d39b3bb7307c04c41410990726 @@ -1378,63 +1446,70 @@ packages: - pkg:pypi/alabaster?source=hash-mapping size: 18684 timestamp: 1733750512696 -- conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.14-hb9d3cd8_0.conda - sha256: b9214bc17e89bf2b691fad50d952b7f029f6148f4ac4fe7c60c08f093efdf745 - md5: 76df83c2a9035c54df5d04ff81bcc02d +- conda: https://conda.anaconda.org/conda-forge/linux-64/alsa-lib-1.2.15.3-hb03c661_0.conda + sha256: d88aa7ae766cf584e180996e92fef2aa7d8e0a0a5ab1d4d49c32390c1b5fff31 + md5: dcdc58c15961dbf17a0621312b01f5cb depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 license: LGPL-2.1-or-later license_family: GPL purls: [] - size: 566531 - timestamp: 1744668655747 -- conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.5.2-pyhd8ed1ab_0.conda - sha256: 71686843e664a333e82c6d1cf07c98e57519218b0aaba12f00109204d082ab73 - md5: 646956ef9e853e03045639b57b7ece7b - depends: - - click - - pydantic-settings >=2.3 - - python >=3.9 - - readchar - - rich - - tomli - - typer + size: 584660 + timestamp: 1768327524772 +- conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-auth-0.12.3-pyhd8ed1ab_0.conda + sha256: 1a21c56240a6643f97bfa1aa68f16a5d00e60a5603db89541b161185c8877489 + md5: fd490190b2f7b0d6ec15a0dbe403ee14 + depends: + - anaconda-cli-base >=0.7.0 + - cryptography >=3.4.0 + - keyring + - pkce + - pydantic + - pyjwt + - python >=3.10 + - python-dotenv + - requests + - semver <4 constrains: - - anaconda-client >=1.13.0 - - anaconda-cloud-cli >=0.3.0 + - conda >=23.9.0 + - conda-token >=0.7.0 + - anaconda-cloud-auth >=0.8 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/anaconda-cli-base?source=hash-mapping - size: 17608 - timestamp: 1740833333114 -- conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhd8ed1ab_0.conda - sha256: a7ef3605b95f1afbd09ba2d9558c4bb00a170ff0403b54490e3566f2c5124deb - md5: 5fc6ffc5b6aa1dedd82885adbdb710a5 + - pkg:pypi/anaconda-auth?source=hash-mapping + size: 45167 + timestamp: 1765839798342 +- conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-cli-base-0.7.0-pyhcf101f3_1.conda + sha256: 4e8f4dab9504e7dffc7c0970399d08e27cb99e577ff1f59e1b99c30f8839ffa9 + md5: 042d5d70b26c751f7dda6980555779ff depends: - - click - - packaging >=23.0 - - pydantic-settings >=2.3 - python >=3.10 + - click - readchar - rich - - tomli - typer >=0.17 + - pydantic-settings >=2.3 + - tomli + - packaging >=23.0 + - python constrains: - anaconda-auth >=0.12.0 - - anaconda-cloud-cli >=0.3.0 - anaconda-client >=1.13.0 + - anaconda-cloud-cli >=0.3.0 license: BSD-3-Clause + license_family: BSD purls: - pkg:pypi/anaconda-cli-base?source=hash-mapping - size: 24027 - timestamp: 1764888971820 -- conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.13.1-pyhcf101f3_0.conda - sha256: bfb16992e3b17e365b2b9f0e36c519008048f5bfd30bdf8917bce4583f51f6cc - md5: 115ee239026f0f240473741887eef5be - depends: - - anaconda-cli-base >=0.4.0 + size: 26360 + timestamp: 1767631187820 +- conda: https://conda.anaconda.org/conda-forge/noarch/anaconda-client-1.14.0-pyhcf101f3_0.conda + sha256: 7f74f5bf4a1c40249e65f77754e3a4a9c09e51b51a6b895d6d92b18eb3c7a803 + md5: 635519f88ed351fb8d316b4e55c3584d + depends: + - anaconda-cli-base >=0.7.0 + - anaconda-auth >=0.12.3 - conda-package-handling >=1.7.3 - conda-package-streaming >=0.9.0 - defusedxml >=0.7.1 @@ -1456,8 +1531,8 @@ packages: license_family: BSD purls: - pkg:pypi/anaconda-client?source=hash-mapping - size: 79277 - timestamp: 1763573069459 + size: 82721 + timestamp: 1769024093397 - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.7.0-pyhd8ed1ab_1.conda sha256: e0ea1ba78fbb64f17062601edda82097fcf815012cf52bb704150a2668110d48 md5: 2934f256a8acfe48f6ebb4fce6cde29c @@ -1470,9 +1545,9 @@ 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 +- conda: https://conda.anaconda.org/conda-forge/noarch/anyio-4.12.1-pyhcf101f3_0.conda + sha256: eb0c4e2b24f1fbefaf96ce6c992c6bd64340bc3c06add4d7415ab69222b201da + md5: 11a2b8c732d215d977998ccd69a9d5e8 depends: - exceptiongroup >=1.0.2 - idna >=2.8 @@ -1485,9 +1560,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/anyio?source=hash-mapping - size: 144702 - timestamp: 1764375386926 + - pkg:pypi/anyio?source=compressed-mapping + size: 145175 + timestamp: 1767719033569 - conda: https://conda.anaconda.org/conda-forge/noarch/appnope-0.1.4-pyhd8ed1ab_1.conda sha256: 8f032b140ea4159806e4969a68b4a3c0a7cab1ad936eb958a2b5ffe5335e19bf md5: 54898d0f524c9dee622d44bbb081a8ab @@ -1514,35 +1589,35 @@ packages: - pkg:pypi/argon2-cffi?source=hash-mapping size: 18715 timestamp: 1749017288144 -- conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py313h07c4f96_2.conda - sha256: ad188ccc06a06c633dc124b09e9e06fb9df4c32ffc38acc96ecc86e506062090 - md5: 27bbec9f2f3a15d32b60ec5734f5b41c +- conda: https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-bindings-25.1.0-py314h5bd0f2a_2.conda + sha256: 39234a99df3d2e3065383808ed8bfda36760de5ef590c54c3692bb53571ef02b + md5: 3cca1b74b2752917b5b65b81f61f0553 depends: - __glibc >=2.17,<3.0.a0 - - cffi >=1.0.1 + - cffi >=2.0.0b1 - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/argon2-cffi-bindings?source=hash-mapping - size: 35943 - timestamp: 1762509452935 -- conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-25.1.0-py312h80b0991_2.conda - sha256: b18ea88c1a3e8c9d6a05f1aa71928856cfdcb5fd4ad0353638f4bac3f0b9b9a2 - md5: 66f6b81d4bf42e3da028763e9d873bff + size: 35598 + timestamp: 1762509505285 +- conda: https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-bindings-25.1.0-py314h6482030_2.conda + sha256: ee1e2c4b12ab8bf4e8970341f6d8a8fd1dfbdb01786f3f6cb2441e1cafdad8a5 + md5: 64f7576ac6bb5308bd930e35016758db depends: - __osx >=10.13 - - cffi >=1.0.1 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - cffi >=2.0.0b1 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/argon2-cffi-bindings?source=hash-mapping - size: 33431 - timestamp: 1762509769660 + size: 33641 + timestamp: 1762509686527 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/argon2-cffi-bindings-25.1.0-py312h4409184_2.conda sha256: 24c475f6f7abf03ef3cc2ac572b7a6d713bede00ef984591be92cdc439b09fbc md5: 0a2a07b42db3f92b8dccf0f60b5ebee8 @@ -1558,13 +1633,13 @@ packages: - pkg:pypi/argon2-cffi-bindings?source=hash-mapping size: 34224 timestamp: 1762509989973 -- conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-25.1.0-py313h5ea7bf4_2.conda - sha256: 3f8a1affdfeb2be5289d709e365fc6e386d734773895215cf8cbc5100fa6af9a - md5: eabb4b677b54874d7d6ab775fdaa3d27 +- conda: https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-bindings-25.1.0-py314h5a2d7ad_2.conda + sha256: a742e7cd0d5534bfff3fd550a0c1e430411fad60a24f88930d261056ab08096f + md5: ffa247e46f47e157851dc547f4c513e4 depends: - - cffi >=1.0.1 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - cffi >=2.0.0b1 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -1572,8 +1647,8 @@ packages: license_family: MIT purls: - pkg:pypi/argon2-cffi-bindings?source=hash-mapping - size: 38779 - timestamp: 1762509796090 + size: 38653 + timestamp: 1762509771011 - conda: https://conda.anaconda.org/conda-forge/noarch/arrow-1.4.0-pyhcf101f3_0.conda sha256: 792da8131b1b53ff667bd6fc617ea9087b570305ccb9913deb36b8e12b3b5141 md5: 85c4f19f377424eafc4ed7911b291642 @@ -1585,24 +1660,24 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/arrow?source=compressed-mapping + - pkg:pypi/arrow?source=hash-mapping size: 113854 timestamp: 1760831179410 -- conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.7-pyhd8ed1ab_0.conda - sha256: fe2f06d394eed6dce2f010cc0b2842f8f6c41e19e67d5588f45c7a6c4d316042 - md5: 075d7f46fff1b596765187a9a20578e8 +- conda: https://conda.anaconda.org/conda-forge/noarch/asteval-1.0.8-pyhd8ed1ab_0.conda + sha256: bf452a859eeb37a583f87e7f8eaab9a5104faf1c8322bc8ad5905165bb5b600d + md5: 361b12fb5a595f025ab0289c715a56bd depends: - numpy >=1.22 - pip - - python >=3.8 + - python >=3.10 - setuptools - setuptools-scm license: MIT license_family: MIT purls: - pkg:pypi/asteval?source=hash-mapping - size: 26922 - timestamp: 1762478733813 + size: 27759 + timestamp: 1766036175098 - conda: https://conda.anaconda.org/conda-forge/noarch/asttokens-3.0.1-pyhd8ed1ab_0.conda sha256: ee4da0f3fe9d59439798ee399ef3e482791e48784873d546e706d0935f9ff010 md5: 9673a61a297b00016442e022d689faa6 @@ -1613,33 +1688,22 @@ packages: license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/asttokens?source=compressed-mapping + - pkg:pypi/asttokens?source=hash-mapping size: 28797 timestamp: 1763410017955 -- conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.0.5-pyh29332c3_0.conda - sha256: 3b7233041e462d9eeb93ea1dfe7b18aca9c358832517072054bb8761df0c324b - md5: d9d0f99095a9bb7e3641bca8c6ad2ac7 +- conda: https://conda.anaconda.org/conda-forge/noarch/async-lru-2.1.0-pyhcf101f3_0.conda + sha256: fb09cb9bfe4da1586d0ad3bf80bb65e70acfd5fe0f76df384250a1c0587d6acc + md5: 04d2e5fba67e5a1ecec8e25d6c769004 depends: - - python >=3.9 + - python >=3.10 - typing_extensions >=4.0.0 - python license: MIT license_family: MIT purls: - pkg:pypi/async-lru?source=hash-mapping - size: 17335 - timestamp: 1742153708859 -- conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyh71513ae_0.conda - sha256: f6c3c19fa599a1a856a88db166c318b148cac3ee4851a9905ed8a04eeec79f45 - md5: c7944d55af26b6d2d7629e27e9a972c1 - depends: - - python >=3.10 - license: MIT - license_family: MIT - purls: - - pkg:pypi/attrs?source=hash-mapping - size: 60101 - timestamp: 1759762331492 + size: 19458 + timestamp: 1768752884184 - conda: https://conda.anaconda.org/conda-forge/noarch/attrs-25.4.0-pyhcf101f3_1.conda sha256: c13d5e42d187b1d0255f591b7ce91201d4ed8a5370f0d986707a802c20c9d32f md5: 537296d57ea995666c68c821b00e360b @@ -1664,6 +1728,53 @@ packages: - pkg:pypi/babel?source=hash-mapping size: 6938256 timestamp: 1738490268466 +- conda: https://conda.anaconda.org/conda-forge/noarch/backports-1.0-pyhd8ed1ab_5.conda + sha256: e1c3dc8b5aa6e12145423fed262b4754d70fec601339896b9ccf483178f690a6 + md5: 767d508c1a67e02ae8f50e44cacfadb2 + depends: + - python >=3.9 + license: BSD-3-Clause + license_family: BSD + purls: [] + size: 7069 + timestamp: 1733218168786 +- conda: https://conda.anaconda.org/conda-forge/noarch/backports.tarfile-1.2.0-pyhcf101f3_2.conda + sha256: 25abdb37e186f0d6ac3b774a63c81c5bc4bf554b5096b51343fa5e7c381193b1 + md5: bea46844deb274b2cc2a3a941745fa73 + depends: + - python >=3.10 + - backports + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/backports-tarfile?source=hash-mapping + size: 35739 + timestamp: 1767290467820 +- conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.3.0-py314h680f03e_0.conda + noarch: generic + sha256: c31ab719d256bc6f89926131e88ecd0f0c5d003fe8481852c6424f4ec6c7eb29 + md5: a2ac7763a9ac75055b68f325d3255265 + depends: + - python >=3.14 + license: BSD-3-Clause AND MIT AND EPL-2.0 + purls: [] + size: 7514 + timestamp: 1767044983590 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/backports.zstd-1.3.0-py312h44dc372_0.conda + sha256: aee745bfca32f7073d3298157bbb2273d6d83383cb266840cf0a7862b3cd8efc + md5: c2d5961bfd98504b930e704426d16572 + depends: + - python + - python 3.12.* *_cpython + - __osx >=11.0 + - zstd >=1.5.7,<1.6.0a0 + - python_abi 3.12.* *_cp312 + license: BSD-3-Clause AND MIT AND EPL-2.0 + purls: + - pkg:pypi/backports-zstd?source=hash-mapping + size: 241051 + timestamp: 1767045000787 - conda: https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.14.3-pyha770c72_0.conda sha256: bf1e71c3c0a5b024e44ff928225a0874fc3c3356ec1a0b6fe719108e6d1288f6 md5: 5267bef8efea4127aacd1f4e1f149b6e @@ -1818,39 +1929,39 @@ packages: purls: [] size: 22714 timestamp: 1764017952449 -- 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-py314h3de4e8d_1.conda + sha256: 3ad3500bff54a781c29f16ce1b288b36606e2189d0b0ef2f67036554f47f12b0 + md5: 8910d2c46f7e7b519129f486e0fe927a depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 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-64/brotli-python-1.2.0-py312h4b46afd_1.conda - sha256: 8854a80360128157e8d05eb57c1c7e7c1cb10977e4c4557a77d29c859d1f104b - md5: 01fdbccc39e0a7698e9556e8036599b7 + size: 367376 + timestamp: 1764017265553 +- conda: https://conda.anaconda.org/conda-forge/osx-64/brotli-python-1.2.0-py314h3262eb8_1.conda + sha256: 2e34922abda4ac5726c547887161327b97c3bbd39f1204a5db162526b8b04300 + md5: 389d75a294091e0d7fa5a6fc683c4d50 depends: - __osx >=10.13 - libcxx >=19 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 constrains: - libbrotlicommon 1.2.0 h8616949_1 license: MIT license_family: MIT purls: - pkg:pypi/brotli?source=hash-mapping - size: 389534 - timestamp: 1764017976737 + size: 390153 + timestamp: 1764017784596 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py312h0dfefe5_1.conda sha256: 6178775a86579d5e8eec6a7ab316c24f1355f6c6ccbe84bb341f342f1eda2440 md5: 311fcf3f6a8c4eb70f912798035edd35 @@ -1868,12 +1979,12 @@ packages: - pkg:pypi/brotli?source=hash-mapping size: 359503 timestamp: 1764018572368 -- conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.2.0-py313h3ebfc14_1.conda - sha256: 3558006cd6e836de8dff53cbe5f0b9959f96ea6a6776b4e14f1c524916dd956c - md5: 916a39a0261621b8c33e9db2366dd427 +- conda: https://conda.anaconda.org/conda-forge/win-64/brotli-python-1.2.0-py314he701e3d_1.conda + sha256: 6854ee7675135c57c73a04849c29cbebc2fb6a3a3bfee1f308e64bf23074719b + md5: 1302b74b93c44791403cbeee6a0f62a3 depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -1883,8 +1994,8 @@ packages: license_family: MIT purls: - pkg:pypi/brotli?source=hash-mapping - size: 335605 - timestamp: 1764018132514 + size: 335782 + timestamp: 1764018443683 - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_8.conda sha256: c30daba32ddebbb7ded490f0e371eae90f51e72db620554089103b4a6934b0d5 md5: 51a19bba1b8ebfb60df25cde030b7ebc @@ -1928,55 +2039,55 @@ packages: purls: [] size: 55977 timestamp: 1757437738856 -- conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.5-hb9d3cd8_0.conda - sha256: f8003bef369f57396593ccd03d08a8e21966157269426f71e943f96e4b579aeb - md5: f7f0d6cc2dc986d42ac2689ec88192be +- 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 >=13 + - libgcc >=14 license: MIT license_family: MIT purls: [] - size: 206884 - timestamp: 1744127994291 -- conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.5-hf13058a_0.conda - sha256: b37f5dacfe1c59e0a207c1d65489b760dff9ddb97b8df7126ceda01692ba6e97 - md5: eafe5d9f1a8c514afe41e6e833f66dfd + size: 207882 + timestamp: 1765214722852 +- conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.6-hb5e19a0_0.conda + sha256: 2f5bc0292d595399df0d168355b4e9820affc8036792d6984bd751fdda2bcaea + md5: fc9a153c57c9f070bebaa7eef30a8f17 depends: - __osx >=10.13 license: MIT license_family: MIT purls: [] - size: 184824 - timestamp: 1744128064511 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.5-h5505292_0.conda - sha256: b4bb55d0806e41ffef94d0e3f3c97531f322b3cb0ca1f7cdf8e47f62538b7a2b - md5: f8cd1beb98240c7edb1a95883360ccfa + size: 186122 + timestamp: 1765215100384 +- 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: 179696 - timestamp: 1744128058734 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-h4c7d964_0.conda - sha256: 686a13bd2d4024fc99a22c1e0e68a7356af3ed3304a8d3ff6bb56249ad4e82f0 - md5: f98fb7db808b94bc1ec5b0e62f9f1069 + size: 180327 + timestamp: 1765215064054 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-h4c7d964_0.conda + sha256: 4ddcb01be03f85d3db9d881407fb13a673372f1b9fac9c836ea441893390e049 + md5: 84d389c9eee640dda3d26fc5335c67d8 depends: - __win license: ISC purls: [] - size: 152827 - timestamp: 1762967310929 -- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2025.11.12-hbd8a1cb_0.conda - sha256: b986ba796d42c9d3265602bc038f6f5264095702dd546c14bc684e60c385e773 - md5: f0991f0f84902f6b6009b4d2350a83aa + size: 147139 + timestamp: 1767500904211 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.1.4-hbd8a1cb_0.conda + sha256: b5974ec9b50e3c514a382335efa81ed02b05906849827a34061c496f4defa0b2 + md5: bddacf101bb4dd0e51811cb69c7790e2 depends: - __unix license: ISC purls: [] - size: 152432 - timestamp: 1762967197890 + size: 146519 + timestamp: 1767500828366 - conda: https://conda.anaconda.org/conda-forge/noarch/cachecontrol-0.14.3-pyha770c72_0.conda sha256: ec791bb6f1ef504411f87b28946a7ae63ed1f3681cefc462cf1dfdaf0790b6a9 md5: 241ef6e3db47a143ac34c21bfba510f1 @@ -2012,131 +2123,135 @@ packages: - pkg:pypi/cached-property?source=hash-mapping size: 11065 timestamp: 1615209567874 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-h3394656_0.conda - sha256: 3bd6a391ad60e471de76c0e9db34986c4b5058587fbf2efa5a7f54645e28c2c7 - md5: 09262e66b19567aff4f592fb53b28760 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cairo-1.18.4-he90730b_1.conda + sha256: 06525fa0c4e4f56e771a3b986d0fdf0f0fc5a3270830ee47e127a5105bde1b9a + md5: bb6c4808bfa69d6f7f6b07e5846ced37 depends: - __glibc >=2.17,<3.0.a0 - fontconfig >=2.15.0,<3.0a0 - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.6.4,<3.0a0 - - libgcc >=13 - - libglib >=2.82.2,<3.0a0 - - libpng >=1.6.47,<1.7.0a0 - - libstdcxx >=13 + - icu >=78.1,<79.0a0 + - libexpat >=2.7.3,<3.0a0 + - libfreetype >=2.14.1 + - libfreetype6 >=2.14.1 + - libgcc >=14 + - libglib >=2.86.3,<3.0a0 + - libpng >=1.6.53,<1.7.0a0 + - libstdcxx >=14 - libxcb >=1.17.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - pixman >=0.44.2,<1.0a0 + - pixman >=0.46.4,<1.0a0 - xorg-libice >=1.1.2,<2.0a0 - - xorg-libsm >=1.2.5,<2.0a0 - - xorg-libx11 >=1.8.11,<2.0a0 + - xorg-libsm >=1.2.6,<2.0a0 + - xorg-libx11 >=1.8.12,<2.0a0 - xorg-libxext >=1.3.6,<2.0a0 - xorg-libxrender >=0.9.12,<0.10.0a0 license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 978114 - timestamp: 1741554591855 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h950ec3b_0.conda - sha256: d4297c3a9bcff9add3c5a46c6e793b88567354828bcfdb6fc9f6b1ab34aa4913 - md5: 32403b4ef529a2018e4d8c4f2a719f16 + size: 989514 + timestamp: 1766415934926 +- conda: https://conda.anaconda.org/conda-forge/osx-64/cairo-1.18.4-h7656bdc_1.conda + sha256: 88e7e1efb6a0f6b1477e617338e0ed3d27d4572a3283f8341ce6143b7118e31a + md5: 9917add2ab43df894b9bb6f5bf485975 depends: - __osx >=10.13 - fontconfig >=2.15.0,<3.0a0 - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=75.1,<76.0a0 - - libcxx >=18 - - libexpat >=2.6.4,<3.0a0 - - libglib >=2.82.2,<3.0a0 - - libpng >=1.6.47,<1.7.0a0 + - icu >=78.1,<79.0a0 + - libcxx >=19 + - libexpat >=2.7.3,<3.0a0 + - libfreetype >=2.14.1 + - libfreetype6 >=2.14.1 + - libglib >=2.86.3,<3.0a0 + - libpng >=1.6.53,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - - pixman >=0.44.2,<1.0a0 + - pixman >=0.46.4,<1.0a0 license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 893252 - timestamp: 1741554808521 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.4-h6a3b0d2_0.conda - sha256: 00439d69bdd94eaf51656fdf479e0c853278439d22ae151cabf40eb17399d95f - md5: 38f6df8bc8c668417b904369a01ba2e2 + size: 896676 + timestamp: 1766416262450 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cairo-1.18.4-he0f2337_1.conda + sha256: cde9b79ee206fe3ba6ca2dc5906593fb7a1350515f85b2a1135a4ce8ec1539e3 + md5: 36200ecfbbfbcb82063c87725434161f depends: - __osx >=11.0 - fontconfig >=2.15.0,<3.0a0 - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=75.1,<76.0a0 - - libcxx >=18 - - libexpat >=2.6.4,<3.0a0 - - libglib >=2.82.2,<3.0a0 - - libpng >=1.6.47,<1.7.0a0 + - icu >=78.1,<79.0a0 + - libcxx >=19 + - libexpat >=2.7.3,<3.0a0 + - libfreetype >=2.14.1 + - libfreetype6 >=2.14.1 + - libglib >=2.86.3,<3.0a0 + - libpng >=1.6.53,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - - pixman >=0.44.2,<1.0a0 + - pixman >=0.46.4,<1.0a0 license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 896173 - timestamp: 1741554795915 -- conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h5782bbf_0.conda - sha256: b9f577bddb033dba4533e851853924bfe7b7c1623d0697df382eef177308a917 - md5: 20e32ced54300292aff690a69c5e7b97 + size: 900035 + timestamp: 1766416416791 +- conda: https://conda.anaconda.org/conda-forge/win-64/cairo-1.18.4-h477c42c_1.conda + sha256: 9ee4ad706c5d3e1c6c469785d60e3c2b263eec569be0eac7be33fbaef978bccc + md5: 52ea1beba35b69852d210242dd20f97d depends: - fontconfig >=2.15.0,<3.0a0 - fonts-conda-ecosystem - - freetype >=2.12.1,<3.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.6.4,<3.0a0 - - libglib >=2.82.2,<3.0a0 - - libpng >=1.6.47,<1.7.0a0 + - icu >=78.1,<79.0a0 + - libexpat >=2.7.3,<3.0a0 + - libfreetype >=2.14.1 + - libfreetype6 >=2.14.1 + - libglib >=2.86.3,<3.0a0 + - libpng >=1.6.53,<1.7.0a0 - libzlib >=1.3.1,<2.0a0 - - pixman >=0.44.2,<1.0a0 + - pixman >=0.46.4,<1.0a0 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: LGPL-2.1-only or MPL-1.1 purls: [] - size: 1524254 - timestamp: 1741555212198 -- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2025.11.12-pyhd8ed1ab_0.conda - sha256: 083a2bdad892ccf02b352ecab38ee86c3e610ba9a4b11b073ea769d55a115d32 - md5: 96a02a5c1a65470a7e4eedb644c872fd + size: 1537783 + timestamp: 1766416059188 +- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.1.4-pyhd8ed1ab_0.conda + sha256: 110338066d194a715947808611b763857c15458f8b3b97197387356844af9450 + md5: eacc711330cd46939f66cd401ff9c44b depends: - python >=3.10 license: ISC purls: - pkg:pypi/certifi?source=compressed-mapping - size: 157131 - timestamp: 1762976260320 -- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py313hf46b229_1.conda - sha256: 2162a91819945c826c6ef5efe379e88b1df0fe9a387eeba23ddcf7ebeacd5bd6 - md5: d0616e7935acab407d1543b28c446f6f + size: 150969 + timestamp: 1767500900768 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cffi-2.0.0-py314h4a8dc5f_1.conda + sha256: c6339858a0aaf5d939e00d345c98b99e4558f285942b27232ac098ad17ac7f8e + md5: cf45f4278afd6f4e6d03eda0f435d527 depends: - __glibc >=2.17,<3.0.a0 - libffi >=3.5.2,<3.6.0a0 - libgcc >=14 - pycparser - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/cffi?source=hash-mapping - size: 298357 - timestamp: 1761202966461 -- conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py312he90777b_1.conda - sha256: e2888785e50ef99c63c29fb3cfbfb44cdd50b3bb7cd5f8225155e362c391936f - md5: cf70c8244e7ceda7e00b1881ad7697a9 + size: 300271 + timestamp: 1761203085220 +- conda: https://conda.anaconda.org/conda-forge/osx-64/cffi-2.0.0-py314h8ca4d5a_1.conda + sha256: e2c58cc2451cc96db2a3c8ec34e18889878db1e95cc3e32c85e737e02a7916fb + md5: 71c2caaa13f50fe0ebad0f961aee8073 depends: - __osx >=10.13 - libffi >=3.5.2,<3.6.0a0 - pycparser - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/cffi?source=hash-mapping - size: 288241 - timestamp: 1761203170357 + size: 293633 + timestamp: 1761203106369 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cffi-2.0.0-py312h1b4d9a2_1.conda sha256: 597e986ac1a1bd1c9b29d6850e1cdea4a075ce8292af55568952ec670e7dd358 md5: 503ac138ad3cfc09459738c0f5750705 @@ -2153,13 +2268,13 @@ packages: - pkg:pypi/cffi?source=hash-mapping size: 288080 timestamp: 1761203317419 -- conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py313h5ea7bf4_1.conda - sha256: f867a11f42bb64a09b232e3decf10f8a8fe5194d7e3a216c6bac9f40483bd1c6 - md5: 55b44664f66a2caf584d72196aa98af9 +- conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.0.0-py314h5a2d7ad_1.conda + sha256: 924f2f01fa7a62401145ef35ab6fc95f323b7418b2644a87fea0ea68048880ed + md5: c360170be1c9183654a240aadbedad94 depends: - pycparser - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -2167,8 +2282,8 @@ packages: license_family: MIT purls: - pkg:pypi/cffi?source=hash-mapping - size: 292681 - timestamp: 1761203203673 + size: 294731 + timestamp: 1761203441365 - conda: https://conda.anaconda.org/conda-forge/noarch/cfgv-3.5.0-pyhd8ed1ab_0.conda sha256: aa589352e61bb221351a79e5946d56916e3c595783994884accdb3b97fe9d449 md5: 381bd45fb7aa032691f3063aff47e3a1 @@ -2177,7 +2292,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/cfgv?source=compressed-mapping + - pkg:pypi/cfgv?source=hash-mapping size: 13589 timestamp: 1763607964133 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.4.4-pyhd8ed1ab_0.conda @@ -2298,101 +2413,101 @@ packages: - pkg:pypi/conda-package-streaming?source=hash-mapping size: 21933 timestamp: 1751548225624 -- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py313h7037e92_3.conda - sha256: c545751fd48f119f2c28635514e6aa6ae784d9a1d4eb0e10be16c776e961f333 - md5: 6186382cb34a9953bf2a18fc763dc346 +- conda: https://conda.anaconda.org/conda-forge/linux-64/contourpy-1.3.3-py314h97ea11e_4.conda + sha256: b0314a7f1fb4a294b1a8bcf5481d4a8d9412a9fee23b7e3f93fb10e4d504f2cc + md5: 95bede9cdb7a30a4b611223d52a01aa4 depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - libstdcxx >=14 - numpy >=1.25 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python + - libstdcxx >=14 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/contourpy?source=compressed-mapping - size: 297459 - timestamp: 1762525479137 -- conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py312hd099df3_3.conda - sha256: a317f6d5c8d574656665907fa5bf9ca1017ef132a988c6d126f2121d7817e4ec - md5: 83036bb23aad87b7256d7ae13d1fdb89 + - pkg:pypi/contourpy?source=hash-mapping + size: 324013 + timestamp: 1769155968691 +- conda: https://conda.anaconda.org/conda-forge/osx-64/contourpy-1.3.3-py314h22a2ed9_4.conda + sha256: 3ddca2f889e37e4b26c2e86d245fc56769b00334bfaf1caf612140eec77ce71d + md5: 511f02f632e1fb0555da3cb4261851d9 depends: - - __osx >=10.13 - - libcxx >=19 - numpy >=1.25 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python + - libcxx >=19 + - __osx >=10.13 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/contourpy?source=hash-mapping - size: 269184 - timestamp: 1762525977233 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h84eede6_3.conda - sha256: ee6a2497f2d9aff6ec53b6998a37c546916b79118e386bb90a7cb1f389d35197 - md5: e3fbe173dea7137a6d766cbacf697df2 + size: 301747 + timestamp: 1769156235399 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/contourpy-1.3.3-py312h3093aea_4.conda + sha256: fa1b3967c644c1ffaf8beba3d7aee2301a8db32c0e9a56649a0e496cf3abd27c + md5: f9cce0bc86b46533489a994a47d3c7d2 depends: + - numpy >=1.25 + - python + - python 3.12.* *_cpython - __osx >=11.0 - libcxx >=19 - - numpy >=1.25 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/contourpy?source=compressed-mapping - size: 258388 - timestamp: 1762525877844 -- conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py313hf069bd2_3.conda - sha256: f5acc168a1f5eedd159bd1a89dc1dd4d901dc0502b769b4fca2bc5bdb4293fcf - md5: a1d5292683730418cd19b6e0cefcfc76 + size: 286084 + timestamp: 1769156157865 +- conda: https://conda.anaconda.org/conda-forge/win-64/contourpy-1.3.3-py314hf309875_4.conda + sha256: f141bcbf8e490b49b2f53f517173d13a64d75e43cfae170e0d931cb0b66f4bce + md5: c26934035616f7d578f9da0491aed3d8 depends: - numpy >=1.25 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - ucrt >=10.0.20348.0 + - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/contourpy?source=hash-mapping - size: 225553 - timestamp: 1762525633181 -- conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.12.0-py313h3dea7bd_0.conda - sha256: 73d28a272fb11be79232f43f35a205079773000cf076b65c8cebbb01d5fb8bfd - md5: 8ef99d298907bfd688a95cc714662ae7 + size: 247437 + timestamp: 1769155978556 +- conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.13.1-py314h67df5f8_0.conda + sha256: 63b91c7308704819bc35747ed88097c391a75502921f7f3c9422d42e1ed07909 + md5: a4525263f2fa741bffa4af1e40aec245 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - tomli license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=compressed-mapping - size: 390635 - timestamp: 1763480857821 -- conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.12.0-py312hacf3034_0.conda - sha256: 07135cfa15838a555c14170a5dcc711531f14610a5c0226c8de343bd41f43e7c - md5: 671590123f02b3290f917e18062b4a2b + - pkg:pypi/coverage?source=hash-mapping + size: 410205 + timestamp: 1766951484026 +- conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.13.1-py314h10d0514_0.conda + sha256: 793cca85a1ab4747c7ad2e5babbc6216719d34dc73c465a7fe7edb024b04530f + md5: 66abbb27b2ed5b9797c5d686bbf97446 depends: - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - tomli license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=compressed-mapping - size: 380997 - timestamp: 1763480721107 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.12.0-py312h5748b74_0.conda - sha256: 22f2ea856e3f43ce9645c6bd08e6de1d97c5fc0d9412bd0d86ccfa6422d4e166 - md5: 143507f2b7b8b91e7f13dd1fdf5ac134 + - pkg:pypi/coverage?source=hash-mapping + size: 408489 + timestamp: 1766951503569 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.13.1-py312h04c11ed_0.conda + sha256: 1d146c94ff86121caf81c4fa34246369b8a34b94a7bc77bc3a5029b4fad1f117 + md5: 642464ee9b266754a47f664e6e0614f3 depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -2402,15 +2517,15 @@ packages: license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/coverage?source=compressed-mapping - size: 383339 - timestamp: 1763480811310 -- conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.12.0-py313hd650c13_0.conda - sha256: c82238a745d872df90c978b91d43ac427b15addcdde247fa76d139f3db0238c7 - md5: 160cc858a66e80efb54959b7161dbcd6 - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - pkg:pypi/coverage?source=hash-mapping + size: 383752 + timestamp: 1766951525579 +- conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.13.1-py314h2359020_0.conda + sha256: fd24db3e7d3407ae7a15cd636722c84ca26e4c274f639084cdd18afa6612fe5b + md5: c5cb6c314f63b0bd76c67775a515364d + depends: + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - tomli - ucrt >=10.0.20348.0 - vc >=14.3,<15 @@ -2419,8 +2534,8 @@ packages: license_family: APACHE purls: - pkg:pypi/coverage?source=hash-mapping - size: 416254 - timestamp: 1763480667705 + size: 434074 + timestamp: 1766951384017 - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.12.12-py312hd8ed1ab_1.conda noarch: generic sha256: b88c76a6d6b45378552ccfd9e88b2a073161fe83fd1294c8fa103ffd32f7934a @@ -2432,28 +2547,87 @@ packages: purls: [] size: 45767 timestamp: 1761175217281 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.10-py313hd8ed1ab_100.conda +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.2-py314hd8ed1ab_100.conda noarch: generic - sha256: af094d0dbefdc770f8cc183f167fdee7ab27933b783db28d8a8d73bc59a1b876 - md5: 461990e34c5d23c92026c758ed8f8cb3 + sha256: 9e345f306446500956ffb1414b773f5476f497d7a2b5335a59edd2c335209dbb + md5: 30f999d06f347b0116f0434624b6e559 depends: - - python >=3.13,<3.14.0a0 - - python_abi * *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi * *_cp314 license: Python-2.0 purls: [] - size: 48228 - timestamp: 1764752978745 -- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.13.9-py313hd8ed1ab_101.conda - noarch: generic - sha256: 31da683e8a15e2062adfb29c9fb23d4253550a0b3c9be1cd45530f88796b4644 - md5: 367133808e89325690562099851529c8 + size: 49298 + timestamp: 1765020324943 +- conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-46.0.3-py314h7fe84b3_1.conda + sha256: 4e5b7f8dc577e0b61ae57ba1f1e793ff3bd8e7e2a7d6a754eea142df85835d91 + md5: d0e78977207aa32cb3cefca519dce7f8 depends: - - python >=3.13,<3.14.0a0 - - python_abi * *_cp313 - license: Python-2.0 - purls: [] - size: 48397 - timestamp: 1761175097707 + - __glibc >=2.17,<3.0.a0 + - cffi >=1.14 + - libgcc >=14 + - openssl >=3.5.4,<4.0a0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + constrains: + - __glibc >=2.17 + license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT + license_family: BSD + purls: + - pkg:pypi/cryptography?source=hash-mapping + size: 1722394 + timestamp: 1764805382646 +- conda: https://conda.anaconda.org/conda-forge/osx-64/cryptography-46.0.3-py314he083015_1.conda + sha256: da141578085cfc2ea770b7c4013e7c464289b02d54f41f3f7eb69e6e5f8f23d5 + md5: a55e1ccb510f11e2b30ca44c02e98f97 + depends: + - __osx >=10.13 + - cffi >=1.14 + - openssl >=3.5.4,<4.0a0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + constrains: + - __osx >=10.13 + license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT + license_family: BSD + purls: + - pkg:pypi/cryptography?source=hash-mapping + size: 1655379 + timestamp: 1764806078430 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-46.0.3-py312hd13a024_1.conda + sha256: d9c000b52d51cbdbb3f7f566cf453d684361c20e96e125b5fca5cb2d339a2f94 + md5: afc792a91a796ebe05f883534ff0d437 + depends: + - __osx >=11.0 + - cffi >=1.14 + - openssl >=3.5.4,<4.0a0 + - python >=3.12,<3.13.0a0 + - python >=3.12,<3.13.0a0 *_cpython + - python_abi 3.12.* *_cp312 + constrains: + - __osx >=11.0 + license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT + license_family: BSD + purls: + - pkg:pypi/cryptography?source=hash-mapping + size: 1590711 + timestamp: 1764805756197 +- conda: https://conda.anaconda.org/conda-forge/win-64/cryptography-46.0.3-py314he884d78_1.conda + sha256: 71aaadb5294c99b012594a045b40794c69ebaf9b00f15f3ae46cdf17f35c4538 + md5: 50b7af7ca45a8b224ca78906036ba04c + depends: + - cffi >=1.14 + - openssl >=3.5.4,<4.0a0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: Apache-2.0 AND BSD-3-Clause AND PSF-2.0 AND MIT + license_family: BSD + purls: + - pkg:pypi/cryptography?source=hash-mapping + size: 1489074 + timestamp: 1764805638732 - conda: https://conda.anaconda.org/conda-forge/noarch/cycler-0.12.1-pyhcf101f3_2.conda sha256: bb47aec5338695ff8efbddbc669064a3b10fe34ad881fb8ad5d64fbfa6910ed1 md5: 4c2a8fef270f6c69591889b93f9f55c1 @@ -2463,7 +2637,7 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/cycler?source=compressed-mapping + - pkg:pypi/cycler?source=hash-mapping size: 14778 timestamp: 1764466758386 - conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-11.6.0-pyhcf101f3_0.conda @@ -2478,26 +2652,11 @@ packages: - typing_extensions >=4.6.0,<5.0.0 - python license: Apache-2.0 + license_family: APACHE purls: - pkg:pypi/cyclonedx-python-lib?source=hash-mapping size: 184428 timestamp: 1764716172329 -- conda: https://conda.anaconda.org/conda-forge/noarch/cyclonedx-python-lib-9.1.0-pyh29332c3_0.conda - sha256: a5a83ae022b60cc253a6d404edbae89adefbab60e72eaca719905ce968caea01 - md5: 1d0dd5d495cbc7e8a894d51d0b8c6599 - depends: - - license-expression >=30.0.0,<31.0.0 - - packageurl-python >=0.11,<2 - - py-serializable >=2,<3 - - python >=3.9 - - sortedcontainers >=2.4.0,<3.0.0 - - python - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/cyclonedx-python-lib?source=hash-mapping - size: 157734 - timestamp: 1740696355924 - conda: https://conda.anaconda.org/conda-forge/linux-64/cyrus-sasl-2.1.28-hd9c7081_0.conda sha256: ee09ad7610c12c7008262d713416d0b58bf365bc38584dce48950025850bdf3f md5: cae723309a49399d2949362f4ab5c9e4 @@ -2556,38 +2715,38 @@ packages: purls: [] size: 447649 timestamp: 1764536047944 -- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.17-py313h5d5ffb9_0.conda - sha256: 4c12ca7541d488f64ee92d6368e9a0a418e919c0b8c51517ff329b4259b4aaf8 - md5: be318961d544421f4c8d8a91bff4f118 +- conda: https://conda.anaconda.org/conda-forge/linux-64/debugpy-1.8.18-py314h42812f9_0.conda + sha256: 2803e9285da433a5d704a63ac9c64c87b5df9aaa1e2d48cc333e65d5a945912e + md5: 69635aa34b45d84c2599ff8b48094978 depends: - python - libgcc >=14 - - libstdcxx >=14 - - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 + - libstdcxx >=14 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/debugpy?source=hash-mapping - size: 2868018 - timestamp: 1758162048107 -- conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.17-py312hbfd3414_1.conda - sha256: 066c84ffd094fbb4b25f04e8b33067b8fbf0545d9e12e0dde612cbb2cb9b38d3 - md5: 04a0875917948e70c5e15e6dc8d59b6b + size: 2888322 + timestamp: 1765704065377 +- conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.19-py314h655ac26_0.conda + sha256: 12376d4bb6b55b40d21e148bcc796f5659119a6f424320f3591528eb944d19df + md5: dbe913e406e0c05777eb7a0447113158 depends: - python - - __osx >=10.13 + - __osx >=11.0 - libcxx >=19 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 license: MIT + license_family: MIT purls: - - pkg:pypi/debugpy?source=compressed-mapping - size: 2761941 - timestamp: 1764921246614 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.17-py312h56d30c9_1.conda - sha256: 3431eeb55a0cdebe5c474e37f6139fe5cc61e11198896ce1bb5f031d8e05d43f - md5: 3f2f3b54819c308c3dc043539de044c2 + - pkg:pypi/debugpy?source=hash-mapping + size: 2786288 + timestamp: 1765840809385 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.19-py312h56d30c9_0.conda + sha256: 1de7a56b4cc3e7d96165c78d436edfc417b2e3d015f9a0dc1b3bbd2ae7da4f86 + md5: 2542eb8df5bf05555b0c9abe65926ba3 depends: - python - __osx >=11.0 @@ -2595,24 +2754,26 @@ packages: - libcxx >=19 - python_abi 3.12.* *_cp312 license: MIT + license_family: MIT purls: - pkg:pypi/debugpy?source=compressed-mapping - size: 2750667 - timestamp: 1764921260892 -- conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.17-py313h927ade5_1.conda - sha256: 6a1008b10a9c3695511120dc2ceca8e8bbc4c6c38ed537dc92b9076f3da9c715 - md5: 80c2fd7798679ffcbb57b71f676bddb8 + size: 2751841 + timestamp: 1765840807484 +- conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.19-py314hb98de8c_0.conda + sha256: 0ad7f50f664ede3aafcd23458ce4f669f63e32f7efb74c0938260bdb829679df + md5: 3361deac30d356844406fbe6def54d5b depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: MIT + license_family: MIT purls: - - pkg:pypi/debugpy?source=compressed-mapping - size: 4002026 - timestamp: 1764921274655 + - pkg:pypi/debugpy?source=hash-mapping + size: 4021751 + timestamp: 1765840833937 - conda: https://conda.anaconda.org/conda-forge/noarch/decorator-5.2.1-pyhd8ed1ab_0.conda sha256: c17c6b9937c08ad63cb20a26f403a3234088e57d4455600974a0ce865cb14017 md5: 9ce473d1d1be1cc3810856a48b3fab32 @@ -2635,18 +2796,18 @@ packages: - pkg:pypi/defusedxml?source=hash-mapping size: 24062 timestamp: 1615232388757 -- conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.0-pyhcf101f3_1.conda - sha256: c0c91bd91e59940091cec1760db51a82a58e9c64edf4b808bd2da94201ccfdb4 - md5: eec5b361dbbaa69dba05050977a414b0 +- conda: https://conda.anaconda.org/conda-forge/noarch/dill-0.4.1-pyhcf101f3_0.conda + sha256: 1ef84c0cc4efd0c2d58c3cb365945edbd9ee42a1c54514d1ccba4b641005f757 + md5: 080a808fce955026bf82107d955d32da depends: - python >=3.10 - python license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/dill?source=hash-mapping - size: 94889 - timestamp: 1764517905571 + - pkg:pypi/dill?source=compressed-mapping + size: 95462 + timestamp: 1768863743943 - conda: https://conda.anaconda.org/conda-forge/noarch/distlib-0.4.0-pyhd8ed1ab_0.conda sha256: 6d977f0b2fc24fee21a9554389ab83070db341af6d6f09285360b2e09ef8b26e md5: 003b8ba0a94e2f1e117d0bd46aebc901 @@ -2668,52 +2829,52 @@ packages: - pkg:pypi/docutils?source=hash-mapping size: 402700 timestamp: 1733217860944 -- conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.3.1-h5888daf_0.conda - sha256: 1bcc132fbcc13f9ad69da7aa87f60ea41de7ed4d09f3a00ff6e0e70e1c690bc2 - md5: bfd56492d8346d669010eccafe0ba058 +- conda: https://conda.anaconda.org/conda-forge/linux-64/double-conversion-3.4.0-hecca717_0.conda + sha256: 40cdd1b048444d3235069d75f9c8e1f286db567f6278a93b4f024e5642cfaecc + md5: dbe3ec0f120af456b3477743ffd99b74 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libstdcxx >=13 + - libgcc >=14 + - libstdcxx >=14 license: BSD-3-Clause license_family: BSD purls: [] - size: 69544 - timestamp: 1739569648873 -- conda: https://conda.anaconda.org/conda-forge/osx-64/double-conversion-3.3.1-h240833e_0.conda - sha256: e402598ce9da5dde964671c96c5471851b723171dedc86e3a501cc43b7fcb2ab - md5: 3cb499563390702fe854a743e376d711 + size: 71809 + timestamp: 1765193127016 +- conda: https://conda.anaconda.org/conda-forge/osx-64/double-conversion-3.4.0-heffb93a_0.conda + sha256: db669549295bbbcd1cc2075f2f65f8b5047a20d976155630b581cd2807151298 + md5: b251c88f4ec1a4d59f4caf5224360909 depends: - __osx >=10.13 - - libcxx >=18 + - libcxx >=19 license: BSD-3-Clause license_family: BSD purls: [] - size: 66627 - timestamp: 1739569935278 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/double-conversion-3.3.1-h286801f_0.conda - sha256: 819867a009793fe719b74b2b5881a7e85dc13ce504c7260a9801f3b1970fd97b - md5: 4dce99b1430bf11b64432e2edcc428fa + size: 67409 + timestamp: 1765193493674 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/double-conversion-3.4.0-haf25636_0.conda + sha256: db030ff5dbfd444dfdb239244f589d688e9b81dd46f856ea6e0ed3276ba0b607 + md5: 461a798aafdd1bddb1538d1aa22d6068 depends: - __osx >=11.0 - - libcxx >=18 + - libcxx >=19 license: BSD-3-Clause license_family: BSD purls: [] - size: 63265 - timestamp: 1739569780916 -- conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.3.1-he0c23c2_0.conda - sha256: b1fee32ef36a98159f0a2a96c4e734dfc9adff73acd444940831b22c1fb6d5c0 - md5: e9a1402439c18a4e3c7a52e4246e9e1c + size: 64431 + timestamp: 1765193481660 +- conda: https://conda.anaconda.org/conda-forge/win-64/double-conversion-3.4.0-hac47afa_0.conda + sha256: 09e30a170e0da3e9847d449b594b5e55e6ae2852edd3a3680e05753a5e015605 + md5: 3d3caf4ccc6415023640af4b1b33060a depends: - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD purls: [] - size: 71355 - timestamp: 1739570178995 + size: 70943 + timestamp: 1765193243911 - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda sha256: ee6cf346d017d954255bbcbdb424cddea4d14e4ed7e9813e429db1d795d01144 md5: 8e662bd460bda79b1ea39194e3c4c9ab @@ -2736,16 +2897,16 @@ packages: - pkg:pypi/executing?source=hash-mapping size: 30753 timestamp: 1756729456476 -- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.0-pyhd8ed1ab_0.conda - sha256: 19025a4078ff3940d97eb0da29983d5e0deac9c3e09b0eabf897daeaf9d1114e - md5: 66b8b26023b8efdf8fcb23bac4b6325d +- conda: https://conda.anaconda.org/conda-forge/noarch/filelock-3.20.3-pyhd8ed1ab_0.conda + sha256: 8b90dc21f00167a7e58abb5141a140bdb31a7c5734fe1361b5f98f4a4183fd32 + md5: 2cfaaccf085c133a477f0a7a8657afe9 depends: - python >=3.10 license: Unlicense purls: - pkg:pypi/filelock?source=hash-mapping - size: 17976 - timestamp: 1759948208140 + size: 18661 + timestamp: 1768022315929 - conda: https://conda.anaconda.org/conda-forge/noarch/font-ttf-dejavu-sans-mono-2.37-hab24e00_0.tar.bz2 sha256: 58d7f40d2940dd0a8aa28651239adbf5613254df0f75789919c4e6762054403b md5: 0c96522c6bdaed4b1566d11387caaf45 @@ -2858,41 +3019,25 @@ packages: purls: [] size: 4059 timestamp: 1762351264405 -- conda: https://conda.anaconda.org/conda-forge/linux-64/fonttools-4.61.0-py313h3dea7bd_0.conda - sha256: edea7e66bb068551cab49335776e26e4003af3acec78d643d7142cd39a8db670 - md5: 92f09729a821c52943d4b0b3749a2380 - depends: - - __glibc >=2.17,<3.0.a0 - - brotli - - libgcc >=14 - - munkres - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: MIT - license_family: MIT - purls: - - pkg:pypi/fonttools?source=hash-mapping - size: 2956476 - timestamp: 1764353003818 -- conda: https://conda.anaconda.org/conda-forge/osx-64/fonttools-4.61.0-py312hacf3034_0.conda - sha256: 4c51486b2bf0603ece1f5f4a75fcca52b57ff9cc17acce1d336d671c0302a672 - md5: c0ef09bd6313da425e3b7700ce9858bc +- conda: https://conda.anaconda.org/conda-forge/noarch/fonttools-4.61.1-pyh7db6752_0.conda + sha256: bb74f1732065eb95c3ea4ae7f7ab29d6ddaafe6da32f009106bf9a335147cb77 + md5: d5da976e963e70364b9e3ff270842b9f depends: - - __osx >=10.13 - brotli - munkres - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.10 - unicodedata2 >=15.1.0 + track_features: + - fonttools_no_compile license: MIT license_family: MIT purls: - pkg:pypi/fonttools?source=hash-mapping - size: 2879146 - timestamp: 1764353535292 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.61.0-py312h5748b74_0.conda - sha256: b5ce806bc4061beb212d30cc312fd42339972506905212d9745108b3d2fc269b - md5: 581124b2a1391b41f7c9ea9cae1b699d + size: 834764 + timestamp: 1765632669874 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/fonttools-4.61.1-py312h5748b74_0.conda + sha256: d87752e84621f90e9350262200fef55f054472f7779323f51717b557208e2a16 + md5: c14625bf00c41c00cea174f459287fc4 depends: - __osx >=11.0 - brotli @@ -2905,25 +3050,8 @@ packages: license_family: MIT purls: - pkg:pypi/fonttools?source=hash-mapping - size: 2897086 - timestamp: 1764353307542 -- conda: https://conda.anaconda.org/conda-forge/win-64/fonttools-4.61.0-py313hd650c13_0.conda - sha256: e8e8109fc884f15f2b1ccb36fa8521326e207c3139ca1584d91d7e7b20a081d6 - md5: 9685716b38f2e59fd0fb8ed554bda89a - depends: - - brotli - - munkres - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - license: MIT - license_family: MIT - purls: - - pkg:pypi/fonttools?source=hash-mapping - size: 2510008 - timestamp: 1764353255971 + size: 2859891 + timestamp: 1765633073562 - conda: https://conda.anaconda.org/conda-forge/noarch/fqdn-1.5.1-pyhd8ed1ab_1.conda sha256: 2509992ec2fd38ab27c7cdb42cf6cadc566a1cc0d1021a2673475d9fa87c6276 md5: d3549fd50d450b6d9e7dddff25dd2110 @@ -3033,18 +3161,19 @@ packages: purls: [] size: 96336 timestamp: 1755102441729 -- conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhd8ed1ab_0.conda - sha256: f64b68148c478c3bfc8f8d519541de7d2616bf59d44485a5271041d40c061887 - md5: 4b69232755285701bc86a5afe4d9933a +- conda: https://conda.anaconda.org/conda-forge/noarch/h11-0.16.0-pyhcf101f3_1.conda + sha256: 96cac6573fd35ae151f4d6979bab6fbc90cb6b1fb99054ba19eb075da9822fcb + md5: b8993c19b0c32a2f7b66cbb58ca27069 depends: - - python >=3.9 + - python >=3.10 - typing_extensions + - python license: MIT license_family: MIT purls: - - pkg:pypi/h11?source=hash-mapping - size: 37697 - timestamp: 1745526482242 + - pkg:pypi/h11?source=compressed-mapping + size: 39069 + timestamp: 1767729720872 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.3.0-pyhcf101f3_0.conda sha256: 84c64443368f84b600bfecc529a1194a3b14c3656ee2e832d15a20e0329b6da3 md5: 164fc43f0b53b6e3a7bc7dce5e4f1dc9 @@ -3056,42 +3185,42 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/h2?source=compressed-mapping + - pkg:pypi/h2?source=hash-mapping size: 95967 timestamp: 1756364871835 -- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py313h253c126_101.conda - sha256: 2de2c63ad6e7483456f6ff359380df63edf32770c140ec08c904ff89b6ed3903 - md5: 5d90c98527ecc832287115d57c121062 +- conda: https://conda.anaconda.org/conda-forge/linux-64/h5py-3.15.1-nompi_py314hc32fe06_101.conda + sha256: 36f836d9212fda38e09e3d7c1e694996112456c1b1da1b1bb6c0072321559082 + md5: d5f709371311de1343675757978a50d5 depends: - __glibc >=2.17,<3.0.a0 - cached-property - hdf5 >=1.14.6,<1.14.7.0a0 - libgcc >=14 - numpy >=1.23,<3 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/h5py?source=hash-mapping - size: 1285688 - timestamp: 1764016673819 -- conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py312hcf08926_101.conda - sha256: 04644ecf6b71e804d8487a5d1b094d60d0d0e38e6f3f7f49f8c7df527a6e394c - md5: 8754d1f93fa0936d304d2ad2de09f7ba + size: 1291384 + timestamp: 1764016672412 +- conda: https://conda.anaconda.org/conda-forge/osx-64/h5py-3.15.1-nompi_py314hf613b1f_101.conda + sha256: 7df694dadfe5dae733617d27f31b392148b42f0068766c4d4c3dc6d8dd1d709d + md5: 60a46376d9f6bc9f84b7327a200d6753 depends: - __osx >=10.13 - cached-property - hdf5 >=1.14.6,<1.14.7.0a0 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/h5py?source=hash-mapping - size: 1146012 - timestamp: 1764017396488 + size: 1162048 + timestamp: 1764016999757 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/h5py-3.15.1-nompi_py312h4eecd6b_101.conda sha256: 914d4f00a4d8cb86a70ce60241acc631a0e9d0cd939c0091b06de2d6cef51a3b md5: 1f19a033f9c3f388c8f3d3c1643d6611 @@ -3106,18 +3235,18 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/h5py?source=compressed-mapping + - pkg:pypi/h5py?source=hash-mapping size: 1139768 timestamp: 1764017732485 -- conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py313hf7f959b_101.conda - sha256: 29a78560dca6e278cff35f31867ba19c5b632010fb4ed800ffe67e0679be22d1 - md5: 29bcfb479b3030e2c190f53058b9a345 +- conda: https://conda.anaconda.org/conda-forge/win-64/h5py-3.15.1-nompi_py314hc249e69_101.conda + sha256: 7a05562f2cf290b50de67eefef6ea704ec2356551a2683b767c511680562eeaa + md5: 4019722f94eac6540faf77d20cc4190d depends: - cached-property - hdf5 >=1.14.6,<1.14.7.0a0 - numpy >=1.23,<3 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -3125,77 +3254,77 @@ packages: license_family: BSD purls: - pkg:pypi/h5py?source=hash-mapping - size: 1052628 - timestamp: 1764017315797 -- conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.2.0-h15599e2_0.conda - sha256: 6bd8b22beb7d40562b2889dc68232c589ff0d11a5ad3addd41a8570d11f039d9 - md5: b8690f53007e9b5ee2c2178dd4ac778c + size: 1059478 + timestamp: 1764017347777 +- conda: https://conda.anaconda.org/conda-forge/linux-64/harfbuzz-12.3.0-h6083320_0.conda + sha256: eb0ff4632c76d5840ad8f509dc55694f79d9ac9bea5529944640e28e490361b0 + md5: 1ea5ed29aea252072b975a232b195146 depends: - __glibc >=2.17,<3.0.a0 - cairo >=1.18.4,<2.0a0 - graphite2 >=1.3.14,<2.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.7.1,<3.0a0 + - icu >=78.1,<79.0a0 + - libexpat >=2.7.3,<3.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 - libgcc >=14 - - libglib >=2.86.1,<3.0a0 + - libglib >=2.86.3,<3.0a0 - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 2411408 - timestamp: 1762372726141 -- conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.2.0-hc5d3ef4_0.conda - sha256: 352c0fe4445599c3081a41e16b91d66041f9115b9490b7f3daea63897f593385 - md5: 05a72f9d35dddd5bf534d7da4929297c + size: 2062122 + timestamp: 1766937132307 +- conda: https://conda.anaconda.org/conda-forge/osx-64/harfbuzz-12.3.0-h8b84c26_0.conda + sha256: fa0aa0ca5d0feb3cc798f571d11bb9f26db8a99617d434c07a3b1ec2762f835f + md5: a1abc59ee893b609e7df4e6df29a6743 depends: - __osx >=10.13 - cairo >=1.18.4,<2.0a0 - graphite2 >=1.3.14,<2.0a0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libcxx >=19 - - libexpat >=2.7.1,<3.0a0 + - libexpat >=2.7.3,<3.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 - - libglib >=2.86.1,<3.0a0 + - libglib >=2.86.3,<3.0a0 - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 1875555 - timestamp: 1762373120771 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.2.0-haf38c7b_0.conda - sha256: 2f8d95fe1cb655fe3bac114062963f08cc77b31b042027ef7a04ebde3ce21594 - md5: 1c7ff9d458dd8220ac2ee71dd4af1be5 + size: 1718278 + timestamp: 1766937132560 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/harfbuzz-12.3.0-h3103d1b_0.conda + sha256: ba0b187c8203558c2eb6fb00dbcef3ab78afbc4e0859d57730c9febd43dfed5e + md5: 37697784e23febce8eecb9c8e2554079 depends: - __osx >=11.0 - cairo >=1.18.4,<2.0a0 - graphite2 >=1.3.14,<2.0a0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libcxx >=19 - - libexpat >=2.7.1,<3.0a0 + - libexpat >=2.7.3,<3.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 - - libglib >=2.86.1,<3.0a0 + - libglib >=2.86.3,<3.0a0 - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 1537764 - timestamp: 1762373922469 -- conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.2.0-h5f2951f_0.conda - sha256: db73714c7f7e0c47b3b9db9302a83f2deb6f8d6081716d35710ef3c6756af6c3 - md5: e798ef748fc564e42f381d3d276850f0 + size: 1588871 + timestamp: 1766937395386 +- conda: https://conda.anaconda.org/conda-forge/win-64/harfbuzz-12.3.0-h5a1b470_0.conda + sha256: 158ebfb3ae932162e794da869505761d2d32677a3b80377abef1a3e3499d0c61 + md5: 0eb57e84ceeb62c0189827fe7966bdc5 depends: - cairo >=1.18.4,<2.0a0 - graphite2 >=1.3.14,<2.0a0 - - icu >=75.1,<76.0a0 - - libexpat >=2.7.1,<3.0a0 + - icu >=78.1,<79.0a0 + - libexpat >=2.7.3,<3.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 - - libglib >=2.86.1,<3.0a0 + - libglib >=2.86.3,<3.0a0 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 - vc >=14.2,<15 @@ -3203,33 +3332,33 @@ packages: license: MIT license_family: MIT purls: [] - size: 1138900 - timestamp: 1762373626704 -- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h6e4c0c1_103.conda - sha256: 4f173af9e2299de7eee1af3d79e851bca28ee71e7426b377e841648b51d48614 - md5: c74d83614aec66227ae5199d98852aaf + size: 1143524 + timestamp: 1766937684751 +- conda: https://conda.anaconda.org/conda-forge/linux-64/hdf5-1.14.6-nompi_h1b119a7_105.conda + sha256: aa85acd07b8f60d1760c6b3fa91dd8402572766e763f3989c759ecd266ed8e9f + md5: d58cd79121dd51128f2a5dab44edf1ea depends: - __glibc >=2.17,<3.0.a0 - libaec >=1.1.4,<2.0a0 - - libcurl >=8.14.1,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libgcc >=14 - libgfortran - libgfortran5 >=14.3.0 - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.1,<4.0a0 + - openssl >=3.5.4,<4.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 3710057 - timestamp: 1753357500665 -- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_hc1508a4_104.conda - sha256: aed322f0e8936960332305fbc213831a3cd301db5ea22c06e1293d953ddec563 - md5: 9425a5c53febdf71696aed291586d038 + size: 3722799 + timestamp: 1768858199331 +- conda: https://conda.anaconda.org/conda-forge/osx-64/hdf5-1.14.6-nompi_h4b07496_105.conda + sha256: e6e7d449e35318619cad887646a16536300d24fbf5475e3559773b217eb3622f + md5: bb19aadbe30c465c18c77678ac2eae09 depends: - __osx >=10.13 - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 @@ -3238,15 +3367,15 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 3528765 - timestamp: 1764773824647 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_hd3baa01_104.conda - sha256: 3cd591334a838b127dfe8a626f38241892063eac8873abb93255962c71155533 - md5: 5a1cbaf2349dd2e6dd6cfaab378de51b + size: 3531957 + timestamp: 1768859215229 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/hdf5-1.14.6-nompi_h51e7c0a_105.conda + sha256: 94f0b1eb8f1142f3df37456cf4f0203f6bb3e82646a2ea3c47f7d00661e2ab1c + md5: 5630e3f53d61d87caff83e0e1c6eaf33 depends: - __osx >=11.0 - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 @@ -3255,14 +3384,14 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 3292042 - timestamp: 1764771887501 -- conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_104.conda - sha256: cc948149f700033ff85ce4a1854edf6adcb5881391a3df5c40cbe2a793dd9f81 - md5: 9cc4a5567d46c7fcde99563e86522882 + size: 3299483 + timestamp: 1768858142380 +- conda: https://conda.anaconda.org/conda-forge/win-64/hdf5-1.14.6-nompi_h89f0904_105.conda + sha256: 52e5eb039289946a32aee305e6af777d77376dc0adcb2bdcc31633dcc48d21a5 + md5: c1caaf8a28c0eb3be85566e63a5fcb5a depends: - libaec >=1.1.4,<2.0a0 - - libcurl >=8.17.0,<9.0a0 + - libcurl >=8.18.0,<9.0a0 - libzlib >=1.3.1,<2.0a0 - openssl >=3.5.4,<4.0a0 - ucrt >=10.0.20348.0 @@ -3271,8 +3400,8 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 2028777 - timestamp: 1764771527382 + size: 2028299 + timestamp: 1768857717770 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.1.0-pyhd8ed1ab_0.conda sha256: 6ad78a180576c706aabeb5b4c8ceb97c0cb25f1e112d76495bff23e3779948ba md5: 0a802cb9888dd14eeefc611f05c40b6e @@ -3340,62 +3469,62 @@ packages: - 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 +- conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.2-h33c6efd_0.conda + sha256: 142a722072fa96cf16ff98eaaf641f54ab84744af81754c292cb81e0881c0329 + md5: 186a18e3ba246eccfc7cff00cd19a870 depends: - __glibc >=2.17,<3.0.a0 - - libgcc-ng >=12 - - libstdcxx-ng >=12 + - libgcc >=14 + - libstdcxx >=14 license: MIT license_family: MIT purls: [] - size: 12129203 - timestamp: 1720853576813 -- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-75.1-h120a0e1_0.conda - sha256: 2e64307532f482a0929412976c8450c719d558ba20c0962832132fd0d07ba7a7 - md5: d68d48a3060eb5abdc1cdc8e2a3a5966 + size: 12728445 + timestamp: 1767969922681 +- conda: https://conda.anaconda.org/conda-forge/osx-64/icu-78.2-h14c5de8_0.conda + sha256: f3066beae7fe3002f09c8a412cdf1819f49a2c9a485f720ec11664330cf9f1fe + md5: 30334add4de016489b731c6662511684 depends: - __osx >=10.13 license: MIT license_family: MIT purls: [] - size: 11761697 - timestamp: 1720853679409 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-75.1-hfee45f7_0.conda - sha256: 9ba12c93406f3df5ab0a43db8a4b4ef67a5871dfd401010fbe29b218b2cbe620 - md5: 5eb22c1d7b3fc4abb50d92d621583137 + size: 12263724 + timestamp: 1767970604977 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.2-h38cb7af_0.conda + sha256: d4cefbca587429d1192509edc52c88de52bc96c2447771ddc1f8bee928aed5ef + md5: 1e93aca311da0210e660d2247812fa02 depends: - __osx >=11.0 license: MIT license_family: MIT purls: [] - size: 11857802 - timestamp: 1720853997952 -- conda: https://conda.anaconda.org/conda-forge/win-64/icu-75.1-he0c23c2_0.conda - sha256: 1d04369a1860a1e9e371b9fc82dd0092b616adcf057d6c88371856669280e920 - md5: 8579b6bb8d18be7c0b27fb08adeeeb40 + size: 12358010 + timestamp: 1767970350308 +- conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.2-h637d24d_0.conda + sha256: 5a41fb28971342e293769fc968b3414253a2f8d9e30ed7c31517a15b4887246a + md5: 0ee3bb487600d5e71ab7d28951b2016a depends: - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: MIT license_family: MIT purls: [] - size: 14544252 - timestamp: 1720853966338 -- conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.15-pyhd8ed1ab_0.conda - sha256: 32d5007d12e5731867908cbf5345f5cd44a6c8755a2e8e63e15a184826a51f82 - md5: 25f954b7dae6dd7b0dc004dab74f1ce9 + size: 13222158 + timestamp: 1767970128854 +- conda: https://conda.anaconda.org/conda-forge/noarch/identify-2.6.16-pyhd8ed1ab_0.conda + sha256: 6a88cdde151469131df1948839ac2315ada99cf8d38aaacc9a7a5984e9cd8c19 + md5: 8bc5851c415865334882157127e75799 depends: - python >=3.10 - ukkonen license: MIT license_family: MIT purls: - - pkg:pypi/identify?source=hash-mapping - size: 79151 - timestamp: 1759437561529 + - pkg:pypi/identify?source=compressed-mapping + size: 79302 + timestamp: 1768295306539 - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.11-pyhd8ed1ab_0.conda sha256: ae89d0299ada2a3162c2614a9d26557a92aa6a77120ce142f8e0109bbf0342b0 md5: 53abe63df7e10a6ba605dc5f9f961d36 @@ -3431,6 +3560,20 @@ packages: - pkg:pypi/importlib-metadata?source=hash-mapping size: 34641 timestamp: 1747934053147 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib_resources-6.5.2-pyhd8ed1ab_0.conda + sha256: acc1d991837c0afb67c75b77fdc72b4bf022aac71fedd8b9ea45918ac9b08a80 + md5: c85c76dc67d75619a92f51dfbce06992 + depends: + - python >=3.9 + - zipp >=3.1.0 + constrains: + - importlib-resources >=6.5.2,<6.5.3.0a0 + license: Apache-2.0 + license_family: APACHE + purls: + - pkg:pypi/importlib-resources?source=hash-mapping + size: 33781 + timestamp: 1736252433366 - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.0-pyhd8ed1ab_0.conda sha256: e1a9e3b1c8fe62dc3932a616c284b5d8cbe3124bbfbedcf4ce5c828cb166ee19 md5: 9614359868482abba1bd15ce465e3c42 @@ -3439,7 +3582,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/iniconfig?source=compressed-mapping + - pkg:pypi/iniconfig?source=hash-mapping size: 13387 timestamp: 1760831448842 - conda: https://conda.anaconda.org/conda-forge/noarch/ipykernel-7.1.0-pyh5552912_0.conda @@ -3544,9 +3687,9 @@ packages: - pkg:pypi/ipympl?source=hash-mapping size: 240951 timestamp: 1760104175360 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.7.0-pyh53cf698_0.conda - sha256: b27fb08b14d82e896f35fe5ce889665aabb075bd540f9761c838d1d09a3d9704 - md5: 2d6b86a2e11b8cb2f20a432158ef10b9 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyh53cf698_0.conda + sha256: 4ff1733c59b72cf0c8ed9ddb6e948e99fc6b79b76989282c0c7a46aab56e6176 + md5: 8481978caa2f108e6ddbf8008a345546 depends: - __unix - pexpect >4.3 @@ -3564,34 +3707,12 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/ipython?source=hash-mapping - size: 643036 - timestamp: 1762350942197 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.8.0-pyh53cf698_0.conda - sha256: 8a72c9945dc4726ee639a9652b622ae6b03f3eba0e16a21d1c6e5bfb562f5a3f - md5: fd77b1039118a3e8ce1070ac8ed45bae - depends: - - __unix - - pexpect >4.3 - - decorator >=4.3.2 - - ipython_pygments_lexers >=1.0.0 - - jedi >=0.18.1 - - matplotlib-inline >=0.1.5 - - prompt-toolkit >=3.0.41,<3.1.0 - - pygments >=2.11.0 - - python >=3.11 - - stack_data >=0.6.0 - - traitlets >=5.13.0 - - typing_extensions >=4.6 - - python - license: BSD-3-Clause - purls: - pkg:pypi/ipython?source=compressed-mapping - size: 645145 - timestamp: 1764766793792 -- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.8.0-pyhe2676ad_0.conda - sha256: 7c6974866caaccb7eb827bb70523205601c10b8e89d724b193cb4e818f4db2bd - md5: 1bc380b3fd0ea85afdfe0aba5b6b7398 + size: 646242 + timestamp: 1767621166614 +- conda: https://conda.anaconda.org/conda-forge/noarch/ipython-9.9.0-pyhe2676ad_0.conda + sha256: 1697fae5859f61938ab44af38126115ad18fc059462bb370c5f8740d7bc4a803 + md5: fe785355648dec69d2f06fa14c9e6e84 depends: - __win - colorama >=0.4.4 @@ -3607,10 +3728,11 @@ packages: - typing_extensions >=4.6 - python license: BSD-3-Clause + license_family: BSD purls: - pkg:pypi/ipython?source=compressed-mapping - size: 644388 - timestamp: 1764766840112 + size: 645119 + timestamp: 1767621201570 - conda: https://conda.anaconda.org/conda-forge/noarch/ipython_pygments_lexers-1.1.1-pyhd8ed1ab_0.conda sha256: 894682a42a7d659ae12878dbcb274516a7031bbea9104e92f8e88c1f2765a104 md5: bd80ba060603cc228d9d81c257093119 @@ -3651,6 +3773,45 @@ packages: - pkg:pypi/isoduration?source=hash-mapping size: 19832 timestamp: 1733493720346 +- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.classes-3.4.0-pyhcf101f3_3.conda + sha256: 3cc991f0f09dfd00d2626e745ba68da03e4f1dcbb7b36dd20f7a7373643cd5d5 + md5: d59568bad316413c89831456e691de29 + depends: + - python >=3.10 + - more-itertools + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/jaraco-classes?source=hash-mapping + size: 14831 + timestamp: 1767294269456 +- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.context-6.1.0-pyhcf101f3_0.conda + sha256: 04c9f919dcc9edd18f748c47d809479812429af27c43c5562a861df22d5bda6a + md5: f34ec3aa0ea911a038d973d97603faf3 + depends: + - python >=3.10 + - backports.tarfile + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/jaraco-context?source=hash-mapping + size: 15566 + timestamp: 1768299702258 +- conda: https://conda.anaconda.org/conda-forge/noarch/jaraco.functools-4.4.0-pyhcf101f3_1.conda + sha256: 6a91447b3bb4d7ae94cc0d77ed12617796629aee11111efe7ea43cbd0e113bda + md5: aa83cc08626bf6b613a3103942be8951 + depends: + - python >=3.10 + - more-itertools + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/jaraco-functools?source=hash-mapping + size: 18744 + timestamp: 1767294193246 - conda: https://conda.anaconda.org/conda-forge/noarch/jedi-0.19.2-pyhd8ed1ab_1.conda sha256: 92c4d217e2dc68983f724aa983cca5464dcb929c566627b26a2511159667dba8 md5: a4f4c5dc9b80bc50e0d3dc4e6e8f1bd9 @@ -3662,6 +3823,17 @@ packages: - pkg:pypi/jedi?source=hash-mapping size: 843646 timestamp: 1733300981994 +- conda: https://conda.anaconda.org/conda-forge/noarch/jeepney-0.9.0-pyhd8ed1ab_0.conda + sha256: 00d37d85ca856431c67c8f6e890251e7cc9e5ef3724a0302b8d4a101f22aa27f + md5: b4b91eb14fbe2f850dd2c5fc20676c0d + depends: + - python >=3.9 + license: MIT + license_family: MIT + purls: + - pkg:pypi/jeepney?source=hash-mapping + size: 40015 + timestamp: 1740828380668 - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda sha256: fc9ca7348a4f25fed2079f2153ecdcf5f9cf2a0bc36c4172420ca09e1849df7b md5: 04558c96691bed63104678757beb4f8d @@ -3675,87 +3847,50 @@ packages: - pkg:pypi/jinja2?source=compressed-mapping size: 120685 timestamp: 1764517220861 -- pypi: https://files.pythonhosted.org/packages/31/b4/b9b800c45527aadd64d5b442f9b932b00648617eb5d63d2c7a6587b7cafc/jmespath-1.0.1-py3-none-any.whl +- pypi: https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl name: jmespath - version: 1.0.1 - sha256: 02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 - requires_python: '>=3.7' -- conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.12.1-pyhd8ed1ab_0.conda - sha256: 4e08ccf9fa1103b617a4167a270768de736a36be795c6cd34c2761100d332f74 - md5: 0fc93f473c31a2f85c0bde213e7c63ca + version: 1.1.0 + sha256: a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64 + requires_python: '>=3.9' +- conda: https://conda.anaconda.org/conda-forge/noarch/json5-0.13.0-pyhd8ed1ab_0.conda + sha256: ba03ca5a6db38d9f48bd30172e8c512dea7a686a5c7701c6fcdb7b3023dae2ad + md5: 8d5f66ebf832c4ce28d5c37a0e76605c depends: - - python >=3.9 + - python >=3.10 license: Apache-2.0 license_family: APACHE purls: - pkg:pypi/json5?source=hash-mapping - size: 34191 - timestamp: 1755034963991 -- conda: https://conda.anaconda.org/conda-forge/linux-64/jsonpointer-3.0.0-py313h78bf25f_2.conda - sha256: 9174f5209f835cc8918acddc279be919674d874179197e025181fe2a71cb0bce - md5: c1375f38e5f3ee38a9ee0e405a601c35 - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jsonpointer?source=hash-mapping - size: 18143 - timestamp: 1756754243113 -- conda: https://conda.anaconda.org/conda-forge/osx-64/jsonpointer-3.0.0-py312hb401068_2.conda - sha256: a945774394a13fb5f17a3f74038bd7788ffb46aff22aea9f56995e4719f57ee8 - md5: 7632694baab67c90efad51eb38e53fbd - depends: - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jsonpointer?source=hash-mapping - size: 18062 - timestamp: 1756754437263 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/jsonpointer-3.0.0-py312h81bd7bf_2.conda - sha256: 1580c22576df479b8a05370a162aa1bca8ba048f6f5c43ec9269e600c64f43b0 - md5: bfd72094f8390de02e426ac61fb7b8ee - depends: - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python_abi 3.12.* *_cp312 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/jsonpointer?source=hash-mapping - size: 18540 - timestamp: 1756754421272 -- conda: https://conda.anaconda.org/conda-forge/win-64/jsonpointer-3.0.0-py313hfa70ccb_2.conda - sha256: dda25a66128a7b883515a659cd53c694e735374ccfbfa87a998160a33679424a - md5: 8da802c2a92986f7054f97c45e0f4bee + size: 34017 + timestamp: 1767325114901 +- conda: https://conda.anaconda.org/conda-forge/noarch/jsonpointer-3.0.0-pyhcf101f3_3.conda + sha256: 1a1328476d14dfa8b84dbacb7f7cd7051c175498406dc513ca6c679dc44f3981 + md5: cd2214824e36b0180141d422aba01938 depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.10 + - python license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/jsonpointer?source=hash-mapping - size: 43276 - timestamp: 1756754377785 -- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.25.1-pyhe01879c_0.conda - sha256: ac377ef7762e49cb9c4f985f1281eeff471e9adc3402526eea78e6ac6589cf1d - md5: 341fd940c242cf33e832c0402face56f + size: 13967 + timestamp: 1765026384757 +- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-4.26.0-pyhcf101f3_0.conda + sha256: db973a37d75db8e19b5f44bbbdaead0c68dde745407f281e2a7fe4db74ec51d7 + md5: ada41c863af263cc4c5fcbaff7c3e4dc depends: - attrs >=22.2.0 - jsonschema-specifications >=2023.3.6 - - python >=3.9 + - python >=3.10 - referencing >=0.28.4 - - rpds-py >=0.7.1 + - rpds-py >=0.25.0 - python license: MIT license_family: MIT purls: - - pkg:pypi/jsonschema?source=hash-mapping - size: 81688 - timestamp: 1755595646123 + - pkg:pypi/jsonschema?source=compressed-mapping + size: 82356 + timestamp: 1767839954256 - conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-specifications-2025.9.1-pyhcf101f3_0.conda sha256: 0a4f3b132f0faca10c89fdf3b60e15abb62ded6fa80aebfc007d05965192aa04 md5: 439cd0f567d697b20a8f45cb70a1005a @@ -3769,11 +3904,11 @@ packages: - pkg:pypi/jsonschema-specifications?source=hash-mapping size: 19236 timestamp: 1757335715225 -- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.25.1-he01879c_0.conda - sha256: aef6705fe1335e6472e1b6365fcdb586356b18dceff72d8d6a315fc90e900ccf - md5: 13e31c573c884962318a738405ca3487 +- conda: https://conda.anaconda.org/conda-forge/noarch/jsonschema-with-format-nongpl-4.26.0-hcf101f3_0.conda + sha256: 6886fc61e4e4edd38fd38729976b134e8bd2143f7fce56cc80d7ac7bac99bce1 + md5: 8368d58342d0825f0843dc6acdd0c483 depends: - - jsonschema >=4.25.1,<4.25.2.0a0 + - jsonschema >=4.26.0,<4.26.1.0a0 - fqdn - idna - isoduration @@ -3786,8 +3921,8 @@ packages: license: MIT license_family: MIT purls: [] - size: 4744 - timestamp: 1755595646123 + size: 4740 + timestamp: 1767839954258 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter-lsp-2.3.0-pyhcf101f3_0.conda sha256: 897ad2e2c2335ef3c2826d7805e16002a1fd0d509b4ae0bc66617f0e0ff07bc2 md5: 62b7c96c6cd77f8173cc5cada6a9acaa @@ -3802,23 +3937,23 @@ packages: - pkg:pypi/jupyter-lsp?source=hash-mapping size: 60377 timestamp: 1756388269267 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.6.3-pyhd8ed1ab_1.conda - sha256: 19d8bd5bb2fde910ec59e081eeb59529491995ce0d653a5209366611023a0b3a - md5: 4ebae00eae9705b0c3d6d1018a81d047 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_client-8.8.0-pyhcf101f3_0.conda + sha256: e402bd119720862a33229624ec23645916a7d47f30e1711a4af9e005162b84f3 + md5: 8a3d6d0523f66cf004e563a50d9392b3 depends: - - importlib-metadata >=4.8.3 - - jupyter_core >=4.12,!=5.0.* - - python >=3.9 + - jupyter_core >=5.1 + - python >=3.10 - python-dateutil >=2.8.2 - - pyzmq >=23.0 - - tornado >=6.2 + - pyzmq >=25.0 + - tornado >=6.4.1 - traitlets >=5.3 + - python license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-client?source=hash-mapping - size: 106342 - timestamp: 1733441040958 + - pkg:pypi/jupyter-client?source=compressed-mapping + size: 112785 + timestamp: 1767954655912 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_core-5.9.1-pyh6dadd2b_0.conda sha256: ed709a6c25b731e01563521ef338b93986cd14b5bc17f35e9382000864872ccc md5: a8db462b01221e9f5135be466faeb3e0 @@ -3905,21 +4040,22 @@ packages: - pkg:pypi/jupyter-server?source=hash-mapping size: 347094 timestamp: 1755870522134 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.3-pyhd8ed1ab_1.conda - sha256: 0890fc79422191bc29edf17d7b42cff44ba254aa225d31eb30819f8772b775b8 - md5: 2d983ff1b82a1ccb6f2e9d8784bdd6bd +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyter_server_terminals-0.5.4-pyhcf101f3_0.conda + sha256: 5eda79ed9f53f590031d29346abd183051263227dd9ee667b5ca1133ce297654 + md5: 7b8bace4943e0dc345fc45938826f2b8 depends: - - python >=3.9 + - python >=3.10 - terminado >=0.8.3 + - python license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyter-server-terminals?source=hash-mapping - size: 19711 - timestamp: 1733428049134 -- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.0-pyhd8ed1ab_0.conda - sha256: 6f35218db61b7c42026a14b8c6630302ebbc7624a39f1aa65b8335c3e61cb401 - md5: e6dc3d6bf1591f0ebe8e77959e950660 + - pkg:pypi/jupyter-server-terminals?source=compressed-mapping + size: 22052 + timestamp: 1768574057200 +- conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab-4.5.3-pyhd8ed1ab_0.conda + sha256: 18b5bff46717023ef5e81ae6ba71b254c1aca474db32c6dc21897c46ea26fa75 + md5: 106f4e36e14797b9c2abfc3849d9e92f depends: - async-lru >=1.0.0 - httpx >=0.25.0,<1 @@ -3940,8 +4076,8 @@ packages: license_family: BSD purls: - pkg:pypi/jupyterlab?source=compressed-mapping - size: 8323112 - timestamp: 1763479901072 + size: 8554335 + timestamp: 1769190054941 - conda: https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.3.0-pyhd8ed1ab_2.conda sha256: dc24b900742fdaf1e077d9a3458fd865711de80bca95fe3c6d46610c532c6ef0 md5: fd312693df06da3578383232528c468d @@ -3986,9 +4122,63 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/jupyterlab-widgets?source=compressed-mapping + - pkg:pypi/jupyterlab-widgets?source=hash-mapping size: 216779 timestamp: 1762267481404 +- conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh534df25_0.conda + sha256: 9def5c6fb3b3b4952a4f6b55a019b5c7065b592682b84710229de5a0b73f6364 + md5: c88f9579d08eb4031159f03640714ce3 + depends: + - __osx + - importlib-metadata >=4.11.4 + - importlib_resources + - jaraco.classes + - jaraco.context + - jaraco.functools + - python >=3.10 + license: MIT + license_family: MIT + purls: + - pkg:pypi/keyring?source=hash-mapping + size: 37924 + timestamp: 1763320995459 +- conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyh7428d3b_0.conda + sha256: ed76a29fd1dbaf1bb24058191386618315ab9e35da9ef9a76da232cd6885165b + md5: e91b0f2040c580527ccc54665aa7cdba + depends: + - __win + - importlib-metadata >=4.11.4 + - importlib_resources + - jaraco.classes + - jaraco.context + - jaraco.functools + - python >=3.10 + - pywin32-ctypes >=0.2.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/keyring?source=hash-mapping + size: 38153 + timestamp: 1763320939579 +- conda: https://conda.anaconda.org/conda-forge/noarch/keyring-25.7.0-pyha804496_0.conda + sha256: 010718b1b1a35ce72782d38e6d6b9495d8d7d0dbea9a3e42901d030ff2189545 + md5: 9eeb0eaf04fa934808d3e070eebbe630 + depends: + - __linux + - importlib-metadata >=4.11.4 + - importlib_resources + - jaraco.classes + - jaraco.context + - jaraco.functools + - jeepney >=0.4.2 + - python >=3.10 + - secretstorage >=3.2 + license: MIT + license_family: MIT + purls: + - pkg:pypi/keyring?source=hash-mapping + size: 37717 + timestamp: 1763320674488 - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-hb9d3cd8_0.conda sha256: 0960d06048a7185d3542d850986d807c6e37ca2e644342dd0c72feefcf26c2a4 md5: b38117a3c920364aff79f870c984b4a3 @@ -3999,35 +4189,35 @@ packages: purls: [] size: 134088 timestamp: 1754905959823 -- conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py313hc8edb43_2.conda - sha256: 60d7d525db89401f88f5c91bdbb79d3afbf005e7d7c1326318659fa097607e51 - md5: 3e0e65595330e26515e31b7fc6d933c7 +- conda: https://conda.anaconda.org/conda-forge/linux-64/kiwisolver-1.4.9-py314h97ea11e_2.conda + sha256: a707d08c095d02148201f2da9fba465054fb750e33117e215892a4fefcc1b54a + md5: 57f1ce4f7ba6bcd460be8f83c8f04c69 depends: - python - - __glibc >=2.17,<3.0.a0 - libstdcxx >=14 - libgcc >=14 - - python_abi 3.13.* *_cp313 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/kiwisolver?source=hash-mapping - size: 77616 - timestamp: 1762488778882 -- conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py312h90e26e8_2.conda - sha256: 9e4e940969e6765bd2a13c76e131bcb02b8930a3c78adec0dbe83a8494b40a52 - md5: b85c7204ae22668690eb1e95640202c4 + size: 78071 + timestamp: 1762488742381 +- conda: https://conda.anaconda.org/conda-forge/osx-64/kiwisolver-1.4.9-py314hf3ac25a_2.conda + sha256: a9d220022002611515de26be256a08abcf046bf8e66a7d95d22cdef0842b0f84 + md5: 28a77c52c425fa9c6d914c609c626b1a depends: - python - libcxx >=19 - __osx >=10.13 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/kiwisolver?source=hash-mapping - size: 69024 - timestamp: 1762488958152 + size: 69742 + timestamp: 1762488879086 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/kiwisolver-1.4.9-py312hd8c8125_2.conda sha256: 8d68f6ec4d947902034fe9ed9d4a4c1180b5767bd9731af940f5a0e436bc3dfd md5: ddf4775023a2466ee308792ed80ca408 @@ -4043,9 +4233,9 @@ packages: - pkg:pypi/kiwisolver?source=hash-mapping size: 67752 timestamp: 1762488827477 -- conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py313h1a38498_2.conda - sha256: 40eafae7e9cdbe97eeb56ab0882816d3f68a2af4080a822f7349f986de2adeb6 - md5: f77249adfa3f0091e016610346affd09 +- conda: https://conda.anaconda.org/conda-forge/win-64/kiwisolver-1.4.9-py314hf309875_2.conda + sha256: ded907ab1ce24abcff20bc239e770ae7ef4cff6fdcfb8cc24ca59ebe736a1d3f + md5: e9d93271b021332f5492ff5478601614 depends: - python - vc >=14.3,<15 @@ -4054,13 +4244,13 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/kiwisolver?source=hash-mapping - size: 73825 - timestamp: 1762488792613 + size: 73670 + timestamp: 1762488752873 - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.21.3-h659f571_0.conda sha256: 99df692f7a8a5c27cd14b5fb1374ee55e756631b9c3d659ed3ee60830249b238 md5: 3f43953b7d3fb3aaa1d0d0723d91e368 @@ -4128,60 +4318,60 @@ packages: - pkg:pypi/lark?source=compressed-mapping size: 94312 timestamp: 1761596921009 -- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.17-h717163a_0.conda - sha256: d6a61830a354da022eae93fa896d0991385a875c6bba53c82263a289deda9db8 - md5: 000e85703f0fd9594c81710dd5066471 +- conda: https://conda.anaconda.org/conda-forge/linux-64/lcms2-2.18-h0c24ade_0.conda + sha256: 836ec4b895352110335b9fdcfa83a8dcdbe6c5fb7c06c4929130600caea91c0a + md5: 6f2e2c8f58160147c4d1c6f4c14cbac4 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libgcc >=14 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 license: MIT license_family: MIT purls: [] - size: 248046 - timestamp: 1739160907615 -- conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.17-h72f5680_0.conda - sha256: bcb81543e49ff23e18dea79ef322ab44b8189fb11141b1af99d058503233a5fc - md5: bf210d0c63f2afb9e414a858b79f0eaa + size: 249959 + timestamp: 1768184673131 +- conda: https://conda.anaconda.org/conda-forge/osx-64/lcms2-2.18-h90db99b_0.conda + sha256: 3ec16c491425999a8461e1b7c98558060a4645a20cf4c9ac966103c724008cc2 + md5: 753acc10c7277f953f168890e5397c80 depends: - __osx >=10.13 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 license: MIT license_family: MIT purls: [] - size: 226001 - timestamp: 1739161050843 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.17-h7eeda09_0.conda - sha256: 310a62c2f074ebd5aa43b3cd4b00d46385ce680fa2132ecee255a200e2d2f15f - md5: 92a61fd30b19ebd5c1621a5bfe6d8b5f + size: 226870 + timestamp: 1768184917403 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/lcms2-2.18-hdfa7624_0.conda + sha256: d768da024ab74a4b30642401877fa914a68bdc238667f16b1ec2e0e98b2451a6 + md5: 6631a7bd2335bb9699b1dbc234b19784 depends: - __osx >=11.0 - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 license: MIT license_family: MIT purls: [] - size: 212125 - timestamp: 1739161108467 -- conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.17-hbcf6048_0.conda - sha256: 7712eab5f1a35ca3ea6db48ead49e0d6ac7f96f8560da8023e61b3dbe4f3b25d - md5: 3538827f77b82a837fa681a4579e37a1 + size: 211756 + timestamp: 1768184994800 +- conda: https://conda.anaconda.org/conda-forge/win-64/lcms2-2.18-hf2c6c5f_0.conda + sha256: 7eeb18c5c86db146b62da66d9e8b0e753a52987f9134a494309588bbeceddf28 + md5: b6c68d6b829b044cd17a41e0a8a23ca1 depends: - - libjpeg-turbo >=3.0.0,<4.0a0 - - libtiff >=4.7.0,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libtiff >=4.7.1,<4.8.0a0 - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 license: MIT license_family: MIT purls: [] - size: 510641 - timestamp: 1739161381270 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_104.conda - sha256: 9e191baf2426a19507f1d0a17be0fdb7aa155cdf0f61d5a09c808e0a69464312 - md5: a6abd2796fc332536735f68ba23f7901 + size: 522238 + timestamp: 1768184858107 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.45-default_hbd61a6d_105.conda + sha256: 1027bd8aa0d5144e954e426ab6218fd5c14e54a98f571985675468b339c808ca + md5: 3ec0aa5037d39b06554109a01e6fb0c6 depends: - __glibc >=2.17,<3.0.a0 - zstd >=1.5.7,<1.6.0a0 @@ -4190,8 +4380,8 @@ packages: license: GPL-3.0-only license_family: GPL purls: [] - size: 725545 - timestamp: 1764007826689 + size: 730831 + timestamp: 1766513089214 - conda: https://conda.anaconda.org/conda-forge/linux-64/lerc-4.0.0-h0aef613_1.conda sha256: 412381a43d5ff9bbed82cd52a0bbca5b90623f62e41007c9c42d3870c60945ff md5: 9344155d33912347b37f0ae6c410a835 @@ -4284,73 +4474,76 @@ packages: purls: [] size: 33847 timestamp: 1749993666162 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-2_h4a7cf45_openblas.conda - build_number: 2 - sha256: 4287aa2742828dc869b09a17c9f1171903fc1146bdc8f7bdf62ffe5c20674f31 - md5: 6146bf1b7f58113d54614c6ec683c14a +- conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-5_h4a7cf45_openblas.conda + build_number: 5 + sha256: 18c72545080b86739352482ba14ba2c4815e19e26a7417ca21a95b76ec8da24c + md5: c160954f7418d7b6e87eaf05a8913fa9 depends: - libopenblas >=0.3.30,<0.3.31.0a0 - libopenblas >=0.3.30,<1.0a0 constrains: - - blas 2.302 openblas - - liblapacke 3.11.0 2*_openblas - mkl <2026 - - libcblas 3.11.0 2*_openblas - - liblapack 3.11.0 2*_openblas + - liblapack 3.11.0 5*_openblas + - libcblas 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 18495 - timestamp: 1763828445618 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-4_he492b99_openblas.conda - build_number: 4 - sha256: 293e5290eee6d9be5a817ba4e1830ba18b04be9d619c2bdffeacf8ba3b0bef8d - md5: fa78d175db3b07d8eb963558e1bd9228 + size: 18213 + timestamp: 1765818813880 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-5_he492b99_openblas.conda + build_number: 5 + sha256: 4754de83feafa6c0b41385f8dab1b13f13476232e16f524564a340871a9fc3bc + md5: 36d2e68a156692cbae776b75d6ca6eae depends: - libopenblas >=0.3.30,<0.3.31.0a0 - libopenblas >=0.3.30,<1.0a0 constrains: + - liblapack 3.11.0 5*_openblas + - blas 2.305 openblas + - libcblas 3.11.0 5*_openblas - mkl <2026 - - liblapack 3.11.0 4*_openblas - - libcblas 3.11.0 4*_openblas - - liblapacke 3.11.0 4*_openblas - - blas 2.304 openblas + - liblapacke 3.11.0 5*_openblas license: BSD-3-Clause + license_family: BSD purls: [] - size: 18702 - timestamp: 1764824607451 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-4_h51639a9_openblas.conda - build_number: 4 - sha256: db31cdcd24b9f4be562c37a780d6a665f5eddc88a97d59997e293d91c522ffc1 - md5: f5c7d8c3256cd95d5ec31afc24c9dd30 + size: 18476 + timestamp: 1765819054657 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-5_h51639a9_openblas.conda + build_number: 5 + sha256: 620a6278f194dcabc7962277da6835b1e968e46ad0c8e757736255f5ddbfca8d + md5: bcc025e2bbaf8a92982d20863fe1fb69 depends: - libopenblas >=0.3.30,<0.3.31.0a0 - libopenblas >=0.3.30,<1.0a0 constrains: - - libcblas 3.11.0 4*_openblas - - blas 2.304 openblas - - liblapack 3.11.0 4*_openblas - - liblapacke 3.11.0 4*_openblas + - libcblas 3.11.0 5*_openblas + - liblapack 3.11.0 5*_openblas + - liblapacke 3.11.0 5*_openblas + - blas 2.305 openblas - mkl <2026 license: BSD-3-Clause + license_family: BSD purls: [] - size: 18767 - timestamp: 1764824430403 -- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-4_hf2e6a31_mkl.conda - build_number: 4 - sha256: 0c6ecdabcd3c5b92c7be68a65c30c29983040dd81f502d2e9ad3763fdbbabdef - md5: 97ec87aab53fb310e6c19cde2eec1de2 + size: 18546 + timestamp: 1765819094137 +- conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-5_hf2e6a31_mkl.conda + build_number: 5 + sha256: f0cb7b2697461a306341f7ff32d5b361bb84f3e94478464c1e27ee01fc8f276b + md5: f9decf88743af85c9c9e05556a4c47c0 depends: - mkl >=2025.3.0,<2026.0a0 constrains: - - liblapacke 3.11.0 4*_mkl - - libcblas 3.11.0 4*_mkl - - liblapack 3.11.0 4*_mkl - - blas 2.304 mkl + - liblapack 3.11.0 5*_mkl + - libcblas 3.11.0 5*_mkl + - blas 2.305 mkl + - liblapacke 3.11.0 5*_mkl license: BSD-3-Clause + license_family: BSD purls: [] - size: 67784 - timestamp: 1764824188313 + size: 67438 + timestamp: 1765819100043 - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.0-hb03c661_1.conda sha256: 318f36bd49ca8ad85e6478bd8506c88d82454cc008c1ac1c6bf00a3c42fa610e md5: 72c8fd1af66bd67bf580645b426513ed @@ -4488,66 +4681,69 @@ packages: purls: [] size: 252903 timestamp: 1764017901735 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-2_h0358290_openblas.conda - build_number: 2 - sha256: 02286c8941f156d11087dedc551b86b99bd55d9d4bdef61316566a2fc133608b - md5: a84b2b7ed34206d14739fb8d29cd2799 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-5_h0358290_openblas.conda + build_number: 5 + sha256: 0cbdcc67901e02dc17f1d19e1f9170610bd828100dc207de4d5b6b8ad1ae7ad8 + md5: 6636a2b6f1a87572df2970d3ebc87cc0 depends: - - libblas 3.11.0 2_h4a7cf45_openblas + - libblas 3.11.0 5_h4a7cf45_openblas constrains: - - blas 2.302 openblas - - liblapacke 3.11.0 2*_openblas - - liblapack 3.11.0 2*_openblas + - liblapacke 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapack 3.11.0 5*_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 18458 - timestamp: 1763828452799 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-4_h9b27e0a_openblas.conda - build_number: 4 - sha256: 2412cc96eda9455cdddc6221b023df738f4daef269007379d06cfe79cfd065be - md5: 4ebb29d020eb3c2c8ac9674d8cfa4a31 + size: 18194 + timestamp: 1765818837135 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-5_h9b27e0a_openblas.conda + build_number: 5 + sha256: 8077c29ea720bd152be6e6859a3765228cde51301fe62a3b3f505b377c2cb48c + md5: b31d771cbccff686e01a687708a7ca41 depends: - - libblas 3.11.0 4_he492b99_openblas + - libblas 3.11.0 5_he492b99_openblas constrains: - - liblapacke 3.11.0 4*_openblas - - liblapack 3.11.0 4*_openblas - - blas 2.304 openblas + - liblapack 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas license: BSD-3-Clause + license_family: BSD purls: [] - size: 18690 - timestamp: 1764824633990 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-4_hb0561ab_openblas.conda - build_number: 4 - sha256: fd57f4c8863ac78f42c55ee68351c963fe14fb3d46575c6f236082076690dd0f - md5: be77be52a6f01b46b1eb9aa5270023cc + size: 18484 + timestamp: 1765819073006 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-5_hb0561ab_openblas.conda + build_number: 5 + sha256: 38809c361bbd165ecf83f7f05fae9b791e1baa11e4447367f38ae1327f402fc0 + md5: efd8bd15ca56e9d01748a3beab8404eb depends: - - libblas 3.11.0 4_h51639a9_openblas + - libblas 3.11.0 5_h51639a9_openblas constrains: - - liblapack 3.11.0 4*_openblas - - blas 2.304 openblas - - liblapacke 3.11.0 4*_openblas + - liblapacke 3.11.0 5*_openblas + - liblapack 3.11.0 5*_openblas + - blas 2.305 openblas license: BSD-3-Clause + license_family: BSD purls: [] - size: 18722 - timestamp: 1764824449333 -- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-4_h2a3cdd5_mkl.conda - build_number: 4 - sha256: 4cd0f2ec9823995a74b73c0119201dcf9a28444bdc2f0a824dfa938b5bdd5601 - md5: 64410b46ecf6fdfd19eb1d124d9eb450 + size: 18548 + timestamp: 1765819108956 +- conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-5_h2a3cdd5_mkl.conda + build_number: 5 + sha256: 49dc59d8e58360920314b8d276dd80da7866a1484a9abae4ee2760bc68f3e68d + md5: b3fa8e8b55310ba8ef0060103afb02b5 depends: - - libblas 3.11.0 4_hf2e6a31_mkl + - libblas 3.11.0 5_hf2e6a31_mkl constrains: - - liblapacke 3.11.0 4*_mkl - - liblapack 3.11.0 4*_mkl - - blas 2.304 mkl + - liblapack 3.11.0 5*_mkl + - liblapacke 3.11.0 5*_mkl + - blas 2.305 mkl license: BSD-3-Clause + license_family: BSD purls: [] - size: 68001 - timestamp: 1764824219221 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_hc369343_5.conda - sha256: 16ff6eea7319f5e7a8091028e6ed66a33b0ea5a859075354b93674e6f0a1087a - md5: 51c684dbc10be31478e7fc0e85d27bfe + size: 68079 + timestamp: 1765819124349 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang-cpp19.1-19.1.7-default_hd70426c_7.conda + sha256: 3e8588828d2586722328ea39a7cf48c50a32f7661b55299075741ef7c8875ad5 + md5: b671ac86f33848f3bc3a6066d21c37dd depends: - __osx >=10.13 - libcxx >=19.1.7 @@ -4555,11 +4751,11 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 14856234 - timestamp: 1759436552121 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_h73dfc95_5.conda - sha256: 6e62da7915a4a8b8bcd9a646e23c8a2180015d85a606c2a64e2385e6d0618949 - md5: 0b1110de04b80ea62e93fef6f8056fbb + size: 14856190 + timestamp: 1767958815491 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang-cpp19.1-19.1.7-default_hf3020a7_7.conda + sha256: 89b8aed26ef89c9e56939d1acefa91ecf2e198923bfcc41f116c0de42ce869cb + md5: 5600ae1b88144099572939e773f4b20b depends: - __osx >=11.0 - libcxx >=19.1.7 @@ -4567,61 +4763,61 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 14064272 - timestamp: 1759435091038 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.6-default_h99862b1_0.conda - sha256: 314f4c4980c18138659fdd0c75385c1a88ff6bef2ac7890d1df76f9b2d5e1a5f - md5: 0fcc9b4d3fc5e5010a7098318d9b7971 + size: 14062741 + timestamp: 1767957389675 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang-cpp21.1-21.1.8-default_h99862b1_1.conda + sha256: fd494cb13a139067a00dab2a641347c692abc149bcae6872502640b14e12dc4d + md5: e933f92cedca212eb2916f24823cf90b depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - libllvm21 >=21.1.6,<21.2.0a0 + - libllvm21 >=21.1.8,<21.2.0a0 - libstdcxx >=14 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 21054536 - timestamp: 1763564022522 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.6-default_h746c552_0.conda - sha256: 83d89825255c0d0153687a74b69c460292d81876f5a71e94e22110702ad3e875 - md5: f5b64315835b284c7eb5332202b1e14b + size: 21054217 + timestamp: 1767834505759 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libclang13-21.1.8-default_h746c552_1.conda + sha256: 4507075f64c65b45b049e5b19842186d25c99af4b4922910f231776e46d33799 + md5: e00afd65b88a3258212661b32c1469cb depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - libllvm21 >=21.1.6,<21.2.0a0 + - libllvm21 >=21.1.8,<21.2.0a0 - libstdcxx >=14 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 12339318 - timestamp: 1763564209593 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang13-21.1.7-default_h7f9524c_1.conda - sha256: 74d48aec97450693d0fe4b79dd4e26db7a4f1d153ddcccce960b84eb6b336e7b - md5: dd2c2b9c0664674c07ce22d12248269e + size: 12348581 + timestamp: 1767834784207 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libclang13-21.1.8-default_h5e75a71_1.conda + sha256: b018efaa46e503268dec68c8f1ea847d4407610cb23c32978384201a320398f6 + md5: 20e0cc1afc87a040916d7853dfd47754 depends: - __osx >=10.13 - - libcxx >=21.1.7 - - libllvm21 >=21.1.7,<21.2.0a0 + - libcxx >=21.1.8 + - libllvm21 >=21.1.8,<21.2.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 9007765 - timestamp: 1764817887869 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-21.1.7-default_h6e8f826_1.conda - sha256: c17385afe2e1d2f734cac2e894b8ac60140b00d0a68aeb21957b9c53fd3fd382 - md5: fccb9a3d900c3ce73ffc16ba68d6557b + size: 9009818 + timestamp: 1767832314144 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libclang13-21.1.8-default_h13b06bd_1.conda + sha256: 0a1ea685b40a77007fb32f0f2e5fd8f24fbcd9ba16ae8d3adf772997f334c3ac + md5: 6cfec3e38d9e33829b2168997dbd10be depends: - __osx >=11.0 - - libcxx >=21.1.7 - - libllvm21 >=21.1.7,<21.2.0a0 + - libcxx >=21.1.8 + - libllvm21 >=21.1.8,<21.2.0a0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 8516384 - timestamp: 1764812281566 -- conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-21.1.7-default_ha2db4b5_1.conda - sha256: 9153b722591aac572b2384daac7f5071d59b746239e6d5b74b06844e49339ec7 - md5: 065bcc5d1a29de06d4566b7b9ac89882 + size: 8516356 + timestamp: 1767830007376 +- conda: https://conda.anaconda.org/conda-forge/win-64/libclang13-21.1.8-default_ha2db4b5_1.conda + sha256: a2e28d6196f83eddb1c62f19ec9c0a95c3ff74660bc732a54ab00332a4b59318 + md5: 2dfbc5aaac3424065eb81ec9a9f49761 depends: - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 @@ -4631,8 +4827,8 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 28995533 - timestamp: 1764820055107 + size: 28993550 + timestamp: 1767841215595 - conda: https://conda.anaconda.org/conda-forge/linux-64/libcups-2.3.3-hb8b1518_5.conda sha256: cb83980c57e311783ee831832eb2c20ecb41e7dee6e86e8b70b8cef0e43eab55 md5: d4a250da4737ee127fb1fa6452a9002e @@ -4647,9 +4843,9 @@ packages: purls: [] size: 4523621 timestamp: 1749905341688 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.17.0-h4e3cde8_0.conda - sha256: 100e29ca864c32af15a5cc354f502d07b2600218740fdf2439fa7d66b50b3529 - md5: 01e149d4a53185622dc2e788281961f2 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.18.0-h4e3cde8_0.conda + sha256: 5454709d9fb6e9c3dd6423bc284fa7835a7823bfa8323f6e8786cdd555101fab + md5: 0a5563efed19ca4461cf927419b6eb73 depends: - __glibc >=2.17,<3.0.a0 - krb5 >=1.21.3,<1.22.0a0 @@ -4662,11 +4858,11 @@ packages: license: curl license_family: MIT purls: [] - size: 460366 - timestamp: 1762333743748 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.17.0-h7dd4100_0.conda - sha256: a58ca5a28c1cb481f65800781cee9411bd68e8bda43a69817aaeb635d25f7d75 - md5: b3985ef7ca4cd2db59756bae2963283a + size: 462942 + timestamp: 1767821743793 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.18.0-h9348e2b_0.conda + sha256: 1a0af3b7929af3c5893ebf50161978f54ae0256abb9532d4efba2735a0688325 + md5: de1910529f64ba4a9ac9005e0be78601 depends: - __osx >=10.13 - krb5 >=1.21.3,<1.22.0a0 @@ -4678,11 +4874,11 @@ packages: license: curl license_family: MIT purls: [] - size: 412858 - timestamp: 1762334472915 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.17.0-hdece5d2_0.conda - sha256: 2980c5de44ac3ca2ecbd4a00756da1648ea2945d9e4a2ad9f216c7787df57f10 - md5: 791003efe92c17ed5949b309c61a5ab1 + size: 419089 + timestamp: 1767822218800 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.18.0-he38603e_0.conda + sha256: 11c78b3e89bc332933386f0a11ac60d9200afb7a811b9e3bec98aef8d4a6389b + md5: 36190179a799f3aee3c2d20a8a2b970d depends: - __osx >=11.0 - krb5 >=1.21.3,<1.22.0a0 @@ -4694,11 +4890,11 @@ packages: license: curl license_family: MIT purls: [] - size: 394183 - timestamp: 1762334288445 -- conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.17.0-h43ecb02_0.conda - sha256: 651daa5d2bad505b5c72b1d5d4d8c7fc0776ab420e67af997ca9391b6854b1b3 - md5: cfade9be135edb796837e7d4c288c0fb + size: 402681 + timestamp: 1767822693908 +- conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.18.0-h43ecb02_0.conda + sha256: 86258e30845571ea13855e8a0605275905781476f3edf8ae5df90a06fcada93a + md5: 2688214a9bee5d5650cd4f5f6af5c8f2 depends: - krb5 >=1.21.3,<1.22.0a0 - libssh2 >=1.11.1,<2.0a0 @@ -4709,28 +4905,28 @@ packages: license: curl license_family: MIT purls: [] - size: 378897 - timestamp: 1762333969177 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.7-h3d58e20_0.conda - sha256: 0ac1b1d1072a14fe8fd3a871c8ca0b411f0fdf30de70e5c95365a149bd923ac8 - md5: 67c086bf0efc67b54a235dd9184bd7a2 + size: 383261 + timestamp: 1767821977053 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-21.1.8-h3d58e20_0.conda + sha256: cbd8e821e97436d8fc126c24b50df838b05ba4c80494fbb93ccaf2e3b2d109fb + md5: 9f8a60a77ecafb7966ca961c94f33bd1 depends: - __osx >=10.13 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 571564 - timestamp: 1764676139160 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.7-hf598326_0.conda - sha256: 4bdbef0241b52e7a8552e8af7425f0b56d5621dd69df46c816546fefa17d77ab - md5: 0de94f39727c31c0447e408c5a210a56 + size: 569777 + timestamp: 1765919624323 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-21.1.8-hf598326_0.conda + sha256: 82e228975fd491bcf1071ecd0a6ec2a0fcc5f57eb0bd1d52cb13a18d57c67786 + md5: 780f0251b757564e062187044232c2b7 depends: - __osx >=11.0 license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 568715 - timestamp: 1764676451068 + size: 569118 + timestamp: 1765919724254 - conda: https://conda.anaconda.org/conda-forge/linux-64/libdeflate-1.25-h17f619e_0.conda sha256: aa8e8c4be9a2e81610ddf574e05b64ee131fab5e0e3693210c9d6d2fba32c680 md5: 6c77a605a7a689d17d4819c0f8ac9a00 @@ -5044,20 +5240,20 @@ packages: purls: [] size: 340264 timestamp: 1757946133889 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-15.2.0-he0feb66_14.conda - sha256: 947bfbe5e47cd5d0cbdb0926d4baadb3e9be25caca7c6c6ef516f7ef85052cec - md5: 550dceb769d23bcf0e2f97fd4062d720 +- 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: - - libgomp 15.2.0 he0feb66_14 - - libgcc-ng ==15.2.0=*_14 + - 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: 1041047 - timestamp: 1764277103389 + size: 1042798 + timestamp: 1765256792743 - conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-15.2.0-h08519bb_15.conda sha256: e04b115ae32f8cbf95905971856ff557b296511735f4e1587b88abf519ff6fb8 md5: c816665789d1e47cdfd6da8a81e1af64 @@ -5067,57 +5263,60 @@ packages: - libgomp 15.2.0 15 - libgcc-ng ==15.2.0=*_15 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] size: 422960 timestamp: 1764839601296 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_15.conda - sha256: 42515b0e242b7e9e0909652a7bbe053c827aa86b57803c334fd69cbe5ebc3363 - md5: 9633bbd83cdc75ca0d325bf26fa32375 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-15.2.0-hcbb3090_16.conda + sha256: 646c91dbc422fe92a5f8a3a5409c9aac66549f4ce8f8d1cab7c2aa5db789bb69 + md5: 8b216bac0de7a9d60f3ddeba2515545c depends: - _openmp_mutex constrains: - - libgcc-ng ==15.2.0=*_15 - - libgomp 15.2.0 15 + - libgcc-ng ==15.2.0=*_16 + - libgomp 15.2.0 16 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 402189 - timestamp: 1764837679327 -- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.2.0-h8ee18e1_15.conda - sha256: 4488ea36bdef6e6ad088aff604316cfd779723a514b6f7b7fc9d55dbdd255b63 - md5: e05ab7ace69b10ae32f8a710a5971f4f + size: 402197 + timestamp: 1765258985740 +- conda: https://conda.anaconda.org/conda-forge/win-64/libgcc-15.2.0-h8ee18e1_16.conda + sha256: 24984e1e768440ba73021f08a1da0c1ec957b30d7071b9a89b877a273d17cae8 + md5: 1edb8bd8e093ebd31558008e9cb23b47 depends: - _openmp_mutex >=4.5 - libwinpthread >=12.0.0.r4.gg4f2fc60ca constrains: - - libgcc-ng ==15.2.0=*_15 + - libgomp 15.2.0 h8ee18e1_16 + - libgcc-ng ==15.2.0=*_16 - msys2-conda-epoch <0.0a0 - - libgomp 15.2.0 h8ee18e1_15 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 819575 - timestamp: 1764840888141 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_14.conda - sha256: 48a77fde940b4b877c0ed24efd562c135170a46d100c07cd2d7b67e842e30642 - md5: 6c13aaae36d7514f28bd5544da1a7bb8 + size: 819696 + timestamp: 1765260437409 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-15.2.0-h69a702a_16.conda + sha256: 5f07f9317f596a201cc6e095e5fc92621afca64829785e483738d935f8cab361 + md5: 5a68259fac2da8f2ee6f7bfe49c9eb8b depends: - - libgcc 15.2.0 he0feb66_14 + - libgcc 15.2.0 he0feb66_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 27157 - timestamp: 1764277114484 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_14.conda - sha256: 8112c883156c256e26f15cba033b1b7c3de747bc3823497498d34b9fcd2187b6 - md5: fa9d91abc5a9db36fa8dcd1b9a602e61 + size: 27256 + timestamp: 1765256804124 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-15.2.0-h69a702a_16.conda + sha256: 8a7b01e1ee1c462ad243524d76099e7174ebdd94ff045fe3e9b1e58db196463b + md5: 40d9b534410403c821ff64f00d0adc22 depends: - - libgfortran5 15.2.0 h68bc16d_14 + - libgfortran5 15.2.0 h68bc16d_16 constrains: - - libgfortran-ng ==15.2.0=*_14 + - libgfortran-ng ==15.2.0=*_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 27090 - timestamp: 1764277154740 + size: 27215 + timestamp: 1765256845586 - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-15.2.0-h7e5c614_15.conda sha256: 7bb4d51348e8f7c1a565df95f4fc2a2021229d42300aab8366eda0ea1af90587 md5: a089323fefeeaba2ae60e1ccebf86ddc @@ -5126,23 +5325,25 @@ packages: constrains: - libgfortran-ng ==15.2.0=*_15 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] size: 139002 timestamp: 1764839892631 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_15.conda - sha256: aca978d4fe96c3838e87fe607888267a9d5a3a99159535a0ba418f781639eaab - md5: 5c9f004d0b98ce792a022f1095d1b338 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-15.2.0-h07b0088_16.conda + sha256: 68a6c1384d209f8654112c4c57c68c540540dd8e09e17dd1facf6cf3467798b5 + md5: 11e09edf0dde4c288508501fe621bab4 depends: - - libgfortran5 15.2.0 hdae7583_15 + - libgfortran5 15.2.0 hdae7583_16 constrains: - - libgfortran-ng ==15.2.0=*_15 + - libgfortran-ng ==15.2.0=*_16 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 138828 - timestamp: 1764837867299 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_14.conda - sha256: a32c45c9652dfd832fb860898f818fb34e6ad47933fcce24cf323bf0b6914f24 - md5: 3078a2a9a58566a54e579b41b9e88c84 + size: 138630 + timestamp: 1765259217400 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-15.2.0-h68bc16d_16.conda + sha256: d0e974ebc937c67ae37f07a28edace978e01dc0f44ee02f29ab8a16004b8148b + md5: 39183d4e0c05609fd65f130633194e37 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=15.2.0 @@ -5151,8 +5352,8 @@ packages: license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 2480588 - timestamp: 1764277129524 + size: 2480559 + timestamp: 1765256819588 - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-15.2.0-hd16e46c_15.conda sha256: 456385a7d3357d5fdfc8e11bf18dcdf71753c4016c440f92a2486057524dd59a md5: c2a6149bf7f82774a0118b9efef966dd @@ -5161,20 +5362,22 @@ packages: constrains: - libgfortran 15.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] size: 1061950 timestamp: 1764839609607 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_15.conda - sha256: a257f9994212496fdfa27f20e20ab3554099e95d8d12e5a4f5cd889a96f3da90 - md5: 75737d092770ee4695e13f6b181bdbd2 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-15.2.0-hdae7583_16.conda + sha256: 9fb7f4ff219e3fb5decbd0ee90a950f4078c90a86f5d8d61ca608c913062f9b0 + md5: 265a9d03461da24884ecc8eb58396d57 depends: - libgcc >=15.2.0 constrains: - libgfortran 15.2.0 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 598504 - timestamp: 1764837685572 + size: 598291 + timestamp: 1765258993165 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgl-1.7.0-ha4b6fd6_2.conda sha256: dc2752241fa3d9e40ce552c1942d0a4b5eeb93740c9723873f6fcf8d39ef8d2d md5: 928b8be80851f5d8ffb016f9c81dae7a @@ -5186,72 +5389,72 @@ packages: purls: [] size: 134712 timestamp: 1731330998354 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.2-h32235b2_0.conda - sha256: 918306d6ed211ab483e4e19368e5748b265d24e75c88a1c66a61f72b9fa30b29 - md5: 0cb0612bc9cb30c62baf41f9d600611b +- conda: https://conda.anaconda.org/conda-forge/linux-64/libglib-2.86.3-h6548e54_0.conda + sha256: 82d6c2ee9f548c84220fb30fb1b231c64a53561d6e485447394f0a0eeeffe0e6 + md5: 034bea55a4feef51c98e8449938e9cee depends: - __glibc >=2.17,<3.0.a0 - libffi >=3.5.2,<3.6.0a0 - libgcc >=14 - libiconv >=1.18,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 constrains: - - glib 2.86.2 *_0 + - glib 2.86.3 *_0 license: LGPL-2.1-or-later purls: [] - size: 3974801 - timestamp: 1763672326986 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.86.2-h6ca3a76_0.conda - sha256: 24ae5f6cbd570398883aff74b28ff48a554ae8a009317697bb6e049e34b1614f - md5: 568dc58ec84959112e4fa7a58668dd72 + size: 3946542 + timestamp: 1765221858705 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libglib-2.86.3-hf241ffe_0.conda + sha256: d205ecdd0873dd92f7b55ac9b266b2eb09236ff5f3b26751579e435bbaed499c + md5: 584ce14b08050d3f1a25ab429b9360bc depends: - __osx >=10.13 - libffi >=3.5.2,<3.6.0a0 - libiconv >=1.18,<2.0a0 - libintl >=0.25.1,<1.0a0 - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 constrains: - - glib 2.86.2 *_0 + - glib 2.86.3 *_0 license: LGPL-2.1-or-later purls: [] - size: 3700392 - timestamp: 1763672761191 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.2-he69a767_0.conda - sha256: d4a5ba3d20997eebbbd85711a00f4c5a45239ce6fb2d9f96782fbf69622de2b9 - md5: 763fe1ac03ae016c0349856556760dc0 + size: 3708599 + timestamp: 1765222438844 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libglib-2.86.3-hfe11c1f_0.conda + sha256: 801c1835aa35a4f6e45e2192ad668bd7238d95c90ef8f02c52ce859c20117285 + md5: 057c7247514048ebdaf89373b263ebee depends: - __osx >=11.0 - libffi >=3.5.2,<3.6.0a0 - libiconv >=1.18,<2.0a0 - libintl >=0.25.1,<1.0a0 - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 constrains: - - glib 2.86.2 *_0 + - glib 2.86.3 *_0 license: LGPL-2.1-or-later purls: [] - size: 3671791 - timestamp: 1763673345909 -- conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.2-hd9c3897_0.conda - sha256: 60fa317d11a6f5d4bc76be5ff89b9ac608171a00b206c688e3cc4f65c73b1bc4 - md5: fbd144e60009d93f129f0014a76512d3 + size: 3670602 + timestamp: 1765223125237 +- conda: https://conda.anaconda.org/conda-forge/win-64/libglib-2.86.3-h0c9aed9_0.conda + sha256: 84b74fc81fff745f3d21a26c317ace44269a563a42ead3500034c27e407e1021 + md5: c2d5b6b790ef21abac0b5331094ccb56 depends: - libffi >=3.5.2,<3.6.0a0 - libiconv >=1.18,<2.0a0 - libintl >=0.22.5,<1.0a0 - libzlib >=1.3.1,<2.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 constrains: - - glib 2.86.2 *_0 + - glib 2.86.3 *_0 license: LGPL-2.1-or-later purls: [] - size: 3793396 - timestamp: 1763672587079 + size: 3818991 + timestamp: 1765222145992 - conda: https://conda.anaconda.org/conda-forge/linux-64/libglvnd-1.7.0-ha4b6fd6_2.conda sha256: 1175f8a7a0c68b7f81962699751bb6574e6f07db4c9f72825f978e3016f46850 md5: 434ca7e50e40f4918ab701e3facd59a0 @@ -5272,30 +5475,31 @@ packages: purls: [] size: 75504 timestamp: 1731330988898 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-15.2.0-he0feb66_14.conda - sha256: 2017cbc0f0f3b1d15df9ca681960eef015f9f58ba0d6e841694277a9f7eae0fc - md5: 91349c276f84f590487e4c7f6e90e077 +- 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: 604220 - timestamp: 1764277020855 -- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.2.0-h8ee18e1_15.conda - sha256: 54689a6061ef03e381591069bd6bd4ce1d1e3a0a91807252aa31adf24a81ed8c - md5: 18713a6d90ce576053ac3ce9f792fe14 + size: 603284 + timestamp: 1765256703881 +- conda: https://conda.anaconda.org/conda-forge/win-64/libgomp-15.2.0-h8ee18e1_16.conda + sha256: 9c86aadc1bd9740f2aca291da8052152c32dd1c617d5d4fd0f334214960649bb + md5: ab8189163748f95d4cb18ea1952943c3 depends: - libwinpthread >=12.0.0.r4.gg4f2fc60ca constrains: - msys2-conda-epoch <0.0a0 license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL purls: [] - size: 663321 - timestamp: 1764840809009 -- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.1-default_h64bd3f2_1002.conda - sha256: 266dfe151066c34695dbdc824ba1246b99f016115ef79339cbcf005ac50527c1 - md5: b0cac6e5b06ca5eeb14b4f7cf908619f + size: 663567 + timestamp: 1765260367147 +- conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.12.2-default_h4379cf1_1000.conda + sha256: 8cdf11333a81085468d9aa536ebb155abd74adc293576f6013fc0c85a7a90da3 + md5: 3b576f6860f838f950c570f4433b086e depends: - libwinpthread >=12.0.0.r4.gg4f2fc60ca - libxml2 @@ -5306,8 +5510,8 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 2414731 - timestamp: 1757624335056 + size: 2411241 + timestamp: 1765104337762 - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h3b78370_2.conda sha256: c467851a7312765447155e071752d7bf9bf44d610a5687e32706f480aad2833f md5: 915f5995e94f60e9a4826e0b0920ee88 @@ -5423,63 +5627,66 @@ packages: purls: [] size: 841783 timestamp: 1762094814336 -- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-2_h47877c9_openblas.conda - build_number: 2 - sha256: d51497ff0af63c4fa854ee7eadca5589eebfc3c9f50eaaa5ede97becde4682ca - md5: 9fb20e74a7436dc94dd39d9a9decddc3 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-5_h47877c9_openblas.conda + build_number: 5 + sha256: c723b6599fcd4c6c75dee728359ef418307280fa3e2ee376e14e85e5bbdda053 + md5: b38076eb5c8e40d0106beda6f95d7609 depends: - - libblas 3.11.0 2_h4a7cf45_openblas + - libblas 3.11.0 5_h4a7cf45_openblas constrains: - - blas 2.302 openblas - - liblapacke 3.11.0 2*_openblas - - libcblas 3.11.0 2*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas + - libcblas 3.11.0 5*_openblas license: BSD-3-Clause license_family: BSD purls: [] - size: 18489 - timestamp: 1763828460613 -- conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-4_h859234e_openblas.conda - build_number: 4 - sha256: cd490682199bd61c8db56cb72e71c154d91e8bf652cb28327690fa38246085d5 - md5: ebce74f166fc65413f751b8a125d4be3 + size: 18200 + timestamp: 1765818857876 +- conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-5_h859234e_openblas.conda + build_number: 5 + sha256: 2c915fe2b3d806d4b82776c882ba66ba3e095e9e2c41cc5c3375bffec6bddfdc + md5: eb5b1c25d4ac30813a6ca950a58710d6 depends: - - libblas 3.11.0 4_he492b99_openblas + - libblas 3.11.0 5_he492b99_openblas constrains: - - liblapacke 3.11.0 4*_openblas - - libcblas 3.11.0 4*_openblas - - blas 2.304 openblas + - libcblas 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas license: BSD-3-Clause + license_family: BSD purls: [] - size: 18692 - timestamp: 1764824659093 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-4_hd9741b5_openblas.conda - build_number: 4 - sha256: 63c9ac0c44c99fdf8de038b66f549d29a7b71e51223ad3fac1b4ba79080581c1 - md5: 3b949d8c584bc30932e41c755507bdc1 + size: 18491 + timestamp: 1765819090240 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-5_hd9741b5_openblas.conda + build_number: 5 + sha256: 735a6e6f7d7da6f718b6690b7c0a8ae4815afb89138aa5793abe78128e951dbb + md5: ca9d752201b7fa1225bca036ee300f2b depends: - - libblas 3.11.0 4_h51639a9_openblas + - libblas 3.11.0 5_h51639a9_openblas constrains: - - libcblas 3.11.0 4*_openblas - - blas 2.304 openblas - - liblapacke 3.11.0 4*_openblas + - libcblas 3.11.0 5*_openblas + - blas 2.305 openblas + - liblapacke 3.11.0 5*_openblas license: BSD-3-Clause + license_family: BSD purls: [] - size: 18764 - timestamp: 1764824468301 -- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-4_hf9ab0e9_mkl.conda - build_number: 4 - sha256: d820333e9bac8381fb69e857d673c12d034bb45d0fe4818a1d12e1ec7a39e7df - md5: 67298727e96b60068a316d2f627e1e35 + size: 18551 + timestamp: 1765819121855 +- conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-5_hf9ab0e9_mkl.conda + build_number: 5 + sha256: a2d33f5cc2b8a9042f2af6981c6733ab1a661463823eaa56595a9c58c0ab77e1 + md5: e62c42a4196dee97d20400612afcb2b1 depends: - - libblas 3.11.0 4_hf2e6a31_mkl + - libblas 3.11.0 5_hf2e6a31_mkl constrains: - - liblapacke 3.11.0 4*_mkl - - libcblas 3.11.0 4*_mkl - - blas 2.304 mkl + - libcblas 3.11.0 5*_mkl + - blas 2.305 mkl + - liblapacke 3.11.0 5*_mkl license: BSD-3-Clause + license_family: BSD purls: [] - size: 80387 - timestamp: 1764824249543 + size: 80225 + timestamp: 1765819148014 - conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm19-19.1.7-h56e7563_2.conda sha256: 375a634873b7441d5101e6e2a9d3a42fec51be392306a03a2fa12ae8edecec1a md5: 05a54b479099676e75f80ad0ddd38eff @@ -5510,9 +5717,9 @@ packages: purls: [] size: 26914852 timestamp: 1757353228286 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.6-hf7376ad_0.conda - sha256: 23010386efb545d68acbc4f9216c45f2b70a2f5398a6f389d70c9fee103648c4 - md5: 8aa154f30e0bc616cbde9794710e0be2 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libllvm21-21.1.8-hf7376ad_0.conda + sha256: 91bb4f5be1601b40b4995911d785e29387970f0b3c80f33f7f9028f95335399f + md5: 1a2708a460884d6861425b7f9a7bef99 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -5524,11 +5731,11 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 44320002 - timestamp: 1763523422320 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm21-21.1.7-h56e7563_0.conda - sha256: 75b0fb07f6ec4a36917dac4ff827576a0912788f3ff4dfebf00f3646a5d50a4f - md5: eb0738ea663c4bb08f64550c53df9345 + size: 44333366 + timestamp: 1765959132513 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libllvm21-21.1.8-h56e7563_0.conda + sha256: b98962b93624f52399aa748cc66dea7d6aae0a20db6decadc979db151928d214 + md5: 8f26c2dbe4213a12b6595f4b941ac9cb depends: - __osx >=10.13 - libcxx >=19 @@ -5539,11 +5746,11 @@ packages: license: Apache-2.0 WITH LLVM-exception license_family: Apache purls: [] - size: 31417011 - timestamp: 1764712642279 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm21-21.1.7-h8e0c9ce_0.conda - sha256: c314555be004f72798c203552554596ac49aa9924ec492d41a0a687d45bf1d99 - md5: 3abc4690cf43342493e7bbb3ffeeecf3 + size: 31433093 + timestamp: 1765929081793 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libllvm21-21.1.8-h8e0c9ce_0.conda + sha256: 3f4512155aca799a25937f9ee794490794fb33f8f90a5e6532d8be869e7d79a0 + md5: 8fc5b2387a7907cd58805668dad3b70f depends: - __osx >=11.0 - libcxx >=19 @@ -5554,55 +5761,55 @@ packages: 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_2.conda - sha256: f2591c0069447bbe28d4d696b7fcb0c5bd0b4ac582769b89addbcf26fb3430d8 - md5: 1a580f7796c7bf6393fddb8bbbde58dc + size: 29398498 + timestamp: 1765924904821 +- conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.2-hb03c661_0.conda + sha256: 755c55ebab181d678c12e49cced893598f2bab22d582fbbf4d8b83c18be207eb + md5: c7c83eecbb72d88b940c249af56c8b17 depends: - __glibc >=2.17,<3.0.a0 - - libgcc >=13 + - libgcc >=14 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD purls: [] - size: 112894 - timestamp: 1749230047870 -- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.1-hd471939_2.conda - sha256: 7e22fd1bdb8bf4c2be93de2d4e718db5c548aa082af47a7430eb23192de6bb36 - md5: 8468beea04b9065b9807fc8b9cdc5894 + size: 113207 + timestamp: 1768752626120 +- conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.2-h11316ed_0.conda + sha256: 7ab3c98abd3b5d5ec72faa8d9f5d4b50dcee4970ed05339bc381861199dabb41 + md5: 688a0c3d57fa118b9c97bf7e471ab46c depends: - __osx >=10.13 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD purls: [] - size: 104826 - timestamp: 1749230155443 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.1-h39f12f2_2.conda - sha256: 0cb92a9e026e7bd4842f410a5c5c665c89b2eb97794ffddba519a626b8ce7285 - md5: d6df911d4564d77c4374b02552cb17d1 + size: 105482 + timestamp: 1768753411348 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.2-h8088a28_0.conda + sha256: 7bfc7ffb2d6a9629357a70d4eadeadb6f88fa26ebc28f606b1c1e5e5ed99dc7e + md5: 009f0d956d7bfb00de86901d16e486c7 depends: - __osx >=11.0 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD purls: [] - size: 92286 - timestamp: 1749230283517 -- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.1-h2466b09_2.conda - sha256: 55764956eb9179b98de7cc0e55696f2eff8f7b83fc3ebff5e696ca358bca28cc - md5: c15148b2e18da456f5108ccb5e411446 + size: 92242 + timestamp: 1768752982486 +- conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.2-hfd05255_0.conda + sha256: f25bf293f550c8ed2e0c7145eb404324611cfccff37660869d97abf526eb957c + md5: ba0bfd4c3cf73f299ffe46ff0eaeb8e3 depends: - ucrt >=10.0.20348.0 - - vc >=14.2,<15 - - vc14_runtime >=14.29.30139 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 constrains: - - xz 5.8.1.* + - xz 5.8.2.* license: 0BSD purls: [] - size: 104935 - timestamp: 1749230611612 + size: 106169 + timestamp: 1768752763559 - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb9d3cd8_0.conda sha256: 3aa92d4074d4063f2a162cd8ecb45dccac93e543e565c01a787e16a43501f7ee md5: c7e925f37e3b40d893459e625f6a53f1 @@ -5614,6 +5821,16 @@ packages: purls: [] size: 91183 timestamp: 1748393666725 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-h6e16a3a_0.conda + sha256: 98299c73c7a93cd4f5ff8bb7f43cd80389f08b5a27a296d806bdef7841cc9b9e + md5: 18b81186a6adb43f000ad19ed7b70381 + depends: + - __osx >=10.13 + license: BSD-2-Clause + license_family: BSD + purls: [] + size: 77667 + timestamp: 1748393757154 - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-h2466b09_0.conda sha256: fc529fc82c7caf51202cc5cec5bb1c2e8d90edbac6d0a4602c966366efe3c7bf md5: 74860100b2029e2523cf480804c76b9b @@ -5733,9 +5950,9 @@ packages: purls: [] size: 6268795 timestamp: 1763117623665 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_3.conda - sha256: dcc626c7103503d1dfc0371687ad553cb948b8ed0249c2a721147bdeb8db4a73 - md5: a18a7f471c517062ee71b843ef95eb8a +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.30-openmp_ha158390_4.conda + sha256: ebbbc089b70bcde87c4121a083c724330f02a690fb9d7c6cd18c30f1b12504fa + md5: a6f6d3a31bb29e48d37ce65de54e2df0 depends: - __osx >=11.0 - libgfortran @@ -5746,8 +5963,8 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 4285762 - timestamp: 1761749506256 + size: 4284132 + timestamp: 1768547079205 - conda: https://conda.anaconda.org/conda-forge/linux-64/libopengl-1.7.0-ha4b6fd6_2.conda sha256: 215086c108d80349e96051ad14131b751d17af3ed2cb5a34edd62fa89bfe8ead md5: 7df50d44d4a14d6c31a2c54f2cd92157 @@ -5769,92 +5986,89 @@ packages: purls: [] size: 28424 timestamp: 1749901812541 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.51-h421ea60_0.conda - sha256: 1eb769c0f2778d07428947f64272592cc2d3b9bce63b41600abe5dc2b683d829 - md5: d8b81203d08435eb999baa249427884e +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpng-1.6.54-h421ea60_0.conda + sha256: 5de60d34aac848a9991a09fcdea7c0e783d00024aefec279d55e87c0c44742cd + md5: d361fa2a59e53b61c2675bfa073e5b7e depends: - - libgcc >=14 - __glibc >=2.17,<3.0.a0 + - libgcc >=14 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement purls: [] - size: 317576 - timestamp: 1763764145606 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.51-h380d223_0.conda - sha256: f89b89c51b064534d461a85d6e20878cd347640da9ee4068faf2c49b21887587 - md5: d54babdd92ec19c27af739b53e189335 + size: 317435 + timestamp: 1768285668880 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libpng-1.6.54-h07817ec_0.conda + sha256: c0efdf9b34132e7d4e0051bf65a97f1b9e1125c7f8a9067a35ec119af367eb38 + md5: 3d43dcdfcc3971939c80f855cf2df235 depends: - __osx >=10.13 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement purls: [] - size: 298921 - timestamp: 1763764193879 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.51-hfab5511_0.conda - sha256: b9478927bb77e48e3b300856060a8e1d1fa16bc6fc16fb554abe0f0475ca5679 - md5: 06efb9eace7676738ced2f9661c59fb8 + size: 298894 + timestamp: 1768285676981 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpng-1.6.54-h132b30e_0.conda + sha256: 1c271c0ec73b69f7570c5da67d0e47ddf7ff079bc1ca2dfaccd267ea39314b06 + md5: 1b80fd1eecb98f1cb7de4239f5d7dc15 depends: - __osx >=11.0 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement purls: [] - size: 287724 - timestamp: 1763764174318 -- conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.51-h7351971_0.conda - sha256: 4a558e1901cc67b1c336cf719dfa1b806c5e69492df9fe6c19991da57a6845d2 - md5: 5b98079b7e86c25c7e70ed7fd7da7da5 + size: 288910 + timestamp: 1768285694469 +- conda: https://conda.anaconda.org/conda-forge/win-64/libpng-1.6.54-h7351971_0.conda + sha256: 6e269361aa18a57bd2e593e480d83d93fc5f839d33d3bfc31b4ffe10edf6751c + md5: 638ecb69e44b6a588afd5633e81f9e61 depends: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 - libzlib >=1.3.1,<2.0a0 license: zlib-acknowledgement purls: [] - size: 383255 - timestamp: 1763764166376 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-h5c52fec_2.conda - sha256: bbab2c3e6f650f2bd1bc84d88e6a20fefa6a401fa445bb4b97c509c1b3a89fa8 - md5: a8ac9a6342569d1714ae1b53ae2fcadb + size: 383094 + timestamp: 1768285706434 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libpq-18.1-hb80d175_3.conda + sha256: 21adefed86a36622dd500d7862cb980c5bdaab6ed3f4930a9b9afceabc7a6d58 + md5: c39da2ad0e7dd600d1eb3146783b057d depends: - __glibc >=2.17,<3.0.a0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - libgcc >=14 - openldap >=2.6.10,<2.7.0a0 - openssl >=3.5.4,<4.0a0 license: PostgreSQL purls: [] - size: 2711480 - timestamp: 1764345810429 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-18.1-h1e038c5_2.conda - sha256: abaf961d69039e1a8f377e02c1f0e48173c347c3bb0d2d99508a1efdba9430c2 - md5: 5084757a93eb76dd26cbc85a4f38b0a3 + size: 2761692 + timestamp: 1766448056465 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libpq-18.1-hb73b81d_3.conda + sha256: b59abdcc577be19646930ef5b1634a4dd305728d15ec0092de9b1ede4aa9bb0c + md5: 1df89f162277dd0db7888937f470edd8 depends: - __osx >=10.13 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - openldap >=2.6.10,<2.7.0a0 - openssl >=3.5.4,<4.0a0 license: PostgreSQL purls: [] - size: 2703473 - timestamp: 1764346703796 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-18.1-h944245b_2.conda - sha256: 69373dee28ad3a5baeaf96ad1d62ea3580e54405d6aca07409f1f9fa18bb6885 - md5: 0ec602b45be7781667d92fb8e5373494 + size: 2632814 + timestamp: 1766448520499 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libpq-18.1-h6caddbb_3.conda + sha256: 62f327098b95ec6bfeb6f03664872f00ab7ca8dccca473801fba55efbcb52323 + md5: d38c587f335f648a51263457b2abed06 depends: - __osx >=11.0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - openldap >=2.6.10,<2.7.0a0 - openssl >=3.5.4,<4.0a0 license: PostgreSQL purls: [] - size: 2706308 - timestamp: 1764346615183 + size: 2687164 + timestamp: 1766448544720 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.20-h4ab18f5_0.conda sha256: 0105bd108f19ea8e6a78d2d994a6d4a8db16d19a41212070d2d1d48a63c34161 md5: a587892d3c13b6621a6091be690dbca2 @@ -5893,49 +6107,50 @@ packages: purls: [] size: 202344 timestamp: 1716828757533 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.1-h0c1763c_0.conda - sha256: 6f0e8a812e8e33a4d8b7a0e595efe28373080d27b78ee4828aa4f6649a088454 - md5: 2e1b84d273b01835256e53fd938de355 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.51.2-hf4e2dac_0.conda + sha256: 04596fcee262a870e4b7c9807224680ff48d4d0cc0dac076a602503d3dc6d217 + md5: da5be73701eecd0e8454423fd6ffcf30 depends: - __glibc >=2.17,<3.0.a0 + - icu >=78.2,<79.0a0 - libgcc >=14 - libzlib >=1.3.1,<2.0a0 license: blessing purls: [] - size: 938979 - timestamp: 1764359444435 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.1-h6cc646a_0.conda - sha256: 8460901daff15749354f0de143e766febf0682fe9201bf307ea84837707644d1 - md5: f71213ed0c51030cb17a77fc60a757f1 + size: 942808 + timestamp: 1768147973361 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.51.2-hb99441e_0.conda + sha256: 710a7ea27744199023c92e66ad005de7f8db9cf83f10d5a943d786f0dac53b7c + md5: d910105ce2b14dfb2b32e92ec7653420 depends: - __osx >=10.13 - - icu >=75.1,<76.0a0 - libzlib >=1.3.1,<2.0a0 license: blessing purls: [] - size: 991350 - timestamp: 1764359781222 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.1-h9a5124b_0.conda - sha256: a46b167447e2a9e38586320c30b29e3b68b6f7e6b873c18d6b1aa2efd2626917 - md5: 67e50e5bd4e5e2310d66b88c4da50096 + size: 987506 + timestamp: 1768148247615 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.51.2-h1ae2325_0.conda + sha256: 6e9b9f269732cbc4698c7984aa5b9682c168e2a8d1e0406e1ff10091ca046167 + md5: 4b0bf313c53c3e89692f020fb55d5f2c depends: - __osx >=11.0 + - icu >=78.2,<79.0a0 - libzlib >=1.3.1,<2.0a0 license: blessing purls: [] - size: 906292 - timestamp: 1764359907797 -- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.1-hf5d6505_0.conda - sha256: a976c8b455d9023b83878609bd68c3b035b9839d592bd6c7be7552c523773b62 - md5: f92bef2f8e523bb0eabe60099683617a + size: 909777 + timestamp: 1768148320535 +- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.51.2-hf5d6505_0.conda + sha256: 756478128e3e104bd7e7c3ce6c1b0efad7e08c7320c69fdc726e039323c63fbb + md5: 903979414b47d777d548e5f0165e6cd8 depends: - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: blessing purls: [] - size: 1291059 - timestamp: 1764359545703 + size: 1291616 + timestamp: 1768148278261 - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-hcf80075_0.conda sha256: fa39bfd69228a13e553bd24601332b7cfeb30ca11a3ca50bb028108fe90a7661 md5: eecce068c7e4eddeb169591baac20ac4 @@ -5986,29 +6201,29 @@ packages: purls: [] size: 292785 timestamp: 1745608759342 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-15.2.0-h934c35e_14.conda - sha256: bbeb7cf8b7eff000b2cb5ffb9a40d98fbb8f39c94768afaec38408c3097cde0d - md5: 8e96fe9b17d5871b5cf9d312cab832f6 +- 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.2.0 he0feb66_14 + - libgcc 15.2.0 he0feb66_16 constrains: - - libstdcxx-ng ==15.2.0=*_14 + - libstdcxx-ng ==15.2.0=*_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 5856715 - timestamp: 1764277148231 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_14.conda - sha256: 63336f51b88029a9557a430aecbb08a11365aa03ec47ec8d14e542fec5dc80fb - md5: 9531f671a13eec0597941fa19e489b96 + size: 5856456 + timestamp: 1765256838573 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-15.2.0-hdf11a46_16.conda + sha256: 81f2f246c7533b41c5e0c274172d607829019621c4a0823b5c0b4a8c7028ee84 + md5: 1b3152694d236cf233b76b8c56bf0eae depends: - - libstdcxx 15.2.0 h934c35e_14 + - libstdcxx 15.2.0 h934c35e_16 license: GPL-3.0-only WITH GCC-exception-3.1 license_family: GPL purls: [] - size: 27200 - timestamp: 1764277193585 + size: 27300 + timestamp: 1765256885128 - conda: https://conda.anaconda.org/conda-forge/linux-64/libtiff-4.7.1-h9d88235_1.conda sha256: e5f8c38625aa6d567809733ae04bb71c161a42e44a9fa8227abe61fa5c60ebe0 md5: cd5a90476766d53e901500df9215e927 @@ -6078,17 +6293,17 @@ packages: purls: [] size: 993166 timestamp: 1762022118895 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.2-he9a06e4_0.conda - sha256: e5ec6d2ad7eef538ddcb9ea62ad4346fde70a4736342c4ad87bd713641eb9808 - md5: 80c07c68d2f6870250959dcc95b209d1 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.41.3-h5347b49_0.conda + sha256: 1a7539cfa7df00714e8943e18de0b06cceef6778e420a5ee3a2a145773758aee + md5: db409b7c1720428638e7c0d509d3e1b5 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 license: BSD-3-Clause license_family: BSD purls: [] - size: 37135 - timestamp: 1758626800002 + size: 40311 + timestamp: 1766271528534 - conda: https://conda.anaconda.org/conda-forge/linux-64/libvulkan-loader-1.4.328.1-h5279c79_0.conda sha256: bbabc5c48b63ff03f440940a11d4648296f5af81bb7630d98485405cd32ac1ce md5: 372a62464d47d9e966b630ffae3abe73 @@ -6249,9 +6464,9 @@ packages: purls: [] size: 100393 timestamp: 1702724383534 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.0-hca5e8e5_0.conda - sha256: 576ce5378cc6a2b722ff33d2359ccb74dea1e6465daa45116e57550f1eb4ba7e - md5: aa65b4add9574bb1d23c76560c5efd4c +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxkbcommon-1.13.1-hca5e8e5_0.conda + sha256: d2195b5fbcb0af1ff7b345efdf89290c279b8d1d74f325ae0ac98148c375863c + md5: 2bca1fbb221d9c3c8e3a155784bbc2e9 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -6264,62 +6479,62 @@ packages: license: MIT/X11 Derivative license_family: MIT purls: [] - size: 843995 - timestamp: 1762341607312 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-h26afc86_0.conda - sha256: ec0735ae56c3549149eebd7dc22c0bed91fd50c02eaa77ff418613ddda190aa8 - md5: e512be7dc1f84966d50959e900ca121f + size: 837922 + timestamp: 1764794163823 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.1-he237659_1.conda + sha256: 047be059033c394bd32ae5de66ce389824352120b3a7c0eff980195f7ed80357 + md5: 417955234eccd8f252b86a265ccdab7f depends: - __glibc >=2.17,<3.0.a0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libgcc >=14 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 ha9997c6_0 + - libxml2-16 2.15.1 hca6bf5a_1 - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 45283 - timestamp: 1761015644057 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h7b7ecba_0.conda - sha256: ddf87bf05955d7870a41ca6f0e9fbd7b896b5a26ec1a98cd990883ac0b4f99bb - md5: e7ed73b34f9d43d80b7e80eba9bce9f3 + size: 45402 + timestamp: 1766327161688 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.1-h24ca049_1.conda + sha256: 24ecb3a3eed2b17cec150714210067cafc522dec111750cbc44f5921df1ffec3 + md5: c58fc83257ad06634b9c935099ef2680 depends: - __osx >=10.13 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 ha1d9b0f_0 + - libxml2-16 2.15.1 he456531_1 - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] - size: 39985 - timestamp: 1761015935429 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h9329255_0.conda - sha256: c409e384ddf5976a42959265100d6b2c652017d250171eb10bae47ef8166193f - md5: fb5ce61da27ee937751162f86beba6d1 + size: 40016 + timestamp: 1766327339623 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.1-h8d039ee_1.conda + sha256: 59f96fa27cce6a9a27414c5bb301eedda1a1b85cd0d8f5d68f77e46b86e7c95f + md5: fd804ee851e20faca4fecc7df0901d07 depends: - __osx >=11.0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 h0ff4647_0 + - libxml2-16 2.15.1 h5ef1a60_1 - libzlib >=1.3.1,<2.0a0 license: MIT license_family: MIT purls: [] size: 40607 - timestamp: 1761016108361 -- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.15.1-ha29bfb0_0.conda - sha256: fb51b91a01eac9ee5e26c67f4e081f09f970c18a3da5231b8172919a1e1b3b6b - md5: 87116b9de9c1825c3fd4ef92c984877b + timestamp: 1766327501392 +- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.15.1-h779ef1b_1.conda + sha256: 8b47d5fb00a6ccc0f495d16787ab5f37a434d51965584d6000966252efecf56d + md5: 68dc154b8d415176c07b6995bd3a65d9 depends: - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - - libxml2-16 2.15.1 h06f855e_0 + - libxml2-16 2.15.1 h3cfd58e_1 - libzlib >=1.3.1,<2.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 @@ -6327,14 +6542,14 @@ packages: license: MIT license_family: MIT purls: [] - size: 43042 - timestamp: 1761016261024 -- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-ha9997c6_0.conda - sha256: 71436e72a286ef8b57d6f4287626ff91991eb03c7bdbe835280521791efd1434 - md5: e7733bc6785ec009e47a224a71917e84 + size: 43387 + timestamp: 1766327259710 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.1-hca6bf5a_1.conda + sha256: 8331284bf9ae641b70cdc0e5866502dd80055fc3b9350979c74bb1d192e8e09e + md5: 3fdd8d99683da9fe279c2f4cecd1e048 depends: - __glibc >=2.17,<3.0.a0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libgcc >=14 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 @@ -6344,14 +6559,14 @@ packages: license: MIT license_family: MIT purls: [] - size: 556302 - timestamp: 1761015637262 -- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-ha1d9b0f_0.conda - sha256: e23c5ac1da7b9b65bd18bf32b68717cd9da0387941178cb4d8cc5513eb69a0a9 - md5: 453807a4b94005e7148f89f9327eb1b7 + size: 555747 + timestamp: 1766327145986 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.1-he456531_1.conda + sha256: eff0894cd82f2e055ea761773eb80bfaacdd13fbdd427a80fe0c5b00bf777762 + md5: 6cd21078a491bdf3fdb7482e1680ef63 depends: - __osx >=10.13 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - libzlib >=1.3.1,<2.0a0 @@ -6360,14 +6575,14 @@ packages: license: MIT license_family: MIT purls: [] - size: 494318 - timestamp: 1761015899881 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h0ff4647_0.conda - sha256: ebe2dd9da94280ad43da936efa7127d329b559f510670772debc87602b49b06d - md5: 438c97d1e9648dd7342f86049dd44638 + size: 494450 + timestamp: 1766327317287 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.1-h5ef1a60_1.conda + sha256: 2d5ab15113b0ba21f4656d387d26ab59e4fbaf3027f5e58a2a4fe370821eb106 + md5: 7eed1026708e26ee512f43a04d9d0027 depends: - __osx >=11.0 - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - libzlib >=1.3.1,<2.0a0 @@ -6376,13 +6591,13 @@ packages: license: MIT license_family: MIT purls: [] - size: 464952 - timestamp: 1761016087733 -- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.1-h06f855e_0.conda - sha256: 3f65ea0f04c7738116e74ca87d6e40f8ba55b3df31ef42b8cb4d78dd96645e90 - md5: 4a5ea6ec2055ab0dfd09fd0c498f834a + size: 464886 + timestamp: 1766327479416 +- conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.1-h3cfd58e_1.conda + sha256: a857e941156b7f462063e34e086d212c6ccbc1521ebdf75b9ed66bd90add57dc + md5: 07d73826fde28e7dbaec52a3297d7d26 depends: - - icu >=75.1,<76.0a0 + - icu >=78.1,<79.0a0 - libiconv >=1.18,<2.0a0 - liblzma >=5.8.1,<6.0a0 - libzlib >=1.3.1,<2.0a0 @@ -6394,8 +6609,8 @@ packages: license: MIT license_family: MIT purls: [] - size: 518616 - timestamp: 1761016240185 + size: 518964 + timestamp: 1766327232819 - conda: https://conda.anaconda.org/conda-forge/linux-64/libxslt-1.1.43-h711ed8c_1.conda sha256: 0694760a3e62bdc659d90a14ae9c6e132b525a7900e59785b18a08bb52a5d7e5 md5: 87e6096ec6d542d1c1f8b33245fe8300 @@ -6511,80 +6726,83 @@ packages: - pkg:pypi/license-expression?source=hash-mapping size: 120884 timestamp: 1753294907822 -- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.7-h472b3d1_0.conda - sha256: 5ae51ca08ac19ce5504b8201820ba6387365662033f20af2150ae7949f3f308a - md5: c9f0fc88c8f46637392b95bef78dc036 +- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-21.1.8-h472b3d1_0.conda + sha256: 2a41885f44cbc1546ff26369924b981efa37a29d20dc5445b64539ba240739e6 + md5: e2d811e9f464dd67398b4ce1f9c7c872 depends: - __osx >=10.13 constrains: - - openmp 21.1.7|21.1.7.* + - openmp 21.1.8|21.1.8.* - intel-openmp <0.0a0 license: Apache-2.0 WITH LLVM-exception + license_family: APACHE purls: [] - size: 311027 - timestamp: 1764721464764 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.7-h4a912ad_0.conda - sha256: 002695e79b0e4c2d117a8bd190ffd62ef3d74a4cae002afa580bd1f98f9560a3 - md5: 05d475f50ddcc2173a6beece9960c6cb + size: 311405 + timestamp: 1765965194247 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-21.1.8-h4a912ad_0.conda + sha256: 56bcd20a0a44ddd143b6ce605700fdf876bcf5c509adc50bf27e76673407a070 + md5: 206ad2df1b5550526e386087bef543c7 depends: - __osx >=11.0 constrains: - - openmp 21.1.7|21.1.7.* + - openmp 21.1.8|21.1.8.* - 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/win-64/llvm-openmp-21.1.7-h4fa8253_0.conda - sha256: 79121242419bf8b485c313fa28697c5c61ec207afa674eac997b3cb2fd1ff892 - md5: 5823741f7af732cd56036ae392396ec6 + size: 285974 + timestamp: 1765964756583 +- conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-21.1.8-h4fa8253_0.conda + sha256: 145c4370abe870f10987efa9fc15a8383f1dab09abbc9ad4ff15a55d45658f7b + md5: 0d8b425ac862bcf17e4b28802c9351cb depends: - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 constrains: - intel-openmp <0.0a0 - - openmp 21.1.7|21.1.7.* + - openmp 21.1.8|21.1.8.* license: Apache-2.0 WITH LLVM-exception + license_family: APACHE purls: [] - size: 347969 - timestamp: 1764722187332 -- conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.45.1-py313hdd307be_0.conda - sha256: 5b8e2063e93bea160fd50274d05ce4436f01c383a392f293b769dfb973c4df21 - md5: 5afb15643ef1fcea20798bb6086bb3f9 + size: 347566 + timestamp: 1765964942856 +- conda: https://conda.anaconda.org/conda-forge/linux-64/llvmlite-0.46.0-py314h946fb2a_0.conda + sha256: 99f15d69f059aa9c7d06cc45a6519a2375cc7a93ca85127964d6325a89a2b519 + md5: 7ee180b967506bbd108ca9d5ff45eace depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 - libzlib >=1.3.1,<2.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - zstd >=1.5.7,<1.6.0a0 license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/llvmlite?source=hash-mapping - size: 34153671 - timestamp: 1759394632193 -- conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.45.1-py312h331d821_0.conda - sha256: 51995dd38c9dbfe6de8fc842181abfd8e681b62e83de2747af75750cab8b5257 - md5: de5237d388d2a3a0eab91302f8f5d8c7 + size: 34123266 + timestamp: 1765279959565 +- conda: https://conda.anaconda.org/conda-forge/osx-64/llvmlite-0.46.0-py314h85c3bf0_0.conda + sha256: 468f68ddfad77e92de45a9023e92c8cea13df253bd27861de7cd594bc13f5569 + md5: babaf455ce9be7d7001cf048eb80508b depends: - __osx >=10.13 - libcxx >=19 - libzlib >=1.3.1,<2.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - zstd >=1.5.7,<1.6.0a0 license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/llvmlite?source=hash-mapping - size: 26016230 - timestamp: 1759394793664 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.45.1-py312hc82e5dd_0.conda - sha256: 235618fefad16585501f3d13e20b7c4fda9f735c966fd569f11d2b3ba6aeef52 - md5: 7ed153df80cacc4cafb05a8472507221 + size: 26019299 + timestamp: 1765280661650 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvmlite-0.46.0-py312hc82e5dd_0.conda + sha256: ad9949a4a84031658ff1393c4a5922c40530b9a155b1571d34cf17b684fbb6f3 + md5: 514de2ca7fc036f9d06d58412a9e2e1e depends: - __osx >=11.0 - libcxx >=19 @@ -6597,15 +6815,15 @@ packages: license_family: BSD purls: - pkg:pypi/llvmlite?source=hash-mapping - size: 24328871 - timestamp: 1759394967547 -- conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.45.1-py313h5c49287_0.conda - sha256: 0b63923082e724b2c2939621aef77d9ec65aa468a7b29917a850e47e2083adda - md5: d946ee3e7228e48270589791871a891e + size: 24325098 + timestamp: 1765280455 +- conda: https://conda.anaconda.org/conda-forge/win-64/llvmlite-0.46.0-py314hb492ee6_0.conda + sha256: 8f8bb4cd5a93aaf576e6861846f09dcff8f37032b02704e830d9afd3e6676d6b + md5: de5f7e2de23118d72f43c99fe7f2a942 depends: - libzlib >=1.3.1,<2.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -6614,8 +6832,8 @@ packages: license_family: BSD purls: - pkg:pypi/llvmlite?source=hash-mapping - size: 22905696 - timestamp: 1759394712687 + size: 22926897 + timestamp: 1765280131964 - conda: https://conda.anaconda.org/conda-forge/noarch/lmfit-1.3.4-pyhd8ed1ab_0.conda sha256: f1b5a1aa7ea6e528967b111e187c6d8b00219c53ecb0b6d6842cd16c688eeea3 md5: f8cdc37d08f88f8cd64f1252ecb6a7a9 @@ -6646,37 +6864,21 @@ packages: - pkg:pypi/markdown-it-py?source=hash-mapping size: 64736 timestamp: 1754951288511 -- conda: https://conda.anaconda.org/conda-forge/linux-64/markupsafe-3.0.3-py313h3dea7bd_0.conda - sha256: a530a411bdaaf0b1e4de8869dfaca46cb07407bc7dc0702a9e231b0e5ce7ca85 - md5: c14389156310b8ed3520d84f854be1ee - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - constrains: - - jinja2 >=3.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/markupsafe?source=hash-mapping - size: 25909 - timestamp: 1759055357045 -- conda: https://conda.anaconda.org/conda-forge/osx-64/markupsafe-3.0.3-py312hacf3034_0.conda - sha256: e50fa11ea301d42fe64e587e2262f6afbe2ec42afe95e3ad4ccba06910b63155 - md5: 2e6f78b0281181edc92337aa12b96242 +- conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.3-pyh7db6752_0.conda + sha256: e0cbfea51a19b3055ca19428bd9233a25adca956c208abb9d00b21e7259c7e03 + md5: fab1be106a50e20f10fe5228fd1d1651 depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.10 constrains: - jinja2 >=3.0.0 + track_features: + - markupsafe_no_compile license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/markupsafe?source=hash-mapping - size: 24541 - timestamp: 1759055509267 + size: 15499 + timestamp: 1759055275624 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/markupsafe-3.0.3-py312h5748b74_0.conda sha256: b6aadcee6a0b814a0cb721e90575cbbe911b17ec46542460a9416ed2ec1a568e md5: 82221456841d3014a175199e4792465b @@ -6693,50 +6895,33 @@ packages: - pkg:pypi/markupsafe?source=hash-mapping size: 25121 timestamp: 1759055677633 -- conda: https://conda.anaconda.org/conda-forge/win-64/markupsafe-3.0.3-py313hd650c13_0.conda - sha256: 988d14095c1392e055fd75e24544da2db01ade73b0c2f99ddc8e2b8678ead4cc - md5: 47eaaa4405741beb171ea6edc6eaf874 - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - constrains: - - jinja2 >=3.0.0 - license: BSD-3-Clause - license_family: BSD - purls: - - pkg:pypi/markupsafe?source=hash-mapping - size: 28959 - timestamp: 1759055685616 -- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py313h78bf25f_0.conda - sha256: ad3eb40a91d456620936c88ea4eb2700ca24e474acd9498fdad831a87771399e - md5: 85bce686dd57910d533807562204e16b +- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-3.10.8-py314hdafbbf9_0.conda + sha256: 0c9417291ada8df3415ad13d52db38707adaba42584246264294e0faaaa54f77 + md5: 8286e3966eac286d5ac7c7a4afbac812 depends: - matplotlib-base >=3.10.8,<3.10.9.0a0 - pyside6 >=6.7.2 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - tornado >=5 license: PSF-2.0 license_family: PSF purls: [] - size: 17429 - timestamp: 1763055377972 -- conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.10.8-py312hb401068_0.conda - sha256: a42cff0706c6e4d43234b9dc366f9d9b99555cee5c259969978e8741faf335db - md5: c2a15b38125fe68d31901e7fa63ca049 + size: 17473 + timestamp: 1763055464987 +- conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-3.10.8-py314hee6578b_0.conda + sha256: f32e8313e154db7b41c8147cb11f20c666e16b85abbc06ffebf7920c393aad0f + md5: 7fdf446de012e1750bf465b76412928d depends: - matplotlib-base >=3.10.8,<3.10.9.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - tornado >=5 license: PSF-2.0 license_family: PSF purls: [] - size: 17476 - timestamp: 1763055659354 + size: 17466 + timestamp: 1763055821938 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-3.10.8-py312h1f38498_0.conda sha256: e3e8448b10273807bf1aa9b1aa6a4ee3a686ccfd0c296560b51b1d1581bb42ae md5: 534ed7eb4471c088285fdb382805e6ef @@ -6750,23 +6935,23 @@ packages: purls: [] size: 17526 timestamp: 1763060540928 -- conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.8-py313hfa70ccb_0.conda - sha256: a431c82ccdf9dd494612784eaacc90bbac652187f40f330e6c5b02d701337e5a - md5: b77085d92d9de0c4a8bcc88011985292 +- conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-3.10.8-py314h86ab7b2_0.conda + sha256: e7b6349b12f7d98ab7b595e01e486d3544083c694e8ee2c45a0b8f17016a7a0a + md5: e786fc5fefad7779cb2d954dd214fa37 depends: - matplotlib-base >=3.10.8,<3.10.9.0a0 - pyside6 >=6.7.2 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - tornado >=5 license: PSF-2.0 license_family: PSF purls: [] - size: 17887 - timestamp: 1763055549597 -- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py313h683a580_0.conda - sha256: b1117aa2c1d11ca70d1704054cdc8801cbcf2dfb846c565531edd417ddd82559 - md5: ffe67570e1a9192d2f4c189b27f75f89 + size: 18016 + timestamp: 1763056036732 +- conda: https://conda.anaconda.org/conda-forge/linux-64/matplotlib-base-3.10.8-py314h1194b4b_0.conda + sha256: ee773261fbd6c76fc8174b0e4e1ce272b0bbaa56610f130e9d3d1f575106f04f + md5: b8683e6068099b69c10dbfcf7204203f depends: - __glibc >=2.17,<3.0.a0 - contourpy >=1.0.1 @@ -6783,20 +6968,20 @@ packages: - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - - python >=3.13,<3.14.0a0 + - python >=3.14,<3.15.0a0 - python-dateutil >=2.7 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - qhull >=2020.2,<2020.3.0a0 - tk >=8.6.13,<8.7.0a0 license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=compressed-mapping - size: 8405862 - timestamp: 1763055358671 -- conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py312h7894933_0.conda - sha256: 2ce31cad23d5d5fc16ca9d25f47dcfc52e93f2a0c6e1dc6db28e583c42f88bdc - md5: 853618b60fdd11a6c3dbaadaa413407c + - pkg:pypi/matplotlib?source=hash-mapping + size: 8473358 + timestamp: 1763055439346 +- conda: https://conda.anaconda.org/conda-forge/osx-64/matplotlib-base-3.10.8-py314hd47142c_0.conda + sha256: 912302723c6be178ccf47386ed2cd70ef7a8604e52e957a2e8d3807abe938da5 + md5: 91d76a5937b47f7f0894857ce88feb9f depends: - __osx >=10.13 - contourpy >=1.0.1 @@ -6812,16 +6997,16 @@ packages: - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - - python >=3.12,<3.13.0a0 + - python >=3.14,<3.15.0a0 - python-dateutil >=2.7 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 - qhull >=2020.2,<2020.3.0a0 license: PSF-2.0 license_family: PSF purls: - pkg:pypi/matplotlib?source=hash-mapping - size: 8295843 - timestamp: 1763055621386 + size: 8224527 + timestamp: 1763055779683 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/matplotlib-base-3.10.8-py312h605b88b_0.conda sha256: 3c96c85dd723a4c16fce4446d1f0dc7d64e46b6ae4629c66d65984b8593ee999 md5: fbc4f90b3d63ea4e6c30f7733a0b5bfd @@ -6851,9 +7036,9 @@ packages: - pkg:pypi/matplotlib?source=hash-mapping size: 8243636 timestamp: 1763060482877 -- conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.8-py313he1ded55_0.conda - sha256: f63c4a5ded62cfb216c9d107a3c4527940036eef19cf481418080a0bd9bc11d8 - md5: 05f96c429201a64ea752decf4b910a7c +- conda: https://conda.anaconda.org/conda-forge/win-64/matplotlib-base-3.10.8-py314hfa45d96_0.conda + sha256: 82a50284275e8a1818cd3323846f3032dc89bd23a3f80dcf44e34a62b016256b + md5: 9d491a60700e0e90e92607fcc4e2566c depends: - contourpy >=1.0.1 - cycler >=0.10 @@ -6867,9 +7052,9 @@ packages: - packaging >=20.0 - pillow >=8 - pyparsing >=2.3.1 - - python >=3.13,<3.14.0a0 + - python >=3.14,<3.15.0a0 - python-dateutil >=2.7 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - qhull >=2020.2,<2020.3.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 @@ -6877,9 +7062,9 @@ packages: license: PSF-2.0 license_family: PSF purls: - - pkg:pypi/matplotlib?source=compressed-mapping - size: 8007333 - timestamp: 1763055517579 + - pkg:pypi/matplotlib?source=hash-mapping + size: 8185296 + timestamp: 1763055983613 - conda: https://conda.anaconda.org/conda-forge/noarch/matplotlib-inline-0.2.1-pyhd8ed1ab_0.conda sha256: 9d690334de0cd1d22c51bc28420663f4277cfa60d34fa5cad1ce284a13f1d603 md5: 00e120ce3e40bad7bfc78861ce3c4a25 @@ -6903,9 +7088,9 @@ packages: - pkg:pypi/mdurl?source=hash-mapping size: 14465 timestamp: 1733255681319 -- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.1.4-pyhcf101f3_0.conda - sha256: 609ea628ace5c6cdbdce772704e6cb159ead26969bb2f386ca1757632b0f74c6 - md5: f5a4d548d1d3bdd517260409fc21e205 +- conda: https://conda.anaconda.org/conda-forge/noarch/mistune-3.2.0-pyhcf101f3_0.conda + sha256: d3fb4beb5e0a52b6cc33852c558e077e1bfe44df1159eb98332d69a264b14bae + md5: b11e360fc4de2b0035fc8aaa74f17fd6 depends: - python >=3.10 - typing_extensions @@ -6914,51 +7099,63 @@ packages: license_family: BSD purls: - pkg:pypi/mistune?source=hash-mapping - size: 72996 - timestamp: 1756495311698 -- conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.0-hac47afa_454.conda - sha256: 3c432e77720726c6bd83e9ee37ac8d0e3dd7c4cf9b4c5805e1d384025f9e9ab6 - md5: c83ec81713512467dfe1b496a8292544 - depends: - - llvm-openmp >=21.1.4 - - tbb >=2022.2.0 + size: 74250 + timestamp: 1766504456031 +- conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2025.3.0-hac47afa_455.conda + sha256: b2b4c84b95210760e4d12319416c60ab66e03674ccdcbd14aeb59f82ebb1318d + md5: fd05d1e894497b012d05a804232254ed + depends: + - llvm-openmp >=21.1.8 + - tbb >=2022.3.0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: LicenseRef-IntelSimplifiedSoftwareOct2022 license_family: Proprietary purls: [] - size: 99909095 - timestamp: 1761668703167 -- conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py313h7037e92_1.conda - sha256: fac37e267dd1d07527f0b078ffe000916e80e8c89cfe69d466f5775b88e93df2 - md5: cd1cfde0ea3bca6c805c73ffa988b12a + size: 100224829 + timestamp: 1767634557029 +- conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-10.8.0-pyhcf101f3_1.conda + sha256: 449609f0d250607a300754474350a3b61faf45da183d3071e9720e453c765b8a + md5: 32f78e9d06e8593bc4bbf1338da06f5f + depends: + - python >=3.10 + - python + license: MIT + license_family: MIT + purls: + - pkg:pypi/more-itertools?source=hash-mapping + size: 69210 + timestamp: 1764487059562 +- conda: https://conda.anaconda.org/conda-forge/linux-64/msgpack-python-1.1.2-py314h9891dd4_1.conda + sha256: d41c2734d314303e329680aeef282766fe399a0ce63297a68a2f8f9b43b1b68a + md5: c6752022dcdbf4b9ef94163de1ab7f03 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache purls: - pkg:pypi/msgpack?source=hash-mapping - size: 103129 - timestamp: 1762504205590 -- conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.1.2-py312hd099df3_1.conda - sha256: 77314afa123abe6c25a0b8a161763d7f624f432bff382b976e5f243c72082944 - md5: 00597ae4dd073faaa9e6d2ca478f21c6 + size: 103380 + timestamp: 1762504077009 +- conda: https://conda.anaconda.org/conda-forge/osx-64/msgpack-python-1.1.2-py314h00ed6fe_1.conda + sha256: 1e82a903c5b5fb1555851ff1ef9068a538f4d8652eee2c31935d2d6d326a99f7 + md5: 977962f6bb6f922ee0caabcb5a1b1d8c depends: - __osx >=10.13 - libcxx >=19 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache purls: - pkg:pypi/msgpack?source=hash-mapping - size: 90666 - timestamp: 1762504423797 + size: 92312 + timestamp: 1762504434513 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/msgpack-python-1.1.2-py312h84eede6_1.conda sha256: 1540339678e13365001453fdcb698887075a2b326d5fab05cfd0f4fdefae4eab md5: e3973f0ac5ac854bf86f0d5674a1a289 @@ -6974,12 +7171,12 @@ packages: - pkg:pypi/msgpack?source=hash-mapping size: 91268 timestamp: 1762504467174 -- conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.2-py313hf069bd2_1.conda - sha256: 657fc62639dd638077f4d5e0bede9ed1bf4f4d018b395042bc36c9330e2c80fc - md5: 0013c110d17d569ce560b7fae6aee0d3 +- conda: https://conda.anaconda.org/conda-forge/win-64/msgpack-python-1.1.2-py314h909e829_1.conda + sha256: 2ce1f564d5aa2e0637c03692baeea4ecf234c7fb2a43e7810c369e1b054d7a30 + md5: ad4584f884d029b02fc9eaf89afc5d9f depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -6987,8 +7184,8 @@ packages: license_family: Apache purls: - pkg:pypi/msgpack?source=hash-mapping - size: 88214 - timestamp: 1762504204957 + size: 88657 + timestamp: 1762504357246 - conda: https://conda.anaconda.org/conda-forge/noarch/munkres-1.1.4-pyhd8ed1ab_1.conda sha256: d09c47c2cf456de5c09fa66d2c3c5035aa1fa228a1983a433c47b876aa16ce90 md5: 37293a85a0f4f77bbd9cf7aaefc62609 @@ -7000,46 +7197,46 @@ packages: - pkg:pypi/munkres?source=hash-mapping size: 15851 timestamp: 1749895533014 -- conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.19.0-py313h07c4f96_1.conda - sha256: bc152a5c4c444ca2946cc740666da1e1c0a3bdf7eefa838963f4b2954b4cecf6 - md5: 2fe0c6e1b55987f5967696e932fe57a7 +- conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-1.19.1-py314h5bd0f2a_0.conda + sha256: 4e607095b92cac2ec6dbb8de348d8e006408291c9c2805926f01e4a30e94edbb + md5: 0490f2b08d179719201fdb9514d67157 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - mypy_extensions >=1.0.0 - pathspec >=0.9.0 - psutil >=4.0 - - python >=3.13,<3.14.0a0 + - python >=3.14,<3.15.0a0 - python-librt >=0.6.2 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - typing_extensions >=4.6.0 license: MIT license_family: MIT purls: - pkg:pypi/mypy?source=hash-mapping - size: 20092977 - timestamp: 1764427677940 -- conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.19.0-py312h80b0991_1.conda - sha256: dc26534b33933fada22b72ada5593f50512ac188153c7c39abb72ca3716024a4 - md5: 768a473779d8e92df4185e94de8a0f91 + size: 18632958 + timestamp: 1765795548407 +- conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-1.19.1-py314h6482030_0.conda + sha256: b36d3a5728413d18dedfecdfd0248647b21f3e725547c03ef245bc1c08da98f8 + md5: 62c7130c7f42ab43c9d1d64bbc7c2f3e depends: - __osx >=10.13 - mypy_extensions >=1.0.0 - pathspec >=0.9.0 - psutil >=4.0 - - python >=3.12,<3.13.0a0 + - python >=3.14,<3.15.0a0 - python-librt >=0.6.2 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 - typing_extensions >=4.6.0 license: MIT license_family: MIT purls: - pkg:pypi/mypy?source=hash-mapping - size: 13807901 - timestamp: 1764427998727 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.19.0-py312hefc2c51_1.conda - sha256: a1e2bba8c330180f56be7eb6cf0af9982dcb77781509f01c74d472194116ae95 - md5: bddc65c2c5058c41e89a31d06fff49b7 + size: 12043718 + timestamp: 1765796036801 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-1.19.1-py312hefc2c51_0.conda + sha256: 6d3e7afb2c0d07c1cc18394749b33466103599024691ccd01a413b33e3ca7058 + md5: 066e48f36dc3c70fa25b3228d781b57c depends: - __osx >=11.0 - mypy_extensions >=1.0.0 @@ -7054,18 +7251,18 @@ packages: license_family: MIT purls: - pkg:pypi/mypy?source=hash-mapping - size: 10995498 - timestamp: 1764427825122 -- conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.19.0-py313h5ea7bf4_1.conda - sha256: bdbb55cfa7aa45e58374271a6c9e387681817ba29bb100f113d8b5886093cabb - md5: 5f1330046650657c1af580041b5cf712 + size: 11025065 + timestamp: 1765796035384 +- conda: https://conda.anaconda.org/conda-forge/win-64/mypy-1.19.1-py314h5a2d7ad_0.conda + sha256: 59c5f9046ad3ab9a449dee682392799d9589c12e470f0c6fed7f2aaa9b8e8ca2 + md5: 4ca21331a3962c4fcf658d6d47df4c0b depends: - mypy_extensions >=1.0.0 - pathspec >=0.9.0 - psutil >=4.0 - - python >=3.13,<3.14.0a0 + - python >=3.14,<3.15.0a0 - python-librt >=0.6.2 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - typing_extensions >=4.6.0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 @@ -7074,8 +7271,8 @@ packages: license_family: MIT purls: - pkg:pypi/mypy?source=hash-mapping - size: 10861642 - timestamp: 1764427287985 + size: 9114684 + timestamp: 1765795714379 - conda: https://conda.anaconda.org/conda-forge/noarch/mypy_extensions-1.1.0-pyha770c72_0.conda sha256: 6ed158e4e5dd8f6a10ad9e525631e35cee8557718f83de7a4e3966b1f772c4b1 md5: e9c622e0d00fa24a6292279af3ab6d06 @@ -7087,9 +7284,9 @@ packages: - pkg:pypi/mypy-extensions?source=hash-mapping size: 11766 timestamp: 1745776666688 -- conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.2-pyhd8ed1ab_0.conda - sha256: a20cff739d66c2f89f413e4ba4c6f6b59c50d5c30b5f0d840c13e8c9c2df9135 - md5: 6bb0d77277061742744176ab555b723c +- conda: https://conda.anaconda.org/conda-forge/noarch/nbclient-0.10.4-pyhd8ed1ab_0.conda + sha256: 1b66960ee06874ddceeebe375d5f17fb5f393d025a09e15b830ad0c4fffb585b + md5: 00f5b8dafa842e0c27c1cd7296aa4875 depends: - jupyter_client >=6.1.12 - jupyter_core >=4.12,!=5.0.* @@ -7099,9 +7296,9 @@ packages: license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/nbclient?source=hash-mapping - size: 28045 - timestamp: 1734628936013 + - pkg:pypi/nbclient?source=compressed-mapping + size: 28473 + timestamp: 1766485646962 - conda: https://conda.anaconda.org/conda-forge/noarch/nbconvert-core-7.16.6-pyhcf101f3_1.conda sha256: 8f575e5c042b17f4677179a6ba474bdbe76573936d3d3e2aeb42b511b9cb1f3f md5: cfc86ccc3b1de35d36ccaae4c50391f5 @@ -7186,18 +7383,18 @@ packages: - pkg:pypi/nest-asyncio?source=hash-mapping size: 11543 timestamp: 1733325673691 -- conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.9.1-pyhd8ed1ab_1.conda - sha256: 3636eec0e60466a00069b47ce94b6d88b01419b6577d8e393da44bb5bc8d3468 - md5: 7ba3f09fceae6a120d664217e58fe686 +- conda: https://conda.anaconda.org/conda-forge/noarch/nodeenv-1.10.0-pyhd8ed1ab_0.conda + sha256: 4fa40e3e13fc6ea0a93f67dfc76c96190afd7ea4ffc1bac2612d954b42cdc3ee + md5: eb52d14a901e23c39e9e7b4a1a5c015f depends: - - python >=3.9 + - python >=3.10 - setuptools license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/nodeenv?source=hash-mapping - size: 34574 - timestamp: 1734112236147 + size: 40866 + timestamp: 1766261270149 - conda: https://conda.anaconda.org/conda-forge/noarch/notebook-shim-0.2.4-pyhd8ed1ab_1.conda sha256: 7b920e46b9f7a2d2aa6434222e5c8d739021dbc5cc75f32d124a8191d86f9056 md5: e7f89ea5f7ea9401642758ff50a2d9c1 @@ -7210,184 +7407,180 @@ packages: - pkg:pypi/notebook-shim?source=hash-mapping size: 16817 timestamp: 1733408419340 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.62.1-py313hd8e3f9f_0.conda - sha256: 0b0ccf81ecd0cfb934818c3fb88404821904fe84e67815ab9958d37b0dca61e4 - md5: 82ffdc573a667626351f4110605da846 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numba-0.63.1-py314h8169c2f_0.conda + sha256: 6ab91790aeee336cc4526b02b477eb0f261df6bd9645f44a138b1e8a3ccc5e60 + md5: 9dfbe6bd11b1c77f618b347ec654b37b depends: - __glibc >=2.17,<3.0.a0 - _openmp_mutex >=4.5 - libgcc >=14 - libstdcxx >=14 - - llvmlite >=0.45.0,<0.46.0a0 + - llvmlite >=0.46.0,<0.47.0a0 + - numpy >=1.22.3,<2.4 - numpy >=1.23,<3 - - numpy >=1.24,<2.4 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 constrains: - - cudatoolkit >=11.2 - - cuda-version >=11.2 - tbb >=2021.6.0 + - libopenblas !=0.3.6 + - cuda-version >=11.2 + - cudatoolkit >=11.2 - cuda-python >=11.6 - scipy >=1.0 - - libopenblas !=0.3.6 license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/numba?source=hash-mapping - size: 5743830 - timestamp: 1759165232580 -- conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.62.1-py312h8e2b66f_1.conda - sha256: 133c5c49e632758b0c7d2cee695145ea5f24071fc6c50367d43d30e44ea85ede - md5: 3f319fa22bd4752fe782e15e7d6edc8e + size: 5797268 + timestamp: 1765466862046 +- conda: https://conda.anaconda.org/conda-forge/osx-64/numba-0.63.1-py314h385e359_0.conda + sha256: 509aa88417715824d67fb0d685ea26f0a401cb91021c090a59e08c41f595d5dd + md5: 5f3eba34afe3c828cde2576e12244982 depends: - __osx >=10.13 - libcxx >=19 - llvm-openmp >=19.1.7 - llvm-openmp >=21.1.7 - - llvmlite >=0.45.1,<0.46.0a0 + - llvmlite >=0.46.0,<0.47.0a0 + - numpy >=1.22.3,<2.4 - numpy >=1.23,<3 - - numpy >=1.24,<2.4 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 constrains: - - scipy >=1.0 - - cuda-version >=11.2 - cudatoolkit >=11.2 - - tbb >=2021.6.0 + - scipy >=1.0 - libopenblas !=0.3.6 - cuda-python >=11.6 + - tbb >=2021.6.0 + - cuda-version >=11.2 license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/numba?source=hash-mapping - size: 5702696 - timestamp: 1764804190539 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.62.1-py312he2ad07c_1.conda - sha256: 8d022e218d226da2f16102447c69d5d175db31b9f26c28591aa575ddf059412f - md5: 73aa817fa0eaf7b9dc9f8410ab910863 + size: 5785538 + timestamp: 1765808633074 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numba-0.63.1-py312h5d8d915_0.conda + sha256: ec49048a7d9c3998483492fc7d481afca9cdf6d28d5d4cb7cfcfc699cad0ae77 + md5: bb763f1c7248b15a7ac67069aea6e1ef depends: - __osx >=11.0 - libcxx >=19 - llvm-openmp >=19.1.7 - llvm-openmp >=21.1.7 - - llvmlite >=0.45.1,<0.46.0a0 + - llvmlite >=0.46.0,<0.47.0a0 + - numpy >=1.22.3,<2.4 - numpy >=1.23,<3 - - numpy >=1.24,<2.4 - python >=3.12,<3.13.0a0 - python >=3.12,<3.13.0a0 *_cpython - python_abi 3.12.* *_cp312 constrains: - cuda-python >=11.6 + - libopenblas >=0.3.18,!=0.3.20 - cuda-version >=11.2 - - tbb >=2021.6.0 - cudatoolkit >=11.2 - - libopenblas >=0.3.18,!=0.3.20 + - tbb >=2021.6.0 - scipy >=1.0 license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/numba?source=hash-mapping - size: 5667157 - timestamp: 1764804322043 -- conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.62.1-py313h7bbedcd_1.conda - sha256: cc2293a8e5e9786335c9dfbe6a94a472ab1dbd5ccb514fa54d6d92e7203a7afd - md5: dc4f70bf3ff4dae56a9279ac06846ff5 - depends: - - llvmlite >=0.45.1,<0.46.0a0 + size: 5709625 + timestamp: 1765467246160 +- conda: https://conda.anaconda.org/conda-forge/win-64/numba-0.63.1-py314h36f8cf2_0.conda + sha256: 1bbfc2793e04aaac5d289e6e5bec8b020b4419c4af1e161ab409c6995d1cc89d + md5: a77827229f4dfdbae9d503707d41a277 + depends: + - llvmlite >=0.46.0,<0.47.0a0 + - numpy >=1.22.3,<2.4 - numpy >=1.23,<3 - - numpy >=1.24,<2.4 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 constrains: + - tbb >=2021.6.0 - libopenblas !=0.3.6 + - cuda-version >=11.2 + - cudatoolkit >=11.2 - scipy >=1.0 - cuda-python >=11.6 - - cudatoolkit >=11.2 - - cuda-version >=11.2 - - tbb >=2021.6.0 license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/numba?source=hash-mapping - size: 5721789 - timestamp: 1764804080514 -- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.5-py313hf6604e3_0.conda - sha256: d54453cb875ed66139c973313465f757a5d6c7ab5760b96484ae56cb8a16ca23 - md5: 15f43bcd12c90186e78801fafc53d89b + size: 5775759 + timestamp: 1765466860567 +- conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.3.5-py314h2b28147_1.conda + sha256: 81425306df4f0ddba159e80c8d91323a34df335079ca93a194201e57b337231c + md5: ab17cb5f388fa17c08937cb9cc24e7b6 depends: - python + - __glibc >=2.17,<3.0.a0 - libgcc >=14 - libstdcxx >=14 - - libgcc >=14 - - __glibc >=2.17,<3.0.a0 - liblapack >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - libblas >=3.9.0,<4.0a0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=hash-mapping - size: 8919466 - timestamp: 1763351050066 -- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.5-py312ha3982b3_0.conda - sha256: 62c2a6fb30fec82f8d46defcf33c94a04d5c890ce02b3ddeeda3263f9043688c - md5: 6941ace329a1f088d1b3b399369aecec + size: 8983076 + timestamp: 1766383421113 +- conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.3.5-py314hfc4c462_1.conda + sha256: 48499b5ba2bcc93c58ef180ce49d5b2200ecc3bdc2fc7b3386d5c3d31634dfab + md5: beb25ac1bb46d5b7841f1a8c5f2d379a depends: - python - - libcxx >=19 - __osx >=10.13 - - liblapack >=3.9.0,<4.0a0 + - libcxx >=19 - libblas >=3.9.0,<4.0a0 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 - libcblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/numpy?source=hash-mapping - size: 7992092 - timestamp: 1763350891083 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.3.5-py312h85ea64e_0.conda - sha256: 095dc7f15d2f8d9970a6a4e9d4a1980989a4209cd34c2b756fbd40e71f6990cc - md5: ee4c185ae9c1edeb8e8cd26273c90a9a + size: 8142180 + timestamp: 1766383313292 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.3.5-py312he281c53_1.conda + sha256: 0377c031951fc7ac3023f4b832c4a075e0e562015060e6f87bd751b45a1ef5ab + md5: 5a064b1a93c26d2960bbc49fa1de524b depends: - python + - libcxx >=19 - __osx >=11.0 - python 3.12.* *_cpython - - libcxx >=19 - - libcblas >=3.9.0,<4.0a0 - - libblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 - python_abi 3.12.* *_cp312 constrains: - numpy-base <0a0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/numpy?source=compressed-mapping - size: 6704341 - timestamp: 1763350985482 -- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.5-py313hce7ae62_0.conda - sha256: 50014f115267d3669a305f78c9c7c20cc580a1d17ee5e2f919a5b43beb90757e - md5: 3992ec589140124987e4acb3ec200322 + - pkg:pypi/numpy?source=hash-mapping + size: 6706018 + timestamp: 1766383302517 +- conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.3.5-py314h06c3c77_1.conda + sha256: 111a7af69521dce54ce6b4d89ef767ade9f3769576353a526174792de8702b5d + md5: 71dabea9914329c08b4864955c3793fc depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 - liblapack >=3.9.0,<4.0a0 - libblas >=3.9.0,<4.0a0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - libcblas >=3.9.0,<4.0a0 constrains: - numpy-base <0a0 @@ -7395,8 +7588,8 @@ packages: license_family: BSD purls: - pkg:pypi/numpy?source=hash-mapping - size: 7522467 - timestamp: 1763350921681 + size: 7584934 + timestamp: 1766383321713 - conda: https://conda.anaconda.org/conda-forge/linux-64/openjpeg-2.5.4-h55fea9a_0.conda sha256: 3900f9f2dbbf4129cf3ad6acf4e4b6f7101390b53843591c53b00f034343bc4d md5: 11b3379b191f63139e29c0d19dee24cd @@ -7569,225 +7762,246 @@ packages: - pkg:pypi/packageurl-python?source=hash-mapping size: 33897 timestamp: 1764001202900 -- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-25.0-pyh29332c3_1.conda - sha256: 289861ed0c13a15d7bbb408796af4de72c2fe67e2bcb0de98f4c3fce259d7991 - md5: 58335b26c38bf4a20f399384c33cbcf9 +- conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.0-pyhcf101f3_0.conda + sha256: c1fc0f953048f743385d31c468b4a678b3ad20caffdeaa94bed85ba63049fd58 + md5: b76541e68fea4d511b1ac46a28dcd2c6 depends: - python >=3.8 - python license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/packaging?source=hash-mapping - size: 62477 - timestamp: 1745345660407 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-2.3.3-py313h08cd8bf_1.conda - sha256: c4ce5f75d175cb264dc98af6db14378222b63955c63bf1b5e30e042e81624fae - md5: 9e87d4bda0c2711161d765332fa38781 + - pkg:pypi/packaging?source=compressed-mapping + size: 72010 + timestamp: 1769093650580 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.0.0-py314hb4ffadd_0.conda + sha256: f30137257c499f8f38943c21d46c90a2c23e4d6d54babdcef9c130acf8cb1a94 + md5: 90e3461036907dcd77c950308c1033d2 depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 + - python + - numpy >=1.26.0 + - python-dateutil >=2.8.2 - libstdcxx >=14 - - numpy >=1.22.4 + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.14.* *_cp314 - numpy >=1.23,<3 - - python >=3.13,<3.14.0a0 - - python-dateutil >=2.8.2 - - python-tzdata >=2022.7 - - python_abi 3.13.* *_cp313 - - pytz >=2020.1 constrains: - - xlrd >=2.0.1 - - scipy >=1.10.0 - - fsspec >=2022.11.0 + - adbc-driver-postgresql >=1.2.0 + - adbc-driver-sqlite >=1.2.0 + - beautifulsoup4 >=4.12.3 + - blosc >=1.21.3 + - bottleneck >=1.4.2 + - fastparquet >=2024.11.0 + - fsspec >=2024.10.0 + - gcsfs >=2024.10.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.5 + - lxml >=5.3.0 + - matplotlib >=3.9.3 + - numba >=0.60.0 + - numexpr >=2.10.2 - odfpy >=1.4.1 - - beautifulsoup4 >=4.11.2 - - python-calamine >=0.1.7 - - numexpr >=2.8.4 - - pytables >=3.8.0 - - pandas-gbq >=0.19.0 - - tzdata >=2022.7 - - pyxlsb >=1.0.10 - - xarray >=2022.12.0 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=13.0.0 + - pyiceberg >=0.8.1 + - pymysql >=1.1.1 - pyqt5 >=5.15.9 - - lxml >=4.9.2 - - matplotlib >=3.6.3 - - openpyxl >=3.1.0 - - qtpy >=2.3.0 - - psycopg2 >=2.9.6 - - pyarrow >=10.0.1 + - pyreadstat >=1.2.8 + - pytables >=3.10.1 + - pytest >=8.3.4 + - pytest-xdist >=3.6.1 + - python-calamine >=0.3.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.2 + - scipy >=1.14.1 + - s3fs >=2024.10.0 + - sqlalchemy >=2.0.36 - tabulate >=0.9.0 - - zstandard >=0.19.0 - - html5lib >=1.1 - - bottleneck >=1.3.6 - - numba >=0.56.4 - - sqlalchemy >=2.0.0 - - pyreadstat >=1.2.0 - - gcsfs >=2022.11.0 - - fastparquet >=2022.12.0 - - s3fs >=2022.11.0 - - blosc >=1.21.3 - - xlsxwriter >=3.0.5 + - xarray >=2024.10.0 + - xlrd >=2.0.1 + - xlsxwriter >=3.2.0 + - zstandard >=0.23.0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/pandas?source=hash-mapping - size: 15131510 - timestamp: 1759266202915 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-2.3.3-py312h86abcb1_2.conda - sha256: 112273ffd9572a4733c98b9d80a243f38db4d0fce5d34befaf9eb6f64ed39ba3 - md5: d7dfad2b9a142319cec4736fe88d8023 + size: 15253498 + timestamp: 1769076318460 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-3.0.0-py314h550b3c8_0.conda + sha256: a3b7c6a18a782d46a38dd6efca16367f53e2624cfd34fe2445fab691e652ee40 + md5: 6c2fa7e6dc0b23634f2f19d7054516b1 depends: + - python + - numpy >=1.26.0 + - python-dateutil >=2.8.2 - __osx >=10.13 - libcxx >=19 - - numpy >=1.22.4 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python-dateutil >=2.8.2 - - python-tzdata >=2022.7 - - python_abi 3.12.* *_cp312 - - pytz >=2020.1 + - python_abi 3.14.* *_cp314 constrains: - - pyarrow >=10.0.1 - - tabulate >=0.9.0 + - adbc-driver-postgresql >=1.2.0 + - adbc-driver-sqlite >=1.2.0 + - beautifulsoup4 >=4.12.3 + - blosc >=1.21.3 + - bottleneck >=1.4.2 + - fastparquet >=2024.11.0 + - fsspec >=2024.10.0 + - gcsfs >=2024.10.0 - html5lib >=1.1 - - s3fs >=2022.11.0 - - pandas-gbq >=0.19.0 - - matplotlib >=3.6.3 - - qtpy >=2.3.0 - - scipy >=1.10.0 - - zstandard >=0.19.0 - - bottleneck >=1.3.6 - - numexpr >=2.8.4 - - pyxlsb >=1.0.10 - - tzdata >=2022.7 - - psycopg2 >=2.9.6 - - pytables >=3.8.0 - - fsspec >=2022.11.0 - - python-calamine >=0.1.7 - - xarray >=2022.12.0 - - numba >=0.56.4 + - hypothesis >=6.116.0 + - jinja2 >=3.1.5 + - lxml >=5.3.0 + - matplotlib >=3.9.3 + - numba >=0.60.0 + - numexpr >=2.10.2 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=13.0.0 + - pyiceberg >=0.8.1 + - pymysql >=1.1.1 - pyqt5 >=5.15.9 + - pyreadstat >=1.2.8 + - pytables >=3.10.1 + - pytest >=8.3.4 + - pytest-xdist >=3.6.1 + - python-calamine >=0.3.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.2 + - scipy >=1.14.1 + - s3fs >=2024.10.0 + - sqlalchemy >=2.0.36 + - tabulate >=0.9.0 + - xarray >=2024.10.0 - xlrd >=2.0.1 - - blosc >=1.21.3 - - odfpy >=1.4.1 - - openpyxl >=3.1.0 - - fastparquet >=2022.12.0 - - xlsxwriter >=3.0.5 - - pyreadstat >=1.2.0 - - sqlalchemy >=2.0.0 - - gcsfs >=2022.11.0 - - beautifulsoup4 >=4.11.2 - - lxml >=4.9.2 + - xlsxwriter >=3.2.0 + - zstandard >=0.23.0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/pandas?source=hash-mapping - size: 14008759 - timestamp: 1764615365220 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-2.3.3-py312h5978115_2.conda - sha256: 93aa5b02e2394080a32fee9fb151da3384d317a42472586850abb37b28f314db - md5: fcbba82205afa4956c39136c68929385 + size: 14547898 + timestamp: 1769076417704 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-3.0.0-py312hae6be28_0.conda + sha256: e77a102f752d66a4afbda7ba4746689ec3083723d5d6fc7d5af8ddef25ff5655 + md5: 2b38a1d070dff7f0f92641a5fa130e23 depends: + - python + - numpy >=1.26.0 + - python-dateutil >=2.8.2 - __osx >=11.0 + - python 3.12.* *_cpython - libcxx >=19 - - numpy >=1.22.4 - numpy >=1.23,<3 - - python >=3.12,<3.13.0a0 - - python >=3.12,<3.13.0a0 *_cpython - - python-dateutil >=2.8.2 - - python-tzdata >=2022.7 - python_abi 3.12.* *_cp312 - - pytz >=2020.1 constrains: - - xarray >=2022.12.0 - - scipy >=1.10.0 - - tabulate >=0.9.0 - - pytables >=3.8.0 - - xlsxwriter >=3.0.5 - - pyxlsb >=1.0.10 - - odfpy >=1.4.1 - - zstandard >=0.19.0 - - fastparquet >=2022.12.0 - - gcsfs >=2022.11.0 - - beautifulsoup4 >=4.11.2 - - qtpy >=2.3.0 - - xlrd >=2.0.1 - - pandas-gbq >=0.19.0 - - s3fs >=2022.11.0 - - pyreadstat >=1.2.0 - - tzdata >=2022.7 - - html5lib >=1.1 - - fsspec >=2022.11.0 - - lxml >=4.9.2 - - numexpr >=2.8.4 + - adbc-driver-postgresql >=1.2.0 + - adbc-driver-sqlite >=1.2.0 + - beautifulsoup4 >=4.12.3 - blosc >=1.21.3 - - openpyxl >=3.1.0 - - pyarrow >=10.0.1 - - python-calamine >=0.1.7 - - numba >=0.56.4 - - sqlalchemy >=2.0.0 + - bottleneck >=1.4.2 + - fastparquet >=2024.11.0 + - fsspec >=2024.10.0 + - gcsfs >=2024.10.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.5 + - lxml >=5.3.0 + - matplotlib >=3.9.3 + - numba >=0.60.0 + - numexpr >=2.10.2 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=13.0.0 + - pyiceberg >=0.8.1 + - pymysql >=1.1.1 - pyqt5 >=5.15.9 - - psycopg2 >=2.9.6 - - bottleneck >=1.3.6 - - matplotlib >=3.6.3 + - pyreadstat >=1.2.8 + - pytables >=3.10.1 + - pytest >=8.3.4 + - pytest-xdist >=3.6.1 + - python-calamine >=0.3.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.2 + - scipy >=1.14.1 + - s3fs >=2024.10.0 + - sqlalchemy >=2.0.36 + - tabulate >=0.9.0 + - xarray >=2024.10.0 + - xlrd >=2.0.1 + - xlsxwriter >=3.2.0 + - zstandard >=0.23.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=compressed-mapping - size: 13893993 - timestamp: 1764615503244 -- conda: https://conda.anaconda.org/conda-forge/win-64/pandas-2.3.3-py313hc90dcd4_2.conda - sha256: 807f77a7b6f3029a71ec0292db50ab540f764c7c250faf0802791f661ce18f6c - md5: cbac92ffc6114c9660218136c65878b4 + - pkg:pypi/pandas?source=hash-mapping + size: 13876050 + timestamp: 1769076491884 +- conda: https://conda.anaconda.org/conda-forge/win-64/pandas-3.0.0-py314hf700ef7_0.conda + sha256: 00c4c8032729fef4bf8108cb649753b96ac989742e509a8d70428f927e36fafb + md5: 9d14b9c28339fb30b1382787784c007f depends: - - numpy >=1.22.4 - - numpy >=1.23,<3 - - python >=3.13,<3.14.0a0 + - python + - numpy >=1.26.0 - python-dateutil >=2.8.2 - - python-tzdata >=2022.7 - - python_abi 3.13.* *_cp313 - - pytz >=2020.1 - - ucrt >=10.0.20348.0 + - python-tzdata - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - numpy >=1.23,<3 + - python_abi 3.14.* *_cp314 constrains: - - xlsxwriter >=3.0.5 - - psycopg2 >=2.9.6 - - beautifulsoup4 >=4.11.2 - - lxml >=4.9.2 - - sqlalchemy >=2.0.0 - - tzdata >=2022.7 - - s3fs >=2022.11.0 - - pyreadstat >=1.2.0 - - tabulate >=0.9.0 - - odfpy >=1.4.1 - - matplotlib >=3.6.3 - - pytables >=3.8.0 - - numba >=0.56.4 - - xarray >=2022.12.0 + - adbc-driver-postgresql >=1.2.0 + - adbc-driver-sqlite >=1.2.0 + - beautifulsoup4 >=4.12.3 - blosc >=1.21.3 - - gcsfs >=2022.11.0 - - python-calamine >=0.1.7 - - xlrd >=2.0.1 - - zstandard >=0.19.0 - - pyxlsb >=1.0.10 - - bottleneck >=1.3.6 - - scipy >=1.10.0 - - fastparquet >=2022.12.0 - - pyarrow >=10.0.1 - - openpyxl >=3.1.0 - - fsspec >=2022.11.0 - - pandas-gbq >=0.19.0 - - qtpy >=2.3.0 + - bottleneck >=1.4.2 + - fastparquet >=2024.11.0 + - fsspec >=2024.10.0 + - gcsfs >=2024.10.0 - html5lib >=1.1 - - numexpr >=2.8.4 + - hypothesis >=6.116.0 + - jinja2 >=3.1.5 + - lxml >=5.3.0 + - matplotlib >=3.9.3 + - numba >=0.60.0 + - numexpr >=2.10.2 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=13.0.0 + - pyiceberg >=0.8.1 + - pymysql >=1.1.1 - pyqt5 >=5.15.9 + - pyreadstat >=1.2.8 + - pytables >=3.10.1 + - pytest >=8.3.4 + - pytest-xdist >=3.6.1 + - python-calamine >=0.3.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.2 + - scipy >=1.14.1 + - s3fs >=2024.10.0 + - sqlalchemy >=2.0.36 + - tabulate >=0.9.0 + - xarray >=2024.10.0 + - xlrd >=2.0.1 + - xlsxwriter >=3.2.0 + - zstandard >=0.23.0 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/pandas?source=compressed-mapping - size: 13807691 - timestamp: 1764615160918 + - pkg:pypi/pandas?source=hash-mapping + size: 14005537 + timestamp: 1769076350929 - conda: https://conda.anaconda.org/conda-forge/noarch/pandocfilters-1.5.0-pyhd8ed1ab_0.tar.bz2 sha256: 2bb9ba9857f4774b85900c2562f7e711d08dd48e2add9bee4e1612fbee27e16f md5: 457c2c8c08e54905d6954e79cb5b5db9 @@ -7811,20 +8025,20 @@ packages: - pkg:pypi/parso?source=hash-mapping size: 81562 timestamp: 1755974222274 -- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-0.12.1-pyhd8ed1ab_1.conda - sha256: 9f64009cdf5b8e529995f18e03665b03f5d07c0b17445b8badef45bde76249ee - md5: 617f15191456cc6a13db418a275435e5 +- conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.0.3-pyhd8ed1ab_0.conda + sha256: 9b046bd271421cec66650f770b66f29692bcbfc4cfe40b24487eae396d2bcf26 + md5: 0485a8731a6d82f181e0e073a2e39a39 depends: - - python >=3.9 + - python >=3.10 license: MPL-2.0 license_family: MOZILLA purls: - pkg:pypi/pathspec?source=hash-mapping - size: 41075 - timestamp: 1733233471940 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.46-h1321c63_0.conda - sha256: 5c7380c8fd3ad5fc0f8039069a45586aa452cf165264bc5a437ad80397b32934 - md5: 7fa07cb0fb1b625a089ccc01218ee5b1 + size: 53364 + timestamp: 1767999155326 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-haa7fec5_0.conda + sha256: 5e6f7d161356fefd981948bea5139c5aa0436767751a6930cb1ca801ebb113ff + md5: 7a3bff861a6583f1889021facefc08b1 depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 @@ -7833,11 +8047,11 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 1209177 - timestamp: 1756742976157 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.46-ha3e7e28_0.conda - sha256: cb262b7f369431d1086445ddd1f21d40003bb03229dfc1d687e3a808de2663a6 - md5: 3b504da3a4f6d8b2b1f969686a0bf0c0 + size: 1222481 + timestamp: 1763655398280 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pcre2-10.47-h13923f0_0.conda + sha256: 8d64a9d36073346542e5ea042ef8207a45a0069a2e65ce3323ee3146db78134c + md5: 08f970fb2b75f5be27678e077ebedd46 depends: - __osx >=10.13 - bzip2 >=1.0.8,<2.0a0 @@ -7845,11 +8059,11 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 1097626 - timestamp: 1756743061564 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.46-h7125dd6_0.conda - sha256: 5bf2eeaa57aab6e8e95bea6bd6bb2a739f52eb10572d8ed259d25864d3528240 - md5: 0e6e82c3cc3835f4692022e9b9cd5df8 + size: 1106584 + timestamp: 1763655837207 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-h30297fc_0.conda + sha256: 5e2e443f796f2fd92adf7978286a525fb768c34e12b1ee9ded4000a41b2894ba + md5: 9b4190c4055435ca3502070186eba53a depends: - __osx >=11.0 - bzip2 >=1.0.8,<2.0a0 @@ -7857,11 +8071,11 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 835080 - timestamp: 1756743041908 -- conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.46-h3402e2f_0.conda - sha256: 29c2ed44a8534d27faad96bdce16efe29c2788f556f4c5409d4ae8ae074681ec - md5: 889053e920d15353c2665fa6310d7a7a + size: 850231 + timestamp: 1763655726735 +- conda: https://conda.anaconda.org/conda-forge/win-64/pcre2-10.47-hd2b5f0e_0.conda + sha256: 3e9e02174edf02cb4bcdd75668ad7b74b8061791a3bc8bdb8a52ae336761ba3e + md5: 77eaf2336f3ae749e712f63e36b0f0a1 depends: - bzip2 >=1.0.8,<2.0a0 - libzlib >=1.3.1,<2.0a0 @@ -7871,8 +8085,8 @@ packages: license: BSD-3-Clause license_family: BSD purls: [] - size: 1034703 - timestamp: 1756743085974 + size: 995992 + timestamp: 1763655708300 - conda: https://conda.anaconda.org/conda-forge/noarch/pexpect-4.9.0-pyhd8ed1ab_1.conda sha256: 202af1de83b585d36445dc1fda94266697341994d1a3328fabde4989e1b3d07a md5: d0d408b1f18883a944376da5cf8101ea @@ -7884,98 +8098,98 @@ packages: - pkg:pypi/pexpect?source=hash-mapping size: 53561 timestamp: 1733302019362 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.0.0-py313h80991f8_2.conda - sha256: 5319da7c24f4f876c966fc6e83789aa4530779d4454c37c4169f79050555bc26 - md5: 37ca27d2f726f29a068230d8f6917ce4 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pillow-12.1.0-py314h8ec4b1a_0.conda + sha256: 6d8e32dc44165cff96ec9c00383e998fd035983d971c5f35ebed6f5f51c4022a + md5: f9b6a8fbb8dcb840a0c1c052dc5092e4 depends: - python - - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - libwebp-base >=1.6.0,<2.0a0 - - libjpeg-turbo >=3.1.2,<4.0a0 + - libgcc >=14 - lcms2 >=2.17,<3.0a0 - - libxcb >=1.17.0,<2.0a0 - - python_abi 3.13.* *_cp313 - - zlib-ng >=2.3.1,<2.4.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 + - libjpeg-turbo >=3.1.2,<4.0a0 + - zlib-ng >=2.3.2,<2.4.0a0 + - libxcb >=1.17.0,<2.0a0 + - libwebp-base >=1.6.0,<2.0a0 - openjpeg >=2.5.4,<3.0a0 + - python_abi 3.14.* *_cp314 - libtiff >=4.7.1,<4.8.0a0 - tk >=8.6.13,<8.7.0a0 license: HPND purls: - pkg:pypi/pillow?source=hash-mapping - size: 1040806 - timestamp: 1764330106863 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.0.0-py312hea0c9db_2.conda - sha256: 8c2fc5ff5d9b6d9e285ef217e78d90820d507c98b961256dd410f48307360754 - md5: 1d9e77d994f7593d52f6f42ec2712b4d + size: 1072995 + timestamp: 1767353193452 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pillow-12.1.0-py314hf9dbaa9_0.conda + sha256: f7cf133ea24a3ba8fa66c787305951a80a90f50f8922e496b70dae72a36d3101 + md5: ca55b2df1530e093f26d25ed503aafe8 depends: - python - __osx >=10.13 + - python_abi 3.14.* *_cp314 + - openjpeg >=2.5.4,<3.0a0 - tk >=8.6.13,<8.7.0a0 - - lcms2 >=2.17,<3.0a0 - - python_abi 3.12.* *_cp312 - libjpeg-turbo >=3.1.2,<4.0a0 - libxcb >=1.17.0,<2.0a0 - - openjpeg >=2.5.4,<3.0a0 - - zlib-ng >=2.3.1,<2.4.0a0 - - libwebp-base >=1.6.0,<2.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 + - libwebp-base >=1.6.0,<2.0a0 + - lcms2 >=2.17,<3.0a0 - libtiff >=4.7.1,<4.8.0a0 + - zlib-ng >=2.3.2,<2.4.0a0 license: HPND purls: - pkg:pypi/pillow?source=hash-mapping - size: 961639 - timestamp: 1764330318999 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.0.0-py312h95c711c_2.conda - sha256: b720df83d27af31466c77554b95a78fa03e458810537570fb05850a119667c07 - md5: 817cd66153338f403cf05d8a09d93fad + size: 1004566 + timestamp: 1767353261553 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pillow-12.1.0-py312h4e908a4_0.conda + sha256: 8cf9e79ad0ba1206f716dd3f6ca9c48e2864882e0c514d1fe4dbfebe63f25ac0 + md5: d831c4844e7a04eab4aa91a2c26dbbdd depends: - python - - python 3.12.* *_cpython - __osx >=11.0 - - libjpeg-turbo >=3.1.2,<4.0a0 + - python 3.12.* *_cpython + - zlib-ng >=2.3.2,<2.4.0a0 + - python_abi 3.12.* *_cp312 + - tk >=8.6.13,<8.7.0a0 + - libwebp-base >=1.6.0,<2.0a0 + - openjpeg >=2.5.4,<3.0a0 + - lcms2 >=2.17,<3.0a0 - libxcb >=1.17.0,<2.0a0 + - libtiff >=4.7.1,<4.8.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 - libfreetype >=2.14.1 - libfreetype6 >=2.14.1 - - zlib-ng >=2.3.1,<2.4.0a0 - - libtiff >=4.7.1,<4.8.0a0 - - libwebp-base >=1.6.0,<2.0a0 - - tk >=8.6.13,<8.7.0a0 - - lcms2 >=2.17,<3.0a0 - - openjpeg >=2.5.4,<3.0a0 - - python_abi 3.12.* *_cp312 license: HPND purls: - pkg:pypi/pillow?source=hash-mapping - size: 950740 - timestamp: 1764330196015 -- conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.0.0-py313h38f99e1_2.conda - sha256: 6c7a26238d0ee7e05df272e98103ad1deb91bd2d73c4cefc8445d1c876b08227 - md5: ac88da43d42b7c5badddb6bf3e6f8bc5 + size: 953450 + timestamp: 1767353279678 +- conda: https://conda.anaconda.org/conda-forge/win-64/pillow-12.1.0-py314h61b30b5_0.conda + sha256: b30a83db337dab8579a46e3da7906851f53d6cf8c09695aef6d2a38b17636c1c + md5: 17dbdfedee39f31166b7e548f3ccc58a depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - libtiff >=4.7.1,<4.8.0a0 + - libfreetype >=2.14.1 + - libfreetype6 >=2.14.1 + - tk >=8.6.13,<8.7.0a0 - libwebp-base >=1.6.0,<2.0a0 - lcms2 >=2.17,<3.0a0 + - libtiff >=4.7.1,<4.8.0a0 + - zlib-ng >=2.3.2,<2.4.0a0 + - openjpeg >=2.5.4,<3.0a0 - libjpeg-turbo >=3.1.2,<4.0a0 - - tk >=8.6.13,<8.7.0a0 - - python_abi 3.13.* *_cp313 - - zlib-ng >=2.3.1,<2.4.0a0 - - libfreetype >=2.14.1 - - libfreetype6 >=2.14.1 - libxcb >=1.17.0,<2.0a0 - - openjpeg >=2.5.4,<3.0a0 + - python_abi 3.14.* *_cp314 license: HPND purls: - pkg:pypi/pillow?source=hash-mapping - size: 943960 - timestamp: 1764330112081 + size: 973387 + timestamp: 1767353195064 - conda: https://conda.anaconda.org/conda-forge/noarch/pip-25.3-pyh145f28c_0.conda sha256: 4d5e2faca810459724f11f78d19a0feee27a7be2b3fc5f7abbbec4c9fdcae93d md5: bf47878473e5ab9fdb4115735230e191 @@ -7997,7 +8211,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pip?source=compressed-mapping + - pkg:pypi/pip?source=hash-mapping size: 1177534 timestamp: 1762776258783 - conda: https://conda.anaconda.org/conda-forge/noarch/pip-api-0.0.34-pyhd8ed1ab_0.conda @@ -8035,27 +8249,6 @@ packages: - pkg:pypi/pip-audit?source=hash-mapping size: 51236 timestamp: 1764641837169 -- conda: https://conda.anaconda.org/conda-forge/noarch/pip-audit-2.9.0-pyhd8ed1ab_0.conda - sha256: ca93b41fd7367cdc7dd3487c740e1535b46b2e7228eb0a21217359abe334de7b - md5: b7888afdd3117f8feb6c89efd441651e - depends: - - cachecontrol >=0.13.0 - - cyclonedx-python-lib >=5,<10 - - html5lib >=1.1 - - packaging >=23.0.0 - - pip-api >=0.0.28 - - pip-requirements-parser >=32.0.0 - - platformdirs >=4.2.0 - - python >=3.9 - - requests >=2.31.0 - - rich >=12.4 - - toml >=0.10 - license: Apache-2.0 - license_family: APACHE - purls: - - pkg:pypi/pip-audit?source=hash-mapping - size: 49787 - timestamp: 1744112714963 - conda: https://conda.anaconda.org/conda-forge/noarch/pip-requirements-parser-32.0.1-pyhd8ed1ab_1.conda sha256: 9ecaab7699f8f013589964005f3504d051bae8f9946726385c2f238d2aa66954 md5: 212766c9b600956a44725c3c9d504577 @@ -8119,29 +8312,29 @@ packages: purls: [] size: 542795 timestamp: 1754665193489 -- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.0-pyhcf101f3_0.conda - sha256: 7efd51b48d908de2d75cbb3c4a2e80dd9454e1c5bb8191b261af3136f7fa5888 - md5: 5c7a868f8241e64e1cf5fdf4962f23e2 +- conda: https://conda.anaconda.org/conda-forge/noarch/pkce-1.0.3-pyhd8ed1ab_1.conda + sha256: 5bf8d0d2c8db333abcd8455f06dbc01d60ffe2aac5fe6ff3d31bab69a5185a1e + md5: 26080682305b698406b4086210b9c237 depends: - - python >=3.10 - - python + - python >=3.9 license: MIT license_family: MIT purls: - - pkg:pypi/platformdirs?source=hash-mapping - size: 23625 - timestamp: 1759953252315 -- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhd8ed1ab_0.conda - sha256: a8eb555eef5063bbb7ba06a379fa7ea714f57d9741fe0efdb9442dbbc2cccbcc - md5: 7da7ccd349dbf6487a7778579d2bb971 + - pkg:pypi/pkce?source=hash-mapping + size: 9126 + timestamp: 1736219305828 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.5.1-pyhcf101f3_0.conda + sha256: 04c64fb78c520e5c396b6e07bc9082735a5cc28175dbe23138201d0a9441800b + md5: 1bd2e65c8c7ef24f4639ae6e850dacc2 depends: - - python >=3.9 + - python >=3.10 + - python license: MIT license_family: MIT purls: - - pkg:pypi/pluggy?source=hash-mapping - size: 24246 - timestamp: 1747339794916 + - pkg:pypi/platformdirs?source=hash-mapping + size: 23922 + timestamp: 1764950726246 - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda sha256: e14aafa63efa0528ca99ba568eaf506eb55a0371d12e6250aaaa61718d2eb62e md5: d7585b6550ad04c8c5e21097ada2888e @@ -8149,13 +8342,14 @@ packages: - python >=3.9 - python license: MIT + license_family: MIT purls: - pkg:pypi/pluggy?source=compressed-mapping size: 25877 timestamp: 1764896838868 -- conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.0-pyha770c72_0.conda - sha256: 8481f4939b1f81cf0db12456819368b41e3f998e4463e41611de4b13752b2c08 - md5: af8d4882203bccefec6f1aeed70030c6 +- conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-4.5.1-pyha770c72_0.conda + sha256: 5b81b7516d4baf43d0c185896b245fa7384b25dc5615e7baa504b7fa4e07b706 + md5: 7f3ac694319c7eaf81a0325d6405e974 depends: - cfgv >=2.0.0 - identify >=1.0.0 @@ -8167,19 +8361,19 @@ packages: license_family: MIT purls: - pkg:pypi/pre-commit?source=hash-mapping - size: 201265 - timestamp: 1764067809524 -- conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.23.1-pyhd8ed1ab_0.conda - sha256: 13dc67de68db151ff909f2c1d2486fa7e2d51355b25cee08d26ede1b62d48d40 - md5: a1e91db2d17fd258c64921cb38e6745a + size: 200827 + timestamp: 1765937577534 +- conda: https://conda.anaconda.org/conda-forge/noarch/prometheus_client-0.24.1-pyhd8ed1ab_0.conda + sha256: 75b2589159d04b3fb92db16d9970b396b9124652c784ab05b66f584edc97f283 + md5: 7526d20621b53440b0aae45d4797847e depends: - python >=3.10 license: Apache-2.0 license_family: Apache purls: - - pkg:pypi/prometheus-client?source=hash-mapping - size: 54592 - timestamp: 1758278323953 + - pkg:pypi/prometheus-client?source=compressed-mapping + size: 56634 + timestamp: 1768476602855 - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.52-pyha770c72_0.conda sha256: 4817651a276016f3838957bfdf963386438c70761e9faec7749d411635979bae md5: edb16f14d920fb3faf17f5ce582942d6 @@ -8194,36 +8388,36 @@ packages: - pkg:pypi/prompt-toolkit?source=hash-mapping size: 273927 timestamp: 1756321848365 -- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.1.3-py313h54dd161_0.conda - sha256: 26cf5a69d04ef66f03516b8a8211a43bb23d5225faacd7d36e5c987b0d66af0a - md5: 1d719fc61f91ab2644a2eeb35fcab360 +- conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.1-py314h0f05182_0.conda + sha256: 324455a702ef721290de6e51d9af4f7ca057546d6398bbc6e88454db17cdaf6b + md5: 28af9719e28f0054e9aee68153899293 depends: - python - - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 + - libgcc >=14 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/psutil?source=hash-mapping - size: 501735 - timestamp: 1762092897061 -- conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.1.3-py312h01f6755_0.conda - sha256: 053018613cabc02e87252104a597fc469ebf6af210ae1d24e9855fa5ac419205 - md5: 9587fcc6d21e10f59b708690399c5a66 + size: 228170 + timestamp: 1767012382363 +- conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.1-py314hd330473_0.conda + sha256: 8209d113e87bc44dd30a5362c470aed6fb5077310281e0badebb264f30dc9c29 + md5: 1ba0f65b475cb2ba8dfd33874e0b0ab5 depends: - python - __osx >=10.13 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/psutil?source=hash-mapping - size: 505701 - timestamp: 1762093032445 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.1.3-py312h37e1c23_0.conda - sha256: cd831dfe655fdb581e1c2c71fa072d2fce38538474a36cbde3ae2dd910a2ae76 - md5: d0b2f83de57eafaa6d7700b589c66096 + - pkg:pypi/psutil?source=compressed-mapping + size: 240243 + timestamp: 1767012474598 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.1-py312hb3ab3e3_0.conda + sha256: bf67f8107e06f9414c387fc149bbae58b596e4620fcf2643c3efd6b07e0cce4d + md5: 3cc4a5c8e49c40441f03dab773f2bc28 depends: - python - __osx >=11.0 @@ -8233,26 +8427,23 @@ packages: license_family: BSD purls: - pkg:pypi/psutil?source=hash-mapping - size: 508014 - timestamp: 1762093047823 -- conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.1.3-py313h5fd188c_0.conda - sha256: 460ad6347bcd4d83533322af7e09b41347491f867142972cde24ea16c8d8680b - md5: d61d8550d0dfe99408532c33e7ec26b5 + size: 235288 + timestamp: 1767012551069 +- conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.2.1-py314hc5dbbe4_0.conda + sha256: d776855d47e14d8b1521a3949c1d1dc3848c690170253ecc439264e219859e22 + md5: 65df3730bedf9c24f54414c8316f8e72 depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/psutil?source=hash-mapping - size: 520035 - timestamp: 1762092908165 + size: 245991 + timestamp: 1767012412984 - conda: https://conda.anaconda.org/conda-forge/linux-64/pthread-stubs-0.4-hb9d3cd8_1002.conda sha256: 9c88f8c64590e9567c6c80823f0328e58d3b1efb0e1c539c0315ceca764e0973 md5: b3c17d95b5a10c6e64a21fa17573e70e @@ -8359,39 +8550,39 @@ 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-py314h2e6c369_1.conda + sha256: 7e0ae379796e28a429f8e48f2fe22a0f232979d65ec455e91f8dac689247d39f + md5: 432b0716a1dfac69b86aa38fdd59b7e6 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.14.* *_cp314 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-64/pydantic-core-2.41.5-py312h8a6388b_1.conda - sha256: af6a81fdc058bcd22c87948df34744b33d622fbc12333cd4d2312b941b3205ec - md5: 8ab9943e70b341775f266f8fd1e2911b + size: 1943088 + timestamp: 1762988995556 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.41.5-py314ha7b6dee_1.conda + sha256: 7cb259e46ecb9f19eeea4d96035546376ce9370b51ffd18d57eb7170b08bbbf4 + md5: 8a9a08b79d530f482c9439790db774e1 depends: - python - typing-extensions >=4.6.0,!=4.7.0 - __osx >=10.13 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 constrains: - __osx >=10.13 license: MIT license_family: MIT purls: - pkg:pypi/pydantic-core?source=hash-mapping - size: 1939222 - timestamp: 1762989023771 + size: 1949458 + timestamp: 1762989007303 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.41.5-py312h6ef9ec0_1.conda sha256: 048da0a49d644dba126905a1abcea0aee75efe88b5d621b9007b569dd753cfbc md5: 88a76b4c912b6127d64298e3d8db980c @@ -8409,9 +8600,9 @@ packages: - pkg:pypi/pydantic-core?source=hash-mapping size: 1769018 timestamp: 1762989029329 -- conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.41.5-py313hfbe8231_1.conda - sha256: fb9391dc09dd01574c85e2342b9aa3b8664cd713401ef8fd6267865cc28988d8 - md5: 0437f87004ad7c64c98a013d1611db97 +- conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.41.5-py314h9f07db2_1.conda + sha256: 51773479d973c0b0b96cf581cb8444061eaac9b6c28f1cc6d33afc39201d5f13 + md5: c1f37669ed289c378f3193b35c9df2a7 depends: - python - typing-extensions >=4.6.0,!=4.7.0 @@ -8421,13 +8612,13 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/pydantic-core?source=hash-mapping - size: 1973031 - timestamp: 1762989056610 + size: 1971476 + timestamp: 1762989023313 - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.12.0-pyh3cfb1c2_0.conda sha256: 17d552dd19501909d626ff50cd23753d56e03ab670ce9096f1c4068e1eb90f2a md5: 0a3042ce18b785982c64a8567cc3e512 @@ -8439,7 +8630,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pydantic-settings?source=compressed-mapping + - pkg:pypi/pydantic-settings?source=hash-mapping size: 43752 timestamp: 1762786342653 - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.19.2-pyhd8ed1ab_0.conda @@ -8453,21 +8644,34 @@ packages: - pkg:pypi/pygments?source=hash-mapping size: 889287 timestamp: 1750615908735 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-12.1-py312h4a480f0_0.conda - sha256: ecf778f886aaf50db22c0971fb0873f0dbe25663f124bd714bc87b4d0925f534 - md5: 18a20cb8c3e19f0b3799a48eba5b44aa +- conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.10.1-pyhd8ed1ab_0.conda + sha256: 158d8911e873e2a339c27768933747bf9c2aec1caa038f1b7b38a011734a956f + md5: 84c5c40ea7c5bbc6243556e5daed20e7 + depends: + - python >=3.9 + constrains: + - cryptography >=3.4.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/pyjwt?source=hash-mapping + size: 25093 + timestamp: 1732782523102 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-core-12.1-py314h681fd4f_0.conda + sha256: f95c247d52009fd29887904a3ca1556ffd6cf0bff225b63f914c7b294007100a + md5: eea444aa695378a47d13a974a31c893d depends: - __osx >=10.13 - libffi >=3.5.2,<3.6.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - setuptools license: MIT license_family: MIT purls: - pkg:pypi/pyobjc-core?source=hash-mapping - size: 487397 - timestamp: 1763151480498 + size: 491826 + timestamp: 1763151541038 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-core-12.1-py312h19bbe71_0.conda sha256: b015f430fe9ea2c53e14be13639f1b781f68deaa5ae74cd8c1d07720890cd02a md5: c65d7abdc9e60fd3af0ed852591adf1b @@ -8484,21 +8688,21 @@ packages: - pkg:pypi/pyobjc-core?source=hash-mapping size: 476750 timestamp: 1763151865523 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-12.1-py312h1993040_0.conda - sha256: 3a29ca3cc2044b408447ff86ae0c57ecc3ff805a8fc838525610921024c8521a - md5: b6881a919e1bfd66349e2260b163dc7c +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyobjc-framework-cocoa-12.1-py314h9720295_0.conda + sha256: b1a54bbe3223a919e33778ee70c74756305f7fd14b7e739f4df8d576783a78ca + md5: 992ab0e7362326773eb8c2afa5c28a71 depends: - __osx >=10.13 - libffi >=3.5.2,<3.6.0a0 - pyobjc-core 12.1.* - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/pyobjc-framework-cocoa?source=hash-mapping - size: 375580 - timestamp: 1763160526695 + size: 374960 + timestamp: 1763160496034 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyobjc-framework-cocoa-12.1-py312h1de3e18_0.conda sha256: 3710f5ae09c2ea77ba4d82cc51e876d9fc009b878b197a40d3c6347c09ae7d7c md5: f0bae1b67ece138378923e340b940051 @@ -8515,47 +8719,47 @@ packages: - pkg:pypi/pyobjc-framework-cocoa?source=hash-mapping size: 377723 timestamp: 1763160705325 -- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.2.5-pyhcf101f3_0.conda - sha256: 6814b61b94e95ffc45ec539a6424d8447895fef75b0fec7e1be31f5beee883fb - md5: 6c8979be6d7a17692793114fa26916e8 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyparsing-3.3.2-pyhcf101f3_0.conda + sha256: 417fba4783e528ee732afa82999300859b065dc59927344b4859c64aae7182de + md5: 3687cc0b82a8b4c17e1f0eb7e47163d5 depends: - python >=3.10 - python license: MIT license_family: MIT purls: - - pkg:pypi/pyparsing?source=hash-mapping - size: 104044 - timestamp: 1758436411254 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.9.3-py313h85046ba_1.conda - sha256: 8d143b89d075b39fa25e69ad9be2396f4b591a205f95b2bf5a81a14cd397c56f - md5: bb7ac52bfa917611096023598a7df152 + - pkg:pypi/pyparsing?source=compressed-mapping + size: 110893 + timestamp: 1769003998136 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyside6-6.10.1-py314hf36963e_0.conda + sha256: 400bf53007d7fd70b4a7e060db51ebf42dbd93b7d0319944f69be6eb94b065da + md5: 7092c03811619ce1344ea40c31328264 depends: - __glibc >=2.17,<3.0.a0 - - libclang13 >=21.1.2 + - libclang13 >=21.1.7 - libegl >=1.7.0,<2.0a0 - libgcc >=14 - libgl >=1.7.0,<2.0a0 - libopengl >=1.7.0,<2.0a0 - libstdcxx >=14 - - libvulkan-loader >=1.4.313.0,<2.0a0 + - libvulkan-loader >=1.4.328.1,<2.0a0 - libxml2 - libxml2-16 >=2.14.6 - libxslt >=1.1.43,<2.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - qt6-main 6.9.3.* - - qt6-main >=6.9.3,<6.10.0a0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - qt6-main 6.10.1.* + - qt6-main >=6.10.1,<6.11.0a0 license: LGPL-3.0-only license_family: LGPL purls: - pkg:pypi/pyside6?source=hash-mapping - pkg:pypi/shiboken6?source=hash-mapping - size: 10101334 - timestamp: 1759403237088 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyside6-6.9.3-py312h956e4eb_1.conda - sha256: 5a12f12fdae2e74dd588c383e5b5eef6d99f46112e6269caa23036e926fd4670 - md5: b20e8cd7822c7c0f7936376c6b261b43 + size: 11719157 + timestamp: 1765812030250 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyside6-6.10.1-py314h47fa43d_0.conda + sha256: 9e1415b7248ae3074ca36b34519002d90b2244cb3a330c3b3c14aafeec8551aa + md5: b4cdc70c3e39bd956d57f6778a3c233d depends: - __osx >=11.0 - libclang13 >=19.1.7 @@ -8563,20 +8767,20 @@ packages: - libxml2 - libxml2-16 >=2.14.6 - libxslt >=1.1.43,<2.0a0 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - qt6-main 6.9.3.* - - qt6-main >=6.9.3,<6.10.0a0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - qt6-main 6.10.1.* + - qt6-main >=6.10.1,<6.11.0a0 license: LGPL-3.0-only license_family: LGPL purls: - pkg:pypi/pyside6?source=hash-mapping - pkg:pypi/shiboken6?source=hash-mapping - size: 11870872 - timestamp: 1759403613524 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyside6-6.9.3-py312h56a303a_1.conda - sha256: dd0dad10672b4980f88da09043a2b5efbc286abded9e95ae54bc6f4b47b74df0 - md5: 5c05693302fec9c5232c4766a4471300 + size: 13239376 + timestamp: 1765812072185 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyside6-6.10.1-py312h56a303a_0.conda + sha256: e962828fe682f8f3e38e16449a74c1fd99a63ac7bf3f42382c906a2dd8ec20d1 + md5: b5da671b2366789f5b7ae78624a4a6a6 depends: - __osx >=11.0 - libclang13 >=19.1.7 @@ -8586,28 +8790,28 @@ packages: - libxslt >=1.1.43,<2.0a0 - python >=3.12,<3.13.0a0 - python_abi 3.12.* *_cp312 - - qt6-main 6.9.3.* - - qt6-main >=6.9.3,<6.10.0a0 + - qt6-main 6.10.1.* + - qt6-main >=6.10.1,<6.11.0a0 license: LGPL-3.0-only license_family: LGPL purls: - pkg:pypi/pyside6?source=hash-mapping - pkg:pypi/shiboken6?source=hash-mapping - size: 11029515 - timestamp: 1759403404086 -- conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.9.3-py313h475ba69_1.conda - sha256: e12121e1e7abc9a328e46ecee4addf1d56f56c75b92eba2486b6987aeef1ee36 - md5: 9b77f3ed4ce1e607c8646ec613a94f91 - depends: - - libclang13 >=21.1.2 - - libvulkan-loader >=1.4.313.0,<2.0a0 + size: 11019092 + timestamp: 1765812617908 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyside6-6.10.1-py314h2c9462b_0.conda + sha256: 1439f051b7c5a0d7915552c13d786d9f96e915fcd96d4166d0bd88f9b1b91e44 + md5: b814621e074091a546da1dc32ab1b20a + depends: + - libclang13 >=21.1.7 + - libvulkan-loader >=1.4.328.1,<2.0a0 - libxml2 - libxml2-16 >=2.14.6 - libxslt >=1.1.43,<2.0a0 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - qt6-main 6.9.3.* - - qt6-main >=6.9.3,<6.10.0a0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - qt6-main 6.10.1.* + - qt6-main >=6.10.1,<6.11.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -8616,8 +8820,8 @@ packages: purls: - pkg:pypi/pyside6?source=hash-mapping - pkg:pypi/shiboken6?source=hash-mapping - size: 8898905 - timestamp: 1759403334290 + size: 8996723 + timestamp: 1765812737093 - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyh09c184e_7.conda sha256: d016e04b0e12063fbee4a2d5fbb9b39a8d191b5a0042f0b8459188aedeabb0ca md5: e2fd202833c4a981ce8a65974fe4abd1 @@ -8643,9 +8847,9 @@ packages: - pkg:pypi/pysocks?source=hash-mapping size: 21085 timestamp: 1733217331982 -- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.1-pyhcf101f3_0.conda - sha256: 7f25f71e4890fb60a4c4cb4563d10acf2d741804fec51e9b85a6fd97cd686f2f - md5: fa7f71faa234947d9c520f89b4bda1a2 +- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.0.2-pyhcf101f3_0.conda + sha256: 9e749fb465a8bedf0184d8b8996992a38de351f7c64e967031944978de03a520 + md5: 2b694bad8a50dc2f712f5368de866480 depends: - pygments >=2.7.2 - python >=3.10 @@ -8661,9 +8865,9 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/pytest?source=compressed-mapping - size: 299017 - timestamp: 1763049198670 + - pkg:pypi/pytest?source=hash-mapping + size: 299581 + timestamp: 1765062031645 - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.0.0-pyhcf101f3_1.conda sha256: d0f45586aad48ef604590188c33c83d76e4fc6370ac569ba0900906b24fd6a26 md5: 6891acad5e136cb62a8c2ed2679d6528 @@ -8719,56 +8923,59 @@ packages: - pkg:pypi/pytest-xvfb?source=hash-mapping size: 12540 timestamp: 1741813316240 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.13.9-hc97d973_101_cp313.conda - build_number: 101 - sha256: e89da062abd0d3e76c8d3b35d3cafc5f0d05914339dcb238f9e3675f2a58d883 - md5: 4780fe896e961722d0623fa91d0d3378 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.2-h32b2ec7_100_cp314.conda + build_number: 100 + sha256: a120fb2da4e4d51dd32918c149b04a08815fd2bd52099dad1334647984bb07f1 + md5: 1cef1236a05c3a98f68c33ae9425f656 depends: - __glibc >=2.17,<3.0.a0 - bzip2 >=1.0.8,<2.0a0 - ld_impl_linux-64 >=2.36.1 - - libexpat >=2.7.1,<3.0a0 + - libexpat >=2.7.3,<3.0a0 - libffi >=3.5.2,<3.6.0a0 - libgcc >=14 - liblzma >=5.8.1,<6.0a0 - libmpdec >=4.0.0,<5.0a0 - - libsqlite >=3.50.4,<4.0a0 + - libsqlite >=3.51.1,<4.0a0 - libuuid >=2.41.2,<3.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - openssl >=3.5.4,<4.0a0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata + - zstd >=1.5.7,<1.6.0a0 license: Python-2.0 purls: [] - size: 37174029 - timestamp: 1761178179147 - python_site_packages_path: lib/python3.13/site-packages -- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.12.12-h74c2667_1_cpython.conda - build_number: 1 - sha256: 7d711e7a5085c05d186e1dbc86b8f10fb3d88fb3ce3034944ededef39173ff32 - md5: 902046b662c35d8d644514df0d9c7109 + size: 36790521 + timestamp: 1765021515427 + python_site_packages_path: lib/python3.14/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.14.2-hf88997e_100_cp314.conda + build_number: 100 + sha256: cd9d41368cb7c531e82fbfdb01e274efbb176c464b59ec619538dd2580602191 + md5: 48921d5efb314c3e628089fc6e27e54a depends: - __osx >=10.13 - bzip2 >=1.0.8,<2.0a0 - - libexpat >=2.7.1,<3.0a0 + - libexpat >=2.7.3,<3.0a0 - libffi >=3.5.2,<3.6.0a0 - liblzma >=5.8.1,<6.0a0 - - libsqlite >=3.50.4,<4.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.51.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - ncurses >=6.5,<7.0a0 - openssl >=3.5.4,<4.0a0 + - python_abi 3.14.* *_cp314 - readline >=8.2,<9.0a0 - tk >=8.6.13,<8.7.0a0 - tzdata - constrains: - - python_abi 3.12.* *_cp312 + - zstd >=1.5.7,<1.6.0a0 license: Python-2.0 purls: [] - size: 13779792 - timestamp: 1761176993883 + size: 14323056 + timestamp: 1765026108189 + python_site_packages_path: lib/python3.14/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.12.12-h18782d2_1_cpython.conda build_number: 1 sha256: 626da9bb78459ce541407327d1e22ee673fd74e9103f1a0e0f4e3967ad0a23a7 @@ -8792,10 +8999,10 @@ packages: purls: [] size: 12062421 timestamp: 1761176476561 -- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.13.10-h09917c8_100_cp313.conda +- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.14.2-h4b44e0e_100_cp314.conda build_number: 100 - sha256: f28d31345c2b292cb7386bb6eb291630b368a1eace232b8dc66baca0057f660c - md5: ec94fd4fa28b11d213cd42ce610c52ef + sha256: 6857d7c97cc71fe9ba298dcb1d3b66cc7df425132ab801babd655faa3df48f32 + md5: c3c73414d5ae3f543c531c978d9cc8b8 depends: - bzip2 >=1.0.8,<2.0a0 - libexpat >=2.7.3,<3.0a0 @@ -8805,16 +9012,17 @@ packages: - libsqlite >=3.51.1,<4.0a0 - libzlib >=1.3.1,<2.0a0 - openssl >=3.5.4,<4.0a0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 - tk >=8.6.13,<8.7.0a0 - tzdata - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 + - zstd >=1.5.7,<1.6.0a0 license: Python-2.0 purls: [] - size: 16495180 - timestamp: 1764752927659 + size: 16833248 + timestamp: 1765020224759 python_site_packages_path: Lib/site-packages - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-2.9.0.post0-pyhe01879c_2.conda sha256: d6a17ece93bbd5139e02d2bd7dbfa80bee1a4261dced63f65f679121686bf664 @@ -8863,26 +9071,16 @@ packages: purls: [] size: 45888 timestamp: 1761175248278 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.10-h4df99d1_100.conda - sha256: 33d21adcc7ea6c3631e7de8c0ef2f789d027365558f8b00ac0683c4be32f21da - md5: 2432ffd09843b984b4fc4e1c82f7c836 - depends: - - cpython 3.13.10.* - - python_abi * *_cp313 - license: Python-2.0 - purls: [] - size: 48209 - timestamp: 1764753035421 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.13.9-h4df99d1_101.conda - sha256: 7535b9cb2414e34c73ed4a97a90bcadcc76b9d47d0bb8ef5002c592d85fe022d - md5: f41e3c1125e292e6bfcea8392a3de3d8 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.2-h4df99d1_100.conda + sha256: 8203dc90a5cb6687f5bfcf332eeaf494ec95d24ed13fca3c82ef840f0bb92a5d + md5: 0064ab66736c4814864e808169dc7497 depends: - - cpython 3.13.9.* - - python_abi * *_cp313 + - cpython 3.14.2.* + - python_abi * *_cp314 license: Python-2.0 purls: [] - size: 48385 - timestamp: 1761175154112 + size: 49287 + timestamp: 1765020424843 - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-2.0.7-pyhd8ed1ab_0.conda sha256: 4790787fe1f4e8da616edca4acf6a4f8ed4e7c6967aa31b920208fc8f95efcca md5: a61bf9ec79426938ff785eb69dbb1960 @@ -8894,73 +9092,73 @@ packages: - pkg:pypi/python-json-logger?source=hash-mapping size: 13383 timestamp: 1677079727691 -- conda: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.7.3-py313h54dd161_0.conda - sha256: 685d2b6e2d0af64fd1ca64929aab38cb1427e4d51d125b20126c4b3d5170e76d - md5: 6b20994abe7ef502bad16dbbdee61bf2 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.7.8-py314h0f05182_0.conda + sha256: 7c4615367e1d8bee1e98abcfccd742fb0c382a150f21cb592a66af69063eae43 + md5: 1cdbb8798d700d90f33998d41baed1ec depends: - python - - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 + - libgcc >=14 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/librt?source=hash-mapping - size: 63599 - timestamp: 1765054564283 -- conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.7.3-py312h01f6755_0.conda - sha256: fc8de877ad96ec94f3921bb5a1361c7660fdef1d5ffa46ddd73faeb8574ba467 - md5: ed16350ed05b80c0c30486f6c258a2cb + size: 64072 + timestamp: 1768406896488 +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.7.8-py314hd330473_0.conda + sha256: 9cbd3910f22d3c44a1635cc2646df218eedb4b97dc232db6f24ea4f93d271755 + md5: 2d35a795767f06747bba198e529c31c7 depends: - python - __osx >=10.13 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/librt?source=hash-mapping - size: 54690 - timestamp: 1765054570156 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.7.3-py312h37e1c23_0.conda - sha256: 8bae6dcfa9cae8e45f0d73e3a1ba54c70e8268b3259615ddc2b7af7b5a65ffc0 - md5: 160cc9a9d091f33c7d4f077600ce7bce + size: 57536 + timestamp: 1768406920191 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.7.8-py312hb3ab3e3_0.conda + sha256: 4730d8d2d00017c643a414940670db10c25442d7d6c34fdde5e62f087356282d + md5: 28f3924cb9edec4e808692a8b81254fa depends: - python - - python 3.12.* *_cpython - __osx >=11.0 + - python 3.12.* *_cpython - python_abi 3.12.* *_cp312 license: MIT license_family: MIT purls: - pkg:pypi/librt?source=hash-mapping - size: 61505 - timestamp: 1765054594095 -- conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.7.3-py313h5fd188c_0.conda - sha256: e8299466547c97ed0af6c38c1a45a460575eac86b774f5fd9df85493c8b2c5f6 - md5: fac86c19f038c353b889bdcd3e0ddd61 + size: 65402 + timestamp: 1768406921586 +- conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.7.8-py314hc5dbbe4_0.conda + sha256: 4398b46e015a5d7967caad076375cf671e7b6f8afab109dd4a70f90fb2eaa07a + md5: b1debb71519ad221c6e3908a5ff0bba8 depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/librt?source=hash-mapping - size: 50848 - timestamp: 1765054587426 -- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.2-pyhd8ed1ab_0.conda - sha256: e8392a8044d56ad017c08fec2b0eb10ae3d1235ac967d0aab8bd7b41c4a5eaf0 - md5: 88476ae6ebd24f39261e0854ac244f33 + size: 47552 + timestamp: 1768406938996 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2025.3-pyhd8ed1ab_0.conda + sha256: 467134ef39f0af2dbb57d78cb3e4821f01003488d331a8dd7119334f4f47bfbd + md5: 7ead57407430ba33f681738905278d03 depends: - - python >=3.9 + - python >=3.10 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/tzdata?source=hash-mapping - size: 144160 - timestamp: 1742745254292 + - pkg:pypi/tzdata?source=compressed-mapping + size: 143542 + timestamp: 1765719982349 - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.12-8_cp312.conda build_number: 8 sha256: 80677180dd3c22deb7426ca89d6203f1c7f1f256f2d5a94dc210f6e758229809 @@ -8972,17 +9170,17 @@ packages: purls: [] size: 6958 timestamp: 1752805918820 -- 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.14-8_cp314.conda build_number: 8 - sha256: 210bffe7b121e651419cb196a2a63687b087497595c9be9d20ebe97dd06060a7 - md5: 94305520c52a4aa3f6c2b1ff6008d9f8 + sha256: ad6d2e9ac39751cc0529dd1566a26751a0bf2542adb0c232533d32e176e21db5 + md5: 0539938c55b6b1a59b560e843ad864a4 constrains: - - python 3.13.* *_cp313 + - python 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: [] - size: 7002 - timestamp: 1752805902938 + size: 6989 + timestamp: 1752805904792 - conda: https://conda.anaconda.org/conda-forge/noarch/pytz-2025.2-pyhd8ed1ab_0.conda sha256: 8d2a8bf110cc1fc3df6904091dead158ba3e614d8402a83e51ed3a8aa93cdeb0 md5: bc8e3267d44011051f2eb14d22fb0960 @@ -9006,9 +9204,9 @@ packages: - pkg:pypi/pyvirtualdisplay?source=hash-mapping size: 17795 timestamp: 1761593813443 -- conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py313h40c08fc_1.conda - sha256: 87eaeb79b5961e0f216aa840bc35d5f0b9b123acffaecc4fda4de48891901f20 - md5: 1ce4f826332dca56c76a5b0cc89fb19e +- conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-311-py314h8f8f202_1.conda + sha256: 6918a8067f296f3c65d43e84558170c9e6c3f4dd735cfe041af41a7fdba7b171 + md5: 2d7b7ba21e8a8ced0eca553d4d53f773 depends: - python - vc >=14.3,<15 @@ -9017,19 +9215,31 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: PSF-2.0 license_family: PSF purls: - pkg:pypi/pywin32?source=hash-mapping - size: 6695114 - timestamp: 1756487139550 -- conda: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.15-py313h5813708_1.conda - sha256: d34a7cd0a4a7dc79662cb6005e01d630245d9a942e359eb4d94b2fb464ed2552 - md5: 8f01ed27e2baa455e753301218e054fd - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + size: 6713155 + timestamp: 1756487145487 +- conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.3-py314h86ab7b2_3.conda + sha256: 70b43b8d6ac68a524e4d9dd0caf98f6c052918c1b658ee80af9e0269e2bc3a2a + md5: 2507b24a127696b044f441df16c5571c + depends: + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/pywin32-ctypes?source=hash-mapping + size: 58083 + timestamp: 1762489935449 +- conda: https://conda.anaconda.org/conda-forge/win-64/pywinpty-2.0.15-py314h51f0985_1.conda + sha256: 048e20641da680aedaab285640a2aca56b7b5baf7a18f8f164f2796e13628c1f + md5: dd84e8748bd3c85a5c751b0576488080 + depends: + - python >=3.14.0rc3,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.2,<15 - vc14_runtime >=14.29.30139 @@ -9038,37 +9248,22 @@ packages: license_family: MIT purls: - pkg:pypi/pywinpty?source=hash-mapping - size: 216075 - timestamp: 1759556799508 -- conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py313h3dea7bd_0.conda - sha256: 40dcd6718dce5fbee8aabdd0519f23d456d8feb2e15ac352eaa88bbfd3a881af - md5: 4794ea0adaebd9f844414e594b142cb2 - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=hash-mapping - size: 207109 - timestamp: 1758892173548 -- conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py312hacf3034_0.conda - sha256: 28814df783a5581758d197262d773c92a72c8cedbec3ccadac90adf22daecd25 - md5: dbc6cfbec3095d84d9f3baab0c6a5c24 - depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 - - yaml >=0.2.5,<0.3.0a0 + size: 216325 + timestamp: 1759557436167 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyyaml-6.0.3-pyh7db6752_0.conda + sha256: 828af2fd7bb66afc9ab1c564c2046be391aaf66c0215f05afaf6d7a9a270fe2a + md5: b12f41c0d7fb5ab81709fcc86579688f + depends: + - python >=3.10.* + - yaml + track_features: + - pyyaml_no_compile license: MIT license_family: MIT purls: - pkg:pypi/pyyaml?source=hash-mapping - size: 192483 - timestamp: 1758892060370 + size: 45223 + timestamp: 1758891992558 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py312h5748b74_0.conda sha256: 690943c979a5bf014348933a68cd39e3bb9114d94371c4c5d846d2daaa82c7d9 md5: 6a2d7f8a026223c2fa1027c96c615752 @@ -9084,22 +9279,6 @@ packages: - pkg:pypi/pyyaml?source=hash-mapping size: 190579 timestamp: 1758891996097 -- conda: https://conda.anaconda.org/conda-forge/win-64/pyyaml-6.0.3-py313hd650c13_0.conda - sha256: 5d9fd32d318b9da615524589a372b33a6f3d07db2708de16570d70360bf638c2 - md5: c067122d76f8dcbe0848822942ba07be - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 - - ucrt >=10.0.20348.0 - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - yaml >=0.2.5,<0.3.0a0 - license: MIT - license_family: MIT - purls: - - pkg:pypi/pyyaml?source=compressed-mapping - size: 182043 - timestamp: 1758892011955 - conda: https://conda.anaconda.org/conda-forge/linux-64/pyzmq-27.1.0-py312hfb55c3c_0.conda noarch: python sha256: a00a41b66c12d9c60e66b391e9a4832b7e28743348cf4b48b410b91927cd7819 @@ -9215,21 +9394,21 @@ packages: purls: [] size: 1377020 timestamp: 1720814433486 -- conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.9.3-h5c1c036_1.conda - sha256: 51537408ce1493d267b375b33ec02a060d77c4e00c7bef5e2e1c6724e08a23e3 - md5: 762af6d08fdfa7a45346b1466740bacd +- conda: https://conda.anaconda.org/conda-forge/linux-64/qt6-main-6.10.1-hb82b983_4.conda + sha256: 9ff9eeae1f8331f04d6c19bbe53edd5ad10cc3f960376e3c35ad3875546569da + md5: f4dfd61ec958d420bebdcefeb805d658 depends: - __glibc >=2.17,<3.0.a0 - - alsa-lib >=1.2.14,<1.3.0a0 + - alsa-lib >=1.2.15.1,<1.3.0a0 - dbus >=1.16.2,<2.0a0 - - double-conversion >=3.3.1,<3.4.0a0 + - double-conversion >=3.4.0,<3.5.0a0 - fontconfig >=2.15.0,<3.0a0 - fonts-conda-ecosystem - - harfbuzz >=12.1.0 - - icu >=75.1,<76.0a0 + - harfbuzz >=12.2.0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - - libclang-cpp21.1 >=21.1.4,<21.2.0a0 - - libclang13 >=21.1.4 + - libclang-cpp21.1 >=21.1.7,<21.2.0a0 + - libclang13 >=21.1.7 - libcups >=2.3.3,<2.4.0a0 - libdrm >=2.4.125,<2.5.0a0 - libegl >=1.7.0,<2.0a0 @@ -9237,26 +9416,26 @@ packages: - libfreetype6 >=2.14.1 - libgcc >=14 - libgl >=1.7.0,<2.0a0 - - libglib >=2.86.0,<3.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 - - libllvm21 >=21.1.4,<21.2.0a0 - - libpng >=1.6.50,<1.7.0a0 - - libpq >=18.0,<19.0a0 - - libsqlite >=3.50.4,<4.0a0 + - libglib >=2.86.3,<3.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libllvm21 >=21.1.7,<21.2.0a0 + - libpng >=1.6.53,<1.7.0a0 + - libpq >=18.1,<19.0a0 + - libsqlite >=3.51.1,<4.0a0 - libstdcxx >=14 - libtiff >=4.7.1,<4.8.0a0 - libvulkan-loader >=1.4.328.1,<2.0a0 - libwebp-base >=1.6.0,<2.0a0 - libxcb >=1.17.0,<2.0a0 - - libxkbcommon >=1.12.2,<2.0a0 + - libxkbcommon >=1.13.1,<2.0a0 - libxml2 - libxml2-16 >=2.14.6 - libzlib >=1.3.1,<2.0a0 - openssl >=3.5.4,<4.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 - wayland >=1.24.0,<2.0a0 - xcb-util >=0.4.1,<0.5.0a0 - - xcb-util-cursor >=0.1.5,<0.2.0a0 + - xcb-util-cursor >=0.1.6,<0.2.0a0 - xcb-util-image >=0.4.0,<0.5.0a0 - xcb-util-keysyms >=0.4.1,<0.5.0a0 - xcb-util-renderutil >=0.3.10,<0.4.0a0 @@ -9273,104 +9452,104 @@ packages: - xorg-libxxf86vm >=1.1.6,<2.0a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - qt 6.9.3 + - qt 6.10.1 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 54785664 - timestamp: 1761308850008 -- conda: https://conda.anaconda.org/conda-forge/osx-64/qt6-main-6.9.3-hac9256e_1.conda - sha256: fd16afe100c4ffc3de9d022b3f842444b9a8c439b8bb9ca279c001fa45c8f300 - md5: 5ff973c17fe891de8bede9cb964284b8 + size: 57241105 + timestamp: 1766486406643 +- conda: https://conda.anaconda.org/conda-forge/osx-64/qt6-main-6.10.1-h88ed066_4.conda + sha256: 25d35fb4ab4347dc361ff9308e03a3385ab9579bbe44cd31a328824467c71907 + md5: 1036b3e5b0ff6bd169042a8e24e61633 depends: - __osx >=11.0 - - double-conversion >=3.3.1,<3.4.0a0 - - harfbuzz >=12.1.0 - - icu >=75.1,<76.0a0 + - double-conversion >=3.4.0,<3.5.0a0 + - harfbuzz >=12.2.0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - libclang-cpp19.1 >=19.1.7,<19.2.0a0 - libclang13 >=19.1.7 - libcxx >=19 - - libglib >=2.86.0,<3.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 + - libglib >=2.86.3,<3.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 - libllvm19 >=19.1.7,<19.2.0a0 - - libpng >=1.6.50,<1.7.0a0 - - libpq >=18.0,<19.0a0 - - libsqlite >=3.50.4,<4.0a0 + - libpng >=1.6.53,<1.7.0a0 + - libpq >=18.1,<19.0a0 + - libsqlite >=3.51.1,<4.0a0 - libtiff >=4.7.1,<4.8.0a0 - libwebp-base >=1.6.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openssl >=3.5.4,<4.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - qt 6.9.3 + - qt 6.10.1 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 48114929 - timestamp: 1761310910590 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/qt6-main-6.9.3-hb266e41_0.conda - sha256: d00722613930f7b048417dcd8335b7525d105350376976f60c734385ad11e854 - md5: 9c4c7c477173f43b4239d85bcf1df658 + size: 47818901 + timestamp: 1766484676426 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/qt6-main-6.10.1-h9aec236_4.conda + sha256: e745141f8bb686de2e008843d522fb5a7a93da2f278920ab35df4c575b4bd6d7 + md5: a3e11f5b0b7e0ba8f14077d0241a3429 depends: - __osx >=11.0 - - double-conversion >=3.3.1,<3.4.0a0 - - harfbuzz >=12.0.0 - - icu >=75.1,<76.0a0 + - double-conversion >=3.4.0,<3.5.0a0 + - harfbuzz >=12.2.0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - libclang-cpp19.1 >=19.1.7,<19.2.0a0 - libclang13 >=19.1.7 - libcxx >=19 - - libglib >=2.86.0,<3.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 + - libglib >=2.86.3,<3.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 - libllvm19 >=19.1.7,<19.2.0a0 - - libpng >=1.6.50,<1.7.0a0 - - libpq >=18.0,<19.0a0 - - libsqlite >=3.50.4,<4.0a0 + - libpng >=1.6.53,<1.7.0a0 + - libpq >=18.1,<19.0a0 + - libsqlite >=3.51.1,<4.0a0 - libtiff >=4.7.1,<4.8.0a0 - libwebp-base >=1.6.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - - openssl >=3.5.3,<4.0a0 - - pcre2 >=10.46,<10.47.0a0 + - openssl >=3.5.4,<4.0a0 + - pcre2 >=10.47,<10.48.0a0 - zstd >=1.5.7,<1.6.0a0 constrains: - - qt 6.9.3 + - qt 6.10.1 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 45982348 - timestamp: 1759266212707 -- conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.9.3-ha0de62e_1.conda - sha256: 257b999442d4e14e1e061890e7bd0620511f57324df3ad27bb3cf78b2a6cdcb3 - md5: ca2bfad3a24794a0f7cf413b03906ade + size: 45744271 + timestamp: 1766532374097 +- conda: https://conda.anaconda.org/conda-forge/win-64/qt6-main-6.10.1-h68b6638_4.conda + sha256: d1f389aa0c0653d5af83e60da79ca6414d329707f236f110ff5e3329edb94f5a + md5: c4a3cf4e79a59cb46ad2d56b74c89e57 depends: - - double-conversion >=3.3.1,<3.4.0a0 - - harfbuzz >=12.1.0 - - icu >=75.1,<76.0a0 + - double-conversion >=3.4.0,<3.5.0a0 + - harfbuzz >=12.2.0 + - icu >=78.1,<79.0a0 - krb5 >=1.21.3,<1.22.0a0 - - libclang13 >=21.1.4 - - libglib >=2.86.0,<3.0a0 - - libjpeg-turbo >=3.1.0,<4.0a0 - - libpng >=1.6.50,<1.7.0a0 - - libsqlite >=3.50.4,<4.0a0 + - libclang13 >=21.1.7 + - libglib >=2.86.3,<3.0a0 + - libjpeg-turbo >=3.1.2,<4.0a0 + - libpng >=1.6.53,<1.7.0a0 + - libsqlite >=3.51.1,<4.0a0 - libtiff >=4.7.1,<4.8.0a0 - libvulkan-loader >=1.4.328.1,<2.0a0 - libwebp-base >=1.6.0,<2.0a0 - libzlib >=1.3.1,<2.0a0 - openssl >=3.5.4,<4.0a0 - - pcre2 >=10.46,<10.47.0a0 + - pcre2 >=10.47,<10.48.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - zstd >=1.5.7,<1.6.0a0 constrains: - - qt 6.9.3 + - qt 6.10.1 license: LGPL-3.0-only license_family: LGPL purls: [] - size: 95659243 - timestamp: 1761312853504 + size: 85571611 + timestamp: 1766493849766 - conda: https://conda.anaconda.org/conda-forge/noarch/qtpy-2.4.3-pyhd8ed1ab_1.conda sha256: b17dd9d2ee7a4f60fb13712883cd2664aa1339df4b29eb7ae0f4423b31778b00 md5: b49c000df5aca26d36b3f078ba85e03a @@ -9395,37 +9574,40 @@ packages: - pkg:pypi/readchar?source=hash-mapping size: 15139 timestamp: 1750461053332 -- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.2-h8c095d6_2.conda - sha256: 2d6d0c026902561ed77cd646b5021aef2d4db22e57a5b0178dfc669231e06d2c - md5: 283b96675859b20a825f8fa30f311446 +- conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-h853b02a_0.conda + sha256: 12ffde5a6f958e285aa22c191ca01bbd3d6e710aa852e00618fa6ddc59149002 + md5: d7d95fc8287ea7bf33e0e7116d2b95ec depends: - - libgcc >=13 + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 - 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/osx-64/readline-8.2-h7cca4af_2.conda - sha256: 53017e80453c4c1d97aaf78369040418dea14cf8f46a2fa999f31bd70b36c877 - md5: 342570f8e02f2f022147a7f841475784 + size: 345073 + timestamp: 1765813471974 +- conda: https://conda.anaconda.org/conda-forge/osx-64/readline-8.3-h68b038d_0.conda + sha256: 4614af680aa0920e82b953fece85a03007e0719c3399f13d7de64176874b80d5 + md5: eefd65452dfe7cce476a519bece46704 depends: + - __osx >=10.13 - ncurses >=6.5,<7.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 256712 - timestamp: 1740379577668 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.2-h1d1bf99_2.conda - sha256: 7db04684d3904f6151eff8673270922d31da1eea7fa73254d01c437f49702e34 - md5: 63ef3f6e6d6d5c589e64f11263dc5676 + size: 317819 + timestamp: 1765813692798 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h46df422_0.conda + sha256: a77010528efb4b548ac2a4484eaf7e1c3907f2aec86123ed9c5212ae44502477 + md5: f8381319127120ce51e081dce4865cf4 depends: + - __osx >=11.0 - ncurses >=6.5,<7.0a0 license: GPL-3.0-only license_family: GPL purls: [] - size: 252359 - timestamp: 1740379663071 + size: 313930 + timestamp: 1765813902568 - conda: https://conda.anaconda.org/conda-forge/noarch/referencing-0.37.0-pyhcf101f3_0.conda sha256: 0577eedfb347ff94d0f2fa6c052c502989b028216996b45c7f21236f25864414 md5: 870293df500ca7e18bedefa5838a22ab @@ -9441,43 +9623,44 @@ packages: - pkg:pypi/referencing?source=hash-mapping size: 51788 timestamp: 1760379115194 -- pypi: https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl +- pypi: https://files.pythonhosted.org/packages/07/78/c77f644b68ab054e5a674fb4da40ff7bffb2c88df58afa82dbf86573092d/regex-2026.1.15-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl name: regex version: 2026.1.15 - sha256: 9250d087bc92b7d4899ccd5539a1b2334e44eee85d848c4c1aef8e221d3f8c8f + sha256: 0751a26ad39d4f2ade8fe16c59b2bf5cb19eb3d2cd543e709e583d559bd9efde requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/4f/16/5bfbb89e435897bff28cf0352a992ca719d9e55ebf8b629203c96b6ce4f7/regex-2026.1.15-cp313-cp313-win_amd64.whl +- pypi: https://files.pythonhosted.org/packages/19/4d/16d0773d0c818417f4cc20aa0da90064b966d22cd62a8c46765b5bd2d643/regex-2026.1.15-cp312-cp312-macosx_11_0_arm64.whl name: regex version: 2026.1.15 - sha256: febd38857b09867d3ed3f4f1af7d241c5c50362e25ef43034995b77a50df494e + sha256: 9250d087bc92b7d4899ccd5539a1b2334e44eee85d848c4c1aef8e221d3f8c8f requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/79/b6/e6a5665d43a7c42467138c8a2549be432bad22cbd206f5ec87162de74bd7/regex-2026.1.15-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/4a/a9/ab16b4649524ca9e05213c1cdbb7faa85cc2aa90a0230d2f796cbaf22736/regex-2026.1.15-cp314-cp314-win_amd64.whl name: regex version: 2026.1.15 - sha256: 18388a62989c72ac24de75f1449d0fb0b04dfccd0a1a7c1c43af5eb503d890f6 + sha256: 4161d87f85fa831e31469bfd82c186923070fc970b9de75339b68f0c75b51903 requires_python: '>=3.9' -- pypi: https://files.pythonhosted.org/packages/90/b0/7c2a74e74ef2a7c32de724658a69a862880e3e4155cba992ba04d1c70400/regex-2026.1.15-cp312-cp312-macosx_10_13_x86_64.whl +- pypi: https://files.pythonhosted.org/packages/ac/c4/d000e9b7296c15737c9301708e9e7fbdea009f8e93541b6b43bdb8219646/regex-2026.1.15-cp314-cp314-macosx_10_13_x86_64.whl name: regex version: 2026.1.15 - sha256: bfd876041a956e6a90ad7cdb3f6a630c07d491280bfeed4544053cd434901681 + sha256: b5a28980a926fa810dbbed059547b02783952e2efd9c636412345232ddb87ff6 requires_python: '>=3.9' -- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhd8ed1ab_0.conda - sha256: 8dc54e94721e9ab545d7234aa5192b74102263d3e704e6d0c8aa7008f2da2a7b - md5: db0c6b99149880c8ba515cf4abe93ee4 +- conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.32.5-pyhcf101f3_1.conda + sha256: 7813c38b79ae549504b2c57b3f33394cea4f2ad083f0994d2045c2e24cb538c5 + md5: c65df89a0b2e321045a9e01d1337b182 depends: + - python >=3.10 - certifi >=2017.4.17 - charset-normalizer >=2,<4 - idna >=2.5,<4 - - python >=3.9 - urllib3 >=1.21.1,<3 + - python constrains: - chardet >=3.0.2,<6 license: Apache-2.0 license_family: APACHE purls: - - pkg:pypi/requests?source=hash-mapping - size: 59263 - timestamp: 1755614348400 + - pkg:pypi/requests?source=compressed-mapping + size: 63602 + timestamp: 1766926974520 - conda: https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-1.0.0-pyhd8ed1ab_1.conda sha256: c0b815e72bb3f08b67d60d5e02251bbb0164905b5f72942ff5b6d2a339640630 md5: 66de8645e324fda0ea6ef28c2f99a2ab @@ -9538,49 +9721,61 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/rich?source=compressed-mapping + - pkg:pypi/rich?source=hash-mapping size: 200840 timestamp: 1760026188268 -- conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-3.1.0-pyhd8ed1ab_0.conda - sha256: 0116a9ca9bf3487e18979b58b2f280116dba55cb53475af7a6d835f7aa133db8 - md5: 5f0f24f8032c2c1bb33f59b75974f5fc +- conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-4.1.0-pyhd8ed1ab_0.conda + sha256: 30f3c04fcfb64c44d821d392a4a0b8915650dbd900c8befc20ade8fde8ec6aa2 + md5: 0dc48b4b570931adc8641e55c6c17fe4 depends: - - python >=3.9 + - python >=3.10 + license: 0BSD OR CC0-1.0 + purls: + - pkg:pypi/roman-numerals?source=hash-mapping + size: 13814 + timestamp: 1766003022813 +- conda: https://conda.anaconda.org/conda-forge/noarch/roman-numerals-py-4.1.0-pyhd8ed1ab_0.conda + sha256: ce21b50a412b87b388db9e8dfbf8eb16fc436c23750b29bf612ee1a74dd0beb2 + md5: 28687768633154993d521aecfa4a56ac + depends: + - python >=3.10 + - roman-numerals 4.1.0 license: 0BSD OR CC0-1.0 purls: - pkg:pypi/roman-numerals-py?source=hash-mapping - size: 13348 - timestamp: 1740240332327 -- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py313h843e2db_0.conda - sha256: 076d26e51c62c8ecfca6eb19e3c1febdd7632df1990a7aa53da5df5e54482b1c - md5: 779e3307a0299518713765b83a36f4b1 + size: 11074 + timestamp: 1766025162370 +- conda: https://conda.anaconda.org/conda-forge/linux-64/rpds-py-0.30.0-py314h2e6c369_0.conda + sha256: e53b0cbf3b324eaa03ca1fe1a688fdf4ab42cea9c25270b0a7307d8aaaa4f446 + md5: c1c368b5437b0d1a68f372ccf01cb133 depends: - python - libgcc >=14 - __glibc >=2.17,<3.0.a0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 constrains: - __glibc >=2.17 license: MIT + license_family: MIT purls: - - pkg:pypi/rpds-py?source=compressed-mapping - size: 383230 - timestamp: 1764543223529 -- conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py312h8a6388b_0.conda - sha256: 3df6f3ad2697f5250d38c37c372b77cc2702b0c705d3d3a231aae9dc9f2eec62 - md5: 9adbe03b6d1b86cab37fb37709eb4e38 + - pkg:pypi/rpds-py?source=hash-mapping + size: 376121 + timestamp: 1764543122774 +- conda: https://conda.anaconda.org/conda-forge/osx-64/rpds-py-0.30.0-py314ha7b6dee_0.conda + sha256: 368a758ba6f4fb3c6c9a0d25c090807553af5b3dc937a2180ff047fe8ebf6820 + md5: 816cb6c142c86de627fe7ffa1affddb2 depends: - python - __osx >=10.13 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 constrains: - __osx >=10.13 license: MIT license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 370624 - timestamp: 1764543158734 + size: 362381 + timestamp: 1764543188314 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rpds-py-0.30.0-py312h6ef9ec0_0.conda sha256: ea06f6f66b1bea97244c36fd2788ccd92fd1fb06eae98e469dd95ee80831b057 md5: a7cfbbdeb93bb9a3f249bc4c3569cd4c @@ -9597,24 +9792,85 @@ packages: - pkg:pypi/rpds-py?source=hash-mapping size: 358853 timestamp: 1764543161524 -- conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py313hfbe8231_0.conda - sha256: 27bd383787c0df7a0a926b11014fd692d60d557398dcf1d50c55aa2378507114 - md5: 58ae648b12cfa6df3923b5fd219931cb +- conda: https://conda.anaconda.org/conda-forge/win-64/rpds-py-0.30.0-py314h9f07db2_0.conda + sha256: e4435368c5c25076dc0f5918ba531c5a92caee8e0e2f9912ef6810049cf00db2 + md5: e86531e278ad304438e530953cd55d14 depends: - python - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/rpds-py?source=hash-mapping - size: 243419 - timestamp: 1764543047271 -- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.16.3-py313h11c21cd_1.conda - sha256: 901d040d684202b73ea55b10a6994ba7fdc9b332764d50e3c29c3e1f542c9330 - md5: 26b089b9e5fcdcdca714b01f8008d808 + size: 235780 + timestamp: 1764543046065 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.14.13-h4196e79_0.conda + noarch: python + sha256: 404845fdbe335e04d03b3f919cf3003a1f9c09d242dd4cece4c6bd10e7e38128 + md5: 5c8827cadaa6c8d4b8e510cf3dbf0fa6 + depends: + - python + - libgcc >=14 + - __glibc >=2.17,<3.0.a0 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruff?source=hash-mapping + size: 11497260 + timestamp: 1768592206291 +- conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.14.13-hb17bafe_0.conda + noarch: python + sha256: d42178f9b490baafdb0f3b083cb82e647aa795600c5878518076299c24c395fe + md5: e53e2e4106b7a55550c68f33cec147c3 + depends: + - python + - __osx >=10.13 + constrains: + - __osx >=10.13 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruff?source=hash-mapping + size: 11449242 + timestamp: 1768592295255 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.14.13-hb0cad00_0.conda + noarch: python + sha256: 4e7c2f7064ec823b2329235e6b17f97f1618511a952d90c5bb725b262131ea7a + md5: b9b8e12ab933388f7a48d37cb8448a49 + depends: + - python + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruff?source=compressed-mapping + size: 10441801 + timestamp: 1768592384226 +- conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.14.13-h37e10c4_0.conda + noarch: python + sha256: 9e6de345d3d482c477f0ab647b80acda8bbe9259fc706f5fc58abc505760ad6f + md5: 60eb6366deb0898dab59b993b55466af + depends: + - python + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + license: MIT + license_family: MIT + purls: + - pkg:pypi/ruff?source=hash-mapping + size: 11954710 + timestamp: 1768592229860 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.0-py314hf07bd8e_1.conda + sha256: a95de421c586de901402107fbeb7524efaee5bb55c1aba2e1334f8b8ebc89093 + md5: c7df812186fb1290bc00d9b7b5a50b18 depends: - __glibc >=2.17,<3.0.a0 - libblas >=3.9.0,<4.0a0 @@ -9624,20 +9880,20 @@ packages: - libgfortran5 >=14.3.0 - liblapack >=3.9.0,<4.0a0 - libstdcxx >=14 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/scipy?source=hash-mapping - size: 16925821 - timestamp: 1763220671565 -- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.16.3-py312he2acf2f_1.conda - sha256: e37dbb3881e422cd4979882f34f760c0f66ba7a90fcecd95cd55472d41e661d7 - md5: d84da8b0c914cd3071be89b458e2811e + size: 17048277 + timestamp: 1768800950735 +- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.0-py314h6328ba2_1.conda + sha256: f8cb94c88ed2bcca5cfb5a76353bc21d18336e81a6ddbfd479d85d13e0191f70 + md5: e519933e2e628d7cd159147c224366bf depends: - __osx >=10.13 - libblas >=3.9.0,<4.0a0 @@ -9645,22 +9901,21 @@ packages: - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 - - libgfortran5 >=15.2.0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/scipy?source=hash-mapping - size: 15248796 - timestamp: 1763221288506 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.16.3-py312ha6bbf71_1.conda - sha256: 39586c1ebc804d481e1062551f7c39a2cfe6f3e3a2c18a9e460388fb8bbd5302 - md5: d196eb3cfffef4a8ea51fbb55dbe8188 + size: 15087578 + timestamp: 1768801076977 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.0-py312h0f234b1_1.conda + sha256: a204b9b3a59a88a320d9da772eecda58242cfaaf785119927eb59c4bdc6fa66f + md5: 1f5a9253e1c3484a5c1df0b8145a9ce3 depends: - __osx >=11.0 - libblas >=3.9.0,<4.0a0 @@ -9668,9 +9923,8 @@ packages: - libcxx >=19 - libgfortran - libgfortran5 >=14.3.0 - - libgfortran5 >=15.2.0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - python >=3.12,<3.13.0a0 @@ -9680,78 +9934,108 @@ packages: license_family: BSD purls: - pkg:pypi/scipy?source=hash-mapping - size: 13777809 - timestamp: 1763221087258 -- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.16.3-py313h7aa983e_1.conda - sha256: 247ed8e9d00bb2342f84011fb9455d2339d509e4ade9b8e7d35b07b586ef09fe - md5: 48d61880bb8683809f29d7ce8ab6574f + size: 13802410 + timestamp: 1768801119235 +- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.0-py314h221f224_1.conda + sha256: 3e206736e3afce07be3f2f714518c0eff211f49e603b6aadb468e9d96ef4c420 + md5: 0f9edd5793da94f7ec58690abe25c8a2 depends: - libblas >=3.9.0,<4.0a0 - libcblas >=3.9.0,<4.0a0 - liblapack >=3.9.0,<4.0a0 - - numpy <2.6 + - numpy <2.7 - numpy >=1.23,<3 - numpy >=1.25.2 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/scipy?source=hash-mapping - size: 15041825 - timestamp: 1763221689706 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh0d859eb_1.conda - sha256: 00926652bbb8924e265caefdb1db100f86a479e8f1066efe395d5552dde54d02 - md5: 938c8de6b9de091997145b3bf25cdbf9 + - pkg:pypi/scipy?source=compressed-mapping + size: 15121680 + timestamp: 1768801838627 +- conda: https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.4.1-py314hdafbbf9_0.conda + sha256: f6883925a130126cdbdc62c2f43513db53c9f889cde4abc3bc66542336a87150 + md5: 54452085855583ccc3cc5dcd17b47ffe depends: - - __linux - - python >=3.9 + - cryptography >=2.0 + - dbus + - jeepney >=0.6 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - - pkg:pypi/send2trash?source=hash-mapping - size: 22736 - timestamp: 1733322148326 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh31c8845_1.conda - sha256: 5282eb5b462502c38df8cb37cd1542c5bbe26af2453a18a0a0602d084ca39f53 - md5: e67b1b1fa7a79ff9e8e326d0caf55854 + - pkg:pypi/secretstorage?source=hash-mapping + size: 34098 + timestamp: 1763045408414 +- conda: https://conda.anaconda.org/conda-forge/noarch/semver-3.0.4-pyhcf101f3_1.conda + sha256: bea67173ed67c73cf16691ef72e58059492ac1ed1c880cfbeb6f1295c5add7d6 + md5: 8e7be844ccb9706a999a337e056606ab + depends: + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/semver?source=hash-mapping + size: 22532 + timestamp: 1767294175877 +- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh5552912_0.conda + sha256: 6b1a863b2a3e106e573a6efce2303963c3adc2764dfdbf08c4a35dbe62604988 + md5: 297e2901b530c5d321c563e66a65db99 depends: - __osx - pyobjc-framework-cocoa - - python >=3.9 + - python >=3.10 + - python license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/send2trash?source=hash-mapping - size: 23100 - timestamp: 1733322309409 -- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-1.8.3-pyh5737063_1.conda - sha256: ba8b93df52e0d625177907852340d735026c81118ac197f61f1f5baea19071ad - md5: e6a4e906051565caf5fdae5b0415b654 + size: 22409 + timestamp: 1768402460843 +- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyh6dadd2b_0.conda + sha256: b64e5cdb66f5d31fcef05b6ed95b8be3e80796528aa8a165428496c0dda3383f + md5: 69ba308f1356f39901f5654d82405df3 depends: - __win - - python >=3.9 - pywin32 + - python >=3.10 + - python license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/send2trash?source=hash-mapping - size: 23359 - timestamp: 1733322590167 -- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.9.0-pyhff2d567_0.conda - sha256: 972560fcf9657058e3e1f97186cc94389144b46dbdf58c807ce62e83f977e863 - md5: 4de79c071274a53dcaf2a8c749d1499e + size: 22700 + timestamp: 1768402455730 +- conda: https://conda.anaconda.org/conda-forge/noarch/send2trash-2.1.0-pyha191276_0.conda + sha256: b25d573874fe39cb8e4cf6ed0279acb9a94fedce5c5ae885da11566d595035ad + md5: 645026465469ecd4989188e1c4e24953 depends: - - python >=3.9 + - __linux + - python >=3.10 + - python + license: BSD-3-Clause + license_family: BSD + purls: + - pkg:pypi/send2trash?source=hash-mapping + size: 23960 + timestamp: 1768402421616 +- conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-80.10.1-pyh332efcf_0.conda + sha256: 89d5bb48047e7e27aa52a3a71d6ebf386e5ee4bdbd7ca91d653df9977eca8253 + md5: cb72cedd94dd923c6a9405a3d3b1c018 + depends: + - python >=3.10 license: MIT license_family: MIT purls: - - pkg:pypi/setuptools?source=hash-mapping - size: 748788 - timestamp: 1748804951958 + - pkg:pypi/setuptools?source=compressed-mapping + size: 678025 + timestamp: 1768998156365 - conda: https://conda.anaconda.org/conda-forge/noarch/setuptools-scm-9.2.2-pyhd8ed1ab_0.conda sha256: 2161ac35fc22770b248bab0be2cc3b5bd765f528a9e60e7f3be784fd8d0d605a md5: e2e4d7094d0580ccd62e2a41947444f3 @@ -9824,17 +10108,17 @@ packages: - pkg:pypi/sortedcontainers?source=hash-mapping size: 28657 timestamp: 1738440459037 -- conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8-pyhd8ed1ab_0.conda - sha256: c978576cf9366ba576349b93be1cfd9311c00537622a2f9e14ba2b90c97cae9c - md5: 18c019ccf43769d211f2cf78e9ad46c2 +- conda: https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.8.3-pyhd8ed1ab_0.conda + sha256: 23b71ecf089967d2900126920e7f9ff18cdcef82dbff3e2f54ffa360243a17ac + md5: 18de09b20462742fe093ba39185d9bac depends: - python >=3.10 license: MIT license_family: MIT purls: - pkg:pypi/soupsieve?source=hash-mapping - size: 37803 - timestamp: 1756330614547 + size: 38187 + timestamp: 1769034509657 - conda: https://conda.anaconda.org/conda-forge/noarch/sphinx-8.2.3-pyhd8ed1ab_0.conda sha256: 995f58c662db0197d681fa345522fd9e7ac5f05330d3dff095ab2f102e260ab0 md5: f7af826063ed569bb13f7207d6f949b0 @@ -9935,9 +10219,9 @@ packages: - pkg:pypi/sphinxcontrib-jsmath?source=hash-mapping size: 10462 timestamp: 1733753857224 -- conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-1.2.3-pyhd8ed1ab_0.conda - sha256: 93d91537dcf97b62550281558dd63e167db68fc28bc0e2e88bb68e79727ce828 - md5: a808762efe186f2a52909c7b3fde8f54 +- conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-mermaid-2.0.0-pyhd8ed1ab_0.conda + sha256: d49cb00214a5fdee3833abb97219af974be87e49877e9508dfad2b3865215a9a + md5: 33668b178e862f3a5ebcdd73876d2cf9 depends: - python >=3.10 - pyyaml @@ -9946,8 +10230,8 @@ packages: license_family: BSD purls: - pkg:pypi/sphinxcontrib-mermaid?source=hash-mapping - size: 18777 - timestamp: 1764159741884 + size: 19481 + timestamp: 1768335463648 - conda: https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-2.0.0-pyhd8ed1ab_1.conda sha256: c664fefae4acdb5fae973bdde25836faf451f41d04342b64a358f9a7753c92ca md5: 00534ebcc0375929b45c3039b5ba7636 @@ -9986,79 +10270,55 @@ packages: - pkg:pypi/stack-data?source=hash-mapping size: 26988 timestamp: 1733569565672 -- pypi: ./ +- pypi: . name: tavi - version: 0.4.0.dev5 - sha256: db1489575ec45b6423e91c2dc5fa4f6061ebe899c2aef20df56e7057f04a2387 + version: 0.4.0.dev13 + sha256: 4593dc3acfa9f3c5ce81c3f87ca72e01e91670a9995d057dee63747100165874 requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-hd094cb3_1.conda - sha256: c31cac57913a699745d124cdc016a63e31c5749f16f60b3202414d071fc50573 - md5: 17c38aaf14c640b85c4617ccb59c1146 + editable: true +- conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2022.3.0-h3155e25_2.conda + sha256: abd9a489f059fba85c8ffa1abdaa4d515d6de6a3325238b8e81203b913cf65a9 + md5: 0f9817ffbe25f9e69ceba5ea70c52606 depends: - - libhwloc >=2.12.1,<2.12.2.0a0 + - libhwloc >=2.12.2,<2.12.3.0a0 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 license: Apache-2.0 license_family: APACHE purls: [] - size: 155714 - timestamp: 1762510341121 -- conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh0d859eb_0.conda - sha256: b300557c0382478cf661ddb520263508e4b3b5871b471410450ef2846e8c352c - md5: efba281bbdae5f6b0a1d53c6d4a97c93 - depends: - - __linux - - ptyprocess - - python >=3.8 - - tornado >=6.1.0 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/terminado?source=hash-mapping - size: 22452 - timestamp: 1710262728753 -- conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh31c8845_0.conda - sha256: 4daae56fc8da17784578fbdd064f17e3b3076b394730a14119e571707568dc8a - md5: 00b54981b923f5aefcd5e8547de056d5 - depends: - - __osx - - ptyprocess - - python >=3.8 - - tornado >=6.1.0 - license: BSD-2-Clause - license_family: BSD - purls: - - pkg:pypi/terminado?source=hash-mapping - size: 22717 - timestamp: 1710265922593 -- conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh5737063_0.conda - sha256: 8cb078291fd7882904e3de594d299c8de16dd3af7405787fce6919a385cfc238 - md5: 4abd500577430a942a995fd0d09b76a2 + size: 155869 + timestamp: 1767886839029 +- conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyh6dadd2b_1.conda + sha256: b375e8df0d5710717c31e7c8e93c025c37fa3504aea325c7a55509f64e5d4340 + md5: e43ca10d61e55d0a8ec5d8c62474ec9e depends: - __win - - python >=3.8 - pywinpty >=1.1.0 + - python >=3.10 - tornado >=6.1.0 + - python license: BSD-2-Clause license_family: BSD purls: - pkg:pypi/terminado?source=hash-mapping - size: 22883 - timestamp: 1710262943966 -- conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.0-pyhcf101f3_0.conda - sha256: 9e8b4edf44ff0301c6d969a6ff5cceb340f1411ec65d5a99d0eafab36ecfdc23 - md5: 2caf483992d5d92b232451f843bdc8af + size: 23665 + timestamp: 1766513806974 +- conda: https://conda.anaconda.org/conda-forge/noarch/terminado-0.18.1-pyhc90fa1f_1.conda + sha256: 6b6727a13d1ca6a23de5e6686500d0669081a117736a87c8abf444d60c1e40eb + md5: 17b43cee5cc84969529d5d0b0309b2cb depends: + - __unix + - ptyprocess - python >=3.10 - - webencodings >=0.4 + - tornado >=6.1.0 - python - license: BSD-3-Clause + license: BSD-2-Clause license_family: BSD purls: - - pkg:pypi/tinycss2?source=compressed-mapping - size: 30906 - timestamp: 1763577784986 + - pkg:pypi/terminado?source=hash-mapping + size: 24749 + timestamp: 1766513766867 - conda: https://conda.anaconda.org/conda-forge/noarch/tinycss2-1.5.1-pyhcf101f3_0.conda sha256: 7c803480dbfb8b536b9bf6287fa2aa0a4f970f8c09075694174eb4550a4524cd md5: c0d0b883e97906f7524e2aac94be0e0d @@ -10142,9 +10402,9 @@ packages: - tomlkit>=0.13.3 - typer>=0.16.0 requires_python: '>=3.10' -- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.3.0-pyhcf101f3_0.conda - sha256: cb77c660b646c00a48ef942a9e1721ee46e90230c7c570cdeb5a893b5cce9bff - md5: d2732eb636c264dc9aa4cbee404b1a53 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.4.0-pyhcf101f3_0.conda + sha256: 62940c563de45790ba0f076b9f2085a842a65662268b02dd136a8e9b1eaf47a8 + md5: 72e780e9aa2d0a3295f59b1874e3768b depends: - python >=3.10 - python @@ -10152,8 +10412,8 @@ packages: license_family: MIT purls: - pkg:pypi/tomli?source=compressed-mapping - size: 20973 - timestamp: 1760014679845 + size: 21453 + timestamp: 1768146676791 - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-w-1.2.0-pyhd8ed1ab_0.conda sha256: 304834f2438017921d69f05b3f5a6394b42dc89a90a6128a46acbf8160d377f6 md5: 32e37e8fe9ef45c637ee38ad51377769 @@ -10170,36 +10430,36 @@ packages: version: 0.14.0 sha256: 592064ed85b40fa213469f81ac584f67a4f2992509a7c3ea2d632208623a3680 requires_python: '>=3.9' -- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.2-py313h07c4f96_2.conda - sha256: 8ef12814ebf787553b351c919d40a599e2331aefec639aef5ce6117cbcfc6a28 - md5: 7824f18e343d1f846dcde7b23c9bf31a +- conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.3-py314h5bd0f2a_0.conda + sha256: b8f9f9ae508d79c9c697eb01b6a8d2ed4bc1899370f44aa6497c8abbd15988ea + md5: e35f08043f54d26a1be93fdbf90d30c3 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache purls: - pkg:pypi/tornado?source=hash-mapping - size: 871569 - timestamp: 1762506888003 -- conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.2-py312h80b0991_2.conda - sha256: 18a9b336007a32619829b7e4b4008961dfa4537214b99cb9f4dff035637c8a34 - md5: c1e601f785ca8aedc3af1ed562e03dd9 + size: 905436 + timestamp: 1765458949518 +- conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.4-py314h3d180e3_0.conda + sha256: 232cc96c14781b3f38c9f2425a63b02e0a940c44d28a9e6c764caab554e7c0d3 + md5: e9dfcd5b883e35aebe6dbe2c197dddbe depends: - - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - __osx >=11.0 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache purls: - pkg:pypi/tornado?source=hash-mapping - size: 848824 - timestamp: 1762507195027 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.2-py312h4409184_2.conda - sha256: f36ab4a716ad18541fe04c30625fee45826ffeb5e112ed3a5fdb7e529bcc685d - md5: fb37abf9d8222ece113ffa6128bd5357 + size: 906406 + timestamp: 1765836710249 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.4-py312h4409184_0.conda + sha256: 114bfa1b859a64c589c428fce0ff8e358d8f0aaa7b98d353b94a95c7bceae640 + md5: fde4548a1e99c14eea9752f270ab68aa depends: - __osx >=11.0 - python >=3.12,<3.13.0a0 @@ -10209,14 +10469,14 @@ packages: license_family: Apache purls: - pkg:pypi/tornado?source=hash-mapping - size: 851615 - timestamp: 1762507232247 -- conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.2-py313h5ea7bf4_2.conda - sha256: 79a13678078dbdcb800b75d32e7d60f460a2284f1d6ede15ff5478b656608a28 - md5: 81bf54645cb6686c47158450cd913ec2 - depends: - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + size: 854598 + timestamp: 1765836762571 +- conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.4-py314h5a2d7ad_0.conda + sha256: 40fde32a4992ab0f875618f97d9aadf263d39c6c92ace7572c6b0a71c655abe1 + md5: 00157f40fd3ea957a2616e9ffda6b84f + depends: + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -10224,8 +10484,8 @@ packages: license_family: Apache purls: - pkg:pypi/tornado?source=hash-mapping - size: 876064 - timestamp: 1762506921139 + size: 908399 + timestamp: 1765836848636 - conda: https://conda.anaconda.org/conda-forge/noarch/tqdm-4.67.1-pyhd8ed1ab_1.conda sha256: 11e2c85468ae9902d24a27137b6b39b4a78099806e551d390e394a8c34b48e40 md5: 9efbfdc37242619130ea42b1cc4ed861 @@ -10248,49 +10508,49 @@ packages: - pkg:pypi/traitlets?source=hash-mapping size: 110051 timestamp: 1733367480074 -- conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.20.0-pyhefaf540_1.conda - sha256: 17a1e572939af33d709248170871d4da74f7e32b48f2e9b5abca613e201c6e64 - md5: 23a53fdefc45ba3f4e075cc0997fd13b +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.21.1-pyhf8876ea_0.conda + sha256: 62b359b76ae700ef4a4f074a196bc8953f2188a2784222029d0b3d19cdea59f9 + md5: 7f66f45c1bb6eb774abf6d2f02ccae9d depends: - - typer-slim-standard ==0.20.0 h4daf872_1 + - typer-slim-standard ==0.21.1 h378290b_0 - python >=3.10 - python license: MIT license_family: MIT purls: - - pkg:pypi/typer?source=compressed-mapping - size: 79829 - timestamp: 1762984042927 -- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.20.0-pyhcf101f3_1.conda - sha256: 4b5ded929080b91367f128e7299619f6116f08bc77d9924a2f8766e2a1b18161 - md5: 4b02a515f3e882dcfe9cfbf0a1f5cd3a + - pkg:pypi/typer?source=hash-mapping + size: 82073 + timestamp: 1767711188310 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-0.21.1-pyhcf101f3_0.conda + sha256: 9ef3c1b5ea2b355904b94323fc3fc95a37584ef09c6c86aafe472da156aa4d70 + md5: 3f64f1c7f9a23bead591884648949622 depends: - python >=3.10 - click >=8.0.0 - typing_extensions >=3.7.4.3 - python constrains: - - typer 0.20.0.* + - typer 0.21.1.* - 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.20.0-h4daf872_1.conda - sha256: 5027768bc9a580c8ffbf25872bb2208c058cbb79ae959b1cf2cc54b5d32c0377 - md5: 37b26aafb15a6687b31a3d8d7a1f04e7 + size: 48131 + timestamp: 1767711188309 +- conda: https://conda.anaconda.org/conda-forge/noarch/typer-slim-standard-0.21.1-h378290b_0.conda + sha256: 6a300a4e8d1e30b7926a966e805201ec08d4a5ab97c03a7d0f927996413249d7 + md5: f08a1f489c4d07cfd4a9983963073480 depends: - - typer-slim ==0.20.0 pyhcf101f3_1 + - typer-slim ==0.21.1 pyhcf101f3_0 - rich - shellingham license: MIT license_family: MIT purls: [] size: 5322 - timestamp: 1762984042927 + timestamp: 1767711188310 - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.15.0-h396c80c_0.conda sha256: 7c2df5721c742c2a47b2c8f960e718c930031663ac1174da67c1ed5999f7938c md5: edd329d7d3a4ab45dcf905899a7a6115 @@ -10310,7 +10570,7 @@ packages: license: MIT license_family: MIT purls: - - pkg:pypi/typing-inspection?source=compressed-mapping + - pkg:pypi/typing-inspection?source=hash-mapping size: 18923 timestamp: 1764158430324 - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.15.0-pyhcf101f3_0.conda @@ -10336,13 +10596,13 @@ packages: - pkg:pypi/typing-utils?source=hash-mapping size: 15183 timestamp: 1733331395943 -- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025b-h78e105d_0.conda - sha256: 5aaa366385d716557e365f0a4e9c3fca43ba196872abbbe3d56bb610d131e192 - md5: 4222072737ccff51314b5ece9c7d6f5a +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2025c-hc9c84f9_1.conda + sha256: 1d30098909076af33a35017eed6f2953af1c769e273a0626a04722ac4acaba3c + md5: ad659d0a2b3e47e38d829aa8cad2d610 license: LicenseRef-Public-Domain purls: [] - size: 122968 - timestamp: 1742727099393 + size: 119135 + timestamp: 1767016325805 - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda sha256: 3005729dce6f3d3f5ec91dfc49fc75a0095f9cd23bab49efb899657297ac91a5 md5: 71b24316859acd00bdb8b38f5e2ce328 @@ -10353,37 +10613,37 @@ packages: purls: [] size: 694692 timestamp: 1756385147981 -- conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py313h7037e92_6.conda - sha256: bd1f3d159b204be5aeeb3dd165fad447d3a1c5df75fec64407a68f210a0cb722 - md5: 1fa8d662361896873a165b051322073e +- conda: https://conda.anaconda.org/conda-forge/linux-64/ukkonen-1.0.1-py314h9891dd4_6.conda + sha256: ef6753f6febaa74d35253e4e0dd09dc9497af8e370893bd97c479f59346daa57 + md5: 28303a78c48916ab07b95ffdbffdfd6c depends: - __glibc >=2.17,<3.0.a0 - cffi - libgcc >=14 - libstdcxx >=14 - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/ukkonen?source=hash-mapping - size: 14648 - timestamp: 1761594865380 -- conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py312hedd4973_6.conda - sha256: 7e1362997611ec4971144253696ffeda05af78c5d79736a8a59b5eaa40ffcfe2 - md5: 60234a8062a92843ecf383a4c18b8037 + size: 14762 + timestamp: 1761594960135 +- conda: https://conda.anaconda.org/conda-forge/osx-64/ukkonen-1.0.1-py314hd4d8fbc_6.conda + sha256: a0eae3891b029b7370422b6266eba63d44cd71b72cda963e8a58b6c1514a4657 + md5: 1ed1acfeb71fe25d63257a6ce4be801c depends: - __osx >=10.13 - cffi - libcxx >=19 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: MIT license_family: MIT purls: - pkg:pypi/ukkonen?source=hash-mapping - size: 13967 - timestamp: 1761595128090 + size: 14099 + timestamp: 1761594980562 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ukkonen-1.0.1-py312ha0dd364_6.conda sha256: ba54fd3c178d30816fff864e5f6c7d05d4ec5f72a42ad15ec576a81fe28bea48 md5: 678a837ca1469257c13895124d4055b8 @@ -10400,13 +10660,13 @@ packages: - pkg:pypi/ukkonen?source=hash-mapping size: 14510 timestamp: 1761595134634 -- conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py313hf069bd2_6.conda - sha256: f42cd55bd21746274d7074b93b53fb420b4ae0f8f1b6161cb2cc5004c20c7ec7 - md5: 77444fe3f3004fe52c5ee70626d11d66 +- conda: https://conda.anaconda.org/conda-forge/win-64/ukkonen-1.0.1-py314h909e829_6.conda + sha256: f65b3bf31d22ae37300ed2521352107be830e7c5ba805a4c93e2ce0e0f739078 + md5: 8528e182a2d9b5d14f0072734a24a6b9 depends: - cffi - - python >=3.13,<3.14.0a0 - - python_abi 3.13.* *_cp313 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 @@ -10414,34 +10674,48 @@ packages: license_family: MIT purls: - pkg:pypi/ukkonen?source=hash-mapping - size: 18266 - timestamp: 1761595426854 -- conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.3-pyhd8ed1ab_0.conda - sha256: 6bee1d370931b1ef4105635c66fa9e2350c1d180e22de0ba031810752a20762b - md5: 0ef430c64b59f8e67b0f668e26df2d00 + size: 18357 + timestamp: 1761595080794 +- conda: https://conda.anaconda.org/conda-forge/noarch/uncertainties-3.2.4-pyhd8ed1ab_0.conda + sha256: 7ffdd4f63361db5c13fb9dc892b09cf86815640e8f306a947b268a985b4eaf4b + md5: 6a0480bcfc93c9fbd0a19466fb9419d2 depends: - future - numpy - - python >=3.9 + - python >=3.10 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/uncertainties?source=hash-mapping - size: 56653 - timestamp: 1745274434534 -- conda: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-17.0.0-py312h80b0991_1.conda - sha256: 1e85f9891f5f1e03aaf4b02af66b296596a2c487180f7c21ee9f57ed104821ac - md5: 32a0138cbc4a3934d61fef34a4b8e1c5 + size: 57131 + timestamp: 1768019077352 +- conda: https://conda.anaconda.org/conda-forge/linux-64/unicodedata2-17.0.0-py314h5bd0f2a_1.conda + sha256: d1dafc15fc5d2b1dd5b0a525e8a815028de20dd53b2c775a1b56e8e4839fb736 + md5: 58e2ee530005067c5db23f33c6ab43d2 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 409745 + timestamp: 1763055060898 +- conda: https://conda.anaconda.org/conda-forge/osx-64/unicodedata2-17.0.0-py314h6482030_1.conda + sha256: 39e3ff3944c609fc2930ea270e5a9abceaf6b851136cafc7ffee5acf2788a7d8 + md5: d69097de15cbad36f1eaafda0bad598a depends: - __osx >=10.13 - - python >=3.12,<3.13.0a0 - - python_abi 3.12.* *_cp312 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 license: Apache-2.0 license_family: Apache purls: - pkg:pypi/unicodedata2?source=hash-mapping - size: 403881 - timestamp: 1763055352529 + size: 405564 + timestamp: 1763055016092 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unicodedata2-17.0.0-py312h4409184_1.conda sha256: 567cebbb3a1a5c76e5ec43508e01ccbe98923ad0003eafd87acbbc546fcd588c md5: b0b0c7ea4888b6f4009afa7001e6adaa @@ -10456,6 +10730,21 @@ packages: - pkg:pypi/unicodedata2?source=hash-mapping size: 416271 timestamp: 1763055285615 +- conda: https://conda.anaconda.org/conda-forge/win-64/unicodedata2-17.0.0-py314h5a2d7ad_1.conda + sha256: 47e061aec1487519c398e1c999ac3680f068f9e1d8574c8b365eac4787773250 + md5: 1f90bb13fa5ced89ca4dcc0af3bbebf3 + depends: + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: Apache-2.0 + license_family: Apache + purls: + - pkg:pypi/unicodedata2?source=hash-mapping + size: 405783 + timestamp: 1763054877424 - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda sha256: e0eb6c8daf892b3056f08416a96d68b0a358b7c46b99c8a50481b22631a4dfc0 md5: e7cb0f5745e4c5035a460248334af7eb @@ -10467,58 +10756,58 @@ packages: - pkg:pypi/uri-template?source=hash-mapping size: 23990 timestamp: 1733323714454 -- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.5.0-pyhd8ed1ab_0.conda - sha256: 4fb9789154bd666ca74e428d973df81087a697dbb987775bc3198d2215f240f8 - md5: 436c165519e140cb08d246a4472a9d6a +- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.6.3-pyhd8ed1ab_0.conda + sha256: af641ca7ab0c64525a96fd9ad3081b0f5bcf5d1cbb091afb3f6ed5a9eee6111a + md5: 9272daa869e03efe68833e3dc7a02130 depends: - - brotli-python >=1.0.9 + - backports.zstd >=1.0.0 + - brotli-python >=1.2.0 - h2 >=4,<5 - pysocks >=1.5.6,<2.0,!=1.5.7 - - python >=3.9 - - zstandard >=0.18.0 + - python >=3.10 license: MIT license_family: MIT purls: - pkg:pypi/urllib3?source=hash-mapping - size: 101735 - timestamp: 1750271478254 -- conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h2b53caa_32.conda - sha256: 82250af59af9ff3c6a635dd4c4764c631d854feb334d6747d356d949af44d7cf - md5: ef02bbe151253a72b8eda264a935db66 + size: 103172 + timestamp: 1767817860341 +- conda: https://conda.anaconda.org/conda-forge/win-64/vc-14.3-h41ae7f8_34.conda + sha256: 9dc40c2610a6e6727d635c62cced5ef30b7b30123f5ef67d6139e23d21744b3a + md5: 1e610f2416b6acdd231c5f573d754a0f depends: - - vc14_runtime >=14.42.34433 + - vc14_runtime >=14.44.35208 track_features: - vc14 license: BSD-3-Clause license_family: BSD purls: [] - size: 18861 - timestamp: 1760418772353 -- conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_32.conda - sha256: e3a3656b70d1202e0d042811ceb743bd0d9f7e00e2acdf824d231b044ef6c0fd - md5: 378d5dcec45eaea8d303da6f00447ac0 + size: 19356 + timestamp: 1767320221521 +- conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.44.35208-h818238b_34.conda + sha256: 02732f953292cce179de9b633e74928037fa3741eb5ef91c3f8bae4f761d32a5 + md5: 37eb311485d2d8b2c419449582046a42 depends: - ucrt >=10.0.20348.0 - - vcomp14 14.44.35208 h818238b_32 + - vcomp14 14.44.35208 h818238b_34 constrains: - - vs2015_runtime 14.44.35208.* *_32 + - vs2015_runtime 14.44.35208.* *_34 license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime license_family: Proprietary purls: [] - size: 682706 - timestamp: 1760418629729 -- conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_32.conda - sha256: f3790c88fbbdc55874f41de81a4237b1b91eab75e05d0e58661518ff04d2a8a1 - md5: 58f67b437acbf2764317ba273d731f1d + size: 683233 + timestamp: 1767320219644 +- conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.44.35208-h818238b_34.conda + sha256: 878d5d10318b119bd98ed3ed874bd467acbe21996e1d81597a1dbf8030ea0ce6 + md5: 242d9f25d2ae60c76b38a5e42858e51d depends: - ucrt >=10.0.20348.0 constrains: - - vs2015_runtime 14.44.35208.* *_32 + - vs2015_runtime 14.44.35208.* *_34 license: LicenseRef-MicrosoftVisualCpp2015-2022Runtime license_family: Proprietary purls: [] - size: 114846 - timestamp: 1760418593847 + size: 115235 + timestamp: 1767320173250 - conda: https://conda.anaconda.org/conda-forge/noarch/versioningit-3.3.0-pyhd8ed1ab_0.conda sha256: 4b9a3f6738ab6e241b12b2fe9258f7e051678b911ca0f0ab042becc29096ff51 md5: 57b96d99ac0f5a548f7001618db6a561 @@ -10533,12 +10822,12 @@ packages: - pkg:pypi/versioningit?source=hash-mapping size: 167034 timestamp: 1751113901223 -- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.35.4-pyhd8ed1ab_0.conda - sha256: 77193c99c6626c58446168d3700f9643d8c0dab1f6deb6b9dd039e6872781bfb - md5: cfccfd4e8d9de82ed75c8e2c91cab375 +- conda: https://conda.anaconda.org/conda-forge/noarch/virtualenv-20.36.1-pyhd8ed1ab_0.conda + sha256: fa0a21fdcd0a8e6cf64cc8cd349ed6ceb373f09854fd3c4365f0bc4586dccf9a + md5: 6b0259cea8ffa6b66b35bae0ca01c447 depends: - distlib >=0.3.7,<1 - - filelock >=3.12.2,<4 + - filelock >=3.20.1,<4 - platformdirs >=3.9.1,<5 - python >=3.10 - typing_extensions >=4.13.2 @@ -10546,8 +10835,8 @@ packages: license_family: MIT purls: - pkg:pypi/virtualenv?source=hash-mapping - size: 4401341 - timestamp: 1761726489722 + size: 4404318 + timestamp: 1768069793682 - conda: https://conda.anaconda.org/conda-forge/linux-64/wayland-1.24.0-hd6090a7_1.conda sha256: 3aa04ae8e9521d9b56b562376d944c3e52b69f9d2a0667f77b8953464822e125 md5: 035da2e4f5770f036ff704fa17aace24 @@ -10606,17 +10895,18 @@ packages: - pkg:pypi/websocket-client?source=hash-mapping size: 61391 timestamp: 1759928175142 -- conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.45.1-pyhd8ed1ab_1.conda - sha256: 1b34021e815ff89a4d902d879c3bd2040bc1bd6169b32e9427497fa05c55f1ce - md5: 75cb7132eb58d97896e173ef12ac9986 +- conda: https://conda.anaconda.org/conda-forge/noarch/wheel-0.46.3-pyhd8ed1ab_0.conda + sha256: d6cf2f0ebd5e09120c28ecba450556ce553752652d91795442f0e70f837126ae + md5: bdbd7385b4a67025ac2dba4ef8cb6a8f depends: - - python >=3.9 + - packaging >=24.0 + - python >=3.10 license: MIT license_family: MIT purls: - pkg:pypi/wheel?source=hash-mapping - size: 62931 - timestamp: 1733130309598 + size: 31858 + timestamp: 1769139207397 - conda: https://conda.anaconda.org/conda-forge/noarch/wheel-filename-1.4.2-pyhe01879c_1.conda sha256: 7c3190fb2030f3bf978795474e014e242248e9bb32e847c5e397db7263a639b7 md5: fdffe7f5ac47442a186e552f3b1d4293 @@ -11112,9 +11402,9 @@ packages: - pkg:pypi/zipp?source=compressed-mapping size: 24194 timestamp: 1764460141901 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.1-hde8ca8f_0.conda - sha256: 51194892b30adc20d8bfac8518e82cff811c62cb996527e1caf8c7814786e792 - md5: 49c832bff803d95a56190e7992b4b230 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-ng-2.3.2-hceb46e0_1.conda + sha256: f2b6a175677701a0b6ce556b3bd362dc94a4e36ffcd10e3860e52ca036b4ad96 + md5: 40feea2979654ed579f1cda7c63ccb94 depends: - __glibc >=2.17,<3.0.a0 - libgcc >=14 @@ -11122,72 +11412,75 @@ packages: license: Zlib license_family: Other purls: [] - size: 120872 - timestamp: 1764268364314 -- conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.3.2-h53ec75d_0.conda - sha256: 9183b2ada178d83ca6f8a66ba2ddcfb5f2476c2e866a4609c1f84dd5f32d796e - md5: 1e979f90e823b82604ab1da7e76c75e5 + size: 122303 + timestamp: 1766076745735 +- conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-ng-2.3.2-h8bce59a_1.conda + sha256: 945725769bc668435af1c23733c3c1dba01eb115ad3bad5393c9df2e23de6cfc + md5: cdd69480d52f2b871fad1a91324d9942 depends: - __osx >=10.13 - libcxx >=19 license: Zlib + license_family: Other purls: [] - size: 135199 - timestamp: 1764716055794 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-ng-2.3.2-h248ca61_0.conda - sha256: 2fe2befe061a51c24fce7f5f071c47b45b43f8c8781c0c557edf7c733ab13b18 - md5: c2a30a3b30cf86ef97ec880d53a6571a + size: 120585 + timestamp: 1766077108928 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-ng-2.3.2-hed4e4f5_1.conda + sha256: ab481487381a6a6213d667e883252e52b8ca867b3b466c31a058126f964efffe + md5: 75f39a44c08cb5dc4ea847698de34ba3 depends: - - libcxx >=19 - __osx >=11.0 + - libcxx >=19 license: Zlib + license_family: Other purls: [] - size: 105035 - timestamp: 1764716000870 -- conda: https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.3.2-h5112557_0.conda - sha256: 331e63a801efc9aa47e0a7f7be5becc81d9c52c1163308182078108e003c12e5 - md5: 2b4f8712b09b5fd3182cda872ce8482c + size: 94882 + timestamp: 1766076931977 +- conda: https://conda.anaconda.org/conda-forge/win-64/zlib-ng-2.3.2-h0261ad2_1.conda + sha256: e058e925bed8d9e5227cecc098e02992813046fd89206194435e975a9f6eff56 + md5: bc2fba648e1e784c549e20bbe1a8af40 depends: + - ucrt >=10.0.20348.0 - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 license: Zlib + license_family: Other purls: [] - size: 134848 - timestamp: 1764715928393 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py313h54dd161_1.conda - sha256: e6921de3669e1bbd5d050a3b771b46a887e7f4ffeb1ddd5e4d9fb01062a2f6e9 - md5: 710d4663806d0f72b2fb414e936223b5 + size: 123890 + timestamp: 1766076739436 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstandard-0.25.0-py314h0f05182_1.conda + sha256: e589f694b44084f2e04928cabd5dda46f20544a512be2bdb0d067d498e4ac8d0 + md5: 2930a6e1c7b3bc5f66172e324a8f5fc3 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 + - libgcc >=14 - zstd >=1.5.7,<1.6.0a0 + - python_abi 3.14.* *_cp314 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/osx-64/zstandard-0.25.0-py312h01f6755_1.conda - sha256: 5360439241921c612a5df77e28ce0ae4912eef7de65dc42adba5499878a67e87 - md5: d9209ec6445f95fba0c3c64fa4a46216 + size: 473605 + timestamp: 1762512687493 +- conda: https://conda.anaconda.org/conda-forge/osx-64/zstandard-0.25.0-py314hd1e8ddb_1.conda + sha256: cf12b4c138eef5160b12990278ac77dec5ca91de60638dd6cf1e60e4331d8087 + md5: b94712955dc017da312e6f6b4c6d4866 depends: - python - cffi >=1.11 - zstd >=1.5.7,<1.5.8.0a0 - __osx >=10.13 - - python_abi 3.12.* *_cp312 + - python_abi 3.14.* *_cp314 - zstd >=1.5.7,<1.6.0a0 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/zstandard?source=hash-mapping - size: 462661 - timestamp: 1762512711429 + size: 470136 + timestamp: 1762512696464 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstandard-0.25.0-py312h37e1c23_1.conda sha256: af843b0fe62d128a70f91dc954b2cb692f349a237b461788bd25dd928d0d1ef8 md5: 9300889791d4decceea3728ad3b423ec @@ -11205,9 +11498,9 @@ packages: - pkg:pypi/zstandard?source=hash-mapping size: 390920 timestamp: 1762512713481 -- conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.25.0-py313h5fd188c_1.conda - sha256: 5f751687a64cf5a6d69ad79aa437f45d6cc388d9e887dcdecff9d3b08cf7fd87 - md5: 46f6f9bb324a58a9b081bbc56ade37f2 +- conda: https://conda.anaconda.org/conda-forge/win-64/zstandard-0.25.0-py314hc5dbbe4_1.conda + sha256: 87bf6ba2dcc59dfbb8d977b9c29d19b6845ad54e092ea8204dcec62d7b461a30 + md5: c1ef46c3666be935fbb7460c24950cff depends: - python - cffi >=1.11 @@ -11218,25 +11511,25 @@ packages: - vc >=14.3,<15 - vc14_runtime >=14.44.35208 - ucrt >=10.0.20348.0 - - python_abi 3.13.* *_cp313 - zstd >=1.5.7,<1.6.0a0 + - python_abi 3.14.* *_cp314 license: BSD-3-Clause license_family: BSD purls: - pkg:pypi/zstandard?source=hash-mapping - size: 380854 - timestamp: 1762512720226 -- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-h3691f8a_4.conda - sha256: 58e0344d81520c8734533fff64a28a5be7edf84618341fc70d3e20bd0a1fdc3e - md5: af7715829219de9043fcc5575e66d22e + size: 381179 + timestamp: 1762512709971 +- conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_6.conda + sha256: 68f0206ca6e98fea941e5717cec780ed2873ffabc0e1ed34428c061e2c6268c7 + md5: 4a13eeac0b5c8e5b8ab496e6c4ddd829 depends: - __glibc >=2.17,<3.0.a0 - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause license_family: BSD purls: [] - size: 559888 - timestamp: 1764431250718 + size: 601375 + timestamp: 1764777111296 - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-h3eecb57_6.conda sha256: 47101a4055a70a4876ffc87b750ab2287b67eca793f21c8224be5e1ee6394d3f md5: 727109b184d680772e3122f40136d5ca @@ -11244,6 +11537,7 @@ packages: - __osx >=10.13 - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause + license_family: BSD purls: [] size: 528148 timestamp: 1764777156963 @@ -11254,6 +11548,7 @@ packages: - __osx >=11.0 - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause + license_family: BSD purls: [] size: 433413 timestamp: 1764777166076 @@ -11266,6 +11561,7 @@ packages: - ucrt >=10.0.20348.0 - libzlib >=1.3.1,<2.0a0 license: BSD-3-Clause + license_family: BSD purls: [] size: 388453 timestamp: 1764777142545 diff --git a/prototype/EventBroker/event_broker.py b/prototype/EventBroker/event_broker.py deleted file mode 100644 index c9c137a21..000000000 --- a/prototype/EventBroker/event_broker.py +++ /dev/null @@ -1,24 +0,0 @@ -from collections import defaultdict -from typing import Any, Literal - - -class EventBroker: - _instance = None - - def __new__(cls, *args, **kwargs): - if cls._instance is None: - cls._instance = super().__new__(cls) - return cls._instance - - def __init__(self): - if not hasattr(self, "registry"): - self.registry = defaultdict(list) - - def register(self, event_type: Any, callable: Literal["event_type"]): - self.registry[event_type].append(callable) - - def publish(self, event: Any): - event_type = type(event) - if callable_list := self.registry.get(event_type): - for callable in callable_list: - callable(event) diff --git a/prototype/EventBroker/event_type.py b/prototype/EventBroker/event_type.py deleted file mode 100644 index 2ad4fc877..000000000 --- a/prototype/EventBroker/event_type.py +++ /dev/null @@ -1,25 +0,0 @@ -from attr import dataclass - - -class Event: - pass - - -@dataclass -class scan_uuid(Event): - scan_uuid_list: list[str] - - -@dataclass -class selected_uuid(Event): - selected_uuid: str - - -@dataclass -class meta_data(Event): - meta_data_dict: dict - - -@dataclass -class template_data(Event): - template_data: str diff --git a/prototype/library/FileSystem/Facilities/load_ansto.py b/prototype/library/FileSystem/Facilities/load_ansto.py deleted file mode 100644 index f4e867e31..000000000 --- a/prototype/library/FileSystem/Facilities/load_ansto.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Load ANSTO data.""" - -import logging -import os -from typing import Iterable, Optional - -logger = logging.getLogger("TAVI") - - -class LoadANSTO: - """ - Loader for NIST triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at NIST. It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str], - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 0 - - def load(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - pass diff --git a/prototype/library/FileSystem/Facilities/load_frmii.py b/prototype/library/FileSystem/Facilities/load_frmii.py deleted file mode 100644 index 1f75d76ba..000000000 --- a/prototype/library/FileSystem/Facilities/load_frmii.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Load FRMII data.""" - -import logging -import os -from typing import Iterable, Optional - -logger = logging.getLogger("TAVI") - - -class LoadFRMII: - """ - Loader for NIST triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at NIST. It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str], - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 0 - - def load(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - pass diff --git a/prototype/library/FileSystem/Facilities/load_hzb.py b/prototype/library/FileSystem/Facilities/load_hzb.py deleted file mode 100644 index 2ad7f52f5..000000000 --- a/prototype/library/FileSystem/Facilities/load_hzb.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Load HZB data.""" - -import logging -import os -from typing import Iterable, Optional - -logger = logging.getLogger("TAVI") - - -class LoadHZB: - """ - Loader for NIST triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at NIST. It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str], - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 0 - - def load(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - pass diff --git a/prototype/library/FileSystem/Facilities/load_ill.py b/prototype/library/FileSystem/Facilities/load_ill.py deleted file mode 100644 index aba37d9da..000000000 --- a/prototype/library/FileSystem/Facilities/load_ill.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Load ILL data.""" - -import logging -import os -from typing import Iterable, Optional - -logger = logging.getLogger("TAVI") - - -class LoadILL: - """ - Loader for NIST triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at NIST. It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str], - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 0 - - def load(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - pass diff --git a/prototype/library/FileSystem/Facilities/load_nist.py b/prototype/library/FileSystem/Facilities/load_nist.py deleted file mode 100644 index 12561bb79..000000000 --- a/prototype/library/FileSystem/Facilities/load_nist.py +++ /dev/null @@ -1,122 +0,0 @@ -"""Load nist data.""" - -import logging -import os -from typing import Iterable, Optional - -logger = logging.getLogger("TAVI") - - -class LoadNIST: - """ - Loader for NIST triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at NIST. It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str], - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 0 - - def load(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - pass diff --git a/prototype/library/FileSystem/Facilities/load_ornl.py b/prototype/library/FileSystem/Facilities/load_ornl.py deleted file mode 100644 index 225830186..000000000 --- a/prototype/library/FileSystem/Facilities/load_ornl.py +++ /dev/null @@ -1,228 +0,0 @@ -"""Load ORNL data.""" - -import logging -import os -from dataclasses import field, make_dataclass -from typing import Any, Iterable, Optional - -import numpy as np - -import tavi.library.FileSystem.spice_reader as spice_reader -from tavi.library.FileSystem.tavi_class_factory import Scan - -logger = logging.getLogger("TAVI") - - -class LoadORNL: - """ - Loader for ORNL SPICE triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at ORNL instruments (e.g., CG4C, HB1, HB3, HB1A). It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str] = None, - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 100 - - def load(self) -> dict: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> dict: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - scan_list = {} - list_of_files = self.data_files if self.data_files else os.listdir(self.data_folder) - for filename in list_of_files: - rawdata = make_dataclass("RawData", [], slots=True) - rawmetadata = make_dataclass("RawMetaData", [], slots=True) - ub_conf = make_dataclass("UbConf", [], slots=True) - - numeric_data, col_names, meta_data, others, error_message = spice_reader.read_spice_datafile( - os.path.join(self.data_folder, filename) - ) - - # ------------------load data------------------ - for col_name in col_names: - # guard against invalid format - if col_name[0].isdigit(): - col_name = "_" + col_name - attr_name = col_name.replace("-", "_").replace(" ", "_").replace(".", "") - try: - # adding a checker to avoid re-creating class attributes, make the code faster - if hasattr(rawdata, attr_name): - setattr(rawdata, attr_name, numeric_data[:, col_names.index(col_name)]) - else: - rawdata = make_dataclass( - "RawData", fields=[(attr_name, np.ndarray, field(default=None))], bases=(rawdata,) - ) - setattr(rawdata, attr_name, numeric_data[:, col_names.index(col_name)]) - - # if the numeric_data only has 1 entry, we'd still like to parse it as a 1D numpy array - except IndexError: - rawdata = make_dataclass( - "RawData", fields=[(attr_name, np.ndarray, field(default=None))], bases=(rawdata,) - ) - setattr(rawdata, attr_name, np.array([numeric_data[col_names.index(col_name)]])) - - rawdata = make_dataclass("RawData", fields=[("column_names", list, field(default=None))], bases=(rawdata,)) - setattr(rawdata, "column_names", col_names) - - # ------------------load meta data and ubconf------------------ - for key, value in meta_data.items(): - # replace "-" or " " with "_" to consolidate with python attribute's format - if key[0].isdigit(): - key = "_" + key - key = key.replace("-", "_").replace(" ", "_").replace(".", "") - # adding a checker to avoid re-creating class attributes, make the code faster - if hasattr(rawmetadata, key): - setattr(rawmetadata, key, value) - else: - rawmetadata = make_dataclass( - "RawMetaData", fields=[(key, str, field(default=None))], bases=(rawmetadata,) - ) - setattr(rawmetadata, key, value) - - match key: - case "ubconf": - ub_filename = value - if ub_filename: - # users don't need to set specific ub_directory, the loader will try to search for ub - if not self.ub_dir: - prev_dir = os.path.join(self.data_folder, os.pardir) - if "UBConf" in os.listdir(prev_dir): - self.ub_dir = os.path.join(prev_dir, "UBConf") - # look into "UBConf" folder first - if ub_filename in os.listdir(self.ub_dir): - ub_data = spice_reader.read_spice_ubconf(os.path.join(self.ub_dir, ub_filename)) - for key, value in ub_data.items(): - # adding a checker to avoid re-creating class attributes, make the code faster - if hasattr(ub_conf, key): - setattr(ub_conf, key, value) - else: - ub_conf = make_dataclass( - "UbConf", fields=[(key, Any, field(default=None))], bases=(ub_conf,) - ) - setattr(ub_conf, key, value) - # look into tmp folder just in case - elif ub_filename in os.listdir(os.path.join(self.ub_dir, "tmp")): - ub_data = spice_reader.read_spice_ubconf(os.path.join(self.ub_dir, ub_filename)) - for key, value in ub_data.items(): - # adding a checker to avoid re-creating class attributes, make the code faster - if hasattr(ub_conf, key): - setattr(ub_conf, key, value) - else: - ub_conf = make_dataclass( - "UbConf", fields=[(key, Any, field(default=None))], bases=(ub_conf,) - ) - setattr(ub_conf, key, value) - else: - logger.warning("Can't find %s, please double check UBMatrix data", ub_filename) - - rawmetadata = make_dataclass( - "RawMetaData", fields=[("others", str, field(default=None))], bases=(rawmetadata,) - ) - setattr(rawmetadata, "others", others) - - scan = Scan( - data=rawdata, - metadata=rawmetadata, - error_message=error_message, - ubconf=ub_conf, - ) - scan_list[filename] = scan - return scan_list diff --git a/prototype/library/FileSystem/Facilities/load_psi.py b/prototype/library/FileSystem/Facilities/load_psi.py deleted file mode 100644 index c15e7b5cf..000000000 --- a/prototype/library/FileSystem/Facilities/load_psi.py +++ /dev/null @@ -1,122 +0,0 @@ -"""PSI data loader.""" - -import logging -import os -from typing import Iterable, Optional - -logger = logging.getLogger("TAVI") - - -class LoadPSI: - """ - Loader for NIST triple-axis spectrometer data. - - This class provides utilities to read SPICE-formatted data files produced - at NIST. It supports loading - either an explicit list of data files or all files within a specified - directory. Metadata, numeric arrays, and UB matrix configurations are - parsed into structured dataclasses (`RawData`, `RawMetaData`, `UbConf`) - and organized into a `TaviProject`. - - Args: - data_folder (str | PathLike): - Directory containing SPICE data files. Used if `data_files` is not provided. - data_files (Iterable[str] | None): - Optional explicit list of filenames to load. If `None`, all files - in `data_folder` are processed. - ub_dir (str | PathLike | None): - Optional path to a UBConf directory. If not provided, the loader - searches for a `UBConf` folder adjacent to `data_folder`. - - Methods: - score() -> float: - Return a heuristic score for how likely the directory corresponds - to ORNL data. Currently returns a placeholder value (100). - load() -> TaviProject: - Public entry point to load data files into a `TaviProject`. - _load_files() -> TaviProject: - Internal method implementing the actual parsing and data - organization logic. - - """ - - def __init__( - self, - data_folder: Optional[os.PathLike | str], - data_files: Optional[Iterable[str]] = None, - ub_dir: Optional[os.PathLike | str] = None, - ) -> None: - """Init.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - - def score(self) -> float: - """Score.""" - return 0 - - def load(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This method serves as the main entry point for reading triple-axis - spectrometer (SPICE) data. It gathers data files from either: - - - `self.data_files` if a list of files is explicitly provided, or - - all files in `self.data_folder` if no list is given. - - Each file is parsed into numeric arrays and metadata, dynamically mapped - onto `RawData`, `RawMetaData`, and (if applicable) `UbConf` dataclasses. - These are assembled into `Scan` objects, which are collected into a - `TaviProject`. - - Returns: - TaviProject: A project object containing all loaded scans, indexed by filename. - - """ - return self._load_files() - - def _load_files(self) -> None: - """ - Load SPICE data files into a TaviProject. - - This function reads each SPICE data file from either the provided list - of `data_files` or from the `data_folder` directory. For each file, it: - - 1. Uses `spice_reader.read_spice_datafile()` to extract: - - numeric data arrays - - column names - - metadata - - additional information - - error messages - - 2. Dynamically generates `RawData` and `RawMetaData` dataclasses with - attributes inferred from the file contents. Attribute names are - sanitized (e.g., replacing `-`, `.`, or whitespace with `_`) and - guarded against invalid Python identifiers. - - 3. Handles one-dimensional numeric data gracefully by converting scalars - to 1D numpy arrays. - - 4. Processes metadata entries. If a "ubconf" key is present, the - corresponding UB matrix configuration file is searched for in the - `ub_dir`, or in a `UBConf` subfolder adjacent to the data folder. - If found, the UB configuration is read using - `spice_reader.read_spice_ubconf()` and stored in a dynamically - generated `UbConf` dataclass. - - 5. Constructs a `Scan` object containing: - - the populated `RawData` instance - - the populated `RawMetaData` instance - - the UB configuration (if available) - - column names - - error messages - - other auxiliary information - - 6. Stores the `Scan` object in a `TaviProject`, keyed by the filename. - - Returns: - TaviProject: A project object containing all scans indexed by filename. - - """ - pass diff --git a/prototype/library/FileSystem/load_manager.py b/prototype/library/FileSystem/load_manager.py deleted file mode 100644 index 110d21dbf..000000000 --- a/prototype/library/FileSystem/load_manager.py +++ /dev/null @@ -1,118 +0,0 @@ -"""Load manager.""" - -import logging -import os -from typing import Iterable, Optional - -from tavi.library.FileSystem.Facilities.load_ansto import LoadANSTO -from tavi.library.FileSystem.Facilities.load_frmii import LoadFRMII -from tavi.library.FileSystem.Facilities.load_hzb import LoadHZB -from tavi.library.FileSystem.Facilities.load_nist import LoadNIST -from tavi.library.FileSystem.Facilities.load_ornl import LoadORNL -from tavi.library.FileSystem.Facilities.load_psi import LoadPSI -from tavi.library.FileSystem.tavi_class_factory import Scan - -logger = logging.getLogger("TAVI") - - -class LoadManager: - """ - TAVI file management system. - - - Normalizes user input (folder and files) and resolves paths. - - Ranks likely facility using facility-provided scoring functions. - - Loads data through the chosen facility loader. - - Parameters - ---------- - data_folder : str | os.PathLike | None - Folder path containing data files (optional if `data_file` is provided). - data_file : str | os.PathLike | Iterable[str | os.PathLike] | None - A single file or an iterable of files. - facility : str | None - If provided, bypass ranking and force this facility (must be supported). - - """ - - # currently supported facilities - supported_facilities = ["ORNL", "ANSTO", "ILL", "PSI", "NIST", "HZB", "FRMII"] - - def __init__( - self, - data_folder: Optional[os.PathLike | str] = None, - data_files: Optional[os.PathLike | str | Iterable[os.PathLike | str]] = None, - ub_dir: Optional[os.PathLike] = None, - facility: Optional[str] = None, - ) -> None: - """Init load manager.""" - self.data_folder = data_folder - self.data_files = data_files - self.ub_dir = ub_dir - self.facility = facility - - # TO DO - def rank_facility(self) -> None: - """ - Determine and set the most likely facility using plugin score functions. - - Returns - ------- - str - The selected facility name. - - """ - facility_score = dict() - for facility in self.supported_facilities: - match facility: - case "ORNL": - facility_score[facility] = LoadORNL( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - case "ANSTO": - facility_score[facility] = LoadANSTO( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - case "ILL": - facility_score[facility] = LoadANSTO( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - case "PSI": - facility_score[facility] = LoadPSI( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - case "NIST": - facility_score[facility] = LoadNIST( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - case "HZB": - facility_score[facility] = LoadHZB( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - case "FRMII": - facility_score[facility] = LoadFRMII( - data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir - ).score() - self.facility = max(facility_score, key=facility_score.get) - - def load(self) -> dict[str, Scan, None]: - """Load the either a folder or a single file or a list of files and returns the TaviProject class.""" - # if self.facility is None, call the ranking system - if not self.facility: - self.rank_facility() - match self.facility: - case "ORNL": - return LoadORNL(data_folder=self.data_folder, data_files=self.data_files, ub_dir=self.ub_dir).load() - return None - # TO DO: extend to other facilities - # case "ILL": - # return load_ill.load(self.data_folder, self.data_files) - # case "ANSTO": - # return load_ansto.load(self.data_folder, self.data_files) - # case "PSI": - # return load_psi.load(self.data_folder, self.data_files) - # case "NIST": - # return load_nist.load(self.data_folder, self.data_files) - # case "MLZ": - # return load_ill.load(self.data_folder, self.data_files) - # case "FRMII": - # return load_frmii.load(self.data_folder, self.data_files) diff --git a/prototype/library/FileSystem/spice_reader.py b/prototype/library/FileSystem/spice_reader.py deleted file mode 100644 index fd3cc9c0d..000000000 --- a/prototype/library/FileSystem/spice_reader.py +++ /dev/null @@ -1,181 +0,0 @@ -"""Spice reader.""" - -# -*- coding: utf-8 -*- -import os -import xml.etree.ElementTree as ET -from typing import Any - -import numpy as np - - -def read_spice_datafile(file_name: str) -> tuple: - """ - Read an ascii generated by spice, and returns a header structure and a data table. - - Args: - file_name (str): a string containing the filename - - Returns: - data (np.ndarray): an array containing all columns/rows - metadata (dict): a dictionary containing information from the commented lines. - col_names (tuple): name of each column in spice_data - others (tuple): unrecogonized lines - error_messages(tuple): contains line of error message such as unreachable motor positions - - """ - with open(file_name, encoding="utf-8") as f: - all_content = f.readlines() - headers = [line.strip() for line in all_content if "#" in line] - index_col_name = headers.index("# col_headers =") - col_names = headers[index_col_name + 1].strip("#").split() - # remove the dot before it causes problem - # index_of_pt = col_names.index("Pt.") - # col_names[index_of_pt] = "Pt" - metadata_list = headers[:index_col_name] - error_messages = headers[index_col_name + 2 :] - - index_sum_count = [i for i, header in enumerate(headers) if header.startswith("# Sum of Counts =")] - # in case "Sum of Counts" doesn't exist - # happens to the last scan after beam is down - if len(index_sum_count) != 0: - metadata_list += headers[index_sum_count[0] :] - error_messages = error_messages[: index_sum_count[0] - len(headers)] - - metadata = {} - others = [] - - for metadata_entry in metadata_list: - line = metadata_entry.strip("# ") - - if "completed" in line or "stopped" in line: # last line - parts = line.split(" ") - end_time = parts[3] + " " + parts[0] + " " + parts[1] - metadata.update({"end_time": end_time}) - # elif line[-1] == "=": # empty line - # unused.append(line[:-2]) # remove " =" - elif "=" in line: # useful line - parts = line.split("=") - key = parts[0].strip() - val = "=".join(parts[1:])[1:] # remove the first space character - metadata.update({key: val}) - else: # how did you get here? - others.append(line) - # others = tuple(others) - - if metadata.get("preset_type") == "countfile": # HB1 in polarization mode - countfile = [] - for metadata_entry in metadata_list: - if metadata_entry.startswith("# countfile"): - _, val = metadata_entry.split("=") - countfile.append(val.strip()) - metadata.update({"countfile": ", ".join(countfile)}) - data = np.genfromtxt(file_name, comments="#") - - return (data, tuple(col_names), metadata, tuple(others), tuple(error_messages)) - - -def read_spice_ubconf(ub_file_name: str) -> dict: - """ - Read ub info from UBConf. - - Args: - ub_file_name (str): a string containing the filename. - - Returns: - dict of ub meta data. - - """ - ubconf: dict[str, Any] = {} - with open(ub_file_name, "r", encoding="utf-8") as f: - all_content = f.readlines() - - if all_content[0] == "[UBMode]\n": - for idx, line in enumerate(all_content): - if line.strip() == "": - continue # skip if empty - elif line.strip()[0] == "[": - continue # skiplines like "[xx]" - key, val = line.strip().split("=") - - if key == "Mode": - mode_name = all_content[idx - 1].strip() - if mode_name == "[UBMode]": - ubconf.update({"UBMode": int(val)}) - elif mode_name == "[AngleMode]": - ubconf.update({"AngleMode": int(val)}) - elif "," in val: # string of vector to array - ubconf.update({key: np.array([float(v) for v in val.strip('"').split(",")])}) - elif val == '""': # no value - pass - else: # float - ubconf.update({key: float(val)}) - else: # xml junk from C# - tree = ET.parse(ub_file_name) - root = tree.getroot() - for matrix in root.findall("matrix"): - ub_matrix = matrix.attrib["matrix"].split(" ") - ubconf.update({"UBMatrix": np.array([float(ub_matrix[i]) for i in range(9)])}) - return ubconf - - -def _create_spicelogs(path_to_scan_file: str) -> dict: - """Read in SPICE data, return a dictionary containing metadata and data columns.""" - (data, col_names, metadata, others, error_messages) = read_spice_datafile(path_to_scan_file) - *_, file_name = path_to_scan_file.split("/") - instrument_str, *_ = file_name.split("_") - # write SPICElogs attributes - attrs_dict = {"instrument": instrument_str} - for k, v in metadata.items(): - attrs_dict.update({k: v}) - if len(error_messages) != 0: - attrs_dict.update({"Error Messages": error_messages}) - if len(others) != 0: - attrs_dict.update({"Others": others}) - - # write SPICElogs datasets - dataset_dict = {} - spice_data_shape = data.shape - if len(spice_data_shape) == 1: # 1 row only - if spice_data_shape[0] != 0: - for idx, col_header in enumerate(col_names): - # convert to ndarray if one point only - dataset_dict.update({col_header: np.array([data[idx]])}) - else: # ignore if empty - pass - elif len(spice_data_shape) == 2: # nomarl data with multiple rows - # print(scan_num) - # print(spice_data.shape) - for idx, col_header in enumerate(col_names): - dataset_dict.update({col_header: data[:, idx]}) - spicelogs = {"metadata": attrs_dict} - spicelogs.update(dataset_dict) - - scan_path = os.path.abspath(path_to_scan_file) - (*folder_path, _, _) = scan_path.split("/") - - ub_file_name = metadata["ubconf"] - # clean up the mess DAO made - if "\\" in ub_file_name: # ubconf can be a Windows path in some scans - ub_file = ub_file_name.split("\\")[-1] - elif "/" in ub_file_name: # ubconf can be a Windows path in some scans - ub_file = ub_file_name.split("/")[-1] - else: - ub_file = ub_file_name - - ub_file_path = os.path.join("/", *folder_path, "UBConf", ub_file) - ub_temp_file_path = os.path.join("/", *folder_path, "UBConf", "temp", ub_file) - - if os.path.isfile(ub_file_path): - ub_conf_dict = {"file_path": ub_file_path} - elif os.path.isfile(ub_temp_file_path): - ub_conf_dict = {"file_path": ub_temp_file_path} - else: - ub_conf_dict = {"file_path": ""} - print(f"Cannot find UB file {metadata['ubconf']}") - ubconf = read_spice_ubconf(ub_file_path) - for k, v in ubconf.items(): - ub_conf_dict.update({k: v}) - - spicelogs.update({"ub_conf": ub_conf_dict}) - - return spicelogs diff --git a/prototype/library/FileSystem/tavi_class_factory.py b/prototype/library/FileSystem/tavi_class_factory.py deleted file mode 100644 index 77f28d4e7..000000000 --- a/prototype/library/FileSystem/tavi_class_factory.py +++ /dev/null @@ -1,41 +0,0 @@ -"""Tavi data scan class.""" - -from dataclasses import dataclass -from typing import Optional - -@dataclass -class RawData: - """Declare dataclass for type hints.""" - pass - -@dataclass -class RawMetaData: - """Declare dataclass for type hints.""" - pass - -@dataclass -class Scan: - """ - Tavi scan data class. - - Represents a single scan within a Tavi project, containing both raw measurement - data and associated metadata. - - Attributes: - data (RawData): Numerical measurement arrays collected during the scan - (e.g., motor positions, detector counts, temperatures). - metadata (RawMetaData): Descriptive information about the scan - (e.g., experiment details, instrument settings, sample information). - column_names (tuple): Ordered names of data columns in `data`, typically - matching measurement channels or parameters. - error_message (tuple): Messages or warnings associated with the scan, - such as instrument errors or data quality issues. - others (tuple): Miscellaneous or auxiliary information related to the scan - that does not fit into `data` or `metadata`. - - """ - - data: dataclass - metadata: dataclass - ubconf: Optional[dataclass] - error_message: tuple diff --git a/prototype/library/combine_data.py b/prototype/library/combine_data.py deleted file mode 100644 index 66e42117a..000000000 --- a/prototype/library/combine_data.py +++ /dev/null @@ -1,90 +0,0 @@ -"""Combine data.""" - -from typing import Optional - -import numpy as np -from scipy.stats import binned_statistic - -from tavi.library.FileSystem.tavi_class_factory import Scan - - -class CombineManager: - """Combine data manager.""" - - def __init__(self, target: list[Scan], background: Optional[list[Scan]] = []) -> None: - """Init combine data.""" - self.target = target - self.background = background - - def combine_1d( - self, axis: tuple[str, str], step: float, range: Optional[tuple[float, float]] = None - ) -> tuple[ - np.ndarray, # statistics - np.ndarray, # bin_edges - np.ndarray, # binnumber - list[float], # bin_center - np.ndarray, # new_x - np.ndarray, # new_y - ]: - """ - Combine 1D data from multiple scans into a binned representation. - - This method aggregates the selected `x` and `y` fields across all scans - in `self.target`, sorts the combined arrays, estimates statistical - uncertainties, and computes binned statistics using - `scipy.stats.binned_statistic`. - - Args: - axis (tuple[str, str]): - A pair `(x_axis, y_axis)` specifying attribute names of each - scan’s data object to extract. - step (float): - Suggested bin width. If `range` is provided, this is used to compute - the number of bins. If not provided, a default bin count is used. - range (tuple[float, float], optional): - Lower and upper bounds for binning. Passed to `binned_statistic`. - - Returns: - tuple: - A tuple containing: - - - `statistics` (`np.ndarray`): Sum of `y` values in each bin. - - `bin_edges` (`np.ndarray`): Bin edge positions. - - `binnumber` (`np.ndarray`): Bin index assignment per input point. - - `bin_center` (`list[float]`): Midpoint of each bin. - - `new_x` (`np.ndarray`): Combined and sorted x-values. - - `new_y` (`np.ndarray`): Combined and sorted y-values. - - """ - x_axis, y_axis = axis - new_x, new_y = np.array([]), np.array([]) - for scan in self.target: - x = getattr(scan.data, x_axis) - y = getattr(scan.data, y_axis) - new_x = np.append(new_x, x) - new_y = np.append(new_y, y) - - # sort based on x - ind = np.argsort(new_x) - new_y = new_y[ind] - new_x = new_x[ind] - new_err = np.sqrt(new_y) - - # calculate number of bins as default intake by scipy.binned_statistic - if range: - number_of_bins = (max(range) - min(range)) / step - number_of_bins = 0 - statistics, bin_edges, binnumber = binned_statistic(new_x, new_y, statistic="sum", bins=10, range=range) - bin_center = [(bin_edges[i - 1] + bin_edges[i]) / 2 for i in range(1, len(bin_edges))] - return statistics, bin_edges, binnumber, bin_center, new_x, new_y - - # def _equal_rebin_1d(self, x, y, err): - # return np.histogram2d(x,y) - - def combine_2d() -> None: - """Combine 2d data.""" - pass - - def _equal_bins() -> None: - """Equal bins.""" - pass diff --git a/prototype/library/filter.py b/prototype/library/filter.py deleted file mode 100644 index 851a763ef..000000000 --- a/prototype/library/filter.py +++ /dev/null @@ -1,137 +0,0 @@ -"""Tavi filter.""" - -from ast import Set -from enum import Enum -from typing import Optional -from venv import logger - -from tavi.library.FileSystem.tavi_class_factory import Scan - - -class Operations(Enum): - """Define filter operations.""" - - CONTAINS = "contains" - NOTCONTAIN = "notcontain" - IS = "is" - ISNOT = "isnot" - EQUAL = "==" - NOTEQUAL = "!=" - LESS = "<" - LESSEQUAL = "<=" - GREATER = ">" - GREATEREUQAL = ">=" - - -class Logic(Enum): - """Define filter logic.""" - - AND = "and" - OR = "OR" - - -class Category(Enum): - """Define data category.""" - - DATA = "data" - METADATA = "metadata" - - -class Filter: - """ - Filter tavi data based on keyword, conditions, and_or and tol. - - Arg: - scans: the class that holds the loaded scan data, meta data, ubconf etc. Defined in TaviProject - conditions: a string of filter conditions. keyword + operation + value. - example: "title+contains+temp", "sample_temp + < + 100". If the conditions is: contains, notcontain, - then we look in scans.metadata. If the conditions is: <, >, <=, >=, ==, !=, then we look in scans.data. - """ - - def __init__( - self, - scan_list: dict[str, Scan], - conditions: Optional[list[Operations]] = None, - and_or: Optional[Logic] = None, - tol: float = 0.01, # this can be put into a TAVI config json file as filter equal tolerance - ) -> None: - """Init filter.""" - self.scan_list = scan_list - self.conditions = conditions - self.and_or = and_or - self.tol = tol - self.output = [] - - def filter_data(self) -> None: - """Decide where to look for data (data, meta data, ubconf) and perform and/or operation.""" - if self.conditions: - for condition in self.conditions: - keyword, action, value = condition - if action in [Operations.CONTAINS, Operations.NOTCONTAIN, Operations.IS, Operations.ISNOT]: - self.output.append(self._condition_factory(keyword, value, action, Category.METADATA)) - else: - self.output.append(self._condition_factory(keyword, value, action, Category.DATA)) - - match self.and_or: - case Logic.OR: - return sorted(set().union(*self.output)) - case Logic.AND: - return sorted(set.intersection(*map(set, self.output))) - case _: - logger.error("Logic operation not accepted!") - - def _condition_factory(self, keyword: str, value: float, condition: Operations, category: Category) -> Set: - """Abstract factory that returns the filtered results based on the keyword, value, condition and category.""" - tmp_output = set() - if category == Category.METADATA: - for filename, scan in self.scan_list.items(): - if hasattr(scan.metadata, keyword): - att = scan.metadata - elif hasattr(scan.ubconf, keyword): - att = scan.ubconf - else: - logger.log("No matching entry with", keyword) - # search meta data and ubconf - match condition: - case Operations.CONTAINS: - if value in getattr(att, keyword): - tmp_output.add(filename) - case Operations.NOTCONTAIN: - if value not in getattr(att, keyword): - tmp_output.add(filename) - case Operations.IS: - if value == getattr(att, keyword): - tmp_output.add(filename) - case Operations.ISNOT: - if value != getattr(att, keyword): - tmp_output.add(filename) - elif category == Category.DATA: - value = float(value) - for filename, scan in self.scan_list.items(): - if not hasattr(scan.data, keyword): - logger.log("No matching entry with", keyword) - else: - match condition: - case Operations.EQUAL: - if value + self.tol >= max(getattr(scan.data, keyword)) and value - self.tol <= min( - getattr(scan.data, keyword) - ): - tmp_output.add(filename) - case Operations.NOTEQUAL: - if value + self.tol < min(getattr(scan.data, keyword)) or value - self.tol > max( - getattr(scan.data, keyword) - ): - tmp_output.add(filename) - case Operations.GREATER: - if min(getattr(scan.data, keyword)) > value: - tmp_output.add(filename) - case Operations.GREATEREUQAL: - if min(getattr(scan.data, keyword)) >= value: - tmp_output.add(filename) - case Operations.LESS: - if max(getattr(scan.data, keyword)) < value: - tmp_output.add(filename) - case Operations.LESSEQUAL: - if min(getattr(scan.data, keyword)) <= value: - tmp_output.add(filename) - return tmp_output diff --git a/prototype/library/tavi_data.py b/prototype/library/tavi_data.py deleted file mode 100644 index b6c808d28..000000000 --- a/prototype/library/tavi_data.py +++ /dev/null @@ -1,86 +0,0 @@ -"""Tavi data.""" - -from dataclasses import field -from typing import Any - -import numpy as np - -from tavi.library.FileSystem.tavi_class_factory import Scan - - -class TaviData: - """ - Manage all data and workflows for a complete TAVI project. - - A container class for managing a complete TAVI project, including - raw TAS (triple-axis spectrometer) experimental data, processed data, - filtering operations, fitting, and plotting management. - - The `TaviProject` serves as the central data structure for organizing - experimental scans and coordinating workflows such as loading, filtering, - combining, fitting, and visualizing data. It acts as a high-level interface - to link raw data, metadata, and analysis pipelines in TAVI. - - Attributes: - scans (dict[str, Scan]): - A mapping from scan identifiers (e.g., filenames or scan numbers) - to their corresponding `Scan` objects, which hold raw data and metadata. - - CombineDataPtr (dict[str, np.ndarray]): - Stores merged or aggregated data from multiple scans for analysis. - - filtered_data (dict[str, np.ndarray]): - Stores scan data after user-applied filters (e.g., Q/E cuts, masks). - - view_selected_data (dict[str, Any]): - Holds user-selected data for visualization purposes. - - process_selected_data (dict[str, Any]): - Holds user-selected data for processing workflows. - - fit_manager (dict[str, Any]): - A container for fitting models, results, and related configurations. - - plot_manager (dict[str, Any]): - A container for managing plotting sessions, styles, and figures. - - Methods: - load_scans(data_folder, data_files, ub_dir=None, facility=None): - Load scans from disk using the `LoadManager`. Populates `self.scans`. - - load_tavi(): - (Placeholder) Load a serialized TAVI project file. - - save_tavi(): - (Placeholder) Save the current TAVI project to disk. - - filter_scans(): - (Placeholder) Apply filters to raw scan data and store results. - - combine_data(): - (Placeholder) Combine multiple scans into `combined_data`. - - fit_data(): - (Placeholder) Perform fitting routines on selected datasets. - - plot_data(): - (Placeholder) Generate plots of scan or processed data. - - """ - - def __init__( - self, - rawdataptr: dict[str, Scan] = field(default_factory=dict), - combinedataptr: dict[str, np.array] = field(default_factory=dict), - process_selected_data: list[str] = [], # mouse selection - show_selected_data: dict = {}, # display - fitptr: dict[str, Any] = field(default_factory=dict), - plotptr: dict[str, Any] = field(default_factory=dict), - ) -> None: - """Init tavi data attributes.""" - self.rawdataptr = rawdataptr - self.combinedataptr = combinedataptr - self.process_selected_data = process_selected_data - self.show_selected_data = show_selected_data - self.fitptr = fitptr - self.plotptr = plotptr diff --git a/prototype/library/tavi_project.py b/prototype/library/tavi_project.py deleted file mode 100644 index ef95f433d..000000000 --- a/prototype/library/tavi_project.py +++ /dev/null @@ -1,155 +0,0 @@ -"""Tavi Project.""" - -import os -from typing import Iterable, Optional - -from tavi.library.FileSystem.load_manager import LoadManager -from tavi.library.filter import Filter, Logic, Operations -from tavi.library.tavi_data import TaviData - - -class TaviProject: - """ - Central container for managing a full TAVI project workflow. - - The `TaviProject` class provides a high-level interface for loading, - filtering, processing, and analyzing triple-axis spectrometer (TAS) data. - It acts as the core object for managing raw scans, metadata, selected data, - and later processing steps such as combining, fitting, and plotting. - - Internally, `TaviProject` owns a `TaviData` object, which stores and - organizes all scan-related information (raw and processed). - - Typical usage involves: - 1. Loading raw scan files into the project with `load_scans`. - 2. Selecting subsets of scans or points with `select_scans`. - 3. Performing transformations such as combining or fitting. - 4. Visualizing or exporting results. - - Attributes: - tavi_data (TaviData): - The main data container that stores scan lists, processed data, - and user selections (for viewing or modeling). - - Notes: - - The `load_scans` method uses a `LoadManager` backend for parsing - facility-specific file formats (e.g., ORNL, ILL, ISIS). - - Scan filtering is handled by the `Filter` class with logical - conditions and operations defined in `tavi_model.filter`. - - Future methods (`load_tavi`, `save_tavi`, `combine_data`, - `fit_data`, `plot_data`) will extend project persistence, - advanced analysis, and visualization. - - """ - - def __init__(self) -> None: - """Init tavi data.""" - self.tavi_data = TaviData() - - # --------------------Load Manager------------------------------------- - def load_scans( - self, - data_folder: Optional[os.PathLike | str] = None, - data_files: Optional[os.PathLike | str | Iterable[os.PathLike | str]] = None, - ub_dir: Optional[os.PathLike] = None, - facility: Optional[str] = None, - ) -> None: - """ - Load raw TAS (triple-axis spectrometer) scan files into the project. - - This method uses the `LoadManager` to read one or more scan files - from the specified directory and populate the `scans` attribute with - `Scan` objects containing raw data, metadata, and UB matrix information. - - Attributes: - data_folder (os.PathLike | str, optional): - Path to the directory containing the scan files. - If not provided, defaults to the current working directory. - - data_files (os.PathLike | str | Iterable[os.PathLike | str], optional): - One or more scan file names to load from the given `data_folder`. - Can be a single filename, a `PathLike` object, or an iterable of file paths. - - ub_dir (os.PathLike, optional): - Path to the directory containing UB matrix configuration files. - Used to associate orientation matrices with the scans if available. - - facility (str, optional): - Identifier for the facility (e.g., "ORNL", "ILL", "ISIS") that - produced the data. Allows facility-specific loading behavior. - - Returns: - None - The method updates the `scans` attribute in place. - - """ - self.tavi_data.rawdataptr = LoadManager( - data_folder=data_folder, data_files=data_files, ub_dir=ub_dir, facility=facility - ).load() - - # TO DO - def load_tavi(self) -> None: - """Load tavi project.""" - pass - - # TO DO - def save_tavi(self) -> None: - """Save tavi project.""" - pass - - # TO DO - def select_scans( - self, - filter_name: Optional[str] = None, - conditions: Optional[list[Operations]] = None, - and_or: Optional[Logic] = None, - category: Optional[str] = None, - tol: float = 0.01, - ) -> None: - pass - # """Select scans.""" - # filtered_data = Filter(self.tavi_data.scan_list, conditions=conditions, and_or=and_or, tol=tol).filter_data() - # match category: - # case "view": - # self.tavi_data.show_selected_data[filter_name] = filtered_data - # case "model": - # self.tavi_data.process_selected_data = filtered_data - # case _: - # self.tavi_data.show_selected_data[filter_name] = filtered_data - - # TO DO - def combine_data(self) -> None: - """Combine data.""" - pass - - # TO DO - def fit_data(self) -> None: - """Fit data.""" - pass - - # TO DO - def plot_data(self) -> None: - """Plot data.""" - pass - - -# if __name__ == "__main__": -# current_directory = os.getcwd() -# filepath = os.path.join(current_directory, "test_data", "exp424", "Datafiles") -# # files = ["CG4C_exp0424_scan0041.dat", "CG4C_exp0424_scan0042.dat"] -# TaviProj = TaviProject() - -# TaviProj.load_scans(filepath) - -# filename = "CG4C_exp0424_scan0042.dat" -# TaviProj.select_scans( -# filter_name="scan_contains_42", conditions=([["scan", Operations.CONTAINS, "42"]]), and_or=Logic.OR -# ) - -# TaviProj.select_scans(filter_name="filter2", conditions=([["scan", Operations.CONTAINS, "4"]]), and_or=Logic.OR) -# print(TaviProj.tavi_data.show_selected_data) -# print(type(TaviProj.scans[filename].metadata.scan)) -# print(TaviProj.scans[filename].ubconf) -# print(TaviProj.scans[filename].data.Pt) -# print(TaviProj.scans[filename].error_message) -# print(TaviProj.scans[filename].metadata.time) diff --git a/prototype/mainwindow.py b/prototype/mainwindow.py deleted file mode 100644 index 8da045cd5..000000000 --- a/prototype/mainwindow.py +++ /dev/null @@ -1,80 +0,0 @@ -"""Main Qt window""" - -import threading - -from qtpy.QtWidgets import QHBoxLayout, QPushButton, QVBoxLayout, QWidget -from tavi.model_interface.tavi_project_interface import TaviProjectProxy -from tavi.model_interface.template_model_interface import TemplateModelProxy -from tavi.tavi_model.tavi_project_model import TaviProject -from tavi.tavi_model.template_model import TemplateModel -from tavi.tavi_presenter.load_presenter import LoadPresenter -from tavi.tavi_presenter.menu_presenter import MenuPresenter -from tavi.tavi_presenter.metadata_presenter import MetaDataPresenter -from tavi.tavi_presenter.template_presenter import TemplatePresenter -from tavi.tavi_view.load_view import LoadView -from tavi.tavi_view.menu_view import MainMenuBar -from tavi.tavi_view.metadata_view import MetaDataView -from tavi.tavi_view.template_view import TemplateView - -from tavi.help.help_model import help_function - - -class MainWindow(QWidget): - """Main widget""" - - def __init__(self, parent=None): - """Constructor""" - super().__init__(parent) - - print(f"main GUI running on {threading.current_thread().name}") - ### Create widgets here ### - # initialize view - - #!!!!!!!!!!!!!!!!!!!! - # self.load_view = load_view - # self.load_view.setParent(self) - #!!!!!!!!!!!!!!!!!!!! - - load_view = LoadView(self) - metadata_view = MetaDataView(self) - random_view = TemplateView(self) - - # initialize model/Proxy - tavi_dummy_model = TaviProject() - tavi_dummy_model_proxy = TaviProjectProxy(tavi_dummy_model) - - random_model = TemplateModel() - random_model_proxy = TemplateModelProxy(random_model) - - # pass proxy to presenter - self.load_presenter = LoadPresenter(load_view, tavi_dummy_model_proxy) - self.metadata_presenter = MetaDataPresenter(metadata_view, tavi_dummy_model_proxy) - self.random_presenter = TemplatePresenter(random_view, random_model_proxy) - - ### Set the layout - layout = QVBoxLayout() - menu_bar = MainMenuBar(self) - layout.setMenuBar(menu_bar) - self.menu_presenter = MenuPresenter(menu_bar, tavi_dummy_model) - - layout.addWidget(load_view) - layout.addWidget(metadata_view) - layout.addWidget(random_view) - ### Create bottom interface here ### - - # Help button - help_button = QPushButton("Help") - help_button.clicked.connect(self.handle_help) - - # Set bottom interface layout - hor_layout = QHBoxLayout() - hor_layout.addWidget(help_button) - layout.addLayout(hor_layout) - - self.setLayout(layout) - - # register child widgets to make testing easier - self.load_view = load_view - - def handle_help(self): - help_function(context="tavi_View") diff --git a/prototype/model_interface/tavi_project_interface.py b/prototype/model_interface/tavi_project_interface.py deleted file mode 100644 index 90d818fa2..000000000 --- a/prototype/model_interface/tavi_project_interface.py +++ /dev/null @@ -1,24 +0,0 @@ -import abc - -from tavi.multithreading.proxy import Proxy - - -class TaviProjectInterface(metaclass=abc.ABCMeta): - @abc.abstractmethod - def set_selected_scan(self): - pass - - @abc.abstractmethod - def get_selected_metadata(self): - pass - - @abc.abstractmethod - def load_manager(self): - pass - - @abc.abstractmethod - def load(self): - pass - - -TaviProjectProxy = Proxy(TaviProjectInterface) diff --git a/prototype/model_interface/template_model_interface.py b/prototype/model_interface/template_model_interface.py deleted file mode 100644 index 8cbc269ad..000000000 --- a/prototype/model_interface/template_model_interface.py +++ /dev/null @@ -1,12 +0,0 @@ -import abc - -from tavi.multithreading.proxy import Proxy - - -class TemplateModelInterface(metaclass=abc.ABCMeta): - @abc.abstractmethod - def get_next_file(self): - pass - - -TemplateModelProxy = Proxy(TemplateModelInterface) diff --git a/prototype/multithreading/proxy.py b/prototype/multithreading/proxy.py deleted file mode 100644 index 3446b8b9c..000000000 --- a/prototype/multithreading/proxy.py +++ /dev/null @@ -1,32 +0,0 @@ -from concurrent.futures import ThreadPoolExecutor -from typing import Type, TypeVar - -# include this in a config file -num_of_workers = 1 - -T = TypeVar("T") - - -def Proxy(_type: Type[T]): - def __init__(self, host: T): - self.host = host - - abstract_methods = getattr(_type, "__abstractmethods__", set()) - - namespace = {"__init__": __init__} - - def make_proxy_method(method_name: str): - def executeOnWorker(self, *args, **kwargs): - with ThreadPoolExecutor(max_workers=num_of_workers) as executor: - host_method = getattr(self.host, method_name) - fut = executor.submit(host_method, *args, **kwargs) - return fut.result() - - executeOnWorker.__name__ = method_name - return executeOnWorker - - for name in abstract_methods: - namespace[name] = make_proxy_method(name) - - ProxyClass = type(f"Proxy{_type.__name__}", (_type,), namespace) - return ProxyClass diff --git a/prototype/prototype_templates/__main__.py b/prototype/prototype_templates/__main__.py deleted file mode 100644 index dcdfc64ee..000000000 --- a/prototype/prototype_templates/__main__.py +++ /dev/null @@ -1,10 +0,0 @@ -# from tavi.model_interface.tavi_project_interface import TaviProjectInterface -# from tavi.prototype.main_presenter import MainPresetner() - -# def main_execute(*args): -# self.tavi_project_model_proxy = TaviProjectInterfaceProxy() - -# main_presnter = MainPresenter(dict_of_models) - -# if __name__ == "__main__": -# main_execute() diff --git a/prototype/prototype_templates/file_menu_presenter.py b/prototype/prototype_templates/file_menu_presenter.py deleted file mode 100644 index 95949761c..000000000 --- a/prototype/prototype_templates/file_menu_presenter.py +++ /dev/null @@ -1,8 +0,0 @@ -# class FileMenuPresenter: -# def __init__(self, exit_routine): -# self.exit_routine = exit_routine -# self._view = FileMenuView() -# self._view.setup_callback_exit(self.exit) - -# def exit(self): -# self.exit_routine() diff --git a/prototype/prototype_templates/file_menu_view.py b/prototype/prototype_templates/file_menu_view.py deleted file mode 100644 index da748640f..000000000 --- a/prototype/prototype_templates/file_menu_view.py +++ /dev/null @@ -1,21 +0,0 @@ -# from qtpy.QtWidgets import QAction - - -# class FileMenuView(QMenu): -# """ -# Initialize the main menu bar, create all file-related actions, and connect -# them to internal handlers. - -# Parameters -# ---------- -# parent : QWidget, optional -# Parent widget, typically the main window. -# """ - -# super().__init__(parent=None) - -# self.exit_action = QAction("Exit", self) -# self.addAction(self.exit_action) - -# def setup_callback_exit(self, callback) -> None: -# self.exit_action.triggered.connect(callback) diff --git a/prototype/prototype_templates/main_presenter.py b/prototype/prototype_templates/main_presenter.py deleted file mode 100644 index d51e2305e..000000000 --- a/prototype/prototype_templates/main_presenter.py +++ /dev/null @@ -1,13 +0,0 @@ -# import ... - -# class MainPresenter: -# def __init__(self, model_dict): - -# self.file_menu_presenter = FileMenuPresenter(self.exit, model) - -# self.view = MainWindowView(self.file_menu_presenter.view,.....,) # sub qtwidgets init? -# self.view.addMenu(self.file_menu_presenter.view) - -# def exit(self): -# # future implement of save dirty model -# pass diff --git a/prototype/prototype_templates/main_view.py b/prototype/prototype_templates/main_view.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/prototype/prototype_templates/menubar_view.py b/prototype/prototype_templates/menubar_view.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/prototype/prototype_templates/presenter_model_init.py b/prototype/prototype_templates/presenter_model_init.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/prototype/prototype_templates/view_init.py b/prototype/prototype_templates/view_init.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/prototype/tavi_model/tavi_project_model.py b/prototype/tavi_model/tavi_project_model.py deleted file mode 100644 index 5ab7b8db8..000000000 --- a/prototype/tavi_model/tavi_project_model.py +++ /dev/null @@ -1,137 +0,0 @@ -from __future__ import annotations - -import os -from concurrent.futures import ThreadPoolExecutor, as_completed - -from tavi.EventBroker.event_broker import EventBroker -from tavi.EventBroker.event_type import Event, meta_data, scan_uuid, selected_uuid -from tavi.model_interface.tavi_project_interface import TaviProjectInterface - - -class TaviProject(TaviProjectInterface): - """ - Concrete implementation of the `TaviProjectInterface` that manages the state - of a TAVI project, including loaded files, selected scans, and metadata. - This class functions as a **singleton**, ensuring a single shared project - state across the application. - - TaviProject participates in TAVI's event-driven architecture by publishing - events when scans are loaded, selected, or updated. Event types include: - - - `scan_uuid`: emitted after loading files from a directory - - `selected_uuid`: emitted when the user selects a scan - - `meta_data`: emitted when metadata for the selected scan is retrieved - - The class also performs threaded file loading using `ThreadPoolExecutor` to - avoid blocking the GUI. - - Attributes - ---------- - file_list : list[str] - All files loaded into the current TAVI project. - temp_file_list : list[str] - Temporary list of files produced during a load operation, typically sorted - and used for UI updates. - selected_scan : str or None - Filename of the scan currently selected by the user. - view_slected_file : Any - Placeholder for future view state tracking. - _event_broker : EventBroker - Shared event broker used for broadcasting updates. - _total_files : int - Total number of files to load during the last load operation. - _loaded_files : int - Count of how many files have been processed so far. - _instance : TaviProject - Singleton instance of this class. - _initiated : bool - Tracks whether `__init__` has already been executed for the singleton. - - """ - - _event_broker = EventBroker() - _total_files = 0 - _loaded_files = 0 - _instance = None - _initiated = False - - def __new__(cls, *args, **kwargs): - """ - Enforce singleton behavior for the TaviProject instance. - - Returns - ------- - TaviProject - The single shared instance of the project. - - """ - if cls._instance is None: - cls._instance = super().__new__(cls) - return cls._instance - - def __init__(self): - """ - Initialize the project state. - - This initializer only runs once due to the `_initiated` flag. Subsequent - instantiations return the same object without reinitializing fields. - - Sets up file lists, selection state, and metadata placeholders. - """ - if not self.__class__._initiated: - self.file_list = [] - self.temp_file_list = [] - self.view_slected_file = None - self.selected_scan = None - self.__class__._initiated = True - - def send(self, event: Event) -> None: - """Generic send functions to publish events to EventBroker()""" - self._event_broker.publish(event) - - def set_selected_scan(self, filename: str) -> None: - """Sets the selected filename in model and publish a "selected_uuid" event.""" - self.selected_scan = filename - self.send(selected_uuid(selected_uuid=self.selected_scan)) - self.get_selected_metadata() - - def get_selected_metadata(self) -> None: - """ - Prototypical business logic to extract the index of the selected file in TaviProject. - It then sends a "meata_data" event to trigger meta data view update. - """ - index = self.file_list.index(self.selected_scan) - self.send(meta_data(meta_data_dict={self.selected_scan: index})) - - def load_manager(self, filename: str) -> str: - """Dummy file to test python multithreading""" - return filename - - def load(self, folder: str) -> None: - """ - Prototypical load function that using multithreading to simply append file names in - TaviProject and send a "scan_uuid" event. This can be replaced by "load_manager" in - tavi_library later. - """ - self.temp_file_list = [] - completed_batch = [] - self._total_files = len(os.listdir(folder)) - entries = os.listdir(folder) - with ThreadPoolExecutor(max_workers=min(32, os.cpu_count())) as ex: - futures = [ex.submit(self.load_manager, name) for name in entries] - for fut in as_completed(futures): - result = fut.result() - completed_batch.append(result) - if len(completed_batch) >= 10: - self.file_list.extend(completed_batch) - self.temp_file_list.extend(completed_batch) - self._loaded_files += len(completed_batch) - completed_batch.clear() - - if completed_batch: - self.file_list.extend(completed_batch) - self.temp_file_list.extend(completed_batch) - self._loaded_files += len(completed_batch) - self.temp_file_list.sort() - event = scan_uuid(self.temp_file_list) - self.send(event) diff --git a/prototype/tavi_model/template_model.py b/prototype/tavi_model/template_model.py deleted file mode 100644 index 0733803fe..000000000 --- a/prototype/tavi_model/template_model.py +++ /dev/null @@ -1,79 +0,0 @@ -from __future__ import annotations - -from tavi.EventBroker.event_broker import EventBroker -from tavi.EventBroker.event_type import Event, template_data -from tavi.model_interface.template_model_interface import TemplateModelInterface -from tavi.tavi_model.tavi_project_model import TaviProject - - -class TemplateModel(TemplateModelInterface): - """ - a template implementation of a secondary model that listens to updates in TaviProject - model. When a file is selected, TaviProject model emits a "selected_uuid" event that - will trigger "get_next_file"(registered in template_presenter.py), which will then creates - a "template_data" event that triggers update of a UI component in "template_view.py". - - Attributes - ---------- - event_broker : EventBroker - Broker used to publish template-related events such as `template_data`. - tavi_project : TaviProject - Singleton project model used to access global project state, such as - the list of loaded files. - next_file : str - The computed next filename (set after calling `get_next_file`). - - """ - - def __init__(self): - """Initialize the template model and bind to the TAVI project singleton.""" - self.event_broker = EventBroker() - self.tavi_project = TaviProject() - - def send(self, event: Event): - """ - Publish an event through the model's internal event broker. - - Parameters - ---------- - event : Event - The event instance to publish (e.g., a `template_data` event). - - """ - self.event_broker.publish(event) - - def get_next_file(self, current_selected_file): - """ - A prototypical implementation of a fake business logic that parse a file - name and get next file name. Can be replaced with other functions. - - Parameters - ---------- - current_selected_file : Event - An event object containing the attribute `selected_uuid`, which - holds the filename of the currently selected scan. - - Event Emitted - ------------- - template_data - With field `template_data=`. - - """ - import threading - - print(f"Running get_next_file on {threading.current_thread().name}") - current_selected_file = current_selected_file.selected_uuid - if current_selected_file: - filename = current_selected_file.split("_") - new_name = [] - for name in filename: - if name.startswith("scan"): - file_number = name.strip("scan").strip(".dat") - file_number = int(file_number) - new_name.append("scan" + str(file_number + 1) + ".dat") - else: - new_name.append(name) - self.next_file = "_".join(new_name) - event = template_data(template_data=self.next_file) - print(self.tavi_project.file_list.index(current_selected_file)) - self.send(event) diff --git a/prototype/tavi_presenter/load_presenter.py b/prototype/tavi_presenter/load_presenter.py deleted file mode 100644 index fd38c224e..000000000 --- a/prototype/tavi_presenter/load_presenter.py +++ /dev/null @@ -1,64 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING - -from tavi.EventBroker.event_broker import EventBroker -from tavi.EventBroker.event_type import scan_uuid - -if TYPE_CHECKING: - from tavi.model_interface.tavi_project_interface import TaviProjectInterface - from tavi.tavi_view.load_view import LoadView - - -class LoadPresenter: - """ - Presenter responsible for coordinating interactions between the LoadView and - the TaviProjectInterface model during data-loading workflows in TAVI. - - The "scan_uuid" event type is pre-registered here in EventBroker()to refresh - the UI when scans are loaded. - - Parameters - ---------- - view : LoadView - The view component responsible for displaying load-related UI elements - (tree views, file lists, click handling, etc.). - model : TaviProjectInterface - The project-level model interface that manages scans, metadata, and - selected-scan state. - - Attributes - ---------- - _view : LoadView - Reference to the associated view for updating UI elements. - _model : TaviProjectInterface - Reference to the model interface for updating scan selection and project state. - event_broker : EventBroker - Event broker used for subscribing to application-wide events. - "scan_uuid" event type is pre-registered. - - """ - - def __init__(self, view: LoadView, model: TaviProjectInterface): - super().__init__() - """ - Initialize the presenter and register event handlers. - - This method: - - Stores references to the view and model. - - Subscribes to `scan_uuid` events from the EventBroker to update the tree view. - - Connects the view's "click on a scan" signal to the model-update handler. - """ - self._view = view - self._model = model - self.event_broker = EventBroker() - self.event_broker.register(scan_uuid, self.update_treeview) - - # # click on a scan - self._view.setup_callback_click_on_a_scan(self.handle_click_on_a_scan) - - def update_treeview(self, event: scan_uuid) -> None: - self._view.update_add_tree_data(event.scan_uuid_list) - - def handle_click_on_a_scan(self, selected_file: str) -> None: - self._model.set_selected_scan(selected_file) diff --git a/prototype/tavi_presenter/menu_presenter.py b/prototype/tavi_presenter/menu_presenter.py deleted file mode 100644 index caf08571f..000000000 --- a/prototype/tavi_presenter/menu_presenter.py +++ /dev/null @@ -1,50 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING - -if TYPE_CHECKING: - from tavi.model_interface.tavi_project_interface import TaviProjectInterface - from tavi.tavi_view.menu_view import MainMenuBar - - -class MenuPresenter: - """ - Presenter responsible for mediating interactions between the main menu bar - (`MainMenuBar`) and the project model (`TaviProjectInterface`). - - Parameters - ---------- - view : MainMenuBar - The menu bar view that contains user-triggered actions (e.g., load folder, - load files, new project, save, exit). - model : TaviProjectInterface - The underlying project model that handles loading, saving, and maintaining - TAVI project state. - - """ - - def __init__(self, view: MainMenuBar, model: TaviProjectInterface): - """Initialize the menu presenter and register view-to-presenter callbacks.""" - super().__init__() - self._view = view - self._model = model - self._view.setup_callback_load_folder(self.handle_load_folder) - - def handle_load_folder(self, data_dir_or_files): - """ - Handle folder-loading requests from the view. - - This method is triggered when the user selects a folder via the menu - bar. The view provides a list of selected paths (typically a single - folder), and the presenter forwards the first entry to the model's - loading routine. - - Parameters - ---------- - data_dir_or_files : list[str] - A list containing one or more filesystem paths. Only the first entry - is used, as Qt's `QFileDialog` returns a list even when selecting a - single folder. - - """ - self._model.load(folder=data_dir_or_files[0]) diff --git a/prototype/tavi_presenter/metadata_presenter.py b/prototype/tavi_presenter/metadata_presenter.py deleted file mode 100644 index 57582861a..000000000 --- a/prototype/tavi_presenter/metadata_presenter.py +++ /dev/null @@ -1,47 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING - -from tavi.EventBroker.event_broker import EventBroker -from tavi.EventBroker.event_type import meta_data - -if TYPE_CHECKING: - from tavi.model_interface.tavi_project_interface import TaviProjectInterface - from tavi.tavi_view.metadata_view import MetaDataView - - -class MetaDataPresenter: - """ - Presenter responsible for mediating metadata-related updates between the - model (`TaviProjectInterface`) and the metadata view (`MetaDataView`). - - This presenter subscribes to the application's event broker and listens for - `meta_data` events emitted by the model. - - Attributes - ---------- - _view : MetaDataView - The metadata view associated with this presenter. - _model : TaviProjectInterface - The model providing metadata updates. - event_broker : EventBroker - The event system used to subscribe to metadata update events. - selected_meta_data : dict - The last metadata dictionary received from the model. - - """ - - def __init__(self, view: MetaDataView, model: TaviProjectInterface): - """Initialize the metadata presenter and register for `meta_data` events.""" - super().__init__() - self._view = view - self._model = model - - self.event_broker = EventBroker() - self.event_broker.register(meta_data, self.update_meta_data) - - def update_meta_data(self, event) -> None: - self.selected_meta_data = event.meta_data_dict - self._view.update_metadata( - f"key is {self.selected_meta_data.keys()}, value is {self.selected_meta_data.values()}" - ) diff --git a/prototype/tavi_presenter/template_presenter.py b/prototype/tavi_presenter/template_presenter.py deleted file mode 100644 index 4236a7114..000000000 --- a/prototype/tavi_presenter/template_presenter.py +++ /dev/null @@ -1,72 +0,0 @@ -from __future__ import annotations - -from typing import TYPE_CHECKING - -from tavi.EventBroker.event_broker import EventBroker -from tavi.EventBroker.event_type import selected_uuid, template_data - -if TYPE_CHECKING: - from tavi.model_interface.template_model_interface import TemplateModelInterface - from tavi.tavi_view.template_view import TemplateView - - -class TemplatePresenter: - """ - Presenter responsible for coordinating template-related logic between the - template view (`TemplateView`) and the template model (`TemplateModelInterface`). - - The presenter subscribes to two key event types emitted through the - application's `EventBroker`: - - - `template_data`: emitted when the model produces updated template information. - This triggers the presenter's `update()` method, which forwards the new data - to the view. - - - `selected_uuid`: emitted when the user selects a scan or dataset. The presenter - responds by invoking `model.get_next_file`, which computes the next expected - file name or template value. That result is then delivered through a future - `template_data` event. - - Attributes - ---------- - _view : TemplateView - The view updated by this presenter. - _model : TemplateModelInterface - The model providing template data and processing user selections. - event_broker : EventBroker - Event system used to subscribe to application-level updates. - - """ - - def __init__(self, view: TemplateView, model: TemplateModelInterface) -> None: - """ - Initialize the template presenter and register event callbacks. - - This method attaches the presenter to two event streams: - - - `template_data`: routed to `self.update` - - `selected_uuid`: routed directly to `self._model.get_next_file` - """ - super().__init__() - self._view = view - self._model = model - self.event_broker = EventBroker() - self.event_broker.register(template_data, self.update) - self.event_broker.register(selected_uuid, self._model.get_next_file) - - def update(self, event: template_data) -> None: - """ - Update the template view with newly produced template data. - - This method is triggered automatically through the `template_data` event. - It extracts the template text and forwards it to the view. - - Parameters - ---------- - event : Any - Event object containing template information. Expected to provide - the attribute `event.template_data : str`, representing the - next expected filename or template string. - - """ - self._view.update_template(event.template_data) diff --git a/prototype/tavi_view/load_view.py b/prototype/tavi_view/load_view.py deleted file mode 100644 index d0c39eac8..000000000 --- a/prototype/tavi_view/load_view.py +++ /dev/null @@ -1,172 +0,0 @@ -from typing import List, Optional - -from qtpy.QtCore import QObject, Qt, Signal -from qtpy.QtGui import QColor, QFont, QStandardItem, QStandardItemModel -from qtpy.QtWidgets import ( - QTreeView, - QVBoxLayout, - QWidget, -) -from tavi.EventBroker.event_type import scan_uuid - - -class _UiBridge(QObject): - """ - Thread-safe bridge to deliver updates on the GUI thread. Qt forbitds modifying - UI elements from a different thread. The data needs to be passed as a signal. - - """ - - update_tree_signal = Signal(list) - - -class LoadView(QWidget): - """Main widget""" - - def __init__(self, parent: Optional["QObject"] = None) -> None: - """ - Constructor for the main widget - Args: - parent (QObject): Optional parent - - """ - super().__init__(parent) - self.click_on_a_scan_callback = None - - layout = QVBoxLayout() - self.setLayout(layout) - - self.tree_widget = TreeViewWidget(self) - layout.addWidget(self.tree_widget) - - self.tree_widget.clicked_file_signal.connect(self.pass_selected_file) - - # handle thread safe operations from secondary thread - self._bridge = _UiBridge() - self._bridge.update_tree_signal.connect( - self.tree_widget.add_tree_data, - type=Qt.QueuedConnection, # run safely on GUI thread - ) - - def setup_callback_click_on_a_scan(self, callback: None) -> None: - """Setup call back functions to handle when clicking on a scann.""" - self.click_on_a_scan_callback = callback - - def pass_selected_file(self, filename: str) -> None: - """Invoke the call back with positional input arg.""" - self.click_on_a_scan_callback(filename) - - def update_add_tree_data(self, event: scan_uuid) -> None: - """Invoke update_tree_signal to process data coming in from a different thread.""" - self._bridge.update_tree_signal.emit(event) - - -class TreeViewWidget(QWidget): - """ - A widget that displays a hierarchical tree view of files or scans and emits a - signal when the user selects an item. - - This widget is typically used to show experiment folders and their associated - scan files. Items are populated with `add_tree_data()`, and the widget emits - `clicked_file_signal` whenever a user selects a child item (i.e., a file). - - Signals - ------- - clicked_file_signal : Signal(str) - Emitted when a file (child item) is clicked. The signal carries the file - name or identifier associated with the selected tree item. - - Parameters - ---------- - parent : Optional[QObject], default=None - Parent widget for proper Qt ownership. - - """ - - clicked_file_signal = Signal(str) - - def __init__(self, parent: Optional["QObject"] = None) -> None: - """ - Initialize the tree view widget, configure UI components, and connect - selection signals. - - This method: - - Creates a vertical layout. - - Initializes a `QTreeView` with a hidden header. - - Creates a `QStandardItemModel` with an invisible root node. - - Connects the view's clicked index signal to `select_file()`. - """ - super().__init__(parent) - - layoutTreeView = QVBoxLayout() - self.setLayout(layoutTreeView) - self.treeView = QTreeView(self) - self.treeView.setHeaderHidden(True) - self.treeModel = QStandardItemModel() - self.rootNode = self.treeModel.invisibleRootItem() - - layoutTreeView.addWidget(self.treeView) - - self.treeView.clicked.connect(self.select_file) - - def add_tree_data(self, list_of_files: List[str]): - """Populate the tree view with a folder node and its associated files.""" - if "exp" in list_of_files[0]: - filename = list_of_files[0].split("_") - self.experiment_folder = StandardItem(filename[1], 16, set_bold=True) - else: - self.experiment_folder = StandardItem("Folder", 16, set_bold=True) - self.rootNode.appendRow(self.experiment_folder) - - for file in list_of_files: - self.experiment_folder.appendRow(StandardItem(file)) - self.treeView.setModel(self.treeModel) - - def select_file(self, val): - """ - Handle selection of a tree item and emit a signal if the item represents a - file rather than a folder. - - Only child items (files) emit `clicked_file_signal`; the folder node itself - does not produce a signal. - """ - if val.parent().isValid(): - self.clicked_file_signal.emit(val.data()) - - -class StandardItem(QStandardItem): - """ - Convenience item class for populating Qt tree and list models with styled text. - - This subclass of `QStandardItem` applies font size, bolding, color, and marks - the item as non-editable by default. It is used throughout the tree view for - folder and file entries. - - Parameters - ---------- - txt : str, default="" - Text to display in the item. - font_size : int, default=12 - Point size for the item's font. - set_bold : bool, default=False - Whether the item text should be bold. - color : QColor, default=QColor(0, 0, 0) - Text color to apply to the item. - - """ - - def __init__(self, txt="", font_size=12, set_bold=False, color=QColor(0, 0, 0)): - """ - Initialize a styled non-editable `QStandardItem`. - - This method constructs a font object, applies styling, and assigns the - formatted text to the underlying item. - """ - super().__init__() - fnt = QFont("Open Sans", font_size) - fnt.setBold(set_bold) - - self.setEditable(False) - self.setForeground(color) - self.setFont(fnt) - self.setText(txt) diff --git a/prototype/tavi_view/menu_view.py b/prototype/tavi_view/menu_view.py deleted file mode 100644 index c3abcfd02..000000000 --- a/prototype/tavi_view/menu_view.py +++ /dev/null @@ -1,195 +0,0 @@ -from qtpy.QtWidgets import QAction, QApplication, QFileDialog, QMenuBar - - -class MainMenuBar(QMenuBar): - """ - Main application menu bar for TAVI, providing project and file-loading actions. - - This menu bar defines the standard "File" menu for the TAVI GUI, including: - - New Project - - Load Project - - Load File(s) - - Load Folder - - Save Project - - Exit - - Each menu action triggers a handler method that emits callbacks - (registered via `setup_callback_*` methods) which are called in presenters. - """ - - def __init__(self, parent=None): - """ - Initialize the main menu bar, create all file-related actions, and connect - them to internal handlers. - - Parameters - ---------- - parent : QWidget, optional - Parent widget, typically the main window. - - """ - super().__init__(parent) - self.load_folder_callback = None - - # ---- File Menu ---- - file_menu = self.addMenu("File") - - self.new_project_action = QAction("New Project", self) - self.load_project_action = QAction("Load Project", self) - self.load_file_action = QAction("Load File(s)", self) - self.load_folder_action = QAction("Load Folder", self) - self.save_action = QAction("Save Project", self) - self.exit_action = QAction("Exit", self) - - file_menu.addAction(self.new_project_action) - file_menu.addAction(self.load_project_action) - file_menu.addAction(self.load_folder_action) - file_menu.addAction(self.load_file_action) - file_menu.addAction(self.save_action) - file_menu.addAction(self.exit_action) - - self.new_project_action.triggered.connect(self.handle_new_project) - self.new_project_action.triggered.connect(self.handle_load_project) - self.load_folder_action.triggered.connect(self.handle_load_folder) - self.load_file_action.triggered.connect(self.handle_load_files) - self.save_action.triggered.connect(self.handle_save) - self.exit_action.triggered.connect(self.handle_exit) - - # TODO Loading a new taviproject - def setup_callback_new_project(self, callback: None) -> None: - """ - Register a callback that is invoked when a new project should be created. - - Parameters - ---------- - callback : Callable - Function to be called to initialize a new TAVI project. - - """ - self.load_file_callback = callback - - def new_project(self) -> None: - """ - Create a new TAVI project. - Placeholder logic. - """ - print("TODO: creates a new taviproject") - - def handle_new_project(self) -> None: - """ - Handler for the 'New Project' menu action. - Placeholder logic - """ - print("TODO: delete everything in taviproject") - - # TODO Loading a new project - def setup_callback_load_project(self, callback: None) -> None: - """ - Register a callback invoked when a project should be loaded. - - Parameters - ---------- - callback : Callable - Function called when the 'Load Project' action is triggered. - - """ - self.load_file_callback = callback - - def load_project(self) -> None: - """ - Load a TAVI project. - Placeholder logic. - """ - print("TODO: creates a new taviproject") - - def handle_load_project(self) -> None: - """ - Handler for the 'Load Project' action. - Placeholder logic. - """ - print("TODO: delete everything in taviproject") - - # Loading a folder of data - def setup_callback_load_folder(self, callback) -> None: - """Building callback connections for the load data - set by the presenter""" - self.load_folder_callback = callback - - def load_folder(self, folder) -> None: - """Pass loaded file through callback connections""" - self.load_folder_callback(folder) - - def handle_load_folder(self) -> None: - """ - Opens a system window and allow users to select a folder directory. - It executes the "load_folder" function. - """ - dlg = QFileDialog(self, "Select a folder") - dlg.setFileMode(QFileDialog.Directory) - dlg.setOption(QFileDialog.Option.ShowDirsOnly, False) - - if dlg.exec_(): - folder = dlg.selectedFiles() # returns a list - self.load_folder(folder) - - # TODO Loading a new file - def setup_callback_load_file(self, callback: None) -> None: - """ - Register a callback invoked when files should be loaded. - - Parameters - ---------- - callback : Callable - Function that will receive a list of file paths selected by the user. - - """ - self.load_file_callback = callback - - def load_file(self, list_of_file) -> None: - """ - Load a list of files into the current TAVI project. - Placeholder logic. - """ - print("TODO: Loading a list of files") - - def handle_load_files(self) -> None: - """ - Handler for the 'Load File(s)' action. - Placeholder logic. - """ - print("TODO: get list of files and call self.load_file to load") - - # TODO Saving TAVI project - def setup_callback_save(self, callback: None) -> None: - """ - Register a callback that saves the current TAVI project. - - Parameters - ---------- - callback : Callable - Function invoked to serialize and store the project. - - """ - self.save_callback = callback - - def save(self) -> None: - """ - Save the current TAVI project. - Placeholder logic. - """ - print("TODO: save current taviproject") - - def handle_save(self) -> None: - """ - Handler for the 'Save Project' action. - Placeholder logic. - """ - print("TODO: get taviproject and write to local disk") - - # Exit - def handle_exit(self) -> None: - """Exit Tavi""" - window = self.window() # the top-level QMainWindow - if window: - window.close() - else: - QApplication.quit() # fallback diff --git a/prototype/tavi_view/metadata_view.py b/prototype/tavi_view/metadata_view.py deleted file mode 100644 index d4b112644..000000000 --- a/prototype/tavi_view/metadata_view.py +++ /dev/null @@ -1,123 +0,0 @@ -from typing import Optional - -from qtpy.QtCore import QObject, Qt, Signal -from qtpy.QtWidgets import ( - QHBoxLayout, - QLabel, - QLineEdit, - QVBoxLayout, - QWidget, -) - - -class _UiBridge(QObject): - """ - Thread-safe bridge to deliver updates on the GUI thread. Qt forbitds modifying - UI elements from a different thread. The data needs to be passed as a signal. - - """ - - set_metadata_signal = Signal(str) - - -class MetaDataView(QWidget): - """ - Prototypical widget responsible for displaying metadata associated - with loaded scans or files. - - Parameters - ---------- - parent : Optional[QObject], default=None - Parent widget used for Qt ownership and memory management. - - Attributes - ---------- - metadata_widget : MetaDataWidget - The inner widget responsible for displaying filename and related metadata. - _bridge : _UiBridge - Thread-safe bridge for routing metadata updates to the GUI. - display_metadata_callback : Callable or None - Placeholder for a presenter-provided callback (future use). - - """ - - def __init__(self, parent: Optional["QObject"] = None) -> None: - """ - Constructor for the main widget - Args: - parent (QObject): Optional parent - - """ - super().__init__(parent) - self.display_metadata_callback = None - - layout = QVBoxLayout() - self.setLayout(layout) - - self.metadata_widget = MetaDataWidget(self) - layout.addWidget(self.metadata_widget) - - self._bridge = _UiBridge() - self._bridge.set_metadata_signal.connect( - self.metadata_widget.set_values, - type=Qt.QueuedConnection, # run safely on GUI thread - ) - - def update_metadata(self, event: None) -> None: - """ - Request a metadata update by emitting the change through the `_UiBridge`. - - This method should be called by the presenter when the model produces - new metadata. - - Parameters - ---------- - event : str - The metadata value to display. Typically the filename or metadata - summary associated with the currently selected scan. - - """ - self._bridge.set_metadata_signal.emit(event) - - -class MetaDataWidget(QWidget): - """ - Widget responsible for displaying metadata fields (e.g., filename). - - The widget contains a label and a disabled QLineEdit. The presenter or - parent view updates its contents through `set_values()`, typically routed - via `_UiBridge` to ensure thread safety. - """ - - def __init__(self, parent: Optional["QObject"] = None) -> None: - """ - Constructor for the metadata widget - - Args: - parent (QObject): Optional parent - - """ - super().__init__(parent) - layoutTop = QHBoxLayout() - self.setLayout(layoutTop) - - self.filename_label = QLabel("File name:", self) - self.filename_edit = QLineEdit(self) - self.filename_edit.setStyleSheet("color: black;") - self.filename_edit.setEnabled(False) - self.filename_label.setBuddy(self.filename_edit) - - layoutTop.addWidget(self.filename_label) - layoutTop.addWidget(self.filename_edit) - - def set_values(self, values: str) -> None: - """ - Update the metadata display field. - - Parameters - ---------- - values : str - Text to display in the filename field (e.g., the selected scan name). - - """ - self.filename_edit.setText(values) diff --git a/prototype/tavi_view/template_view.py b/prototype/tavi_view/template_view.py deleted file mode 100644 index 6c06fe88f..000000000 --- a/prototype/tavi_view/template_view.py +++ /dev/null @@ -1,117 +0,0 @@ -from typing import Optional - -from qtpy.QtCore import QObject, Qt, Signal -from qtpy.QtWidgets import ( - QHBoxLayout, - QLabel, - QLineEdit, - QVBoxLayout, - QWidget, -) -from tavi.EventBroker.event_type import template_data - - -class _UiBridge(QObject): - """ - Thread-safe bridge to deliver updates on the GUI thread. Qt forbitds modifying - UI elements from a different thread. The data needs to be passed as a signal. - - """ - - set_template_signal = Signal(str) - - -class TemplateView(QWidget): - """ - A template of a widget that will react to a secondary model of the TaviProjectModel. - - This view contains a `TemplateWidget` (which provides the actual display UI) - and a `_UiBridge` to ensure updates from presenters or background operations - are applied safely on the GUI thread. - - Attributes - ---------- - template_widget : TemplateWidget - The inner display widget showing the template value. - _bridge : _UiBridge - Thread-safe event bridge used to route updates to the GUI. - - """ - - def __init__(self, parent: Optional["QObject"] = None) -> None: - """ - Initialize the template view, set up layouts, and connect the bridge - signal to the template widget’s update method. - """ - super().__init__(parent) - - layout = QVBoxLayout() - self.setLayout(layout) - - self.template_widget = TemplateWidget(self) - layout.addWidget(self.template_widget) - - self._bridge = _UiBridge() - self._bridge.set_template_signal.connect( - self.template_widget.set_values, - type=Qt.QueuedConnection, - ) - - def update_template(self, event: template_data) -> None: - """ - Request an update to the displayed template value. - - This method should be called by a presenter when new template information - becomes available. It emits the update through `_UiBridge`, ensuring the - update executes on the GUI thread. - - Parameters - ---------- - event : str - The new template text to display. - - """ - self._bridge.set_template_signal.emit(event) - - -class TemplateWidget(QWidget): - """ - Widget responsible for displaying a single template field (e.g., the - “next file name” that the system expects or will generate). - - The widget consists of a label and a read-only text field that displays the - current template value. - """ - - def __init__(self, parent: Optional["QObject"] = None) -> None: - """ - Constructor for the template widget - - Args: - parent (QObject): Optional parent - - """ - super().__init__(parent) - layoutTop = QHBoxLayout() - self.setLayout(layoutTop) - - self.filename_label = QLabel("Next file:", self) - self.filename_edit = QLineEdit(self) - self.filename_edit.setStyleSheet("color: black;") - self.filename_edit.setEnabled(False) - self.filename_label.setBuddy(self.filename_edit) - - layoutTop.addWidget(self.filename_label) - layoutTop.addWidget(self.filename_edit) - - def set_values(self, values: str) -> None: - """ - Update the displayed template value. - - Parameters - ---------- - values : str - The template text to display (typically a filename or prefix). - - """ - self.filename_edit.setText(values) diff --git a/pyproject.toml b/pyproject.toml index 8ed044689..bfd31efe5 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -157,6 +157,7 @@ lmfit = ">=1.3.4" jupyterlab = ">=4.4.10" ipympl = ">=0.9.8" mypy = ">=1.19.0" +ruff = ">=0.14.11,<0.15" [tool.pixi.pypi-dependencies] # PyPI dependencies for the local environment though pixi @@ -232,3 +233,5 @@ clean-all = { description = "Clean all artifacts", depends-on = [ ] } sync-version = { cmd = 'version=$(python -m versioningit); toml set tool.pixi.package.version "$version" --toml-path pyproject.toml', description = "Sync pyproject.toml version with Git version" } reset-version = { cmd = "toml set tool.pixi.package.version \"0.0.0\" --toml-path pyproject.toml", description = "Reset the package version to 0.0.0" } +# application tasks +tavi = { cmd = "python -m tavi", description = "Start the TAVI application" } diff --git a/src/tavi/__main__.py b/src/tavi/__main__.py index 03530fc1c..5c6b6dbe2 100644 --- a/src/tavi/__main__.py +++ b/src/tavi/__main__.py @@ -4,9 +4,9 @@ from qtpy.QtWidgets import QApplication -from tavi.backend.model_interface.TaviProjectInterface import TaviProjectInterface +from tavi.backend.model.interface.TaviProjectInterface import TaviProjectInterface from tavi.configuration import Configuration -from tavi.frontend.presenters.main_presenter import MainPresenter +from tavi.frontend.presenter.main_presenter import MainPresenter def execute() -> None: diff --git a/src/tavi/_version.py b/src/tavi/_version.py deleted file mode 100644 index db0825728..000000000 --- a/src/tavi/_version.py +++ /dev/null @@ -1 +0,0 @@ -__version__ = "0.4.0.dev5" diff --git a/src/tavi/backend/model/__init__.py b/src/tavi/backend/model/__init__.py new file mode 100644 index 000000000..1fb7937ed --- /dev/null +++ b/src/tavi/backend/model/__init__.py @@ -0,0 +1 @@ +"""Model Package.""" diff --git a/src/tavi/help/help_model.py b/src/tavi/backend/model/help_model.py similarity index 100% rename from src/tavi/help/help_model.py rename to src/tavi/backend/model/help_model.py diff --git a/src/tavi/backend/model_interface/TaviProjectInterface.py b/src/tavi/backend/model/interface/TaviProjectInterface.py similarity index 72% rename from src/tavi/backend/model_interface/TaviProjectInterface.py rename to src/tavi/backend/model/interface/TaviProjectInterface.py index ea1fdfd12..83f383697 100644 --- a/src/tavi/backend/model_interface/TaviProjectInterface.py +++ b/src/tavi/backend/model/interface/TaviProjectInterface.py @@ -6,4 +6,4 @@ class TaviProjectInterface: def print(self) -> None: """Print.""" - print("TODO: Implement model, model_interface, multihreading, model_proxy") + print("TODO: Implement model, model.interface, multihreading, model_proxy") diff --git a/src/tavi/backend/model/interface/model_interface.py b/src/tavi/backend/model/interface/model_interface.py new file mode 100644 index 000000000..03ef10a7a --- /dev/null +++ b/src/tavi/backend/model/interface/model_interface.py @@ -0,0 +1,7 @@ +"""Model Interface.""" + + +class Model: + """Base Class for all Models.""" + + pass diff --git a/src/tavi/frontend/presenter/__init__.py b/src/tavi/frontend/presenter/__init__.py new file mode 100644 index 000000000..ca4b540a1 --- /dev/null +++ b/src/tavi/frontend/presenter/__init__.py @@ -0,0 +1 @@ +"""Presenter Package.""" diff --git a/src/tavi/frontend/presenters/file_menu_presenter.py b/src/tavi/frontend/presenter/file_menu_presenter.py similarity index 93% rename from src/tavi/frontend/presenters/file_menu_presenter.py rename to src/tavi/frontend/presenter/file_menu_presenter.py index 23d972fbd..a4f0c5e89 100644 --- a/src/tavi/frontend/presenters/file_menu_presenter.py +++ b/src/tavi/frontend/presenter/file_menu_presenter.py @@ -4,10 +4,10 @@ from typing import TYPE_CHECKING, Any -from tavi.frontend.views.file_menu_view import FileMenu +from tavi.frontend.view.file_menu_view import FileMenu if TYPE_CHECKING: - from tavi.backend.model_interface.TaviProjectInterface import TaviProjectInterface + from tavi.backend.model.interface.TaviProjectInterface import TaviProjectInterface class FileMenuPresenter: diff --git a/src/tavi/frontend/presenters/main_presenter.py b/src/tavi/frontend/presenter/main_presenter.py similarity index 83% rename from src/tavi/frontend/presenters/main_presenter.py rename to src/tavi/frontend/presenter/main_presenter.py index 4f2e3d53e..c28d6bcdf 100644 --- a/src/tavi/frontend/presenters/main_presenter.py +++ b/src/tavi/frontend/presenter/main_presenter.py @@ -1,8 +1,8 @@ """Main presenter for tavi.""" -from tavi.frontend.presenters.file_menu_presenter import FileMenuPresenter -from tavi.frontend.views.main_view import TaviView -from tavi.frontend.views.menubar_view import MainMenuBar +from tavi.frontend.presenter.file_menu_presenter import FileMenuPresenter +from tavi.frontend.view.main_view import TaviView +from tavi.frontend.view.menubar_view import MainMenuBar class MainPresenter: diff --git a/src/tavi/frontend/view/__init__.py b/src/tavi/frontend/view/__init__.py new file mode 100644 index 000000000..5102c9452 --- /dev/null +++ b/src/tavi/frontend/view/__init__.py @@ -0,0 +1 @@ +"""Frontend Package.""" diff --git a/src/tavi/frontend/views/file_menu_view.py b/src/tavi/frontend/view/file_menu_view.py similarity index 100% rename from src/tavi/frontend/views/file_menu_view.py rename to src/tavi/frontend/view/file_menu_view.py diff --git a/src/tavi/frontend/views/main_view.py b/src/tavi/frontend/view/main_view.py similarity index 98% rename from src/tavi/frontend/views/main_view.py rename to src/tavi/frontend/view/main_view.py index 0d5f99d30..5f61b5d3a 100644 --- a/src/tavi/frontend/views/main_view.py +++ b/src/tavi/frontend/view/main_view.py @@ -8,7 +8,7 @@ from qtpy.QtWidgets import QHBoxLayout, QMainWindow, QMenuBar, QMessageBox, QPushButton, QVBoxLayout, QWidget from tavi import __version__ -from tavi.help.help_model import help_function +from tavi.backend.model.help_model import help_function logger = logging.getLogger("TAVI") diff --git a/src/tavi/frontend/views/menubar_view.py b/src/tavi/frontend/view/menubar_view.py similarity index 100% rename from src/tavi/frontend/views/menubar_view.py rename to src/tavi/frontend/view/menubar_view.py diff --git a/src/tavi/library/__init__.py b/src/tavi/library/__init__.py new file mode 100644 index 000000000..be11f22a6 --- /dev/null +++ b/src/tavi/library/__init__.py @@ -0,0 +1 @@ +"""Library Module.""" diff --git a/src/tavi/library/data/__init__.py b/src/tavi/library/data/__init__.py new file mode 100644 index 000000000..612d9b8d9 --- /dev/null +++ b/src/tavi/library/data/__init__.py @@ -0,0 +1 @@ +"""Data Module.""" diff --git a/src/tavi/library/data/model_response.py b/src/tavi/library/data/model_response.py new file mode 100644 index 000000000..57f8d1f03 --- /dev/null +++ b/src/tavi/library/data/model_response.py @@ -0,0 +1,27 @@ +"""Model Response and its codes.""" + +from enum import IntEnum +from typing import Optional + +from pydantic import BaseModel + + +class ResponseCode(IntEnum): + """ + `ResponseCode` defines a set of standardized response codes. + + They represent various outcomes of a request. ranging from + successful operations (OK) to various levels of errors, + including recoverable states and general errors. + """ + + OK = 200 + ERROR = 500 + + +class ModelResponse(BaseModel): + """The response of a model, including what level of success it had.""" + + code: ResponseCode + # Optional warning message for the user + message: Optional[str] = None diff --git a/src/tavi/meta/__init__.py b/src/tavi/meta/__init__.py new file mode 100644 index 000000000..da879ef8a --- /dev/null +++ b/src/tavi/meta/__init__.py @@ -0,0 +1 @@ +"""Meta package for the meta code that enables the rest of the package.""" diff --git a/src/tavi/meta/decorators/__init__.py b/src/tavi/meta/decorators/__init__.py new file mode 100644 index 000000000..d4e33baad --- /dev/null +++ b/src/tavi/meta/decorators/__init__.py @@ -0,0 +1 @@ +"""Custom Decorator package for internal use.""" diff --git a/src/tavi/meta/decorators/singleton.py b/src/tavi/meta/decorators/singleton.py new file mode 100644 index 000000000..aa82b2dae --- /dev/null +++ b/src/tavi/meta/decorators/singleton.py @@ -0,0 +1,77 @@ +"""Singleton Module.""" + +from functools import wraps +from typing import Any, List + +_Singleton_instances: List[type] = [] + + +def Singleton(orig_cls) -> Any: # noqa: ANN001 + """Make an annotated class instantiate as a Singleton.""" + orig_new = orig_cls.__new__ + orig_init = orig_cls.__init__ + instance = None + initialized = False + + @wraps(orig_cls.__init__) + def __init__(self, *args, **kwargs) -> None: # noqa: ANN001, ANN002, ANN003 + nonlocal initialized + if initialized: + return + initialized = True + orig_init(self, *args, **kwargs) + + @wraps(orig_cls.__new__) + def __new__(cls, *args, **kwargs) -> Any: # noqa: ARG001, ANN001, ANN002, ANN003 + nonlocal instance + if instance is None: + # this needs to work with object.__new__, which only has only the `cls` arg + instance = orig_new(cls) # , *args, **kwargs) + return instance + + def _reset_Singleton(*, fully_unwrap: bool = False) -> None: + # Reset the Singleton: + # + # * The `@Singleton` decorator is applied at time of import. + # * This method does not _reinitialize_ any existing class instances; + # it just ensures that the next time the `__init__` is called it will + # initialize a new instance. + # * If `fully_unwrap` is set, it is equivalent to removing the `@Singleton` decorator from the class. + # + # This method is provided for use by `pytest` fixtures, + # as an alternative to mocking out the `Singleton` entirely. + # + nonlocal instance + nonlocal initialized + instance = None + initialized = False + + if fully_unwrap: + # this should be equivalent to mocking out the decorator + orig_cls.__new__ = orig_cls.__new__.__wrapped__ + orig_cls.__init__ = orig_cls.__init__.__wrapped__ + + orig_cls.__new__ = __new__ + orig_cls.__init__ = __init__ + + orig_cls._reset_Singleton = _reset_Singleton + global _Singleton_instances + _Singleton_instances.append(orig_cls) + + return orig_cls + + +def reset_Singletons(*, fully_unwrap: bool = False) -> None: + """Reset all singleton objects.""" + # Implementation notes: + # + # * The `@Singleton` decorator is applied at time of import. + # * This module-scope method does not _reinitialize_ any existing class instances; + # it just ensures that the next time the `__init__`[s] are called they will + # initialize new instances. + # * If `fully_unwrap` is set, it is equivalent to removing the `@Singleton` decorator from all of the classes; + # and, if that approach is taken, it's only necessary to apply this method at `scope="session"`. + # + global _Singleton_instances + for cls in _Singleton_instances: + cls._reset_Singleton(fully_unwrap=fully_unwrap) diff --git a/src/tavi/meta/multithreading/__init__.py b/src/tavi/meta/multithreading/__init__.py new file mode 100644 index 000000000..56ec44cdd --- /dev/null +++ b/src/tavi/meta/multithreading/__init__.py @@ -0,0 +1 @@ +"""Multithreading module.""" diff --git a/src/tavi/meta/multithreading/proxy.py b/src/tavi/meta/multithreading/proxy.py new file mode 100644 index 000000000..c1be57080 --- /dev/null +++ b/src/tavi/meta/multithreading/proxy.py @@ -0,0 +1,43 @@ +"""Proxy.""" + +from typing import Any, Callable, Type, TypeVar + +from tavi.meta.multithreading.worker_pool import WorkerPool + +# include this in a config file +num_of_workers = 1 + +T = TypeVar("T") + + +def Proxy(_type: Type[T]) -> type: + """Generate a wrapper class that runs method calls to host on a thread.""" + + def __init__(self: Any, host: T) -> None: + self.host = host + self.worker_pool = WorkerPool() + + abstract_methods = getattr(_type, "__abstractmethods__", set()) + + namespace = {"__init__": __init__} + + def make_proxy_method(method_name: str) -> Callable: + def executeOnWorker(self: T, *args: Any, **kwargs: Any) -> None: + host_method = getattr(self.host, method_name) + worker = self.worker_pool.create_worker(host_method, *args, **kwargs) + self.worker_pool.submit_worker(worker) + # TODO: move to debug logger + print("sent to worker!") + # Models do not return values. + # Returning values is synchronous behavior that will freeze the main thread. + # They may submit updates via events. + # This also helps ensure *all* consumers are synchronized. + + executeOnWorker.__name__ = method_name + return executeOnWorker + + for name in abstract_methods: + namespace[name] = make_proxy_method(name) + + ProxyClass = type(f"Proxy{_type.__name__}", (_type,), namespace) + return ProxyClass diff --git a/src/tavi/meta/multithreading/signal.py b/src/tavi/meta/multithreading/signal.py new file mode 100644 index 000000000..bba0a8486 --- /dev/null +++ b/src/tavi/meta/multithreading/signal.py @@ -0,0 +1,85 @@ +"""Signal.""" + +import asyncio +import inspect +import logging +import threading +import weakref +from typing import Any, Callable + + +class Signal: + """PyQt-like implementation of cross-thread callback communication.""" + + def __init__(self, loop: asyncio.AbstractEventLoop) -> None: + """Initialize signal with relevant event loop.""" + self._loop = loop + self._loop_thread_id: int | None = None + self._slots: list[weakref.ReferenceType] = [] + + def bind_loop_thread(self) -> None: + """Must be called from inside the running event loop thread.""" + self._loop_thread_id = threading.get_ident() + + def connect(self, slot: Callable) -> None: + """Register a consumer to be emitted to later.""" + if inspect.ismethod(slot): + self._slots.append(weakref.WeakMethod(slot)) + else: + self._slots.append(weakref.ref(slot)) + + def emit(self, *args: Any, **kwargs: Any) -> None: + """Send data to Signal consumers.""" + if self._loop_thread_id is None: + raise RuntimeError("Signal.bind_loop_thread() was never called.") + + is_loop_thread = threading.get_ident() == self._loop_thread_id + + for ref in list(self._slots): + slot = ref() + if slot is None: + self._slots.remove(ref) + continue + + if inspect.iscoroutinefunction(slot): + # ALWAYS schedule coroutine slots + self._schedule_coroutine(slot, *args, **kwargs) + else: + if is_loop_thread: + self._invoke_direct(slot, *args, **kwargs) + else: + self._invoke_queued(slot, *args, **kwargs) + + # --- internals --- + + def _invoke_direct(self, slot: Callable, *args: Any, **kwargs: Any) -> None: + try: + slot(*args, **kwargs) + except Exception: + logging.exception("Signal slot failed (direct)") + + def _invoke_queued(self, slot: Callable, *args: Any, **kwargs: Any) -> None: + self._loop.call_soon_threadsafe( + self._safe_call, + slot, + *args, + **kwargs, + ) + + def _schedule_coroutine(self, slot: Callable, *args: Any, **kwargs: Any) -> None: + coro = slot(*args, **kwargs) + + def _create_task() -> None: + try: + asyncio.create_task(coro) + except Exception: + logging.exception("Signal coroutine slot failed") + + self._loop.call_soon_threadsafe(_create_task) + + @staticmethod + def _safe_call(slot: Callable, *args: Any, **kwargs: Any) -> None: + try: + slot(*args, **kwargs) + except Exception: + logging.exception("Signal slot failed (queued)") diff --git a/src/tavi/meta/multithreading/worker_pool.py b/src/tavi/meta/multithreading/worker_pool.py new file mode 100644 index 000000000..1b95fa0c8 --- /dev/null +++ b/src/tavi/meta/multithreading/worker_pool.py @@ -0,0 +1,88 @@ +"""Worker and Worker Pool.""" + +import asyncio +from threading import Thread +from typing import Any, Callable, Dict, List + +from tavi.library.data.model_response import ModelResponse, ResponseCode +from tavi.meta.decorators.singleton import Singleton +from tavi.meta.multithreading.signal import Signal + +# logger = taviLogger.getLogger(__name__) + + +class Worker: + """Wrapper for threaded tasks that emits signals and handles errors.""" + + target = None + args = None + + def __init__(self, loop: asyncio.AbstractEventLoop, target: Callable, *args: Any, **kwargs: Any) -> None: + """Initialize worker and setup expected async signals.""" + super().__init__() + self.target = target + self.args = args + self.kwargs = kwargs + self.finished: Signal = Signal(loop) # None + + def bindSignals(self) -> None: + """Bind the signals for use.""" + self.finished.bind_loop_thread() + + def run(self) -> None: + """Long-running task.""" + results = None + self.bindSignals() + try: + # Expects the return to be wrapped in a ModelResponse + results: ModelResponse = self.target(*self.args, **self.kwargs) + except Exception as e: # noqa: BLE001 + # logger.error(e) + # if logger.isEnabledFor(logging.DEBUG): + # # print stacktrace + # import traceback + + # traceback.print_exc() + + results = ModelResponse(code=ResponseCode.ERROR, message=str(e)) + self.finished.emit() + if not isinstance(results, ModelResponse): + raise ValueError("Worker target must return a ModelResponse object.") + + +@Singleton +class WorkerPool: + """Creates and manages threads to run Workers on.""" + + max_threads = 8 + threads: Dict[Worker, Thread] = {} + worker_queue: List[Worker] = [] + + def __init__(self) -> None: + """Set up event loop so that Signals may work correctly.""" + self.loop = asyncio.new_event_loop() + + def create_worker(self, target: Callable, *args: Any, **kwargs: Any) -> Worker: + """Create a worker.""" + return Worker(self.loop, target, *args, **kwargs) + + def _dequeue_worker(self, worker: Worker) -> None: + """Dequeues worker and starts the next in queue if it exists.""" + self.threads.pop(worker) + if len(self.worker_queue) > 0: + self.submit_worker(self.worker_queue.pop()) + + def submit_worker(self, worker: Worker) -> None: + """Queues or submits worker to thread.""" + if len(self.threads) >= self.max_threads: + # add to queue + self.worker_queue.append(worker) + else: + # spawn thread and delegate + thread = Thread(target=worker.run) + self.threads[worker] = thread + + worker.finished.connect(lambda: self._dequeue_worker(worker)) + + # Start the thread + thread.start() diff --git a/tests/unit/meta/multithreading/test_proxy.py b/tests/unit/meta/multithreading/test_proxy.py new file mode 100644 index 000000000..7fd26fedd --- /dev/null +++ b/tests/unit/meta/multithreading/test_proxy.py @@ -0,0 +1,57 @@ +import abc +from unittest import mock, TestCase + +import pytest + +from tavi.meta.multithreading.proxy import Proxy + + +class SampleAbstractClass(metaclass=abc.ABCMeta): + @abc.abstractmethod + def some_method(self): + pass + + +class SampleAbstractClassImpl(SampleAbstractClass): + test_var = lambda: True + + def some_method(self): + self.test_var() + + def some_non_abstract_method(self): + pass + + +SampleAbstractClassProxy = Proxy(SampleAbstractClass) + + +class TestFileOperations(TestCase): + def setUp(self): + self.inst = SampleAbstractClassProxy(SampleAbstractClassImpl()) + + def tearDown(self): + pass + + def test_init(self): + assert isinstance(self.inst, SampleAbstractClass) + assert not isinstance(self.inst, SampleAbstractClassImpl) + + assert isinstance(self.inst.host, SampleAbstractClass) + assert isinstance(self.inst.host, SampleAbstractClassImpl) + + def test_method_exec(self): + self.inst.host.test_var = mock.Mock() + with mock.patch.object(self.inst.host, "test_var", mock.Mock()) as test_var_mock: + self.inst.some_method() + assert test_var_mock.called + + def test_method_worker_delegation(self): + with mock.patch.object(self.inst, "worker_pool", mock.Mock()) as mock_worker_pool: + self.inst.some_method() + assert mock_worker_pool.create_worker.called + assert mock_worker_pool.submit_worker.called + + def test_non_interface_method(self): + with pytest.raises(AttributeError, match="object has no attribute"): + self.inst.some_non_abstract_method() + self.inst.host.some_non_abstract_method() diff --git a/tests/unit/meta/multithreading/test_signal.py b/tests/unit/meta/multithreading/test_signal.py new file mode 100644 index 000000000..247106138 --- /dev/null +++ b/tests/unit/meta/multithreading/test_signal.py @@ -0,0 +1,197 @@ +import asyncio +import threading +import time +import unittest + +from tavi.meta.multithreading.signal import Signal + + +def run_loop_once(loop): + loop.call_soon(loop.stop) + loop.run_forever() + + +def run_loop(loop, duration=0.05): + loop.call_later(duration, loop.stop) + loop.run_forever() + + +class TestSignal(unittest.TestCase): + def setUp(self): + self.loop = asyncio.new_event_loop() + asyncio.set_event_loop(self.loop) + + def tearDown(self): + self.loop.close() + asyncio.set_event_loop(None) + + def test_direct_emit_executes_immediately(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = [] + + def slot(value): + called.append((value, threading.get_ident())) + + sig.connect(slot) + sig.emit(123) + + self.assertEqual(called, [(123, threading.get_ident())]) + + def test_queued_emit_from_worker_thread(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = [] + + def slot(value): + called.append((value, threading.get_ident())) + + sig.connect(slot) + + def worker(): + sig.emit(456) + + t = threading.Thread(target=worker) + t.start() + t.join() + + self.assertEqual(called, []) + + run_loop(self.loop) + + self.assertEqual(len(called), 1) + value, thread_id = called[0] + self.assertEqual(value, 456) + self.assertEqual(thread_id, threading.get_ident()) + + def test_async_slot_direct_requires_running_loop(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = asyncio.Event() + + async def slot(value): + self.assertEqual(value, 1) + called.set() + + sig.connect(slot) + + # Schedule emit while loop is running + self.loop.call_soon(sig.emit, 1) + run_loop(self.loop) + + self.loop.run_until_complete(asyncio.wait_for(called.wait(), timeout=0.5)) + + def test_async_slot_from_worker_thread(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = asyncio.Event() + + async def slot(value): + called.set() + + sig.connect(slot) + + def worker(): + sig.emit(2) + + t = threading.Thread(target=worker) + t.start() + t.join() + + run_loop(self.loop) + + self.loop.run_until_complete(asyncio.wait_for(called.wait(), timeout=0.5)) + + def test_weakref_cleanup(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = [] + + def make_slot(): + def slot(): + called.append(1) + + return slot + + slot = make_slot() + sig.connect(slot) + + del slot + + sig.emit() + run_loop(self.loop) + + self.assertEqual(called, []) + self.assertEqual(sig._slots, []) + + def test_slot_order_preserved(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = [] + + def slot1(): + called.append(1) + + def slot2(): + called.append(2) + + sig.connect(slot1) + sig.connect(slot2) + + sig.emit() + + self.assertEqual(called, [1, 2]) + + def test_slot_exception_does_not_break_signal(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + called = [] + + def bad_slot(): + raise RuntimeError("boom") + + def good_slot(): + called.append("ok") + + sig.connect(bad_slot) + sig.connect(good_slot) + + sig.emit() + + self.assertEqual(called, ["ok"]) + + def test_queued_slot_executes_on_loop_thread(self): + sig = Signal(self.loop) + sig.bind_loop_thread() + + executed_thread_ids = [] + + def slot(): + executed_thread_ids.append(threading.get_ident()) + + sig.connect(slot) + + loop_thread_id = threading.get_ident() + + def worker(): + # Emit from a non-loop thread + sig.emit() + + t = threading.Thread(target=worker) + t.start() + t.join() + + # Slot should not run until the loop processes events + self.assertEqual(executed_thread_ids, []) + + run_loop(self.loop) + + self.assertEqual(len(executed_thread_ids), 1) + self.assertEqual(executed_thread_ids[0], loop_thread_id) diff --git a/tests/unit/meta/multithreading/test_worker_pool.py b/tests/unit/meta/multithreading/test_worker_pool.py new file mode 100644 index 000000000..bf23e730b --- /dev/null +++ b/tests/unit/meta/multithreading/test_worker_pool.py @@ -0,0 +1,188 @@ +import time +import threading +import unittest + + +# ------------------------- +# Minimal Signal test double +# ------------------------- + + +class TestSignal: + """ + Minimal replacement for Signal that synchronously + executes connected callbacks. + """ + + def __init__(self, loop=None): + self._callbacks = [] + self.emitted = False + self.loopBound = False + self.args = None + + def bind_loop_thread(self): + self.loopBound = True + + def connect(self, callback): + self._callbacks.append(callback) + + def emit(self, *args): + self.emitted = True + self.args = args + for cb in self._callbacks: + cb() + + +# ------------------------- +# TestCase +# ------------------------- + + +class TestWorkerAndWorkerPool(unittest.TestCase): + @classmethod + def setUpClass(cls): + """ + Patch Signal once for the entire test class, + then import the module under test. + """ + import importlib + import tavi.meta.multithreading.signal + + cls._original_signal = tavi.meta.multithreading.signal.Signal + tavi.meta.multithreading.signal.Signal = TestSignal + + cls.worker_module = importlib.import_module("tavi.meta.multithreading.worker_pool") # adjust if needed + importlib.reload(cls.worker_module) + + @classmethod + def tearDownClass(cls): + """ + Restore original Signal implementation. + """ + import tavi.meta.multithreading.signal + + tavi.meta.multithreading.signal.Signal = cls._original_signal + + def setUp(self): + """ + Ensure WorkerPool is reset between tests. + """ + WorkerPool = self.worker_module.WorkerPool + pool = WorkerPool() + pool.threads.clear() + pool.worker_queue.clear() + + # ------------------------- + # Worker tests + # ------------------------- + + def test_worker_success_path(self): + WorkerPool = self.worker_module.WorkerPool + ResponseCode = self.worker_module.ResponseCode + ModelResponse = self.worker_module.ModelResponse + + def target(a, b): + return ModelResponse(code=ResponseCode.OK, data = a + b) + + worker = WorkerPool().create_worker(target, 2, 3) + worker.run() + + self.assertTrue(worker.finished.loopBound) + self.assertTrue(worker.finished.emitted) + + def test_worker_exception_path(self): + WorkerPool = self.worker_module.WorkerPool + + def target(): + raise RuntimeError("failure") + + worker = WorkerPool().create_worker(target) + worker.run() + + self.assertTrue(worker.finished.emitted) + + # ------------------------- + # WorkerPool tests + # ------------------------- + + def test_workerpool_singleton(self): + WorkerPool = self.worker_module.WorkerPool + + pool1 = WorkerPool() + pool2 = WorkerPool() + + self.assertIs(pool1, pool2) + + def test_workerpool_starts_thread(self): + WorkerPool = self.worker_module.WorkerPool + + pool = WorkerPool() + pool.max_threads = 1 + + ran = threading.Event() + + def target(): + ran.set() + time.sleep(0.05) + return "ok" + + worker = pool.create_worker(target) + pool.submit_worker(worker) + + self.assertEqual(len(pool.threads), 1) + + ran.wait(timeout=1) + time.sleep(0.05) + + self.assertEqual(len(pool.threads), 0) + + def test_workerpool_queues_and_dequeues(self): + WorkerPool = self.worker_module.WorkerPool + + pool = WorkerPool() + pool.max_threads = 1 + + block = threading.Event() + + def slow_target(): + block.wait() + return "slow" + + def fast_target(): + return "fast" + + w1 = pool.create_worker(slow_target) + w2 = pool.create_worker(fast_target) + + pool.submit_worker(w1) + pool.submit_worker(w2) + + self.assertEqual(len(pool.threads), 1) + self.assertEqual(len(pool.worker_queue), 1) + + block.set() + time.sleep(0.1) + + self.assertEqual(len(pool.worker_queue), 0) + self.assertEqual(len(pool.threads), 0) + + def test_workerpool_finished_signal(self): + WorkerPool = self.worker_module.WorkerPool + ResponseCode = self.worker_module.ResponseCode + ModelResponse = self.worker_module.ModelResponse + + def target(a, b): + return ModelResponse(code=ResponseCode.OK, data = a + b) + + finishedCalled = False + def slot(): + nonlocal finishedCalled + finishedCalled = True + + worker = WorkerPool().create_worker(target, 2, 3) + worker.finished.connect(slot) + worker.run() + + self.assertTrue(worker.finished.emitted) + + assert finishedCalled \ No newline at end of file diff --git a/tests/view_test/test_menu_view.py b/tests/unit/view_test/test_menu_view.py similarity index 88% rename from tests/view_test/test_menu_view.py rename to tests/unit/view_test/test_menu_view.py index abdd01de8..dd4e4b709 100644 --- a/tests/view_test/test_menu_view.py +++ b/tests/unit/view_test/test_menu_view.py @@ -1,5 +1,5 @@ import pytest -from tavi.frontend.views.file_menu_view import FileMenu +from tavi.frontend.view.file_menu_view import FileMenu def test_file_menu_action_labels(qtbot): @@ -21,4 +21,4 @@ def test_file_menu_action_labels(qtbot): assert labels["load_file"] == "Load File(s)" assert labels["load_folder"] == "Load Folder" assert labels["save"] == "Save Project" - assert labels["exit"] == "Exit" \ No newline at end of file + assert labels["exit"] == "Exit"