From de5f4dfad0c2dc3c54c1539e7f6192b760ec45bc Mon Sep 17 00:00:00 2001 From: "quant-ranger[bot]" <132915763+quant-ranger[bot]@users.noreply.github.com> Date: Mon, 26 Oct 2026 01:27:36 +0000 Subject: [PATCH 1/3] chore: Update copier template to v0.6.0 Quant-Ranger: copier --- .copier-answers.yml | 2 +- .envrc | 5 + .gitattributes | 2 +- .github/workflows/build.yml | 10 +- .github/workflows/ci.yml | 35 +++ .github/workflows/scorecard.yml | 16 +- .gitignore | 417 ++++++++++++++++++++------------ .lefthook.yaml | 6 +- dataframely/__init__.py | 10 +- pixi.lock | 166 +++++++------ pixi.toml | 6 +- pyproject.toml | 22 +- 12 files changed, 442 insertions(+), 255 deletions(-) diff --git a/.copier-answers.yml b/.copier-answers.yml index 091ea5e1..17f05bbe 100644 --- a/.copier-answers.yml +++ b/.copier-answers.yml @@ -8,7 +8,7 @@ # # If you want to run this as a one-off command, prefix with: # `pixi exec --spec copier --spec ruamel.yaml -- {command}` -_commit: v0.5.3 +_commit: v0.6.0 _src_path: https://github.com/quantco/copier-template-python-open-source add_autobump_workflow: false author_email: oliver.borchert@quantco.com diff --git a/.envrc b/.envrc index 9541d5f6..453335db 100644 --- a/.envrc +++ b/.envrc @@ -1,2 +1,7 @@ +<<<<<<< before updating watch_file pixi.toml pixi.lock eval "$(pixi shell-hook)" +||||||| last update +======= +layout pixi +>>>>>>> after updating diff --git a/.gitattributes b/.gitattributes index ba448629..b501fd52 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1 @@ -pixi.lock merge=binary linguist-language=YAML linguist-generated=true +pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 7f449d18..a0c422e4 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,13 @@ jobs: with: fetch-depth: 0 - name: Set up pixi +<<<<<<< before updating uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 +||||||| last update + uses: prefix-dev/setup-pixi@1b2de7f3351f171c8b4dfeb558c639cb58ed4ec0 # v0.9.5 +======= + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 +>>>>>>> after updating with: environments: build - name: Set version @@ -25,7 +31,7 @@ jobs: - name: Build project run: pixi run -e build build-sdist - name: Upload package - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: sdist path: dist/* @@ -109,7 +115,7 @@ jobs: id-token: write environment: pypi steps: - - uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 + - uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2 with: path: dist merge-multiple: true diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index eabf6fbe..9213564b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,12 +18,21 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: +<<<<<<< before updating - name: Checkout branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: # needed for 'pre-commit-mirrors-insert-license' fetch-depth: 0 +||||||| last update + - name: Checkout branch + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 +======= + - name: Check out branch + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 +>>>>>>> after updating - name: Set up pixi +<<<<<<< before updating uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 with: environments: default default-py311 @@ -31,6 +40,11 @@ jobs: run: rustup show - name: Cache Rust dependencies uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 +||||||| last update + uses: prefix-dev/setup-pixi@1b2de7f3351f171c8b4dfeb558c639cb58ed4ec0 # v0.9.5 +======= + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 +>>>>>>> after updating - name: Run linting run: pixi run lint env: @@ -44,7 +58,22 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest, macos-latest] +<<<<<<< before updating environment: [py311, py312, py313, py314] +||||||| last update + environment: + - py311 + - py312 + - py313 + - py314 +======= + environment: + - py311 + - py312 + - py313 + - py314 + - py315 +>>>>>>> after updating with_optionals: [false] include: # Test with optional dependencies across OSes @@ -65,7 +94,13 @@ jobs: - name: Checkout branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up pixi +<<<<<<< before updating uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 +||||||| last update + uses: prefix-dev/setup-pixi@1b2de7f3351f171c8b4dfeb558c639cb58ed4ec0 # v0.9.5 +======= + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 +>>>>>>> after updating with: environments: ${{ matrix.environment }} # FIXME: Remove when `s3_server` fixture does not start a process anymore diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 14624fbb..ba92afc8 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -34,13 +34,19 @@ jobs: # actions: read steps: - - name: "Checkout code" + - name: "Check out code" uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: persist-credentials: false - name: "Run analysis" +<<<<<<< before updating uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4 +||||||| last update + uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 +======= + uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0 +>>>>>>> after updating with: results_file: results.sarif results_format: sarif @@ -65,7 +71,7 @@ jobs: # Upload the results as artifacts (optional). Commenting out will disable uploads of run results in SARIF # format to the repository Actions tab. - name: "Upload artifact" - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: SARIF file path: results.sarif @@ -74,6 +80,12 @@ jobs: # Upload the results to GitHub's code scanning dashboard (optional). # Commenting out will disable upload of results to your repo's Code Scanning dashboard - name: "Upload to code-scanning" +<<<<<<< before updating uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2 +||||||| last update + uses: github/codeql-action/upload-sarif@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5 +======= + uses: github/codeql-action/upload-sarif@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0 +>>>>>>> after updating with: sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index d24d6aac..2f2812bd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ -# Created by https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim -# Edit at https://www.toptal.com/developers/gitignore?templates=linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim +# Explicitly unignore hidden files for ripgrep. Individual folders can still +# be ignored in the blocks below. +!.* +<<<<<<< before updating ### direnv ### .direnv @@ -21,179 +23,73 @@ ### macOS ### # General -.DS_Store -.AppleDouble -.LSOverride - -# Icon must end with two \r -Icon - - -# Thumbnails -._* - -# Files that might appear in the root of a volume -.DocumentRevisions-V100 -.fseventsd -.Spotlight-V100 -.TemporaryItems -.Trashes -.VolumeIcon.icns -.com.apple.timemachine.donotpresent - -# Directories potentially created on remote AFP share -.AppleDB -.AppleDesktop -Network Trash Folder -Temporary Items -.apdisk - -### macOS Patch ### -# iCloud generated files -*.icloud - -### PyCharm+all ### -# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider -# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# AWS User-specific -.idea/**/aws.xml - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/artifacts -# .idea/compiler.xml -# .idea/jarRepositories.xml -# .idea/modules.xml -# .idea/*.iml -# .idea/modules -# *.iml -# *.ipr - -# CMake -cmake-build-*/ - -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - -# File-based project format -*.iws - -# IntelliJ -out/ - -# mpeltonen/sbt-idea plugin -.idea_modules/ - -# JIRA plugin -atlassian-ide-plugin.xml - -# Cursive Clojure plugin -.idea/replstate.xml +||||||| last update +### direnv ### +.direnv +.envrc -# SonarLint plugin -.idea/sonarlint/ +### Linux ### +*~ -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties +# temporary files which can be created if a process still has a handle open of a deleted file +.fuse_hidden* -# Editor-based Rest Client -.idea/httpRequests +# KDE directory preferences +.directory -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser +# Linux trash folder which might appear on any partition or disk +.Trash-* -### PyCharm+all Patch ### -# Ignore everything but code style settings and run configurations -# that are supposed to be shared within teams. +# .nfs files are created when an open file is removed but is still being accessed +.nfs* -.idea/* +### macOS ### +# General +======= +# macOS +>>>>>>> after updating +.DS_Store -!.idea/codeStyles -!.idea/runConfigurations +# IDEs +.idea/ +.vscode/ +#!.vscode/settings.json +#!.vscode/tasks.json +#!.vscode/launch.json +#!.vscode/extensions.json +#!.vscode/*.code-snippets +# Local History for Visual Studio Code +.history/ -### Python ### -# Byte-compiled / optimized / DLL files +# python __pycache__/ +.pytest_cache/ +.mypy_cache/ *.py[cod] *$py.class - -# C extensions -*.so - -# Distribution / packaging -.Python -build/ -develop-eggs/ -dist/ -downloads/ -eggs/ -.eggs/ -lib/ -lib64/ -parts/ -sdist/ -var/ -wheels/ -share/python-wheels/ +.ipynb_checkpoints +.ruff_cache/ +.venv +venv/ +__pypackages__/ +cython_debug/ *.egg-info/ -.installed.cfg *.egg -MANIFEST - -# PyInstaller -# Usually these files are written by a python script from a template -# before PyInstaller builds the exe, so as to inject date/other infos into it. -*.manifest -*.spec - -# Installer logs -pip-log.txt -pip-delete-this-directory.txt +.pixi -# Unit test / coverage reports -htmlcov/ -.tox/ -.nox/ +# coverage .coverage .coverage.* -.cache -nosetests.xml coverage.xml +/coverage *.cover *.py,cover -.hypothesis/ -.pytest_cache/ cover/ +htmlcov/ +.tox/ +.nox/ +<<<<<<< before updating # Translations *.mo *.pot @@ -217,7 +113,37 @@ docs/**/_gen/ # PyBuilder .pybuilder/ +||||||| last update +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +.pybuilder/ +======= +# build outputs +build/ +out/ +output/ +>>>>>>> after updating target/ +<<<<<<< before updating # Jupyter Notebook .ipynb_checkpoints @@ -287,8 +213,78 @@ venv.bak/ .ropeproject # mkdocs documentation +||||||| last update + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +# For a library or package, you might want to ignore these files since the code is +# intended to run in multiple environments; otherwise, check them in: +# .python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# poetry +# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. +# This is especially recommended for binary packages to ensure reproducibility, and is more +# commonly ignored for libraries. +# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control +#poetry.lock + +# pdm +# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. +#pdm.lock +# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it +# in version control. +# https://pdm.fming.dev/#use-with-ide +.pdm.toml + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +======= +dist/ +.cache/ +>>>>>>> after updating /site +docs/_build/ +*.conda +<<<<<<< before updating # mypy .mypy_cache/ .dmypy.json @@ -384,11 +380,122 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk +||||||| last update +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + +# pytype static type analyzer +.pytype/ + +# Cython debug symbols +cython_debug/ + +# PyCharm +# JetBrains specific template is maintained in a separate JetBrains.gitignore that can +# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore +# and can be added to the global gitignore or merged into this file. For a more nuclear +# option (not recommended) you can uncomment the following to ignore the entire idea folder. +#.idea/ + +### Python Patch ### +# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration +poetry.toml + +# ruff +.ruff_cache/ + +# LSP config files +pyrightconfig.json + +### Vim ### +# Swap +[._]*.s[a-v][a-z] +!*.svg # comment out if you don't need vector files +[._]*.sw[a-p] +[._]s[a-rt-v][a-z] +[._]ss[a-gi-z] +[._]sw[a-p] + +# Session +Session.vim +Sessionx.vim + +# Temporary +.netrwhist +# Auto-generated tag files +tags +# Persistent undo +[._]*.un~ + +### VisualStudioCode ### +.vscode/* +!.vscode/settings.json +!.vscode/tasks.json +!.vscode/launch.json +!.vscode/extensions.json +!.vscode/*.code-snippets + +# Local History for Visual Studio Code +.history/ + +# Built Visual Studio Code Extensions +*.vsix + +### VisualStudioCode Patch ### +# Ignore all local history of files +.history +.ionide + +### Windows ### +# Windows thumbnail cache files +Thumbs.db +Thumbs.db:encryptable +ehthumbs.db +ehthumbs_vista.db + +# Dump file +*.stackdump + +# Folder config file +[Dd]esktop.ini + +# Recycle Bin used on file shares +$RECYCLE.BIN/ + +# Windows Installer files +*.cab +*.msi +*.msix +*.msm +*.msp + +# Windows shortcuts +*.lnk +======= +# general +*.so +cmake-build-*/ +*.log +.env +>>>>>>> after updating -# End of https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim +# Claude +.claude/*.local.* +.claude/worktrees/ +<<<<<<< before updating # interactive testing /*.ipynb # pytest-benchmark .benchmarks/ +||||||| last update +.pixi +======= +# customizations per repo +>>>>>>> after updating diff --git a/.lefthook.yaml b/.lefthook.yaml index 76f433b6..fe92374e 100644 --- a/.lefthook.yaml +++ b/.lefthook.yaml @@ -25,9 +25,9 @@ pre-commit: - name: prettier glob: "*.{md,yml,yaml}" run: pixi {run} prettier --write --no-error-on-unmatched-pattern --list-different --ignore-unknown {staged_files} - - name: taplo + - name: tombi glob: "*.toml" - run: pixi {run} taplo format {staged_files} + run: pixi {run} tombi format --offline {staged_files} - name: cargo-fmt glob: "*.rs" run: pixi {run} cargo fmt @@ -50,6 +50,8 @@ pre-commit: - "*.rst" - name: typos glob: "*" + exclude: + - .copier-answers.yml file_types: text run: pixi {run} typos --force-exclude {staged_files} - name: zizmor diff --git a/dataframely/__init__.py b/dataframely/__init__.py index 6c8a39a1..319d3381 100644 --- a/dataframely/__init__.py +++ b/dataframely/__init__.py @@ -1,13 +1,13 @@ # Copyright (c) QuantCo 2025-2026 # SPDX-License-Identifier: BSD-3-Clause -import importlib.metadata -import warnings +import warnings as _warnings +from importlib import metadata as _metadata try: - __version__ = importlib.metadata.version(__name__) -except importlib.metadata.PackageNotFoundError as e: # pragma: no cover - warnings.warn(f"Could not determine version of {__name__}\n{e!s}", stacklevel=2) + __version__ = _metadata.version(__name__) +except _metadata.PackageNotFoundError as e: # pragma: no cover + _warnings.warn(f"Could not determine version of {__name__}\n{e!s}", stacklevel=2) __version__ = "unknown" from . import random diff --git a/pixi.lock b/pixi.lock index a07cedf2..24274d7c 100644 --- a/pixi.lock +++ b/pixi.lock @@ -582,8 +582,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.18.1-py314h36f0660_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h34e00bb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-2.1.3-py314hfe1a184_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.10.0-he64ecbb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tombi-1.9.5-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.10-py314h89acca1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.50.3-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/unixodbc-2.3.14-h69e2008_0.conda @@ -846,8 +846,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.18.1-py314hb3ba6a9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.2.2-h7d29b6f_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/sqlalchemy-2.1.3-py314ha22a00f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.10.0-hb434046_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tombi-1.9.5-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.5.10-py314h35c850b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.50.3-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/unixodbc-2.3.14-h1344786_0.conda @@ -1244,8 +1244,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.18.1-py314hefcf020_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h3613d57_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlalchemy-2.1.3-py314h17af80e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.10.0-h651e3a3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-ha6c374e_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tombi-1.9.5-h3047c83_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.10-py314hca6f81c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.50.3-he704061_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/unixodbc-2.3.14-haf169fc_0.conda @@ -1508,8 +1508,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.18.1-py314hd9f3d4e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-h3951085_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlalchemy-2.1.3-py314hd98292b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.10.0-h17e24d4_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tombi-1.9.5-ha19a7bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.10-py314hcd3153d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.50.3-hc2d82ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unixodbc-2.3.14-h3f2ae4a_0.conda @@ -1757,9 +1757,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.18.1-py314h67d5eaa_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/sqlalchemy-2.1.3-py314hc5dbbe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.10.0-h18a1a76_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2023.1.0-h272cf33_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h967ab96_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tombi-1.9.5-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.10-py314h5a2d7ad_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.50.3-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda @@ -1899,8 +1899,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.18.1-py314h36f0660_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h34e00bb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-2.1.3-py314hfe1a184_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.10.0-he64ecbb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tombi-1.9.5-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.10-py314h89acca1_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.50.3-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/unixodbc-2.3.14-h69e2008_0.conda @@ -2163,8 +2163,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.18.1-py314hb3ba6a9_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.2.2-h7d29b6f_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/sqlalchemy-2.1.3-py314ha22a00f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.10.0-hb434046_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tombi-1.9.5-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.5.10-py314h35c850b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.50.3-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/unixodbc-2.3.14-h1344786_0.conda @@ -2561,8 +2561,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.18.1-py314hefcf020_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h3613d57_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlalchemy-2.1.3-py314h17af80e_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.10.0-h651e3a3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-ha6c374e_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tombi-1.9.5-h3047c83_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.10-py314hca6f81c_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.50.3-he704061_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/unixodbc-2.3.14-haf169fc_0.conda @@ -2825,8 +2825,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.18.1-py314hd9f3d4e_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-h3951085_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlalchemy-2.1.3-py314hd98292b_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.10.0-h17e24d4_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tombi-1.9.5-ha19a7bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.10-py314hcd3153d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.50.3-hc2d82ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unixodbc-2.3.14-h3f2ae4a_0.conda @@ -3074,9 +3074,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.18.1-py314h67d5eaa_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/sqlalchemy-2.1.3-py314hc5dbbe4_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.10.0-h18a1a76_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2023.1.0-h272cf33_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h967ab96_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tombi-1.9.5-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.10-py314h5a2d7ad_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.50.3-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda @@ -3218,8 +3218,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py311hbe70eeb_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h34e00bb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/sqlalchemy-2.1.4-py311h194be0f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.10.0-he64ecbb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tombi-1.9.5-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.10-py311h0d48ccd_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.51.1-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/unixodbc-2.3.14-h69e2008_0.conda @@ -3485,8 +3485,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.17.1-py311had2d2e4_1.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.2.2-h7d29b6f_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/sqlalchemy-2.1.4-py311h0de9f98_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.10.0-hb434046_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tombi-1.9.5-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.5.10-py311h5a00dd8_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.51.1-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/unixodbc-2.3.14-h1344786_0.conda @@ -3884,8 +3884,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.1-py311h556693a_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h3613d57_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/sqlalchemy-2.1.4-py311h72e27ae_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.10.0-h651e3a3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-ha6c374e_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tombi-1.9.5-h3047c83_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.10-py311h5e2e7b6_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.51.1-he704061_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/unixodbc-2.3.14-haf169fc_0.conda @@ -4148,8 +4148,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py311h9a58382_1.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-h3951085_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sqlalchemy-2.1.4-py311hd322c8c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.10.0-h17e24d4_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tombi-1.9.5-ha19a7bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.10-py311h5edb25e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.51.1-hc2d82ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unixodbc-2.3.14-h3f2ae4a_0.conda @@ -4398,9 +4398,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.1-py311h9c22a71_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/sqlalchemy-2.1.4-py311hf893f09_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.10.0-h18a1a76_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2023.1.0-h272cf33_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h967ab96_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tombi-1.9.5-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.10-py311h3485c13_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.51.1-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ucrt-10.0.26100.0-h57928b3_0.conda @@ -5238,8 +5238,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/rapidfuzz-3.14.6-py315h219b181_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruamel.yaml.clib-0.2.15-py315hd4e796c_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/ruff-0.16.10-hc0d6792_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.10.0-he64ecbb_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tombi-1.9.5-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/typos-1.50.3-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zizmor-1.30.1-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda @@ -5290,8 +5290,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/rapidfuzz-3.14.6-py315habfbd8b_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruamel.yaml.clib-0.2.15-py315h161ad5a_5.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ruff-0.16.10-h42907a6_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.10.0-hb434046_2.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tombi-1.9.5-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/typos-1.50.3-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zizmor-1.30.1-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.7-h9d15635_7.conda @@ -5347,8 +5347,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/rapidfuzz-3.14.6-py315h1e040c3_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruamel.yaml.clib-0.2.15-py315h54bb5ba_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/ruff-0.16.10-h6e8e395_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.10.0-h651e3a3_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-ha6c374e_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tombi-1.9.5-h3047c83_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/typos-1.50.3-he704061_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zizmor-1.30.1-he704061_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-hbc1a06c_7.conda @@ -5397,8 +5397,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rapidfuzz-3.14.6-py315h9d690bc_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruamel.yaml.clib-0.2.15-py315hc6682d9_5.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ruff-0.16.10-hc57303c_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.10.0-h17e24d4_2.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tombi-1.9.5-ha19a7bb_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/typos-1.50.3-hc2d82ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zizmor-1.30.1-hc2d82ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda @@ -5437,9 +5437,9 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/rapidfuzz-3.14.6-py315h05291f8_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruamel.yaml.clib-0.2.15-py315h37d93b3_5.conda - conda: https://conda.anaconda.org/conda-forge/win-64/ruff-0.16.10-h808fad9_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.10.0-h18a1a76_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2023.1.0-h272cf33_2.conda - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h967ab96_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tombi-1.9.5-h18a1a76_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/typos-1.50.3-h18a1a76_0.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/vc-14.5-ha367084_41.conda @@ -13688,20 +13688,6 @@ packages: run_exports: {} size: 4207884 timestamp: 1791443361072 -- conda: https://conda.anaconda.org/conda-forge/linux-64/taplo-0.10.0-he64ecbb_2.conda - sha256: 4fadb3cddac0461c6715fa987944d6876e7402efc037ab5c05707b788d7dfcf9 - md5: 718059e50f92fa30cb9b4daa597b41ce - depends: - - __glibc >=2.17,<3.0.a0 - - libgcc >=14 - - openssl >=3.5.6,<4.0a0 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - run_exports: {} - size: 4099420 - timestamp: 1780697891321 - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda build_number: 104 sha256: a1a241d172c1ccab067ba245206dd048bc3c2d1b84504b53c9468e99adfc16a1 @@ -13718,6 +13704,19 @@ packages: - tk >=8.6.13,<8.7.0a0 size: 3566806 timestamp: 1787272857910 +- conda: https://conda.anaconda.org/conda-forge/linux-64/tombi-1.9.5-hf19af3b_0.conda + sha256: c7617f24b8e46cd25dc6c54d28d61f8db1754305675d6458924c7f9411cd9c1a + md5: 06e696c23be8acf3a8846e496374e580 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 7148860 + timestamp: 1792906299847 - conda: https://conda.anaconda.org/conda-forge/linux-64/tornado-6.5.10-py311h0d48ccd_0.conda sha256: 770b9c1537d67859c2f591c461f5b6929fe1d8531c63ab6da568ad7d706621f8 md5: 59c42333f75723bea30f200f0cd68228 @@ -17233,19 +17232,6 @@ packages: run_exports: {} size: 4223744 timestamp: 1791443357201 -- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/taplo-0.10.0-hb434046_2.conda - sha256: ccb8d8c30d8ea0741724065e2f328051dc0d983ada052999e9252c30c6cd3d05 - md5: edde7f5cf2bb58fcfe3947daad580f25 - depends: - - libgcc >=14 - - openssl >=3.5.6,<4.0a0 - constrains: - - __glibc >=2.17 - license: MIT - license_family: MIT - run_exports: {} - size: 3969209 - timestamp: 1780697914100 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda build_number: 104 sha256: a1aa0d0f0b3d539644ff992e6dd0facf950c79df58fc37590ce5be84ff5e3f22 @@ -17261,6 +17247,18 @@ packages: - tk >=8.6.13,<8.7.0a0 size: 3664220 timestamp: 1787272859143 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tombi-1.9.5-h328a733_0.conda + sha256: a6682531db1851f7ee0f1cfeebbb13d35288a53c9095392b791f9c63985cd4ac + md5: b53b01cbb3cc702f74d5434e23466b64 + depends: + - libgcc >=15 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 6744049 + timestamp: 1792906305987 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tornado-6.5.10-py311h5a00dd8_0.conda sha256: 60c9ea283e1f0869ffd1215c8ac4b776c5c0518df0b878471e2acff2c1d9b2f2 md5: cc08979cc3b01e3c1f756a3d00cf1023 @@ -23823,19 +23821,6 @@ packages: run_exports: {} size: 4157858 timestamp: 1791443518691 -- conda: https://conda.anaconda.org/conda-forge/osx-64/taplo-0.10.0-h651e3a3_2.conda - sha256: 8d0d5ca037061e4d08df26860466f95ed7b7d044cc8a6d2812fc522a6bcef38c - md5: d0ca306378b3e170395e31aef18cca83 - depends: - - __osx >=11.0 - - openssl >=3.5.6,<4.0a0 - constrains: - - __osx >=11.0 - license: MIT - license_family: MIT - run_exports: {} - size: 4030460 - timestamp: 1780697976189 - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-ha6c374e_4.conda sha256: 74e5fabcaf6ca0db052c645646ea04ded98a5eb7540483217f8101a819eb3107 md5: 71c9f1f0267f2639523e898c6b50a4dc @@ -23848,6 +23833,18 @@ packages: - tk >=8.6.13,<8.7.0a0 size: 3512384 timestamp: 1787272935349 +- conda: https://conda.anaconda.org/conda-forge/osx-64/tombi-1.9.5-h3047c83_0.conda + sha256: fc98c6a3501cc16e01709d96a57b466fd9ca09524aa417ea9f609eee55f342a2 + md5: 9443abba8f84dbf1224f17b617de81aa + depends: + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 7033483 + timestamp: 1792906359647 - conda: https://conda.anaconda.org/conda-forge/osx-64/tornado-6.5.10-py311h5e2e7b6_0.conda sha256: 57a283defc4422fbcf03dea4b2ad3437ef3ed08bd3f11912aabb7a2ffdb71235 md5: 2de2e47779a13909c126ceb84a79bfdf @@ -27255,19 +27252,6 @@ packages: run_exports: {} size: 4163910 timestamp: 1791443425749 -- conda: https://conda.anaconda.org/conda-forge/osx-arm64/taplo-0.10.0-h17e24d4_2.conda - sha256: 7cd99a6af769a497ab50d44d6697bb0cb50b20153153679aee1baef687963209 - md5: 8ee9613094590d6b7cbb2e98e5a75314 - depends: - - __osx >=11.0 - - openssl >=3.5.6,<4.0a0 - constrains: - - __osx >=11.0 - license: MIT - license_family: MIT - run_exports: {} - size: 3742965 - timestamp: 1780697918469 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda sha256: 857d89087ae7f2c328cf256728affcb7343031a148b4af847334d248a9cf564c md5: 90a01bf394d1c594e0eb9258f967d828 @@ -27280,6 +27264,18 @@ packages: - tk >=8.6.13,<8.7.0a0 size: 3342183 timestamp: 1787272852357 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/tombi-1.9.5-ha19a7bb_0.conda + sha256: 3f1e658e2f2b4538ab5767e1ca5d57e822703da53e24e8c3c5318027d56092b8 + md5: f29b92a1dd69ccb8b538b5202d821f27 + depends: + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 6489255 + timestamp: 1792906338511 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tornado-6.5.10-py311h5edb25e_0.conda sha256: 12c7358a58e0cd6da969d9e1b29955273c615c84161910701692381fec9f66a7 md5: 99c8a8bd9229e05e73d251ecd83d00be @@ -30551,18 +30547,6 @@ packages: run_exports: {} size: 4113765 timestamp: 1791443357926 -- conda: https://conda.anaconda.org/conda-forge/win-64/taplo-0.10.0-h18a1a76_2.conda - sha256: 4350e711a930e87eadaf87e633fd0339eecfd55a9116161fde6973066a755053 - md5: dd0703d842bbe23e13f99e3681e4b350 - depends: - - vc >=14.3,<15 - - vc14_runtime >=14.44.35208 - - ucrt >=10.0.20348.0 - license: MIT - license_family: MIT - run_exports: {} - size: 4244234 - timestamp: 1780697930138 - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2023.1.0-h272cf33_2.conda sha256: 65f5a52eb5250ca0d627e6958e703583dca008988695284fc2181b3a0a790efd md5: 83371bd3f796b3c2d3f0436692d3ea73 @@ -30589,6 +30573,18 @@ packages: - tk >=8.6.13,<8.7.0a0 size: 3782376 timestamp: 1787272860855 +- conda: https://conda.anaconda.org/conda-forge/win-64/tombi-1.9.5-h18a1a76_0.conda + sha256: 0e627167c105fac4229cffc890051402bec8a8cfd894bf56ca9b5f6a4f2bde68 + md5: 37ce73fb6d0cbb95d6701384be94e818 + depends: + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + license: MIT + license_family: MIT + run_exports: {} + size: 7900105 + timestamp: 1792906308851 - conda: https://conda.anaconda.org/conda-forge/win-64/tornado-6.5.10-py311h3485c13_0.conda sha256: 06ec2b9666a99c2541c9ab1f3b4537c5ad857539f18a2eb186e1551e7e39c013 md5: 961e9bde6b0a3744543fade1d3bc4de0 diff --git a/pixi.toml b/pixi.toml index b1992f85..1e8363ff 100644 --- a/pixi.toml +++ b/pixi.toml @@ -69,6 +69,7 @@ python-build = "*" setuptools-scm = "*" twine = ">=6" wheel = "*" + [feature.build.target.unix.dependencies] sed = "*" @@ -84,7 +85,7 @@ lefthook = "*" pre-commit-hooks = "*" prettier = "*" ruff = "*" -taplo = "*" +tombi = "*" typos = "*" zizmor = "*" @@ -142,3 +143,6 @@ default-polars-minimal = [ "test", ] polars-minimal = ["polars-minimal", "py314", "test"] + +[feature.py315.dependencies] +python = "3.15.*" diff --git a/pyproject.toml b/pyproject.toml index f4ab5000..fc15aeb6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ classifiers = [ "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", ] dependencies = ["numpy", "polars>=1.35"] description = "A declarative, polars-native data frame validation library" @@ -47,9 +48,20 @@ line-length = 88 [tool.ruff.lint] ignore = [ +<<<<<<< before updating "E501", # https://docs.astral.sh/ruff/faq/#is-the-ruff-linter-compatible-with-black "N803", # https://docs.astral.sh/ruff/rules/invalid-argument-name "N806", # https://docs.astral.sh/ruff/rules/non-lowercase-variable-in-function +||||||| last update + "N803", # https://docs.astral.sh/ruff/rules/invalid-argument-name + "N806", # https://docs.astral.sh/ruff/rules/non-lowercase-variable-in-function + "E501", # https://docs.astral.sh/ruff/faq/#is-the-ruff-linter-compatible-with-black +======= + "N803", # https://docs.astral.sh/ruff/rules/invalid-argument-name + "N806", # https://docs.astral.sh/ruff/rules/non-lowercase-variable-in-function + "E501", # https://docs.astral.sh/ruff/faq/#is-the-ruff-linter-compatible-with-black + "D1", # https://docs.astral.sh/ruff/rules/#pydocstyle-d +>>>>>>> after updating ] select = [ # pyflakes @@ -63,6 +75,8 @@ select = [ "N", # pyupgrade "UP", + # pydocstyle + "D", ] [tool.ruff.lint.pep8-naming] @@ -82,7 +96,7 @@ exclude = ["docs/"] explicit_package_bases = true no_implicit_optional = true plugins = ["pydantic.mypy"] -python_version = '3.11' +python_version = "3.11" warn_unused_ignores = true [[tool.mypy.overrides]] @@ -107,3 +121,9 @@ testpaths = ["tests"] [tool.coverage.run] omit = ["dataframely/testing/generate.py"] + +[tool.ruff.lint.pydocstyle] +convention = "google" + +[tool.tombi] +schema.enabled = false From f508ff5f034482b02549311d7a7ec28a59dcc597 Mon Sep 17 00:00:00 2001 From: Oliver Borchert Date: Tue, 27 Oct 2026 15:26:42 -0400 Subject: [PATCH 2/3] fix: resolve template conflicts and complete Python 3.15 setup --- .envrc | 5 - .github/workflows/build.yml | 6 - .github/workflows/ci.yml | 34 +- .github/workflows/scorecard.yml | 12 - .gitignore | 235 +-- dataframely/_base_schema.py | 3 +- dataframely/_match_to_schema.py | 3 +- dataframely/_native.pyi | 10 +- dataframely/collection/_base.py | 9 +- dataframely/collection/collection.py | 4 +- dataframely/columns/_base.py | 9 +- dataframely/columns/any.py | 3 +- dataframely/columns/array.py | 3 +- dataframely/columns/categorical.py | 3 +- dataframely/columns/datetime.py | 12 +- dataframely/columns/decimal.py | 3 +- dataframely/columns/enum.py | 3 +- dataframely/columns/float.py | 3 +- dataframely/columns/integer.py | 3 +- dataframely/columns/list.py | 5 +- dataframely/columns/object.py | 3 +- dataframely/columns/string.py | 3 +- dataframely/columns/struct.py | 3 +- dataframely/config.py | 3 +- dataframely/filter_result.py | 6 +- dataframely/random.py | 3 +- dataframely/schema.py | 11 +- pixi.lock | 2464 +++++++++++++++++++++++++- pixi.toml | 7 +- pyproject.toml | 22 +- tests/collection/test_matches.py | 12 +- tests/column_types/test_integer.py | 6 +- 32 files changed, 2535 insertions(+), 376 deletions(-) diff --git a/.envrc b/.envrc index 453335db..9541d5f6 100644 --- a/.envrc +++ b/.envrc @@ -1,7 +1,2 @@ -<<<<<<< before updating watch_file pixi.toml pixi.lock eval "$(pixi shell-hook)" -||||||| last update -======= -layout pixi ->>>>>>> after updating diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a0c422e4..144e6946 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,13 +17,7 @@ jobs: with: fetch-depth: 0 - name: Set up pixi -<<<<<<< before updating - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 -||||||| last update - uses: prefix-dev/setup-pixi@1b2de7f3351f171c8b4dfeb558c639cb58ed4ec0 # v0.9.5 -======= uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 ->>>>>>> after updating with: environments: build - name: Set version diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 9213564b..aa0c47d1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -18,33 +18,19 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: -<<<<<<< before updating - - name: Checkout branch + - name: Check out branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: # needed for 'pre-commit-mirrors-insert-license' fetch-depth: 0 -||||||| last update - - name: Checkout branch - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 -======= - - name: Check out branch - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 ->>>>>>> after updating - name: Set up pixi -<<<<<<< before updating - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 with: environments: default default-py311 - name: Install Rust run: rustup show - name: Cache Rust dependencies uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 -||||||| last update - uses: prefix-dev/setup-pixi@1b2de7f3351f171c8b4dfeb558c639cb58ed4ec0 # v0.9.5 -======= - uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 ->>>>>>> after updating - name: Run linting run: pixi run lint env: @@ -58,22 +44,12 @@ jobs: fail-fast: true matrix: os: [ubuntu-latest, windows-latest, macos-latest] -<<<<<<< before updating - environment: [py311, py312, py313, py314] -||||||| last update - environment: - - py311 - - py312 - - py313 - - py314 -======= environment: - py311 - py312 - py313 - py314 - py315 ->>>>>>> after updating with_optionals: [false] include: # Test with optional dependencies across OSes @@ -94,13 +70,7 @@ jobs: - name: Checkout branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up pixi -<<<<<<< before updating - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 -||||||| last update - uses: prefix-dev/setup-pixi@1b2de7f3351f171c8b4dfeb558c639cb58ed4ec0 # v0.9.5 -======= uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 ->>>>>>> after updating with: environments: ${{ matrix.environment }} # FIXME: Remove when `s3_server` fixture does not start a process anymore diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index ba92afc8..8d952f75 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -40,13 +40,7 @@ jobs: persist-credentials: false - name: "Run analysis" -<<<<<<< before updating - uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4 -||||||| last update - uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3 -======= uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0 ->>>>>>> after updating with: results_file: results.sarif results_format: sarif @@ -80,12 +74,6 @@ jobs: # Upload the results to GitHub's code scanning dashboard (optional). # Commenting out will disable upload of results to your repo's Code Scanning dashboard - name: "Upload to code-scanning" -<<<<<<< before updating - uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2 -||||||| last update - uses: github/codeql-action/upload-sarif@9e0d7b8d25671d64c341c19c0152d693099fb5ba # v4.35.5 -======= uses: github/codeql-action/upload-sarif@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0 ->>>>>>> after updating with: sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index 2f2812bd..7ba15833 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ # be ignored in the blocks below. !.* -<<<<<<< before updating ### direnv ### .direnv @@ -23,31 +22,6 @@ ### macOS ### # General -||||||| last update -### direnv ### -.direnv -.envrc - -### Linux ### -*~ - -# temporary files which can be created if a process still has a handle open of a deleted file -.fuse_hidden* - -# KDE directory preferences -.directory - -# Linux trash folder which might appear on any partition or disk -.Trash-* - -# .nfs files are created when an open file is removed but is still being accessed -.nfs* - -### macOS ### -# General -======= -# macOS ->>>>>>> after updating .DS_Store # IDEs @@ -89,7 +63,6 @@ htmlcov/ .tox/ .nox/ -<<<<<<< before updating # Translations *.mo *.pot @@ -113,37 +86,14 @@ docs/**/_gen/ # PyBuilder .pybuilder/ -||||||| last update -# Translations -*.mo -*.pot - -# Django stuff: -*.log -local_settings.py -db.sqlite3 -db.sqlite3-journal - -# Flask stuff: -instance/ -.webassets-cache - -# Scrapy stuff: -.scrapy - -# Sphinx documentation -docs/_build/ - -# PyBuilder -.pybuilder/ -======= -# build outputs build/ out/ output/ ->>>>>>> after updating +dist/ +.cache/ +*.so +cmake-build-*/ target/ -<<<<<<< before updating # Jupyter Notebook .ipynb_checkpoints @@ -213,78 +163,10 @@ venv.bak/ .ropeproject # mkdocs documentation -||||||| last update - -# Jupyter Notebook -.ipynb_checkpoints - -# IPython -profile_default/ -ipython_config.py - -# pyenv -# For a library or package, you might want to ignore these files since the code is -# intended to run in multiple environments; otherwise, check them in: -# .python-version - -# pipenv -# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. -# However, in case of collaboration, if having platform-specific dependencies or dependencies -# having no cross-platform support, pipenv may install dependencies that don't work, or not -# install all needed dependencies. -#Pipfile.lock - -# poetry -# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control. -# This is especially recommended for binary packages to ensure reproducibility, and is more -# commonly ignored for libraries. -# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control -#poetry.lock - -# pdm -# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control. -#pdm.lock -# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it -# in version control. -# https://pdm.fming.dev/#use-with-ide -.pdm.toml - -# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm -__pypackages__/ - -# Celery stuff -celerybeat-schedule -celerybeat.pid - -# SageMath parsed files -*.sage.py - -# Environments -.env -.venv -env/ -venv/ -ENV/ -env.bak/ -venv.bak/ - -# Spyder project settings -.spyderproject -.spyproject - -# Rope project settings -.ropeproject - -# mkdocs documentation -======= -dist/ -.cache/ ->>>>>>> after updating /site docs/_build/ *.conda -<<<<<<< before updating # mypy .mypy_cache/ .dmypy.json @@ -380,122 +262,13 @@ $RECYCLE.BIN/ # Windows shortcuts *.lnk -||||||| last update -# mypy -.mypy_cache/ -.dmypy.json -dmypy.json - -# Pyre type checker -.pyre/ - -# pytype static type analyzer -.pytype/ - -# Cython debug symbols -cython_debug/ - -# PyCharm -# JetBrains specific template is maintained in a separate JetBrains.gitignore that can -# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore -# and can be added to the global gitignore or merged into this file. For a more nuclear -# option (not recommended) you can uncomment the following to ignore the entire idea folder. -#.idea/ - -### Python Patch ### -# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration -poetry.toml - -# ruff -.ruff_cache/ - -# LSP config files -pyrightconfig.json - -### Vim ### -# Swap -[._]*.s[a-v][a-z] -!*.svg # comment out if you don't need vector files -[._]*.sw[a-p] -[._]s[a-rt-v][a-z] -[._]ss[a-gi-z] -[._]sw[a-p] - -# Session -Session.vim -Sessionx.vim - -# Temporary -.netrwhist -# Auto-generated tag files -tags -# Persistent undo -[._]*.un~ - -### VisualStudioCode ### -.vscode/* -!.vscode/settings.json -!.vscode/tasks.json -!.vscode/launch.json -!.vscode/extensions.json -!.vscode/*.code-snippets - -# Local History for Visual Studio Code -.history/ - -# Built Visual Studio Code Extensions -*.vsix - -### VisualStudioCode Patch ### -# Ignore all local history of files -.history -.ionide - -### Windows ### -# Windows thumbnail cache files -Thumbs.db -Thumbs.db:encryptable -ehthumbs.db -ehthumbs_vista.db - -# Dump file -*.stackdump - -# Folder config file -[Dd]esktop.ini - -# Recycle Bin used on file shares -$RECYCLE.BIN/ - -# Windows Installer files -*.cab -*.msi -*.msix -*.msm -*.msp - -# Windows shortcuts -*.lnk -======= -# general -*.so -cmake-build-*/ -*.log -.env ->>>>>>> after updating # Claude .claude/*.local.* .claude/worktrees/ -<<<<<<< before updating # interactive testing /*.ipynb # pytest-benchmark .benchmarks/ -||||||| last update -.pixi -======= -# customizations per repo ->>>>>>> after updating diff --git a/dataframely/_base_schema.py b/dataframely/_base_schema.py index 67bb1256..4fdc2a9f 100644 --- a/dataframely/_base_schema.py +++ b/dataframely/_base_schema.py @@ -273,8 +273,7 @@ def __repr__(cls) -> str: class BaseSchema(metaclass=SchemaMeta): - """Internal utility abstraction to reference schemas without introducing cyclical - dependencies.""" + """Internal utility abstraction to reference schemas without introducing cyclical dependencies.""" @classmethod def column_names(cls) -> list[str]: diff --git a/dataframely/_match_to_schema.py b/dataframely/_match_to_schema.py index 447de01f..4e5b7186 100644 --- a/dataframely/_match_to_schema.py +++ b/dataframely/_match_to_schema.py @@ -16,8 +16,7 @@ def match_to_schema( *, casting: Literal["none", "lenient", "strict"], ) -> pl.LazyFrame: - """Ensure that a lazy frame contains the columns of the schema with the dtypes - specified by the schema.""" + """Ensure that a lazy frame contains the columns of the schema with the dtypes specified by the schema.""" def cast_none(lf: pl.LazyFrame, schema: pl.Schema) -> pl.LazyFrame: _validate_columns_exist(schema, target) diff --git a/dataframely/_native.pyi b/dataframely/_native.pyi index 84621804..1ff4c241 100644 --- a/dataframely/_native.pyi +++ b/dataframely/_native.pyi @@ -25,9 +25,7 @@ def format_rule_failures( primary_key_columns: list[str], max_examples: int, ) -> str: - """ - Format rule failures with the same logic that produces validation errors from the - polars plugin. + """Format rule failures with the same logic that produces validation errors from the polars plugin. Args: failures: The name of the failures and their counts. This should only include @@ -46,8 +44,7 @@ def format_rule_failures( """ def regex_matching_string_length(regex: str) -> tuple[int, int | None]: - """ - Compute the minimum and maximum length (if available) of strings matching a regular expression. + """Compute the minimum and maximum length (if available) of strings matching a regular expression. Args: regex: The regular expression to analyze. The regular expression must not @@ -66,8 +63,7 @@ def regex_matching_string_length(regex: str) -> tuple[int, int | None]: def regex_sample( regex: str, n: int, max_repetitions: int = 16, seed: int | None = None ) -> list[str]: - """ - Sample a random (set of) string(s) matching the provided regular expression. + """Sample a random (set of) string(s) matching the provided regular expression. Args: regex: The regular expression generated strings must match. The regular diff --git a/dataframely/collection/_base.py b/dataframely/collection/_base.py index fe367273..61f3d672 100644 --- a/dataframely/collection/_base.py +++ b/dataframely/collection/_base.py @@ -313,8 +313,7 @@ def __repr__(cls) -> str: class BaseCollection(metaclass=CollectionMeta): - """Internal utility abstraction to reference collections without introducing - cyclical dependencies.""" + """Internal utility abstraction to reference collections without introducing cyclical dependencies.""" @classmethod def members(cls) -> dict[str, MemberInfo]: @@ -347,8 +346,7 @@ def ignored_members(cls) -> set[str]: @classmethod def non_ignored_members(cls) -> set[str]: - """The names of all members of the collection that are not ignored in filters - (default).""" + """The names of all members of the collection that are not ignored in filters (default).""" return { name for name, member in cls.members().items() @@ -367,8 +365,7 @@ def eager_members(cls) -> set[str]: @classmethod def _failure_propagating_members(cls) -> set[str]: - """The names of all members of the collection that propagate individual row - failures to the collection.""" + """The names of all members of the collection that propagate individual row failures to the collection.""" return { name for name, member in cls.members().items() diff --git a/dataframely/collection/collection.py b/dataframely/collection/collection.py index 09c84ddf..a71a18e5 100644 --- a/dataframely/collection/collection.py +++ b/dataframely/collection/collection.py @@ -750,9 +750,7 @@ def join( how: Literal["semi", "anti"] = "semi", maintain_order: Literal["none", "left"] = "none", ) -> Self: - """Filter the collection by joining onto a data frame containing entries for the - common primary key columns whose respective rows should be kept or removed in - the collection members. + """Filter the collection by joining onto a data frame containing entries for the common primary key columns whose respective rows should be kept or removed in the collection members. Args: primary_keys: The data frame to join on. Must contain the common primary key diff --git a/dataframely/columns/_base.py b/dataframely/columns/_base.py index 1cb9cc6d..da145c26 100644 --- a/dataframely/columns/_base.py +++ b/dataframely/columns/_base.py @@ -45,7 +45,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. @@ -122,8 +123,7 @@ def _arrow_nullability(self) -> tuple[bool, list[Any]]: # ---------------------------------- VALIDATION ---------------------------------- # def validation_rules(self, expr: pl.Expr) -> dict[str, pl.Expr]: - """A set of rules evaluating whether a data frame column satisfies the column's - constraints. + """A set of rules evaluating whether a data frame column satisfies the column's constraints. Args: expr: An expression referencing the column of the data frame, i.e. an @@ -393,8 +393,7 @@ def sample(self, generator: Generator, n: int = 1) -> pl.Series: @abstractmethod def _sample_unchecked(self, generator: Generator, n: int) -> pl.Series: - """Private method sampling random elements without checking for custom - checks.""" + """Private method sampling random elements without checking for custom checks.""" @property def _null_probability(self) -> float: diff --git a/dataframely/columns/any.py b/dataframely/columns/any.py index 3f479c6f..348afa03 100644 --- a/dataframely/columns/any.py +++ b/dataframely/columns/any.py @@ -30,7 +30,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: check: A custom rule or multiple rules to run for this column. This can be: diff --git a/dataframely/columns/array.py b/dataframely/columns/array.py index 00a7de07..0d131f84 100644 --- a/dataframely/columns/array.py +++ b/dataframely/columns/array.py @@ -33,7 +33,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: inner: The inner column type. shape: The shape of the array. diff --git a/dataframely/columns/categorical.py b/dataframely/columns/categorical.py index dad676dc..b3ff00fa 100644 --- a/dataframely/columns/categorical.py +++ b/dataframely/columns/categorical.py @@ -29,7 +29,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: categories: An optional specification for how the categories for this categorical are stored. If `None` is provided (default), the global diff --git a/dataframely/columns/datetime.py b/dataframely/columns/datetime.py index a756a78d..03831601 100644 --- a/dataframely/columns/datetime.py +++ b/dataframely/columns/datetime.py @@ -46,7 +46,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. @@ -186,7 +187,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. @@ -334,7 +336,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. @@ -498,7 +501,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. diff --git a/dataframely/columns/decimal.py b/dataframely/columns/decimal.py index cce9fd40..52add35f 100644 --- a/dataframely/columns/decimal.py +++ b/dataframely/columns/decimal.py @@ -37,7 +37,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: precision: Maximum number of digits in each number. scale: Number of digits to the right of the decimal point in each number. diff --git a/dataframely/columns/enum.py b/dataframely/columns/enum.py index 2bbc44d4..5fd8fbcd 100644 --- a/dataframely/columns/enum.py +++ b/dataframely/columns/enum.py @@ -34,7 +34,8 @@ def __init__( sqlalchemy_use_enum: bool = False, sqlalchemy_enum_name: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: categories: The set of valid categories for the enum, or an existing Python string-valued enum. diff --git a/dataframely/columns/float.py b/dataframely/columns/float.py index d5f8ea2e..82e29b51 100644 --- a/dataframely/columns/float.py +++ b/dataframely/columns/float.py @@ -40,7 +40,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. diff --git a/dataframely/columns/integer.py b/dataframely/columns/integer.py index 8283225c..24c09190 100644 --- a/dataframely/columns/integer.py +++ b/dataframely/columns/integer.py @@ -36,7 +36,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. diff --git a/dataframely/columns/list.py b/dataframely/columns/list.py index ab2d1165..637350e1 100644 --- a/dataframely/columns/list.py +++ b/dataframely/columns/list.py @@ -36,7 +36,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: inner: The inner column type. If this type has `primary_key=True` set, all list items are required to be unique. If the inner type is a struct and @@ -70,6 +71,8 @@ def __init__( name that is not a valid Python identifier. Especially note that setting this option does _not_ allow to refer to the column with two different names, the specified alias is the only valid name. + min_length: The minimum number of elements required in each list. + max_length: The maximum number of elements allowed in each list. metadata: A dictionary of metadata to attach to the column. description: A human-readable description of the column. """ diff --git a/dataframely/columns/object.py b/dataframely/columns/object.py index 759c00a1..42aec5c6 100644 --- a/dataframely/columns/object.py +++ b/dataframely/columns/object.py @@ -25,7 +25,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. check: A custom rule or multiple rules to run for this column. This can be: diff --git a/dataframely/columns/string.py b/dataframely/columns/string.py index a198ed95..a66d158a 100644 --- a/dataframely/columns/string.py +++ b/dataframely/columns/string.py @@ -33,7 +33,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: nullable: Whether this column may contain null values. Explicitly set `nullable=True` if you want your column to be nullable. diff --git a/dataframely/columns/struct.py b/dataframely/columns/struct.py index e0d323c3..9dbfd328 100644 --- a/dataframely/columns/struct.py +++ b/dataframely/columns/struct.py @@ -30,7 +30,8 @@ def __init__( metadata: dict[str, Any] | None = None, description: str | None = None, ): - """ + """Initialize the column and its validation constraints. + Args: inner: The dictionary of struct fields. Struct fields may have `primary_key=True` set but this setting only takes effect if the diff --git a/dataframely/config.py b/dataframely/config.py index c9c81c6f..5cc838d7 100644 --- a/dataframely/config.py +++ b/dataframely/config.py @@ -49,8 +49,7 @@ def __init__(self, **options: Unpack[Options]) -> None: @staticmethod def set_max_sampling_iterations(iterations: int) -> None: - """Set the maximum number of sampling iterations to use on - :meth:`Schema.sample`.""" + """Set the maximum number of sampling iterations to use on :meth:`Schema.sample`.""" Config.options["max_sampling_iterations"] = iterations @staticmethod diff --git a/dataframely/filter_result.py b/dataframely/filter_result.py index 33994244..eab4c4da 100644 --- a/dataframely/filter_result.py +++ b/dataframely/filter_result.py @@ -71,8 +71,7 @@ def collect_all(self, **kwargs: Any) -> FilterResult[S]: class FailureInfo: - """A container carrying information about rows failing validation in - :meth:`Schema.filter`.""" + """A container carrying information about rows failing validation in :meth:`Schema.filter`.""" #: The subset of the input data frame containing the *invalid* rows along with #: all boolean columns used for validation. Each of these boolean columns describes @@ -108,8 +107,7 @@ def invalid(self) -> pl.DataFrame: return self._df.drop(self._rule_columns) def details(self) -> pl.DataFrame: - """Same as :meth:`invalid` but with additional columns indicating the results of - each individual rule. + """Same as :meth:`invalid` but with additional columns indicating the results of each individual rule. For each row, this includes: 1. All columns of the original data frame. diff --git a/dataframely/random.py b/dataframely/random.py index 4507dad2..73388c1a 100644 --- a/dataframely/random.py +++ b/dataframely/random.py @@ -34,7 +34,8 @@ class Generator: """ def __init__(self, seed: int | None = None) -> None: - """ + """Initialize the random number generator. + Args: seed: The seed to use for initializing the random number generator used for all sampling methods. diff --git a/dataframely/schema.py b/dataframely/schema.py index ad4f4442..1d409bcb 100644 --- a/dataframely/schema.py +++ b/dataframely/schema.py @@ -120,8 +120,9 @@ def create_empty_if_none( *, lazy: bool = False, ) -> DataFrame[Self] | LazyFrame[Self]: - """Impute `None` input with an empty, schema-compliant lazy or eager data frame - or return the input as lazy or eager frame. + """Impute `None` input with an empty, schema-compliant data frame. + + Return the input as a lazy or eager frame when it is not `None`. Args: df: The data frame to check for `None`. @@ -373,8 +374,7 @@ def _sample_filter( override_expressions: list[pl.Expr], missing_value_indices: dict[str, pl.Series], ) -> tuple[pl.DataFrame, pl.DataFrame, pl.DataFrame]: - """Private method to sample a data frame with the schema including subsequent - filtering. + """Private method to sample a data frame with the schema including subsequent filtering. Returns: The filtered data frame, the used values, and the remaining values. @@ -790,8 +790,7 @@ def cast( @classmethod def to_sqlalchemy_columns(cls, dialect: sa.Dialect) -> list[sa.Column]: - """Obtain the SQLAlchemy column definitions for a particular dialect for this - schema. + """Obtain the SQLAlchemy column definitions for a particular dialect for this schema. Args: dialect: The dialect for which to obtain the SQL schema. Note that column diff --git a/pixi.lock b/pixi.lock index 24274d7c..2b29f10b 100644 --- a/pixi.lock +++ b/pixi.lock @@ -10187,6 +10187,667 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.51.36247-h633cb9f_41.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.2-hfd05255_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h534d264_7.conda + py315: + channels: + - url: https://conda.anaconda.org/conda-forge/ + packages: + linux-64: + - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.13.1-py311hf77984d_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-hb7a77c6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-cal-0.9.14-h2aa3ae6_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-common-0.14.2-hb03c661_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-compression-0.3.2-h720e601_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-event-stream-0.7.1-h6ffeea8_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-http-0.11.0-h38ae05a_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-io-0.27.3-h6f4d18d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-mqtt-0.16.0-h21f4ec5_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-s3-0.12.8-h46fcd08_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-sdkutils-0.2.7-h720e601_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-checksums-0.2.10-h720e601_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-crt-cpp-0.40.1-h102d43b_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-sdk-cpp-1.11.833-hc7390e0_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-core-cpp-1.16.3-h206d751_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-identity-cpp-1.13.3-h71f81a8_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-blobs-cpp-12.18.0-h74b55db_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-common-cpp-12.14.0-hf596fc9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/azure-storage-files-datalake-cpp-12.16.0-h1f05bef_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-hda65f42_10.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.34.9-hebe6cf0_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.17.0-py315h4aa9e2b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/gflags-2.3.1-h54a6638_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/glog-0.7.1-hb7133d2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/keyutils-1.6.3-h7cc23a3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/krb5-1.22.2-hbc21106_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260526.0-cxx17_h0dc7533_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-25.0.0-hcc2f0d9_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-acero-25.0.0-h635bf11_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-compute-25.0.0-h53684a4_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-dataset-25.0.0-h635bf11_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-substrait-25.0.0-h66fbfdd_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libblas-3.11.0-11_h4a7cf45_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlicommon-1.2.1-h39a168f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlidec-1.2.1-ha411449_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libbrotlienc-1.2.1-h018ffa1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcblas-3.11.0-11_h0358290_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcrc32c-1.1.2-h9c3ff4c_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.21.0-hcf29cc6_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20260512-pl5321h373387f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h280c20c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libevent-2.1.12-h5348a74_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.9.0-hd2095e1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-16.2.0-h69a702a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran-16.2.0-h69a702a_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgfortran5-16.2.0-h6b99dfc_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-3.8.0-hbc29df5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgoogle-cloud-storage-3.8.0-hdbdcf42_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgrpc-1.82.1-h284dbb2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h0cb94f2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblapack-3.11.0-11_h47877c9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/liblzma-5.8.3-hb03c661_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libmpdec-4.0.0-hb03c661_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.68.1-h74cf4be_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopenblas-0.3.34-pthreads_hf13c14d_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-1.27.0-h3133023_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libopentelemetry-cpp-headers-1.27.0-ha770c72_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libparquet-25.0.0-h7376487_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libprotobuf-7.35.1-h622638d_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-hbb87c76_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.11.1-h6154650_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-16.2.0-hdf11a46_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libthrift-0.22.0-h7d032f7_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libutf8proc-2.11.3-hfe17d71_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-16-2.15.4-hbdfff7e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.15.4-ha7a5771_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libzlib-1.3.2-h25fd6f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.10.0-hee9eb32_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/maturin-1.15.0-py311h9fc2d8e_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-2.4.0-py315hd4e796c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/nlohmann_json-3.12.0-h54a6638_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/numpy-2.5.4-py315h11958a5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.3.1-h443056b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.1.0-np2py315h105398f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.43.2-py310h9585f58_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py315hd4e796c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-25.0.0-py315h6439f66_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-25.0.0-py315h5fe1983_1_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyodbc-5.3.0-py315h219b181_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.15.2-h6e52b48_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.16.0-py315hd4e796c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2025.11.05-hbf548d4_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/s2n-1.7.5-h7e3ee7f_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.9.1-np2py315h09497ca_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.18.1-py315heedce22_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/snappy-1.2.2-h34e00bb_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/unixodbc-2.3.14-h69e2008_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zlib-1.3.2-h25fd6f3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.2-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_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/narwhals-2.27.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-3.0.5.260914-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-benchmark-5.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-md-0.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.2-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.5.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + linux-aarch64: + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/_openmp_mutex-4.5-20_gnu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ast-serialize-0.13.1-py311h8ca180e_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-auth-0.10.4-h03961ac_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-cal-0.9.14-h6c1c863_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-common-0.14.2-he30d5cf_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-compression-0.3.2-hbf34bff_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-event-stream-0.7.1-h423fd5f_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-http-0.11.0-hb2c4768_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-io-0.27.3-hc846123_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-mqtt-0.16.0-hf64e385_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-s3-0.12.8-h681413d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-sdkutils-0.2.7-hbf34bff_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-checksums-0.2.10-hbf34bff_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-crt-cpp-0.40.1-h18900c3_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-sdk-cpp-1.11.833-h1131a43_9.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/azure-core-cpp-1.16.3-h412bcfc_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/azure-identity-cpp-1.13.3-hd0001b6_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/azure-storage-blobs-cpp-12.18.0-h2e50874_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/azure-storage-common-cpp-12.14.0-hacd5e5f_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/azure-storage-files-datalake-cpp-12.16.0-hde34f15_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/bzip2-1.0.8-h4777abc_10.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/c-ares-1.34.9-h29ee22c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/coverage-7.17.0-py315h52ab114_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/gflags-2.3.1-h7ac5ae9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/glog-0.7.1-ha2f5727_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/keyutils-1.6.3-h5bc82ec_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/krb5-1.22.2-h095d8e5_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.46.1-default_h1979696_103.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libabseil-20260526.0-cxx17_hc5e897d_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarrow-25.0.0-hf28620a_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarrow-acero-25.0.0-hb326ee9_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarrow-compute-25.0.0-hdd99842_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarrow-dataset-25.0.0-hb326ee9_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarrow-substrait-25.0.0-hd99807d_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libblas-3.11.0-11_haddc8a3_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlicommon-1.2.1-h384ecca_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlidec-1.2.1-h011f0d3_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libbrotlienc-1.2.1-hb247b97_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcblas-3.11.0-11_hd72aa62_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcrc32c-1.1.2-h01db608_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.21.0-hc57f145_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20260512-pl5321hc48eb74_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libev-4.33-h80f16a2_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libevent-2.1.12-h5c01fa6_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.9.0-h4154aff_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.7.0-hdaad0be_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-16.2.0-h205dda4_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-16.2.0-he9431aa_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran-16.2.0-he9431aa_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgfortran5-16.2.0-hc864f27_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-16.2.0-h8acb6b2_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgoogle-cloud-3.8.0-h2efc11c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgoogle-cloud-storage-3.8.0-h66d5b86_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgrpc-1.82.1-h25f3222_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.18-h1ea5142_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblapack-3.11.0-11_h88aeb00_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/liblzma-5.8.3-he30d5cf_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libmpdec-4.0.0-he30d5cf_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libnghttp2-1.68.1-ha4b982d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libopenblas-0.3.34-pthreads_h4148b7d_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libopentelemetry-cpp-1.27.0-hbe47268_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libopentelemetry-cpp-headers-1.27.0-h8af1aa0_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libparquet-25.0.0-h87079af_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libprotobuf-7.35.1-h809b94e_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libre2-11-2025.11.05-hf13fea9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.54.1-hd26f1b6_101.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-h7572e3e_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-16.2.0-hef695bb_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-ng-16.2.0-hdbbeba8_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libthrift-0.22.0-ha522d1d_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libutf8proc-2.11.3-hec6f9f7_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.42.4-hd6fdeab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-16-2.15.4-h183574b_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxml2-2.15.4-ha1111c9_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libzlib-1.3.2-hdc9db2a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lz4-c-1.10.0-hfb11796_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/maturin-1.15.0-py311h4b28096_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mypy-2.4.0-py315h161ad5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-h2b6f883_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/nlohmann_json-3.12.0-h7ac5ae9_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/numpy-2.5.4-py315h8050b43_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.6.5-he6ad1d5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/orc-2.3.1-h1fb4f23_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pandas-3.1.0-np2py315hef38079_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/polars-runtime-32-1.43.2-py310ha6a983b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/prometheus-cpp-1.3.0-h7938499_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/psutil-7.2.2-py315h161ad5a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-25.0.0-py315ha1274e1_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-core-25.0.0-py315h13e68b3_1_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyodbc-5.3.0-py315habfbd8b_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.15.2-h0c7c799_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-librt-0.16.0-py315h161ad5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/re2-2025.11.05-he78ab50_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/s2n-1.7.5-h61cb6f2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scikit-learn-1.9.1-np2py315hda4e083_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.18.1-py315h826f625_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/snappy-1.2.2-h7d29b6f_2.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/tk-8.6.13-noxft_hf03c496_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/unixodbc-2.3.14-h1344786_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zlib-1.3.2-hdc9db2a_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zstd-1.5.7-h9d15635_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.2-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_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/narwhals-2.27.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-3.0.5.260914-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-benchmark-5.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-md-0.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.2-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.5.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + osx-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.2-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_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/narwhals-2.27.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-3.0.5.260914-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-benchmark-5.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-md-0.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.2-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.5.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/_openmp_mutex-4.5-8_kmp_llvm.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ast-serialize-0.13.1-py311h2a8a194_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.10.4-h74cc20c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-cal-0.9.14-h1727fe8_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-common-0.14.2-ha1e9b39_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-compression-0.3.2-h83f6fd2_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-event-stream-0.7.1-h8a1f669_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-http-0.11.0-h6a26125_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-io-0.27.3-h1fab602_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-mqtt-0.16.0-h3619873_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-s3-0.12.8-h4da758a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-sdkutils-0.2.7-h83f6fd2_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-checksums-0.2.10-h83f6fd2_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-crt-cpp-0.40.1-hfc09f7c_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-sdk-cpp-1.11.833-hcd60bbe_9.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-core-cpp-1.16.3-hce1ca1b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-identity-cpp-1.13.3-hfaa3f56_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-blobs-cpp-12.18.0-h5a4125c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-common-cpp-12.14.0-hdf1104b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/azure-storage-files-datalake-cpp-12.16.0-hf005220_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-h374f1ed_10.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.34.9-had63097_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.17.0-py315h0c08d44_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/gflags-2.3.1-h2fb4741_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/glog-0.7.1-h90d9b41_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/krb5-1.22.2-h69064fd_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20260526.0-cxx17_h6e8c311_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-25.0.0-he333e4a_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-acero-25.0.0-h620650e_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-compute-25.0.0-h03721a0_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-dataset-25.0.0-h620650e_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-substrait-25.0.0-h0ec1645_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libblas-3.11.0-11_he492b99_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlicommon-1.2.1-he0616a4_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlidec-1.2.1-h4a2f56c_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libbrotlienc-1.2.1-h3d41943_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcblas-3.11.0-11_h9b27e0a_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcrc32c-1.1.2-he49afe7_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcurl-8.21.0-h8f0b9e4_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-23.1.4-h19cb2f5_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20260512-pl5321hba2e2ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-ha3d0635_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libevent-2.1.12-hf6fecaa_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.9.0-h6e061ac_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.7.0-h6b3a05b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgcc-16.2.0-h13771c8_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran-16.2.0-h7e5c614_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgfortran5-16.2.0-h2539e6c_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-3.8.0-he806f76_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgoogle-cloud-storage-3.8.0-h1159701_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libgrpc-1.82.1-h153d9f4_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.18-h4ae439b_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblapack-3.11.0-11_h859234e_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/liblzma-5.8.3-hbb4bfdb_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libmpdec-4.0.0-ha1e9b39_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.68.1-h1e30255_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libopenblas-0.3.34-openmp_h5c7ac21_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-1.27.0-h3bf6f87_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libopentelemetry-cpp-headers-1.27.0-h694c41f_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libparquet-25.0.0-hd9337e7_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libprotobuf-7.35.1-h535088a_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h2c51b9f_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.54.1-ha5db789_101.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hd53bb72_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libthrift-0.22.0-hebea4ca_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libutf8proc-2.11.3-hc282952_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-16-2.15.4-h341e563_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.15.4-h3668fe6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/libzlib-1.3.2-hbb4bfdb_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-23.1.4-h8c1e6b9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.10.0-hc569e58_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/maturin-1.15.0-py311h5f257d4_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-2.4.0-py315h54bb5ba_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/nlohmann_json-3.12.0-h2fb4741_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/numpy-2.5.4-py315h498e5b8_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.5-h332eb6d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.3.1-h982cfee_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-3.1.0-np2py315h1dd93b8_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.43.2-py310hbfc13ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.2-py315h54bb5ba_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-25.0.0-py315h5de8b50_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-25.0.0-py315h51131e7_1_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/pyodbc-5.3.0-py315h1e040c3_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.15.2-h0abcc05_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.16.0-py315h54bb5ba_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2025.11.05-h1e1851c_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/s2n-1.7.5-he8c8f02_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.9.1-np2py315h607eb07_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.18.1-py315h7e9e94e_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/snappy-1.2.2-h3613d57_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.13-ha6c374e_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/unixodbc-2.3.14-haf169fc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zlib-1.3.2-hbb4bfdb_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/zstd-1.5.7-hbc1a06c_7.conda + osx-arm64: + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.2-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_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/narwhals-2.27.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-3.0.5.260914-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-benchmark-5.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-md-0.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.2-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.5.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/_openmp_mutex-4.5-8_kmp_llvm.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ast-serialize-0.13.1-py311hfcb3ee1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.10.4-h0f08c97_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-cal-0.9.14-hb9ed60c_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-common-0.14.2-h84a0fba_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-compression-0.3.2-hf0b4b85_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-event-stream-0.7.1-ha581b6a_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-http-0.11.0-h27f0cb5_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-io-0.27.3-ha24efe8_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-mqtt-0.16.0-hf1a914d_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-s3-0.12.8-hdc61527_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-sdkutils-0.2.7-hf0b4b85_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-checksums-0.2.10-hf0b4b85_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-crt-cpp-0.40.1-h5b5d287_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-sdk-cpp-1.11.833-haa98fb3_9.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-core-cpp-1.16.3-he5ae378_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-identity-cpp-1.13.3-h05177fb_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-blobs-cpp-12.18.0-h409340b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-common-cpp-12.14.0-h7cba3ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/azure-storage-files-datalake-cpp-12.16.0-h16bb3af_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/bzip2-1.0.8-h4e30115_10.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/c-ares-1.34.9-h74c22ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.17.0-py315h0c34f12_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/gflags-2.3.1-h784d473_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/glog-0.7.1-h6f9ecc1_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/krb5-1.22.2-h34f8a20_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20260526.0-cxx17_h4c27e2a_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-25.0.0-haaed7fe_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-acero-25.0.0-heaff1e6_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-compute-25.0.0-h93a2d87_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-dataset-25.0.0-heaff1e6_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-substrait-25.0.0-h2208e57_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libblas-3.11.0-11_h51639a9_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlicommon-1.2.1-h1dcdb26_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlidec-1.2.1-h5295a6a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libbrotlienc-1.2.1-h2ddc9cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcblas-3.11.0-11_hb0561ab_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcrc32c-1.1.2-hbdafb3b_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.21.0-hd5a2499_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.4-h55c6f16_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20260512-pl5321h26f1114_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libev-4.33-h1a92334_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libevent-2.1.12-h4b5715a_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.9.0-h6111c0a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.7.0-h47dc5ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgcc-16.2.0-h3cf6597_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran-16.2.0-h07b0088_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgfortran5-16.2.0-hdb7a957_7.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-3.8.0-ha595bda_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgoogle-cloud-storage-3.8.0-hc8aed40_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libgrpc-1.82.1-h74070d8_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-he4c29f2_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblapack-3.11.0-11_hd9741b5_openblas.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libmpdec-4.0.0-h84a0fba_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libnghttp2-1.68.1-h435687b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopenblas-0.3.34-openmp_h5e6e99c_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-1.27.0-h46c1d2a_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libopentelemetry-cpp-headers-1.27.0-hce30654_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libparquet-25.0.0-h0de02aa_4_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libprotobuf-7.35.1-h391e224_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-hc0bb115_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_101.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libssh2-1.11.1-hbf2880b_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libthrift-0.22.0-h1fb9c8a_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libutf8proc-2.11.3-h2431656_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-16-2.15.4-hea22233_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libxml2-2.15.4-hdcc4aff_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libzlib-1.3.2-h8088a28_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-23.1.4-hdb3d66b_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-hdca3b7d_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/maturin-1.15.0-py311h4b2e163_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-2.4.0-py315hc6682d9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-he64c551_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/nlohmann_json-3.12.0-h784d473_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/numpy-2.5.4-py315h39cfc7d_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.3.1-hef2a647_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-3.1.0-np2py315h5900ff1_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.43.2-py310hcbcba24_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py315hc6682d9_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-25.0.0-py315h016ee38_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-25.0.0-py315h978f751_1_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyodbc-5.3.0-py315h9d690bc_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.15.2-h2e4dbab_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.16.0-py315hc6682d9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2025.11.05-hb8e9f31_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/s2n-1.7.5-h1b28cb6_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.9.1-np2py315h67956b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.18.1-py315he7dc495_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/snappy-1.2.2-h3951085_2.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/tk-8.6.13-hbeba79b_4.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/unixodbc-2.3.14-h3f2ae4a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zlib-1.3.2-h8088a28_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda + win-64: + - conda: https://conda.anaconda.org/conda-forge/noarch/_python_abi3_support-1.0-hd8ed1ab_3.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-h4c7d964_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cloudpickle-3.1.2-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.2-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/joblib-1.6.0-pyhcf101f3_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/narwhals-2.27.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pandas-stubs-3.0.5.260914-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-benchmark-5.3.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-cov-7.1.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-md-0.2.0-pyhcf101f3_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.17.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.2-h4df99d1_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/threadpoolctl-3.7.0-pyhc455866_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pytz-2026.5.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing_extensions-4.16.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/ast-serialize-0.13.1-py311h66afae6_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.10.4-hc6e9107_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-cal-0.9.14-h032d170_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-common-0.14.2-hfd05255_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-compression-0.3.2-h1da161f_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-event-stream-0.7.1-h88938e3_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-http-0.11.0-h667fc28_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-io-0.27.3-hbdc738f_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-mqtt-0.16.0-hd7b40c3_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-s3-0.12.8-hd7ee1a1_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-sdkutils-0.2.7-h1da161f_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-checksums-0.2.10-h1da161f_4.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-crt-cpp-0.40.1-he7c1723_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/aws-sdk-cpp-1.11.833-hdf1b151_9.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-core-cpp-1.16.3-h49e36cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-identity-cpp-1.13.3-hf9fdf8e_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-blobs-cpp-12.18.0-h4fb3251_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-common-cpp-12.14.0-hf9fdf8e_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/azure-storage-files-datalake-cpp-12.16.0-heb2e695_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h0ad9c76_10.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.9-h6a83c73_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.17.0-py315h4c1998f_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/icu-78.3-h5112557_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/krb5-1.22.2-h719d79b_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20260526.0-cxx17_h04e5de1_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-25.0.0-h20c36f3_3_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-acero-25.0.0-h7d8d6a5_3_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-compute-25.0.0-h081cd8e_3_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-dataset-25.0.0-h7d8d6a5_3_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-substrait-25.0.0-hffb5221_3_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libblas-3.11.0-11_h8455456_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.2.1-hf02afa3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.2.1-h84f9c24_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.2.1-he2a975b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-11_h2a3cdd5_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libcrc32c-1.1.2-h0e60522_0.tar.bz2 + - conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.23.0-hdb0ef4a_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-hc903f1e_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.9.0-hac47afa_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.7.0-h3d046cb_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-3.7.0-hfe3f7e9_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgoogle-cloud-storage-3.7.0-he04ea4c_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libgrpc-1.82.1-he6cc664_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libhwloc-2.15.0-default_hae90fe0_1001.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libiconv-1.18-hc1393d2_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblapack-3.11.0-11_hf9ab0e9_mkl.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/liblzma-5.8.3-hfd05255_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libmpdec-4.0.0-hfd05255_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libopentelemetry-cpp-1.27.0-h4cd8edf_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libopentelemetry-cpp-headers-1.27.0-h57928b3_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libparquet-25.0.0-h7051d1f_3_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libprotobuf-7.35.1-h1a71995_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libpsl-0.23.1-h9b16d47_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libre2-11-2025.11.05-h45f70d9_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.54.1-hf5d6505_101.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h734d217_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libthrift-0.22.0-h2e43b2f_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libutf8proc-2.11.3-hb980946_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r688.g6b2176247.1-h57928b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.4-h3cfd58e_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-2.15.4-he095d88_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/libzlib-1.3.2-hfd05255_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-23.1.4-h49e36cd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.10.0-h6a83c73_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/maturin-1.15.0-py311h9e3274c_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mkl-2026.1.0-hac47afa_235.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/mypy-2.4.0-py315h37d93b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/nlohmann_json-3.12.0-h5112557_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/numpy-2.5.4-py315hb1344af_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.6.5-hf411b9b_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.3.1-hf7eca67_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-3.1.0-np2py315h06e9524_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.43.2-py310h60426dd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/prometheus-cpp-1.3.0-hd44ad28_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.2.2-py315h37d93b3_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-25.0.0-py315h5f0381a_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-25.0.0-py315h46fe2c0_1_cpu.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/pyodbc-5.3.0-py315h05291f8_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.15.2-h53f6dd8_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.16.0-py315h37d93b3_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/re2-2025.11.05-haef9524_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.9.1-np2py315h2eb6698_1.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.18.1-py315h2b81d6d_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tbb-2023.1.0-h272cf33_2.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/tk-8.6.13-h967ab96_4.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/vc-14.5-ha367084_41.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vc14_runtime-14.51.36247-habf1de7_41.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vcomp14-14.51.36247-habf1de7_41.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.51.36247-h633cb9f_41.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zlib-1.3.2-hfd05255_3.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/zstd-1.5.7-h534d264_7.conda packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda build_number: 20 @@ -10248,6 +10909,23 @@ packages: run_exports: {} size: 1153944 timestamp: 1791121762897 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ast-serialize-0.13.1-py311hf77984d_0.conda + noarch: python + sha256: 4ad7663308296e177d07ff2c3441e70541c71054fd950677a610cd199d5f7721 + md5: a7552ec3837008b39098388e004fc461 + depends: + - python >=3.11 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 1154166 + timestamp: 1792226506979 - conda: https://conda.anaconda.org/conda-forge/linux-64/aws-c-auth-0.10.4-hb7a77c6_1.conda sha256: 845fe32ee750d4a4d3efdb1d95a8c29c3388e3ea9787b77341ec4abe4e198b11 md5: 4347d5ffdf34adf9c5edd10837727d96 @@ -10772,6 +11450,18 @@ packages: run_exports: {} size: 446880 timestamp: 1790542080154 +- conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.17.0-py315h4aa9e2b_0.conda + sha256: a0529bc2284b076ea22dde49945147ba915462ba285b6deb9ebdf50ba4a23c53 + md5: ff2d5014667134ca37f74c4125c4cddc + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + run_exports: {} + size: 449527 + timestamp: 1793049301371 - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-50.0.2-py311hc91d8b8_0.conda noarch: python sha256: d1956b37648b45d54e884d765223974fe6e26d4e7ea248cd08c625ba8cd823ab @@ -10920,6 +11610,19 @@ packages: run_exports: {} size: 745303 timestamp: 1784214507189 +- conda: https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.46.1-default_hbd61a6d_103.conda + sha256: 901649b1edbe841fd4ee7e2d491a05184ed540eb01cdae506872f344babc1d28 + md5: 2362c70e7e79827c32db35547d9c179b + depends: + - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - binutils_impl_linux-64 2.46.1 + license: GPL-3.0-only + license_family: GPL + run_exports: {} + size: 742109 + timestamp: 1791565468810 - conda: https://conda.anaconda.org/conda-forge/linux-64/lefthook-2.1.16-hfc2019e_0.conda sha256: 105bc1e03fa0e9faad917f4360a114ce6d58fcfec5f6c2508be50e5bf0c1e2c7 md5: 7895430c657ce23324909f9e480ff7d2 @@ -10954,6 +11657,24 @@ packages: - libabseil =*=cxx17* size: 1436888 timestamp: 1787217011773 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libabseil-20260526.0-cxx17_h0dc7533_3.conda + sha256: 24708450d80f4d542fc357c941909446e0b6caffb8baca478a0da1f74820e688 + md5: d224f3a53f55029366c73161f15461fb + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=14 + - libstdcxx >=14 + constrains: + - abseil-cpp =20260526.0 + - libabseil-static =20260526.0=cxx17* + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - libabseil >=20260526.0,<20260527.0a0 + - libabseil =*=cxx17* + size: 1440678 + timestamp: 1791681043356 - conda: https://conda.anaconda.org/conda-forge/linux-64/libarrow-25.0.0-hcc2f0d9_4_cpu.conda build_number: 4 sha256: b3b92d94fa20d1d195de702c4b61cd0c3438d26672cbaf6ebbf021114a840a77 @@ -11311,6 +12032,19 @@ packages: run_exports: {} size: 77893 timestamp: 1790346247149 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.9.0-hd2095e1_0.conda + sha256: 7b930a8b6bc6553cb754b4977a11f9c862c719a652fc2d128d89270992ce8beb + md5: 317ecabe4a58b3068c7958dc5eb89e43 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - expat 2.9.0.* + license: MIT + license_family: MIT + run_exports: {} + size: 78894 + timestamp: 1793054221966 - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda sha256: c8c7583ef063bc3c430f1d48298e5ad24f796a35c22ed5b14183325825a61106 md5: 6525a0b06aa4fd390795f0740636a9dd @@ -11725,6 +12459,24 @@ packages: - libre2-11 >=2025.11.5 size: 210598 timestamp: 1781312565737 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libre2-11-2025.11.05-hbb87c76_2.conda + sha256: 25e27f9bcd3c5f31ad59179a3b86a369bdd87e17bb0335e8f42d5b6c5b8e5d6f + md5: f5ef2e8db8f34d3f96bcdb22db0ca5b2 + depends: + - __glibc >=2.17,<3.0.a0 + - libabseil * cxx17* + - libabseil >=20260526.0,<20260527.0a0 + - libgcc >=15 + - libstdcxx >=15 + constrains: + - re2 2025.11.05.* + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + size: 211902 + timestamp: 1792580638819 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-hebe6cf0_3.conda sha256: 2f73c05a1ad07e5a2cb43f0b3759cb04505f0c8bef30b43c9db0caa50218bfd8 md5: 2d14868d78e969226e4ba07444c0dd25 @@ -11752,6 +12504,21 @@ packages: - libsqlite >=3.54.1,<4.0a0 size: 980418 timestamp: 1792175610911 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_101.conda + sha256: c294029f893d05286f1061bbab85b820f1eea73dd859af4bcc619197bcc34810 + md5: 36e097bf5f1e0699e88c8ac801f2dc65 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + constrains: + - icu <0.0a0 + license: blessing + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 980491 + timestamp: 1793051548007 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h13e7031_0.conda sha256: 07b3c98282022f05781122d073f84e944bfb4299946e8457ece3ce6c384ff78e md5: 8f15f0ec9b69344df5c3bb5cce1751a1 @@ -12148,6 +12915,25 @@ packages: run_exports: {} size: 24047132 timestamp: 1790965578260 +- conda: https://conda.anaconda.org/conda-forge/linux-64/mypy-2.4.0-py315hd4e796c_0.conda + sha256: 35efe560de47585c1a50aaaa248ea40d69a9f89ef2f6fd8f64ceefbe36ac046e + md5: 7ed6704ad36d713bdf53dbb5d7eda539 + depends: + - ast-serialize >=0.11.2,<1.0.0 + - mypy_extensions >=1.0.0 + - pathspec >=1.0.0 + - python + - python-librt >=0.16.0 + - typing_extensions >=4.14.0 + - psutil >=4.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 24085791 + timestamp: 1790965540429 - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda sha256: 5d46557214ed184381dafe835b7c94a474a1c3b307a08a250b1ea4779b44ffb3 md5: ee6c0cd80a60961a1f48aa3e0b91f986 @@ -12579,6 +13365,59 @@ packages: run_exports: {} size: 15425802 timestamp: 1789803361338 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.1.0-np2py315h105398f_0.conda + sha256: a1db2151781e013aeb3683c183861f98c4300eba012fb56ab61dfc2bac9ac761 + md5: f0537917e1c42266990ea0da04ecc8e4 + depends: + - python + - numpy >=2.0.2 + - python-dateutil >=2.9.0 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - libgcc >=15 + - numpy >=1.25,<3 + - python_abi 3.15.* *_cp315 + constrains: + - adbc-driver-postgresql >=1.7.0 + - adbc-driver-sqlite >=1.7.0 + - beautifulsoup4 >=4.13.4 + - bottleneck >=1.5.0 + - fastparquet >=2024.11.0 + - fsspec >=2025.7.0 + - gcsfs >=2025.7.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.6 + - lxml >=6.0.0 + - matplotlib >=3.10.5 + - numba >=0.61.2 + - numexpr >=2.11.0 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=16.0.0 + - pyiceberg >=0.9.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.11 + - pyreadstat >=1.3.0 + - pytables >=3.10.2 + - python-calamine >=0.4.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.3 + - scipy >=1.16.1 + - s3fs >=2025.7.0 + - sqlalchemy >=2.0.42 + - tabulate >=0.9.0 + - xarray >=2025.7.1 + - xlrd >=2.0.2 + - xlsxwriter >=3.2.5 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 17368926 + timestamp: 1792679036523 - conda: https://conda.anaconda.org/conda-forge/linux-64/pandoc-3.12-ha770c72_0.conda sha256: 9ec6bb8e28618be34febca56bc54e55957eb094bb7f0ec4fb57dbac42b1526f0 md5: 19d3fed3365d1fb583af12b5808c333a @@ -12831,6 +13670,22 @@ packages: run_exports: {} size: 26040 timestamp: 1784258391200 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-25.0.0-py315h6439f66_1.conda + sha256: 81a8957a01a6960594a0c4da60c6852fb2994e5a09a88c33868430b90001c0dd + md5: cf9cc431e25ff077be78aadc72657121 + depends: + - libarrow-acero 25.0.0.* + - libarrow-dataset 25.0.0.* + - libarrow-substrait 25.0.0.* + - libparquet 25.0.0.* + - pyarrow-core 25.0.0 *_1_* + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 26310 + timestamp: 1792228375336 - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-25.0.0-py311h66caee6_0_cpu.conda sha256: 902247e1d1f74de9af4420f044c404a8acdbd98809688123d76926e94878db9a md5: 239354664a203fc93d1eca5d19e91d94 @@ -12911,6 +13766,27 @@ packages: run_exports: {} size: 5466581 timestamp: 1784258329989 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-core-25.0.0-py315h5fe1983_1_cpu.conda + build_number: 1 + sha256: d679d745a60f94d2e839a897fad60c2d89d7bfb04aca5c70cc668b8d99740322 + md5: 23bf4e2073a105bb915f73d63010644d + depends: + - __glibc >=2.17,<3.0.a0 + - libarrow 25.0.0.* *cpu + - libarrow-compute 25.0.0.* *cpu + - libgcc >=15 + - libstdcxx >=15 + - libzlib >=1.3.2,<2.0a0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + constrains: + - apache-arrow-proc * cpu + - numpy >=1.23,<3 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 5022689 + timestamp: 1792228303182 - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.46.5-py311ha6e1976_2.conda sha256: d551f5186ae3a5cad2138358b70a345733f3f8a4d204d694c4949324f9802dba md5: 115906f329806275341f67b598d52ef5 @@ -13003,6 +13879,21 @@ packages: run_exports: {} size: 85057 timestamp: 1789242550345 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyodbc-5.3.0-py315h219b181_3.conda + sha256: d4980004e36a6cba836d17139058c735890ee5a80a51be4865d4919ef4850c6b + md5: 11f1f0fe8b1bf136501ee9b12a6b3704 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - python_abi 3.15.* *_cp315 + - unixodbc >=2.3.14,<2.4.0a0 + license: MIT + license_family: MIT + run_exports: {} + size: 85149 + timestamp: 1789242241474 - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.11.17-h5f976f7_2_cpython.conda build_number: 2 sha256: 4429baf50718406938c256b8b65bc4fbbaeb9b1513ba161f618908f302cc03e3 @@ -13166,6 +14057,38 @@ packages: size: 29208444 timestamp: 1792611696047 python_site_packages_path: lib/python3.15/site-packages +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.15.2-h6e52b48_100_cp315.conda + build_number: 100 + sha256: dd6fdef748df5636029673a834ca3632ce44c86d71e4986d70bcdb2ae5607a25 + md5: 38c3edc23439db3ca383be02ae2b702e + depends: + - __glibc >=2.17,<3.0.a0 + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-64 >=2.36.1 + - libedit >=3.1.20260512,<3.2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libgcc >=15 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.54.1,<4.0a0 + - libuuid >=2.42.4,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.15.* *_cp315 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + run_exports: + weak: + - python_abi 3.15.* *_cp315 + noarch: + - python + size: 29327137 + timestamp: 1793015518763 + python_site_packages_path: lib/python3.15/site-packages - conda: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.16.0-py311h194be0f_0.conda sha256: c1e81344904797a801336b0bfd66dfbb18dca98815fb648b8313f9a94ac03466 md5: 967671b7c43dcf380444deafa9d671ad @@ -13218,6 +14141,19 @@ packages: run_exports: {} size: 167820 timestamp: 1790684473363 +- conda: https://conda.anaconda.org/conda-forge/linux-64/python-librt-0.16.0-py315hd4e796c_0.conda + sha256: ff083df07e0b164f014514a0d48259d6a9b6bcefb920f3778267a9dd546ba2fa + md5: 1c53ca1292de71588550520fd9c53ceb + depends: + - python + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 167747 + timestamp: 1790684469641 - conda: https://conda.anaconda.org/conda-forge/linux-64/pyyaml-6.0.3-py311h3778330_1.conda sha256: c9a6cd2c290d7c3d2b30ea34a0ccda30f770e8ddb2937871f2c404faf60d0050 md5: a24add9a3bababee946f3bc1c829acfe @@ -13336,6 +14272,19 @@ packages: - re2 size: 27397 timestamp: 1781312576962 +- conda: https://conda.anaconda.org/conda-forge/linux-64/re2-2025.11.05-hbf548d4_2.conda + sha256: e5a613e3a2ce2947346c783972e04224b5f7e713d0c2c9dbd3cd508ea8ff3662 + md5: cf36abc55d2669b207d8bff73fb05666 + depends: + - libre2-11 2025.11.05 hbb87c76_2 + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + - re2 + size: 27439 + timestamp: 1792580647025 - conda: https://conda.anaconda.org/conda-forge/linux-64/readline-8.3-hd6e31c0_1.conda sha256: 01b3fe073a66e321970d09e04b388708f8cbdca5cdfbfcb7c9eeb470ad10383d md5: 69c01c781e7c8190bbdaf79e3848c5ca @@ -13547,6 +14496,27 @@ packages: run_exports: {} size: 10250499 timestamp: 1790072929317 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scikit-learn-1.9.1-np2py315h09497ca_1.conda + sha256: d56162093a9836dcb39e3dcf0ae4c61570476768117bf687d9251a1093fe5186 + md5: ec62f15648ff2abf22ac91f94a43d8a1 + depends: + - python + - numpy >=1.24.1 + - scipy >=1.10.0 + - joblib >=1.4.0 + - threadpoolctl >=3.5.0 + - narwhals >=2.0.1 + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 10248007 + timestamp: 1790072922563 - conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.17.1-py311hbe70eeb_1.conda sha256: 3ae2ff1d1cc5930de2ca6ac03216118bdf13b2af6098e28e827f1ba25bfcbc4e md5: 089de2ee37e4e19885c985a4fe4aaf14 @@ -13635,6 +14605,28 @@ packages: run_exports: {} size: 17462716 timestamp: 1790022695245 +- conda: https://conda.anaconda.org/conda-forge/linux-64/scipy-1.18.1-py315heedce22_2.conda + sha256: 105d6ab365aab74dbcb057a91a4a532ac9387a0635811a29dd873dbdd85ed068 + md5: 759934dbee58cf8a9ca58558859cefd6 + depends: + - __glibc >=2.17,<3.0.a0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=15 + - libgfortran + - libgfortran5 >=15.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=15 + - numpy <2.8 + - numpy >=1.25,<3 + - numpy >=2.0.0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 17464097 + timestamp: 1792930475373 - conda: https://conda.anaconda.org/conda-forge/linux-64/sed-4.10-h19d0853_0.conda sha256: b013d2085ce4ac01daec7b30472e9f3b6c2d69eb3a3a85a6cee3e01a3cb4f61a md5: e4a1ff2e59a5d9b38be71d15c93cf1bd @@ -13953,6 +14945,22 @@ packages: run_exports: {} size: 1131815 timestamp: 1791121766749 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ast-serialize-0.13.1-py311h8ca180e_0.conda + noarch: python + sha256: d5e356285a6801e285381f3ae863c23370055f433848da6055d6c569953286d6 + md5: 7d85820095e34813d293a74f83f71aac + depends: + - python >=3.11 + - libgcc >=15 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 1134334 + timestamp: 1792226503511 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/aws-c-auth-0.10.4-h03961ac_1.conda sha256: 6d9fe5b1e2335e7f0364da18a7467e9bea66184b189b1f3e4a103bd7ce74eee5 md5: 3d7c8f2150a3ae6238f82a03e72771c7 @@ -14429,6 +15437,17 @@ packages: run_exports: {} size: 447785 timestamp: 1790542416113 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/coverage-7.17.0-py315h52ab114_0.conda + sha256: f32d09e866f7ef1deb84cfc955e3cdf71174c43857ebc9c88e7b86f9072be569 + md5: 27fa42c42c5403f25fb8187250ec374b + depends: + - python + - libgcc >=15 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + run_exports: {} + size: 450109 + timestamp: 1793049585081 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-50.0.2-py311h9269228_0.conda noarch: python sha256: 3636b61361abb09454348da5c32e6e3bbe62248547cd4255ce471469d671883a @@ -14567,6 +15586,18 @@ packages: run_exports: {} size: 905305 timestamp: 1784214534868 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ld_impl_linux-aarch64-2.46.1-default_h1979696_103.conda + sha256: 516808982ad26ebdc4a9d8f71ee86ea55d0bc95382b7bca80620e0ac220971f3 + md5: ca781d8b499c39ddfe10e55a0347d6d9 + depends: + - zstd >=1.5.7,<1.6.0a0 + constrains: + - binutils_impl_linux-aarch64 2.46.1 + license: GPL-3.0-only + license_family: GPL + run_exports: {} + size: 905349 + timestamp: 1791565559147 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/lefthook-2.1.16-h22914b5_0.conda sha256: 353cf7c0bd385748eef887d7ebee13169fd09833ed921c387ed36985a6677b14 md5: ff1ad356a5c4b6ae5e544c9c4816a8f9 @@ -14600,6 +15631,23 @@ packages: - libabseil =*=cxx17* size: 1460594 timestamp: 1787216970549 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libabseil-20260526.0-cxx17_hc5e897d_3.conda + sha256: e59c284b0449ab46569966c6ecad5b22848da3b18bb9f441c3907100c0f9ce03 + md5: ba780b0128b191a9e0e468fc0d7ce237 + depends: + - libgcc >=14 + - libstdcxx >=14 + constrains: + - abseil-cpp =20260526.0 + - libabseil-static =20260526.0=cxx17* + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - libabseil >=20260526.0,<20260527.0a0 + - libabseil =*=cxx17* + size: 1464151 + timestamp: 1791681000693 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libarrow-25.0.0-hf28620a_4_cpu.conda build_number: 4 sha256: 715b8b36fd21709d5e73efa129672a98de4777963ea6b17b8b981364d2adcc71 @@ -14939,6 +15987,18 @@ packages: run_exports: {} size: 79463 timestamp: 1790346233159 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.9.0-h4154aff_0.conda + sha256: d3327ab1086334309cab3cf533c95f70c44dcbb8f66a99a92b23fb0f3f20f1da + md5: cb3ce9ae94bc74f792c119312e03bcf7 + depends: + - libgcc >=15 + constrains: + - expat 2.9.0.* + license: MIT + license_family: MIT + run_exports: {} + size: 80340 + timestamp: 1793054214232 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libffi-3.7.0-hdaad0be_1.conda sha256: b1879d78b622c5f4817fd6d77fe7ae3ab7b501542e3c2f4ac77198c54c62c189 md5: f9e5b3e446b526b34a7e25ecec08efd9 @@ -15330,6 +16390,23 @@ packages: - libre2-11 >=2025.11.5 size: 206553 timestamp: 1781312515801 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libre2-11-2025.11.05-hf13fea9_2.conda + sha256: 31a9b92ba96d4cdfc2bce5a092c70a49d2dc14fadaa24851b6bd0645aea43308 + md5: 021814137a0e982630bc74db243f8664 + depends: + - libabseil * cxx17* + - libabseil >=20260526.0,<20260527.0a0 + - libgcc >=15 + - libstdcxx >=15 + constrains: + - re2 2025.11.05.* + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + size: 211774 + timestamp: 1792580590620 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsodium-1.0.22-h29ee22c_3.conda sha256: dcf1668e4d73b779c835a05154f16511fb9ab093507da7ba2d5656937ddc08d6 md5: 73ebc1c03a0bced1a222c8d10869ec6e @@ -15368,6 +16445,20 @@ packages: - libsqlite >=3.54.1,<4.0a0 size: 977739 timestamp: 1792175590430 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.54.1-hd26f1b6_101.conda + sha256: 61a67f7085f497fa7622c6e1ae8611b8b2796a2eca70dcecc8d9124ca4f0d46b + md5: e5ac4a3119ab693d90cd7599982a791e + depends: + - libgcc >=15 + - libzlib >=1.3.2,<2.0a0 + constrains: + - icu <0.0a0 + license: blessing + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 977839 + timestamp: 1793051533271 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libssh2-1.11.1-h7572e3e_1.conda sha256: f6fef76c1c8899d7976030871b8cd8016b0a306d2b8519834cd6491d6a42fb82 md5: 833be3f226277d894df3c7a7131d9532 @@ -15726,6 +16817,24 @@ packages: run_exports: {} size: 22883072 timestamp: 1790965469969 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mypy-2.4.0-py315h161ad5a_0.conda + sha256: b09b31b9e9134fe5eb304142b0de5e92e3e7868b8a94a952e18f9f94e22df01c + md5: 8314c9b668a9ba77f2e66f3b0b3f4a62 + depends: + - ast-serialize >=0.11.2,<1.0.0 + - mypy_extensions >=1.0.0 + - pathspec >=1.0.0 + - python + - python-librt >=0.16.0 + - typing_extensions >=4.14.0 + - psutil >=4.0 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 22919799 + timestamp: 1790965492988 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-h2b6f883_1.conda sha256: d69a04914139627f0a6bfd19412d6c7f1e37edc896af84a6011e07e8bc1e69fa md5: c3b4349171ca987ff33a1de61f7b3f96 @@ -16169,6 +17278,58 @@ packages: run_exports: {} size: 15185209 timestamp: 1789803352705 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pandas-3.1.0-np2py315hef38079_0.conda + sha256: b627e654497d5cbe66fbd812f399af63a985877c970aa043bcc56decd2335843 + md5: c4351632600d9f8cda43a1f4a6b6429a + depends: + - python + - numpy >=2.0.2 + - python-dateutil >=2.9.0 + - libgcc >=15 + - libstdcxx >=15 + - numpy >=1.25,<3 + - python_abi 3.15.* *_cp315 + constrains: + - adbc-driver-postgresql >=1.7.0 + - adbc-driver-sqlite >=1.7.0 + - beautifulsoup4 >=4.13.4 + - bottleneck >=1.5.0 + - fastparquet >=2024.11.0 + - fsspec >=2025.7.0 + - gcsfs >=2025.7.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.6 + - lxml >=6.0.0 + - matplotlib >=3.10.5 + - numba >=0.61.2 + - numexpr >=2.11.0 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=16.0.0 + - pyiceberg >=0.9.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.11 + - pyreadstat >=1.3.0 + - pytables >=3.10.2 + - python-calamine >=0.4.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.3 + - scipy >=1.16.1 + - s3fs >=2025.7.0 + - sqlalchemy >=2.0.42 + - tabulate >=0.9.0 + - xarray >=2025.7.1 + - xlrd >=2.0.2 + - xlsxwriter >=3.2.5 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 17095782 + timestamp: 1792679037817 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pandoc-3.12-h8af1aa0_0.conda sha256: affecdd9fb5f45535662e3da14bc276d0e16cfb8e318ec710d08e19acb0e1db0 md5: 4c03d03ebe366ab031cef181648db2e4 @@ -16420,6 +17581,22 @@ packages: run_exports: {} size: 25958 timestamp: 1784258307007 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-25.0.0-py315ha1274e1_1.conda + sha256: 36a5db6378d1b860be7ded9709430959a613350d35498ae039f1ce4be17a0033 + md5: 3ce1669ef5f965a9d910122f764dddbf + depends: + - libarrow-acero 25.0.0.* + - libarrow-dataset 25.0.0.* + - libarrow-substrait 25.0.0.* + - libparquet 25.0.0.* + - pyarrow-core 25.0.0 *_1_* + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 26124 + timestamp: 1792228229549 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-core-25.0.0-py311h2b79c3f_0_cpu.conda sha256: 89e5a3a4ab82e177b17736af1b9ed79d60e349cec18ee39019d410181c6a608f md5: 71380afe91ae33de5dac66457ec55e0f @@ -16496,6 +17673,26 @@ packages: run_exports: {} size: 5158077 timestamp: 1784258294627 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-core-25.0.0-py315h13e68b3_1_cpu.conda + build_number: 1 + sha256: f91d5a6ab35ecb351f281f3dc211fc109c93c9ac5170e42a950a6574de502180 + md5: c857e5c1ce93da6245269cbc544d29c1 + depends: + - libarrow 25.0.0.* *cpu + - libarrow-compute 25.0.0.* *cpu + - libgcc >=15 + - libstdcxx >=15 + - libzlib >=1.3.2,<2.0a0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + constrains: + - apache-arrow-proc * cpu + - numpy >=1.23,<3 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 5295263 + timestamp: 1792228236893 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pydantic-core-2.46.5-py311h8c3699e_2.conda sha256: ee385964102733dcac9587bdc566b1351df0499cefd5f908c1b2d0a484c7132a md5: 2313c7d575cce944509e5fbf68d937f9 @@ -16582,6 +17779,20 @@ packages: run_exports: {} size: 94289 timestamp: 1789242551226 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyodbc-5.3.0-py315habfbd8b_3.conda + sha256: 8e6e882e55fd0da2c36f38473ffb3d8ca9951aabcc6b56f531799c18040020ab + md5: 7adafa987fffa1b77ca19264502b9517 + depends: + - python + - libstdcxx >=15 + - libgcc >=15 + - unixodbc >=2.3.14,<2.4.0a0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 95313 + timestamp: 1789242545804 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.11.17-h94ad73b_2_cpython.conda build_number: 2 sha256: 36172eed223a2d999052c7ee5c555a1a1b1eeedcefe40d73a40d5ac0e888148a @@ -16740,6 +17951,37 @@ packages: size: 27742939 timestamp: 1792655378409 python_site_packages_path: lib/python3.15/site-packages +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.15.2-h0c7c799_100_cp315.conda + build_number: 100 + sha256: 788a8c701af3fb86e7e7d8f40335804959e796c705b7b7e9a409de2eea8ded18 + md5: 9874b7ceebe929da370eddcc23314fa3 + depends: + - bzip2 >=1.0.8,<2.0a0 + - ld_impl_linux-aarch64 >=2.36.1 + - libedit >=3.1.20260512,<3.2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - libgcc >=15 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.54.1,<4.0a0 + - libuuid >=2.42.4,<3.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.15.* *_cp315 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + run_exports: + weak: + - python_abi 3.15.* *_cp315 + noarch: + - python + size: 27765007 + timestamp: 1793015442708 + python_site_packages_path: lib/python3.15/site-packages - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-librt-0.16.0-py311h0de9f98_0.conda sha256: 93bd5cd5fcf3707172a4afb283cb2f03ea635c03041e44145d7d1afb2ad3cb9d md5: 495ebaa655380b0a416d35d455e28e5c @@ -16788,6 +18030,18 @@ packages: run_exports: {} size: 168473 timestamp: 1790684466148 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-librt-0.16.0-py315h161ad5a_0.conda + sha256: 08976ae3686a452cab0d02291d5ca9ebd72ebd0125baeee747303e3a82d7b37d + md5: 9807382c16c0b97e869b98e4d3216751 + depends: + - python + - libgcc >=15 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 168335 + timestamp: 1790684468932 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyyaml-6.0.3-py311h164a683_1.conda sha256: e3175f507827cd575b5a7b7b50058cd253977f8286079cb3a6bf0aeaa878071b md5: 7e1888f50cc191b7817848dbf6f90590 @@ -16888,6 +18142,19 @@ packages: run_exports: {} size: 1163937 timestamp: 1789144349051 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/re2-2025.11.05-he78ab50_2.conda + sha256: b0a4fe8996132e17e6a48b49c469f65461deb582792e8d8d9bc4d684e3403919 + md5: 7aef54c9f4d00f657c03a1c859cea516 + depends: + - libre2-11 2025.11.05 hf13fea9_2 + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + - re2 + size: 27435 + timestamp: 1792580597273 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/re2-2025.11.05-hfb2350b_2.conda sha256: ac1763c911f34c861c3b2c8de26434d86cd5b85e9fea3fefb70cba94b6a8c010 md5: 072c6ce4efe84fe0bd51b4af4aa35fc6 @@ -17099,6 +18366,26 @@ packages: run_exports: {} size: 10163339 timestamp: 1790072919927 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scikit-learn-1.9.1-np2py315hda4e083_1.conda + sha256: f209448d536db55abe8774a97200870ea5157aaabb6431bc9ce4662ea9853574 + md5: fa2c1f5f156790415cc245031fe69853 + depends: + - python + - numpy >=1.24.1 + - scipy >=1.10.0 + - joblib >=1.4.0 + - threadpoolctl >=3.5.0 + - narwhals >=2.0.1 + - libgcc >=15 + - libstdcxx >=15 + - _openmp_mutex >=4.5 + - numpy >=1.25,<3 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 10156215 + timestamp: 1790072920331 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.17.1-py311had2d2e4_1.conda sha256: 4a2f014a0542477bb10bd9855e24883de4bed23cde17782da48f5484fa7da41d md5: 880b9aa5d72d525370d95c3372d6198e @@ -17183,6 +18470,27 @@ packages: run_exports: {} size: 17058287 timestamp: 1790022295285 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/scipy-1.18.1-py315h826f625_2.conda + sha256: 483d97f7e1aad9de69f81a7cb1e157335035856d6fe2a60dbeaccf4be8bf6b68 + md5: c53a26c5116f2cc42dce53714e2112ce + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libgcc >=15 + - libgfortran + - libgfortran5 >=15.3.0 + - liblapack >=3.9.0,<4.0a0 + - libstdcxx >=15 + - numpy <2.8 + - numpy >=1.25,<3 + - numpy >=2.0.0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 17148018 + timestamp: 1792930326829 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/sed-4.10-he1c5539_0.conda sha256: 7b2d9835a79bd67c0b2966cedf246c85bf650dc961125c8e31f073646d4ac797 md5: 59f2c90c66b956d9bc3e625df3ad8a0a @@ -17701,6 +19009,24 @@ packages: run_exports: {} size: 4406 timestamp: 1780675823953 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-h4c7d964_0.conda + sha256: f1d280d2618de987204102090e83733089c092dc2dd45686fd3dcbe809034f6a + md5: ea9dc39dcd2815202749c1e5bc2a8973 + depends: + - __win + license: ISC + run_exports: {} + size: 130423 + timestamp: 1792772460189 +- conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + sha256: 95619b9c1184be7175392eeb0ee7eeb5ccf25d280951f4225f2d62e725790be3 + md5: 3fd02989038a1e1cee627c14c2d73f29 + depends: + - __unix + license: ISC + run_exports: {} + size: 130057 + timestamp: 1792772446739 - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.7.22-h4c7d964_0.conda sha256: 95e8e74062a5fe5f870ac8c90302b6e89945165fdaed7810606e84ddee6aac12 md5: e27d2ac27b096dc51fedfcf775a53f9b @@ -17848,6 +19174,17 @@ packages: run_exports: {} size: 53461 timestamp: 1792610731975 +- conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.2-py315hd8ed1ab_100.conda + noarch: generic + sha256: 5433d0f101e153f35b99809cf81bd04ebf8d6a97c07af9ea2f5c998d624d6fe7 + md5: 6c0b7c2ddf16d1a1dabfa0847641b518 + depends: + - python >=3.15,<3.16.0a0 + - python_abi * *_cp315 + license: Python-2.0 + run_exports: {} + size: 52891 + timestamp: 1793014812118 - conda: https://conda.anaconda.org/conda-forge/noarch/defusedxml-0.7.1-pyhd8ed1ab_0.tar.bz2 sha256: 9717a059677553562a8f38ff07f3b9f61727bd614f505658b0a5ecbcf8df89be md5: 961b3a227b437d82ad7054484cfa71b2 @@ -18110,6 +19447,16 @@ packages: run_exports: {} size: 13387 timestamp: 1760831448842 +- conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + sha256: 8f53876d0fb3525235e39635dd55633abe0a4307b1b3ab1415c80a9e0bbdf663 + md5: c0a803d97dd09da7e2c8b0fdfaa5739b + depends: + - python >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 14485 + timestamp: 1791588553866 - conda: https://conda.anaconda.org/conda-forge/noarch/insert-license-header-1.3.0-pyhd8ed1ab_1.conda sha256: 6b23bd5f59bce168051ed549364aceddc6201323c5321f130f28f07d7691e0ff md5: 70bf811a555616ecb52df2a9a8657467 @@ -18878,6 +20225,17 @@ packages: run_exports: {} size: 303171 timestamp: 1791209700697 +- conda: https://conda.anaconda.org/conda-forge/noarch/narwhals-2.27.1-pyh5ded981_0.conda + sha256: a30afe9e3c83e5730b3517c38637f5ca2d09e0c6140f241b23b3ca070c7490c9 + md5: 772d508bf50139e7ff43f5a88746aef3 + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 303300 + timestamp: 1791622361931 - conda: https://conda.anaconda.org/conda-forge/noarch/natsort-8.4.0-pyhcf101f3_2.conda sha256: aeb1548eb72e4f198e72f19d242fb695b35add2ac7b2c00e0d83687052867680 md5: e941e85e273121222580723010bd4fa2 @@ -19167,6 +20525,17 @@ packages: run_exports: {} size: 25877 timestamp: 1764896838868 +- conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + sha256: 34c40106bc3172b3a47656e84837e13a5d4829d413d65f30fb214e7568a09cea + md5: 50c6bcd41b7ceaaeeea8852e3198663e + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 30111 + timestamp: 1792063298993 - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.35.2-pyh6a1acc5_0.conda sha256: 21619fb41876fb3ad602de2f1a493891fd02bd82f0659d0ccb4d8ddd3271eca7 md5: 24e8f78d79881b3c035f89f4b83c565c @@ -19489,6 +20858,17 @@ packages: run_exports: {} size: 24548 timestamp: 1790540567842 +- conda: https://conda.anaconda.org/conda-forge/noarch/pytest-mock-3.17.0-pyhd8ed1ab_0.conda + sha256: 149fdeeb61bf56cf79424f704abcc969829dda5b3cd9cffb078d30bd23a042d8 + md5: df3a97c2b2cf4822dede3a3fea2a91c0 + depends: + - pytest >=6.2.5 + - python >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 28824 + timestamp: 1792254892113 - conda: https://conda.anaconda.org/conda-forge/noarch/python-abi3-3.11-ha8785bc_3.conda sha256: 3ac78bbfa9abfdf92a0f6e2f2d058d8393868c4bac36b012f95888a4455362cd md5: 85d7b185396c14a0fdc1084028f82b21 @@ -19609,6 +20989,19 @@ packages: run_exports: {} size: 233310 timestamp: 1751104122689 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-dateutil-3.0.0-pyh5ded981_0.conda + sha256: 8ad3e3fd71fa3881081a38d660cd9cc7bd18fd4eb99cee96225903e5e2eb9ae9 + md5: d75c60076c9f2cfa4a459e9f17cecd93 + depends: + - python >=3.11 + - six >=1.6 + - python-tzdata + - python + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 89526 + timestamp: 1792674886408 - conda: https://conda.anaconda.org/conda-forge/noarch/python-fastjsonschema-2.22.2-pyhcf101f3_0.conda sha256: fc4a704822df22defce49d0fb811fdc036a1fd3b579aeaa601228e9cfd198b3d md5: aa75b7f096d17621bc307b3025b29461 @@ -19680,6 +21073,16 @@ packages: run_exports: {} size: 53452 timestamp: 1792610741689 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.2-h4df99d1_100.conda + sha256: 631a77b41660202c5d4d551aa1816ce550cc6921352ca3d57ac58d0364cab670 + md5: beef54f8f4201e9f86f8733cef15506d + depends: + - cpython 3.15.2.* + - python_abi * *_cp315 + license: Python-2.0 + run_exports: {} + size: 52881 + timestamp: 1793014838911 - conda: https://conda.anaconda.org/conda-forge/noarch/python-json-logger-4.2.0-pyhd8ed1ab_0.conda sha256: 4f8ecadbd9d282b0208d6e84640573fcb6ab462307d737eedd28341964e18cc6 md5: e5407c82510aab6a4baa31fcd4249655 @@ -20456,6 +21859,13 @@ packages: run_exports: {} size: 118849 timestamp: 1784250406640 +- conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda + sha256: 2b7ca858879f183ce2dcc65b300f48a0133d5430550f35b23d80d405a0788dbf + md5: abccc3810d2b97e570dee487f2b46e38 + license: LicenseRef-Public-Domain + run_exports: {} + size: 119208 + timestamp: 1792758382821 - conda: https://conda.anaconda.org/conda-forge/noarch/uri-template-1.3.0-pyhd8ed1ab_1.conda sha256: e0eb6c8daf892b3056f08416a96d68b0a358b7c46b99c8a50481b22631a4dfc0 md5: e7cb0f5745e4c5035a460248334af7eb @@ -20620,6 +22030,22 @@ packages: run_exports: {} size: 1143503 timestamp: 1791121846781 +- conda: https://conda.anaconda.org/conda-forge/osx-64/ast-serialize-0.13.1-py311h2a8a194_0.conda + noarch: python + sha256: c6165841a0992704bbb18c1ca20e9e1e0ecf7d22cb3c0d2bb5e848ab3443ca69 + md5: c1ba4c2f2a39bc43cb89e3676032a98f + depends: + - python >=3.11 + - __osx >=11.0 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 1150409 + timestamp: 1792226548182 - conda: https://conda.anaconda.org/conda-forge/osx-64/aws-c-auth-0.10.4-h74cc20c_1.conda sha256: 56846d6b434760638a29c85820168d6610d25c99c4ea108137159f03190450b6 md5: 18131f87315828ee7c59c122928c8171 @@ -21094,6 +22520,17 @@ packages: run_exports: {} size: 445970 timestamp: 1790542265886 +- conda: https://conda.anaconda.org/conda-forge/osx-64/coverage-7.17.0-py315h0c08d44_0.conda + sha256: 04c5c43401e0c8faedaac6f95a0d73d5403ed501ded2cc6ef29cbeedde4d0cf9 + md5: 9e15a283d54c6571679c782f57219cf3 + depends: + - python + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + run_exports: {} + size: 448398 + timestamp: 1793049386309 - conda: https://conda.anaconda.org/conda-forge/osx-64/debugpy-1.8.22-py311h973f65f_0.conda sha256: b2a69168f65cda90a1612756770616314ff7a62b5786a91a69895a7f198770e4 md5: 03420d26d2d787ee335747a9ea6cd84b @@ -21212,6 +22649,23 @@ packages: - libabseil =*=cxx17* size: 1269390 timestamp: 1787217935603 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libabseil-20260526.0-cxx17_h6e8c311_3.conda + sha256: ffde056b097f48eab3f02e477e67c6f499acb267d5856396e768ba8b9bc9414e + md5: 86d4185cfb24d9e604f424ec72bf217f + depends: + - __osx >=11.0 + - libcxx >=19 + constrains: + - abseil-cpp =20260526.0 + - libabseil-static =20260526.0=cxx17* + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - libabseil >=20260526.0,<20260527.0a0 + - libabseil =*=cxx17* + size: 1273256 + timestamp: 1791681577753 - conda: https://conda.anaconda.org/conda-forge/osx-64/libarrow-25.0.0-he333e4a_4_cpu.conda build_number: 4 sha256: 278fa5130549faa6b3215ca23b0c09b631feb955d8b233d5dd1ce64e20f77736 @@ -21517,6 +22971,16 @@ packages: run_exports: {} size: 573303 timestamp: 1791337833929 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libcxx-23.1.4-h19cb2f5_2.conda + sha256: 5d66e121f30c4b3792480de92230ec05d024106df5c031452bba356153df8c65 + md5: f2a679a70cf584c6886579155fd7ee8f + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + run_exports: {} + size: 577045 + timestamp: 1792749345117 - conda: https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20250104-pl5321hba2e2ab_1.conda sha256: 4aa5161db41602af1abff73f5af415902135a47855d02c1ac05681a36320bd4b md5: 17532a8cca2c887fa24fbdcd5336c3af @@ -21582,6 +23046,18 @@ packages: run_exports: {} size: 75347 timestamp: 1790370393156 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libexpat-2.9.0-h6e061ac_0.conda + sha256: 8715589908ab0d2c92c9f94cd1b185e6abc0a62ce4b1808d3b776cee2d2351fd + md5: 31af5ee74e29c1fcb75babc2817625ca + depends: + - __osx >=11.0 + constrains: + - expat 2.9.0.* + license: MIT + license_family: MIT + run_exports: {} + size: 76142 + timestamp: 1793054593465 - conda: https://conda.anaconda.org/conda-forge/osx-64/libffi-3.7.0-h6b3a05b_1.conda sha256: c4793041226c87f987b9903e6503b76f02f52855cc193be2729ac127e600529b md5: e077b71ae65754eda067e4125364b905 @@ -21923,6 +23399,23 @@ packages: - libpython >=3.14,<4.0a0 size: 2115932 timestamp: 1792666401289 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h2c51b9f_2.conda + sha256: 098cd9766a78ff617624263e11a6d2186abf6220ca292e7e6496cd63659cb948 + md5: 70e84e3e0643618441bf825393bd3656 + depends: + - __osx >=12.0 + - libabseil * cxx17* + - libabseil >=20260526.0,<20260527.0a0 + - libcxx >=21 + constrains: + - re2 2025.11.05.* + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + size: 178210 + timestamp: 1792581311213 - conda: https://conda.anaconda.org/conda-forge/osx-64/libre2-11-2025.11.05-h962f25e_2.conda sha256: 14d969728d8bc26317984b652e2f03934f0ffc7f61d9ed229ec457e9be95c587 md5: 03c9286e5fb44ae19924b0ace236f7cd @@ -21978,6 +23471,20 @@ packages: - libsqlite >=3.54.1,<4.0a0 size: 1020690 timestamp: 1792176057415 +- conda: https://conda.anaconda.org/conda-forge/osx-64/libsqlite-3.54.1-ha5db789_101.conda + sha256: 45af47119bf30cd41f661349cef1e93ad8e736d04b617560d0ae8d74d2eb8ffa + md5: 85e048d37014e45480008113534fe988 + depends: + - __osx >=11.0 + - libzlib >=1.3.2,<2.0a0 + constrains: + - icu <0.0a0 + license: blessing + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 1020171 + timestamp: 1793051863404 - conda: https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.11.1-hd53bb72_1.conda sha256: ed0db46844a548f4ca57dad0b3abb92b37050d7f75ab1ef08fbed9d23f06b2de md5: cb57b979974ef5b8a4526a8e5c8195b9 @@ -22179,6 +23686,21 @@ packages: - llvm-openmp >=23.1.3 size: 311780 timestamp: 1791368961053 +- conda: https://conda.anaconda.org/conda-forge/osx-64/llvm-openmp-23.1.4-h8c1e6b9_0.conda + sha256: 6841e307728ddad340380b0e5b4434f051c5650f8d394fcaf364464672005f5d + md5: 45a8bc0f4a73361247b83eccdeb8ada5 + depends: + - __osx >=11.0 + constrains: + - intel-openmp <0.0a0 + - openmp 23.1.4|23.1.4.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + run_exports: + strong: + - llvm-openmp >=23.1.4 + size: 311845 + timestamp: 1792567072774 - conda: https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.10.0-hc569e58_2.conda sha256: 97fedceb365f882790f37cf40bbfa89a67cdfa0d9e41e71a015d123d15b50433 md5: 40a2f8f02e39f9ca56006f35510627f4 @@ -22321,6 +23843,24 @@ packages: run_exports: {} size: 14634657 timestamp: 1790965819855 +- conda: https://conda.anaconda.org/conda-forge/osx-64/mypy-2.4.0-py315h54bb5ba_0.conda + sha256: 58d7417fbe1f1222598b6f47ac75eecea1f3248896c4e32deeeaf331e1f63806 + md5: 8feeef3702a5bb95143de444b52eec72 + depends: + - ast-serialize >=0.11.2,<1.0.0 + - mypy_extensions >=1.0.0 + - pathspec >=1.0.0 + - python + - python-librt >=0.16.0 + - typing_extensions >=4.14.0 + - psutil >=4.0 + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 14670508 + timestamp: 1790965642676 - conda: https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.6-hcc0dc9a_1.conda sha256: 12c1d676b9a0e8109b576672519312c5428308f3f3d7706f8717e2f536d5d9e7 md5: 88a79390f87c8f3334b9999a892e78d4 @@ -22738,6 +24278,58 @@ packages: run_exports: {} size: 14753057 timestamp: 1789803514551 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-3.1.0-np2py315h1dd93b8_0.conda + sha256: 79f6267a5dffc55f847451d2c10ec83c6994e110175dbf52485d4fbb4c656594 + md5: 16bc0fe2f355a35df15503c26fc0f99b + depends: + - python + - numpy >=2.0.2 + - python-dateutil >=2.9.0 + - __osx >=11.0 + - libcxx >=21 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + constrains: + - adbc-driver-postgresql >=1.7.0 + - adbc-driver-sqlite >=1.7.0 + - beautifulsoup4 >=4.13.4 + - bottleneck >=1.5.0 + - fastparquet >=2024.11.0 + - fsspec >=2025.7.0 + - gcsfs >=2025.7.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.6 + - lxml >=6.0.0 + - matplotlib >=3.10.5 + - numba >=0.61.2 + - numexpr >=2.11.0 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=16.0.0 + - pyiceberg >=0.9.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.11 + - pyreadstat >=1.3.0 + - pytables >=3.10.2 + - python-calamine >=0.4.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.3 + - scipy >=1.16.1 + - s3fs >=2025.7.0 + - sqlalchemy >=2.0.42 + - tabulate >=0.9.0 + - xarray >=2025.7.1 + - xlrd >=2.0.2 + - xlsxwriter >=3.2.5 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 16606940 + timestamp: 1792679216737 - conda: https://conda.anaconda.org/conda-forge/osx-64/pandoc-3.12-h694c41f_0.conda sha256: 329b2b41ec366eb9500784b69e4aa6ccf2c22e3c23aa7bc241cadca2cd700067 md5: a06122aee2cfbca8cc999f3db4070822 @@ -22965,6 +24557,22 @@ packages: run_exports: {} size: 26095 timestamp: 1784259552003 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-25.0.0-py315h5de8b50_1.conda + sha256: 48ce9740788d8ac9702b438393261af1b7bfbf849e09316e996002a12580bb0d + md5: e209dbacdf992cea27f82403debb2eff + depends: + - libarrow-acero 25.0.0.* + - libarrow-dataset 25.0.0.* + - libarrow-substrait 25.0.0.* + - libparquet 25.0.0.* + - pyarrow-core 25.0.0 *_1_* + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 25991 + timestamp: 1792232245333 - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-25.0.0-py311h1c09687_0_cpu.conda sha256: e4980945feeabfc7250942a08aca6c027ee52c0d26cdf3264f1d97ec1de142a2 md5: ce5a01018d69f77153196abadf890bb3 @@ -23041,6 +24649,26 @@ packages: run_exports: {} size: 4570078 timestamp: 1784259499689 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-core-25.0.0-py315h51131e7_1_cpu.conda + build_number: 1 + sha256: 14ba1d594f77cc192374e1541d065500c1171dfa8ade6d99a44c1780482a7dae + md5: c17b0c4cc0aba3a3acf2e1aae28f2ccb + depends: + - __osx >=11.0 + - libarrow 25.0.0.* *cpu + - libarrow-compute 25.0.0.* *cpu + - libcxx >=21 + - libzlib >=1.3.2,<2.0a0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + constrains: + - apache-arrow-proc * cpu + - numpy >=1.23,<3 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 5078551 + timestamp: 1792232215816 - conda: https://conda.anaconda.org/conda-forge/osx-64/pydantic-core-2.46.5-py311he180d86_2.conda sha256: dd824665d601808e01074d11787e2acb5f52e53fe04fe725d77fbc9ec771599d md5: bba3064b6f121a45df88e337b8979655 @@ -23183,6 +24811,20 @@ packages: run_exports: {} size: 76216 timestamp: 1789242320087 +- conda: https://conda.anaconda.org/conda-forge/osx-64/pyodbc-5.3.0-py315h1e040c3_3.conda + sha256: e38153a3eb3aeb0ea7b44eb653417e423a2e8484b38e9e638b5a5cf1230be7f7 + md5: f63ed8cd0f8bb69cad50acbf4921d17f + depends: + - python + - libcxx >=21 + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + - unixodbc >=2.3.14,<2.4.0a0 + license: MIT + license_family: MIT + run_exports: {} + size: 76324 + timestamp: 1789242297761 - conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.11.17-h6907cb8_2_cpython.conda build_number: 2 sha256: bff853d04d622b0074b99a3350f24435ab67dc29ab88f52a25c7c1cc78555320 @@ -23324,8 +24966,37 @@ packages: - python_abi 3.15.* *_cp315 noarch: - python - size: 13651924 - timestamp: 1792614735621 + size: 13651924 + timestamp: 1792614735621 + python_site_packages_path: lib/python3.15/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-3.15.2-h0abcc05_100_cp315.conda + build_number: 100 + sha256: 94acb9cb307343cf56f6f20fdd7596a5d617ce803eecafe9b9ff4e125e39660b + md5: a6bd63ad7af96c79dfc6e060b97cb5d1 + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libedit >=3.1.20260512,<3.2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.54.1,<4.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.15.* *_cp315 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + run_exports: + weak: + - python_abi 3.15.* *_cp315 + noarch: + - python + size: 13680614 + timestamp: 1793017644613 python_site_packages_path: lib/python3.15/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.16.0-py311h72e27ae_0.conda sha256: 0d69dd603000ffe7412f86ba95496068a35897ee4baba609badb0f30e100cc3d @@ -23375,6 +25046,18 @@ packages: run_exports: {} size: 129658 timestamp: 1790684613125 +- conda: https://conda.anaconda.org/conda-forge/osx-64/python-librt-0.16.0-py315h54bb5ba_0.conda + sha256: 538b95f1faa0bd54feead0663cc05dabbb70ecfec083470b73fe12508a32bcbd + md5: 3190ad7ef0d8c20aac9148868d8634f2 + depends: + - python + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 129679 + timestamp: 1790684636728 - conda: https://conda.anaconda.org/conda-forge/osx-64/pyyaml-6.0.3-py311h53ebfaf_1.conda sha256: db6ce0be1a9e0e57d829e6522ba932643fadd9e5238875ff299925246a01b6b2 md5: 398a9df67c68780701415da829315730 @@ -23473,6 +25156,19 @@ packages: run_exports: {} size: 1114559 timestamp: 1789144421337 +- conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2025.11.05-h1e1851c_2.conda + sha256: 3b5905c73d85181a089de86470daa58a67ba1688a85ac670b635163235a0b7ef + md5: 604e3ac93d57ad5e0493b1794f232a4d + depends: + - libre2-11 2025.11.05 h2c51b9f_2 + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + - re2 + size: 27449 + timestamp: 1792581347007 - conda: https://conda.anaconda.org/conda-forge/osx-64/re2-2025.11.05-hcc9a9c6_2.conda sha256: 5c3f92ec989e1ab87a79b300c2975b04434d0db0abba030e85ee97f0f4a3a415 md5: 2307e1e580ad566c95ab3164b0d4a1cc @@ -23684,6 +25380,26 @@ packages: run_exports: {} size: 9809949 timestamp: 1790073111184 +- conda: https://conda.anaconda.org/conda-forge/osx-64/scikit-learn-1.9.1-np2py315h607eb07_1.conda + sha256: e1ff74f980b358121d35cc681b2a0872b49e0f30c7b0e7d34d5d04f067175bd9 + md5: 9c16777eb5f8a1c4a44ca3d94e32e32f + depends: + - python + - numpy >=1.24.1 + - scipy >=1.10.0 + - joblib >=1.4.0 + - threadpoolctl >=3.5.0 + - narwhals >=2.0.1 + - llvm-openmp >=21.1.8 + - __osx >=11.0 + - libcxx >=21 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 9805927 + timestamp: 1790073100477 - conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.17.1-py311h556693a_1.conda sha256: 4e68affca9e1d14cdb1fe6910c459ec4bd01b1217a867f7cfbf40830951f80aa md5: 972007d34efaf5755603391a91e7d50f @@ -23771,6 +25487,28 @@ packages: run_exports: {} size: 15708125 timestamp: 1790023041262 +- conda: https://conda.anaconda.org/conda-forge/osx-64/scipy-1.18.1-py315h7e9e94e_1.conda + sha256: c958b68da402a5b0a7d68f88f7c2e57c8292d7b7db3dd1d5c4ad78202ac75a4a + md5: 61ad74ee95bac2ac8e54022055d85b2f + depends: + - __osx >=11.0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=21 + - libgcc >=15 + - libgfortran + - libgfortran5 >=15.3.0 + - liblapack >=3.9.0,<4.0a0 + - numpy <2.8 + - numpy >=1.25,<3 + - numpy >=2.0.0 + - python >=3.15.0rc2,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 15682347 + timestamp: 1790023962645 - conda: https://conda.anaconda.org/conda-forge/osx-64/sed-4.10-hb63749c_0.conda sha256: 82b9463d838f08fb89aa3b914ebc5b97313c4d6d9a2697fdb24c27403c0780f6 md5: f2d7d44ef96e292fab992737a0130936 @@ -24068,6 +25806,22 @@ packages: run_exports: {} size: 1113236 timestamp: 1791121766585 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/ast-serialize-0.13.1-py311hfcb3ee1_0.conda + noarch: python + sha256: 01d3914cdf3538a274d9b803fdef5387b56e4e7bab5e536f2ded8e4337672007 + md5: 9a34c4782b2e92851233eb95e7efe8c1 + depends: + - python >=3.11 + - __osx >=11.0 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 1114707 + timestamp: 1792226509259 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/aws-c-auth-0.10.4-h0f08c97_1.conda sha256: 8e503ab875683720c4ddcce216ad2aa96c32b90bc59e9a692c694e07ba4e5d8d md5: c5d9f5796fb392f0984def10b26f1175 @@ -24528,6 +26282,17 @@ packages: run_exports: {} size: 445693 timestamp: 1790542151928 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.17.0-py315h0c34f12_0.conda + sha256: 77092717ccaaa4e7753e9f93fecb88c2f962e9888a8b1e9a7feb33bb61cb784d + md5: fada92c69ee4529d47e8ba0d82f65e9c + depends: + - python + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + run_exports: {} + size: 448230 + timestamp: 1793049312369 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/debugpy-1.8.22-py311hdc554d9_0.conda sha256: 532ef76e445c4ece0f90733f3b6ad4db789b998e896baa56cda0047ad80ee50f md5: 63e49f745946a1aa90b6a6b03013d123 @@ -24642,6 +26407,23 @@ packages: - libabseil =*=cxx17* size: 1277537 timestamp: 1787217005681 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libabseil-20260526.0-cxx17_h4c27e2a_3.conda + sha256: 27859d85276442961b01bcfc488dc85426109330ffb157d3224772a7eaa72a75 + md5: 009ec10961e8426182e9d4c33e31db55 + depends: + - __osx >=11.0 + - libcxx >=19 + constrains: + - abseil-cpp =20260526.0 + - libabseil-static =20260526.0=cxx17* + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - libabseil >=20260526.0,<20260527.0a0 + - libabseil =*=cxx17* + size: 1277648 + timestamp: 1791681045738 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libarrow-25.0.0-haaed7fe_4_cpu.conda build_number: 4 sha256: 3c289bab2a8c4be0ef86363c97c5532dbcc289708b8523d6a3cfef35a2dd0b9b @@ -24947,6 +26729,16 @@ packages: run_exports: {} size: 577501 timestamp: 1791337239735 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.4-h55c6f16_2.conda + sha256: 9c390b4f403db32346754ccef6b84b7e5d9b70cb6d76258fd23b05f2db2ab216 + md5: 08f01709cd5f8fd7af2c29e4e3ce1846 + depends: + - __osx >=11.0 + license: Apache-2.0 WITH LLVM-exception + license_family: Apache + run_exports: {} + size: 577255 + timestamp: 1792748855178 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libedit-3.1.20250104-pl5321h26f1114_1.conda sha256: 257c926f19e32bdb981fc674c76966049b6fc73f706bae58e9fed8757ad1da70 md5: 843ef89082f368cb889305084d3b483c @@ -25012,6 +26804,18 @@ packages: run_exports: {} size: 69565 timestamp: 1790370026495 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libexpat-2.9.0-h6111c0a_0.conda + sha256: b155c524118f751ad8b1c823397bab8b7f715f7e3ca10479925867a7e23e7e9d + md5: f85a1fda9a2758a7aef2a7787d9c0203 + depends: + - __osx >=11.0 + constrains: + - expat 2.9.0.* + license: MIT + license_family: MIT + run_exports: {} + size: 69681 + timestamp: 1793054210049 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.7.0-h47dc5ef_1.conda sha256: 2783389a7b9dda04c62cc54c6bbeb03dd3cef24b3fc642715d02a3fa19464a9a md5: 216bbcc23c11e9695b3db4a8771d76eb @@ -25370,6 +27174,23 @@ packages: - libre2-11 >=2025.11.5 size: 166043 timestamp: 1781312641918 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libre2-11-2025.11.05-hc0bb115_2.conda + sha256: ced17ed79cf9f3f50834e61775c8c510cfcae4927ac36d6dc25f38611b96404a + md5: 0ff36c9927f7c668544b6ac8f172d9a7 + depends: + - __osx >=12.0 + - libabseil * cxx17* + - libabseil >=20260526.0,<20260527.0a0 + - libcxx >=21 + constrains: + - re2 2025.11.05.* + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + size: 165547 + timestamp: 1792580581491 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.22-h74c22ad_3.conda sha256: 0fb001d9b28dc19096388beadaed3af98100f4260707ecb9c177fae68b0e9ece md5: b237804d151d3d05d4d7fd9052c5664b @@ -25395,6 +27216,20 @@ packages: - libsqlite >=3.54.1,<4.0a0 size: 949104 timestamp: 1792175609612 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_101.conda + sha256: c49adf700ad17332b938ac627845a3fdc70a0810660d3ec3814de25b156fbf60 + md5: 6b3b2ea51e2685192a790730c59dbb01 + depends: + - __osx >=11.0 + - libzlib >=1.3.2,<2.0a0 + constrains: + - icu <0.0a0 + license: blessing + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 949450 + timestamp: 1793051666641 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-hca69786_0.conda sha256: 998cd122027b2523f2f25807b1d476b82a168489d16b1430fd848a9a6b606a80 md5: b3fc67af56dfdf7c9ee7d8fdae21f654 @@ -25608,6 +27443,21 @@ packages: - llvm-openmp >=23.1.3 size: 287857 timestamp: 1791367997433 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/llvm-openmp-23.1.4-hdb3d66b_0.conda + sha256: cc6d67df56d4ea967e17d938d3108cdf7d971531350df9e7fc5e18cb89066a70 + md5: 9a6ec2a53da5d75951b88c51018c27fa + depends: + - __osx >=11.0 + constrains: + - intel-openmp <0.0a0 + - openmp 23.1.4|23.1.4.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + run_exports: + strong: + - llvm-openmp >=23.1.4 + size: 287495 + timestamp: 1792567065537 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/lz4-c-1.10.0-hdca3b7d_2.conda sha256: 1887867b393eb3c2b336deaffcf228574821ea1e0dcb9ef7bf6c9f59cec40f03 md5: d47f7f3481c6f2fcc4ed22802f61c6dd @@ -25750,6 +27600,24 @@ packages: run_exports: {} size: 13449404 timestamp: 1790965544402 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mypy-2.4.0-py315hc6682d9_0.conda + sha256: 25f5a3a95cc667bf29893505184e29eef38737d35010250a378c453e97bb5800 + md5: 71f44c5a2de8497cbe0bfd44c8867318 + depends: + - ast-serialize >=0.11.2,<1.0.0 + - mypy_extensions >=1.0.0 + - pathspec >=1.0.0 + - python + - python-librt >=0.16.0 + - typing_extensions >=4.14.0 + - psutil >=4.0 + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 13484203 + timestamp: 1790965534383 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-he64c551_1.conda sha256: 7024a48c8c0d0114ed4ab53c76bf9275d50e91ba7cea367a9aead638d3c29c68 md5: 3dfa0d0316dc246cd44937a557de4501 @@ -26167,6 +28035,58 @@ packages: run_exports: {} size: 14475966 timestamp: 1789803428830 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-3.1.0-np2py315h5900ff1_0.conda + sha256: 47a081aa0cd5538046c07a63ff7408a8e09a7d730e111b84d45f43bcc97c1f34 + md5: f7b5df3cc27186c4abebc88a3e9ee2f6 + depends: + - python + - numpy >=2.0.2 + - python-dateutil >=2.9.0 + - libcxx >=21 + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + constrains: + - adbc-driver-postgresql >=1.7.0 + - adbc-driver-sqlite >=1.7.0 + - beautifulsoup4 >=4.13.4 + - bottleneck >=1.5.0 + - fastparquet >=2024.11.0 + - fsspec >=2025.7.0 + - gcsfs >=2025.7.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.6 + - lxml >=6.0.0 + - matplotlib >=3.10.5 + - numba >=0.61.2 + - numexpr >=2.11.0 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=16.0.0 + - pyiceberg >=0.9.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.11 + - pyreadstat >=1.3.0 + - pytables >=3.10.2 + - python-calamine >=0.4.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.3 + - scipy >=1.16.1 + - s3fs >=2025.7.0 + - sqlalchemy >=2.0.42 + - tabulate >=0.9.0 + - xarray >=2025.7.1 + - xlrd >=2.0.2 + - xlsxwriter >=3.2.5 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 16276557 + timestamp: 1792679060341 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandoc-3.12-hce30654_0.conda sha256: 795e8baf12439d8f49b0051a9eeebdff27f29900c96cee3952fb2cc016f5503a md5: 6a98b82d5c651b6bf7833103e757f6d9 @@ -26394,6 +28314,22 @@ packages: run_exports: {} size: 25915 timestamp: 1784258318884 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-25.0.0-py315h016ee38_1.conda + sha256: b9f6a76263caab98d119dbe13beac0879afbb98a26afd6f1cb9dc0275db5f9d3 + md5: c3ae204cbdc2d6ba4f3bcc71d9d7fff8 + depends: + - libarrow-acero 25.0.0.* + - libarrow-dataset 25.0.0.* + - libarrow-substrait 25.0.0.* + - libparquet 25.0.0.* + - pyarrow-core 25.0.0 *_1_* + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 26082 + timestamp: 1792228161507 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-25.0.0-py311h6894905_0_cpu.conda sha256: ecfe951ce7e6933ea8659af60e425370517bd669ed795944aa0002faf5229357 md5: 8b05a1d576a2c50074eee0fcf26adef8 @@ -26470,6 +28406,26 @@ packages: run_exports: {} size: 4030783 timestamp: 1784258302127 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-core-25.0.0-py315h978f751_1_cpu.conda + build_number: 1 + sha256: 55afba4a0ac23aeb66fbaa6eade3914f4b682a8921518ffa71d1995ee7b772ed + md5: ee4405cab08afc1ab7af18ad09dc3550 + depends: + - __osx >=11.0 + - libarrow 25.0.0.* *cpu + - libarrow-compute 25.0.0.* *cpu + - libcxx >=21 + - libzlib >=1.3.2,<2.0a0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + constrains: + - apache-arrow-proc * cpu + - numpy >=1.23,<3 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 4887338 + timestamp: 1792228150311 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.46.5-py311hcfb3d13_2.conda sha256: dd665c06d151078d11ffb454b871d066d9bd13bd7442f3b3e7495934f08723b8 md5: f848fb74b8ce1aedb4214e0d80a0af57 @@ -26612,6 +28568,20 @@ packages: run_exports: {} size: 74993 timestamp: 1789242244530 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyodbc-5.3.0-py315h9d690bc_3.conda + sha256: 2a87cc3e1c057ad645901e54586298f1c407598998a5d598176059e95dd3bd36 + md5: ed5e500a1c6639b47b06d578a4deb8a3 + depends: + - python + - libcxx >=21 + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + - unixodbc >=2.3.14,<2.4.0a0 + license: MIT + license_family: MIT + run_exports: {} + size: 74976 + timestamp: 1789242248043 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.11.17-hd05a0c4_2_cpython.conda build_number: 2 sha256: 6c1e7b74891c9c3190c44f2bc95697dfbb9a9aeff59c6827d8d5e80d3a2cb46d @@ -26756,6 +28726,35 @@ packages: size: 13231205 timestamp: 1792611025816 python_site_packages_path: lib/python3.15/site-packages +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.15.2-h2e4dbab_100_cp315.conda + build_number: 100 + sha256: 78acd0410df52318db76856658143c687fd91398ec1850a027cf9f143498db13 + md5: b4665b09f097706f547ef7048afee0be + depends: + - __osx >=11.0 + - bzip2 >=1.0.8,<2.0a0 + - libedit >=3.1.20260512,<3.2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.54.1,<4.0a0 + - libzlib >=1.3.2,<2.0a0 + - ncurses >=6.6,<7.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.15.* *_cp315 + - tk >=8.6.13,<8.7.0a0 + - tzdata + - zstd >=1.5.7,<1.6.0a0 + license: Python-2.0 + run_exports: + weak: + - python_abi 3.15.* *_cp315 + noarch: + - python + size: 13419531 + timestamp: 1793014795433 + python_site_packages_path: lib/python3.15/site-packages - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.16.0-py311hd322c8c_0.conda sha256: 2301485d8db261416b41e0ff9ec10bc97f36e78fc2a36dccc79d5b49a015258d md5: 3de1c4f91c902d644740c5c9eb802935 @@ -26804,6 +28803,18 @@ packages: run_exports: {} size: 126817 timestamp: 1790684473084 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-librt-0.16.0-py315hc6682d9_0.conda + sha256: f760daf3bcf2cc9130852e99aaf6b9e46b86e7434cef4e2e529bf65ac16566af + md5: b44e7b126811d6115dc90dc6b9b4df48 + depends: + - python + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 126718 + timestamp: 1790684474668 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyyaml-6.0.3-py311hc290fe0_1.conda sha256: 984e73d7957460689e10533059de8adb38a308853d298900a37acc58edd84cec md5: e4b908da7cd496b3fa6798c0f60a2a19 @@ -26917,6 +28928,19 @@ packages: - re2 size: 27372 timestamp: 1781312662146 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/re2-2025.11.05-hb8e9f31_2.conda + sha256: a73476beb55ab4ee89c1ce7c016d7e5a8d3b173fc0fbf97c26d8a49eed5845b0 + md5: 88f434e576af0847af509637f5a917b5 + depends: + - libre2-11 2025.11.05 hc0bb115_2 + license: BSD-3-Clause + license_family: BSD + run_exports: + weak: + - libre2-11 >=2025.11.5 + - re2 + size: 27513 + timestamp: 1792580589410 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/readline-8.3-h8b90a29_1.conda sha256: d6782b430e6dce4fe8c7ac118cd988d5a193eb4a7f60741edfaede58016b6110 md5: 9347fd56a002e6b58946831d48fe62f6 @@ -27115,6 +29139,26 @@ packages: run_exports: {} size: 9694991 timestamp: 1790072985727 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scikit-learn-1.9.1-np2py315h67956b3_1.conda + sha256: cdfef44a067ab8552c636fc060ac9b397eef1b007a0d29515f25159ac6b5e57d + md5: 118222eeffa68925fefc52ba6c7bb07f + depends: + - python + - numpy >=1.24.1 + - scipy >=1.10.0 + - joblib >=1.4.0 + - threadpoolctl >=3.5.0 + - narwhals >=2.0.1 + - __osx >=11.0 + - llvm-openmp >=21.1.8 + - libcxx >=21 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 9686913 + timestamp: 1790072992400 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.17.1-py311h9a58382_1.conda sha256: b45f87414da242a9e40eb934e89513a856e6236d681611c2c9a21d074b03ef5a md5: 15f96f91b13cbefddbf998368d06adef @@ -27195,13 +29239,35 @@ packages: - numpy <2.8 - numpy >=1.25,<3 - numpy >=2.0.0 - - python >=3.14,<3.15.0a0 - - python_abi 3.14.* *_cp314 + - python >=3.14,<3.15.0a0 + - python_abi 3.14.* *_cp314 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 14272608 + timestamp: 1790022149285 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/scipy-1.18.1-py315he7dc495_2.conda + sha256: 40a8014b36914a66f73fc86440f9fd98441d3df70bc55121e08847ae08ee5b7a + md5: dca1844c621a07c06af46b7461c66b06 + depends: + - __osx >=11.0 + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - libcxx >=21 + - libgcc >=15 + - libgfortran + - libgfortran5 >=15.3.0 + - liblapack >=3.9.0,<4.0a0 + - numpy <2.8 + - numpy >=1.25,<3 + - numpy >=2.0.0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 license: BSD-3-Clause license_family: BSD run_exports: {} - size: 14272608 - timestamp: 1790022149285 + size: 14057188 + timestamp: 1792930170658 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/sed-4.10-h5c09db4_0.conda sha256: 28a7b25698cb20d4184d08fd4a84275b5f7522a0261d5de0037829d6a9b0f69d md5: 820cf0ee918ac566c12424f4048babe5 @@ -27490,6 +29556,22 @@ packages: run_exports: {} size: 1109927 timestamp: 1791121763581 +- conda: https://conda.anaconda.org/conda-forge/win-64/ast-serialize-0.13.1-py311h66afae6_0.conda + noarch: python + sha256: 46b2e9a74a2334b6833ee2d2b0d9d4b2889f8fe0fdef617f9cad4bc17ab98191 + md5: 131cd8b1ade37e2d4d5b4f7ef15fab64 + depends: + - python >=3.11 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 1108635 + timestamp: 1792226491254 - conda: https://conda.anaconda.org/conda-forge/win-64/aws-c-auth-0.10.4-hc6e9107_1.conda sha256: cf7ab8abaac6b462463310412cc37d087a767a95920809cbe6dc0a08fe4bcfbd md5: f7069cdc81f7a5e781f1faf6aab6c171 @@ -27879,6 +29961,20 @@ packages: - c-ares >=1.34.8,<2.0a0 size: 210803 timestamp: 1787169972884 +- conda: https://conda.anaconda.org/conda-forge/win-64/c-ares-1.34.9-h6a83c73_0.conda + sha256: 943380e22cc8bb6e9dc5ca3241e88ae9e66052d01fcaabf220e3816bb1953a5e + md5: 2b4ceeec3389b14175539fdaaaee8c55 + depends: + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + license: MIT + license_family: MIT + run_exports: + weak: + - c-ares >=1.34.9,<2.0a0 + size: 214423 + timestamp: 1792507025853 - conda: https://conda.anaconda.org/conda-forge/win-64/cffi-2.1.1-py311h3485c13_3.conda sha256: 3bd25424cd8a3bf0d3f750fdf5a260ed9727f4f8512e425a14caa3797f063182 md5: 0cdd8e5ab6f28690fa174c66bbf9cdac @@ -27993,6 +30089,19 @@ packages: run_exports: {} size: 473739 timestamp: 1790542151464 +- conda: https://conda.anaconda.org/conda-forge/win-64/coverage-7.17.0-py315h4c1998f_0.conda + sha256: eacef5721651f19c8b541dd10cd6ed0fda9f6dd65aae1a9e61d018e1df5c4b9d + md5: cb2c52b59ac0930818d34b32e96406ff + depends: + - python + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + run_exports: {} + size: 476459 + timestamp: 1793049364040 - conda: https://conda.anaconda.org/conda-forge/win-64/debugpy-1.8.22-py311h5dfdfe8_0.conda sha256: 763b618377fb80d67ffb66c8b2159691eedeaa6f3956d247948ffd499d18f408 md5: ccf241a4af2e498a23ef3d3e34ec935d @@ -28084,6 +30193,24 @@ packages: - libabseil =*=cxx17* size: 1978839 timestamp: 1787217043767 +- conda: https://conda.anaconda.org/conda-forge/win-64/libabseil-20260526.0-cxx17_h04e5de1_3.conda + sha256: 744c2701428f014352403034ad47b37fda7835e5899a2083eb6fc4cc83b6fdb5 + md5: 4365914d683441a3fd4e5c99b03100f6 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - abseil-cpp =20260526.0 + - libabseil-static =20260526.0=cxx17* + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - libabseil >=20260526.0,<20260527.0a0 + - libabseil =*=cxx17* + size: 1955591 + timestamp: 1791681137113 - conda: https://conda.anaconda.org/conda-forge/win-64/libarrow-25.0.0-h20c36f3_3_cpu.conda build_number: 3 sha256: 84de044b7639d9b5a344015cf064830be75ec4acfc08b7a07ca776f534ea9579 @@ -28232,6 +30359,20 @@ packages: - libbrotlicommon >=1.2.0,<1.3.0a0 size: 82689 timestamp: 1788480379020 +- conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlicommon-1.2.1-hf02afa3_0.conda + sha256: dc2d23fff23a10ee424e946314344c35c9a222eddca93eb53fc6b897d37f6d03 + md5: c523d6047d24f21716fca89302bd92a1 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: MIT + license_family: MIT + run_exports: + weak: + - libbrotlicommon >=1.2.1,<1.3.0a0 + size: 82431 + timestamp: 1792653747655 - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.2.0-h84f9c24_4.conda sha256: ddcf50274ccdd863c176190726c524903e0b875aa13e9d60c3755b2fa221fc62 md5: 1b4637ca71b21c0d31ab28c3c0b34c8e @@ -28247,6 +30388,21 @@ packages: - libbrotlidec >=1.2.0,<1.3.0a0 size: 34700 timestamp: 1788480390151 +- conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlidec-1.2.1-h84f9c24_0.conda + sha256: 9b0c2c98dd0d054c1b3f4583645d1b867b575daeb28d807f36da3d9c6867bf4f + md5: ae23c3860627923ff10795db781304d9 + depends: + - libbrotlicommon 1.2.1 hf02afa3_0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: MIT + license_family: MIT + run_exports: + weak: + - libbrotlidec >=1.2.1,<1.3.0a0 + size: 34620 + timestamp: 1792653758334 - conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.2.0-he2a975b_4.conda sha256: d6744e57961728e12e4ac8e54bb0edd235a1c34d663a9df0dd153f9540a799bc md5: 562b5e39b7797423e7fd04bae1c6ad70 @@ -28262,6 +30418,21 @@ packages: - libbrotlienc >=1.2.0,<1.3.0a0 size: 253586 timestamp: 1788480399742 +- conda: https://conda.anaconda.org/conda-forge/win-64/libbrotlienc-1.2.1-he2a975b_0.conda + sha256: bf61cccd9f825ca405241ded17806181e02fb383a5a295e6d38ac8fd5774b80d + md5: e30d98aaf0db9ba411860d4f5bb66410 + depends: + - libbrotlicommon 1.2.1 hf02afa3_0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: MIT + license_family: MIT + run_exports: + weak: + - libbrotlienc >=1.2.1,<1.3.0a0 + size: 253587 + timestamp: 1792653769280 - conda: https://conda.anaconda.org/conda-forge/win-64/libcblas-3.11.0-11_h2a3cdd5_mkl.conda build_number: 11 sha256: 9a2d431ead1463a7a96a38bedc901705c325c5bbafd7a2bcc5a198fbfcdea29e @@ -28310,6 +30481,24 @@ packages: - libcurl >=8.22.0,<9.0a0 size: 413226 timestamp: 1788340784214 +- conda: https://conda.anaconda.org/conda-forge/win-64/libcurl-8.23.0-hdb0ef4a_0.conda + sha256: d3088e1fd049fe0c1905ba6174e77279ddb4817739a204aaf4bd31d59d38ea6a + md5: 6c87d16ec0db964b4bcc4102ff8bba9b + depends: + - krb5 >=1.22.2,<1.23.0a0 + - libpsl >=0.23.1,<0.24.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: curl + license_family: MIT + run_exports: + weak: + - libcurl >=8.23.0,<9.0a0 + size: 419667 + timestamp: 1791990844429 - conda: https://conda.anaconda.org/conda-forge/win-64/libevent-2.1.12-hc903f1e_2.conda sha256: 71fde040ce42b6e5b18aa8a8cfcae219cfaf49665bbbb940e6b98bc0c6b879c3 md5: 2f8b5fd59f830697c007f6f9e989f063 @@ -28339,6 +30528,20 @@ packages: run_exports: {} size: 72107 timestamp: 1790346254561 +- conda: https://conda.anaconda.org/conda-forge/win-64/libexpat-2.9.0-hac47afa_0.conda + sha256: d4a8e5aac8999a90cd71aa6f9f5c40d8594ed2b89cd7f898f997767ecc6cd52d + md5: 74ac404611024dc488ae71cfb7a5bf8f + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - expat 2.9.0.* + license: MIT + license_family: MIT + run_exports: {} + size: 72983 + timestamp: 1793054271728 - conda: https://conda.anaconda.org/conda-forge/win-64/libffi-3.7.0-h3d046cb_1.conda sha256: 613e8077c5cca5df7fe84ade7d5050301bee3c6c4c450ffe61d34a349ab4f11c md5: ceb38b0ba900847d8da4289c3c8e5708 @@ -28664,6 +30867,19 @@ packages: - libsqlite >=3.54.1,<4.0a0 size: 1333763 timestamp: 1792175621892 +- conda: https://conda.anaconda.org/conda-forge/win-64/libsqlite-3.54.1-hf5d6505_101.conda + sha256: 1f7ddd7d9383cf6ab6ee5a3a84e07a679a8539edc0ddd05fe476ff08142bf742 + md5: 3fd1cac4336c12f2fb5545a999d7e9b6 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: blessing + run_exports: + weak: + - libsqlite >=3.54.1,<4.0a0 + size: 1333137 + timestamp: 1793051563198 - conda: https://conda.anaconda.org/conda-forge/win-64/libssh2-1.11.1-h734d217_1.conda sha256: 1097b08429b4f53f5751a32c6d99a083d227ca7f7812c0b239eea124cec073a0 md5: a21dd9ca39e74910bb96989feb916420 @@ -28723,6 +30939,16 @@ packages: run_exports: {} size: 36621 timestamp: 1759768399557 +- conda: https://conda.anaconda.org/conda-forge/win-64/libwinpthread-12.0.0.r688.g6b2176247.1-h57928b3_0.conda + sha256: bab5558663cb0e964988b859abd69d0f2380b6ea9f140495ab543e51af13635d + md5: a1b8ebbb78e979c42b2bdd97ad7756e0 + constrains: + - msys2-conda-epoch <0.0a0 + - pthreads-win32 <0.0a0 + license: MIT + run_exports: {} + size: 34475 + timestamp: 1793054490651 - conda: https://conda.anaconda.org/conda-forge/win-64/libxml2-16-2.15.4-h3cfd58e_0.conda sha256: 9fa71cec30425c9cc8eda6af3574af1faf4fefa5e239c9e037b1f778ef3ce8ac md5: bab5489f4bd38494ffaa83d6ab924c1f @@ -28849,6 +31075,23 @@ packages: - llvm-openmp >=23.1.3 size: 342511 timestamp: 1791368620179 +- conda: https://conda.anaconda.org/conda-forge/win-64/llvm-openmp-23.1.4-h49e36cd_0.conda + sha256: a3012ff7e6ec5e0a0a19ea8df76a504f3c2bea2d5b12a94f8aa5a50ac9eeab3c + md5: 2674733d6b58428f90f7afb0132d4202 + depends: + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - intel-openmp <0.0a0 + - openmp 23.1.4|23.1.4.* + license: Apache-2.0 WITH LLVM-exception + license_family: APACHE + run_exports: + strong: + - llvm-openmp >=23.1.4 + size: 344047 + timestamp: 1792567436843 - conda: https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.10.0-h6a83c73_2.conda sha256: 6824e36be0f95ae516dc36dddd18f69cbad0e4e07906fcb10a5f26a8dc471903 md5: 3e0691cb20fcaf922df78ccea08b771a @@ -29018,6 +31261,26 @@ packages: run_exports: {} size: 11096141 timestamp: 1790965616614 +- conda: https://conda.anaconda.org/conda-forge/win-64/mypy-2.4.0-py315h37d93b3_0.conda + sha256: 3721769b1cd5bfca9e870ebae4cd9555a1489f12347b66a40423f431fb7ca192 + md5: c6275a8056569125b87bf2bbe2cc83d0 + depends: + - ast-serialize >=0.11.2,<1.0.0 + - mypy_extensions >=1.0.0 + - pathspec >=1.0.0 + - python + - python-librt >=0.16.0 + - typing_extensions >=4.14.0 + - psutil >=4.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 11149882 + timestamp: 1790965606656 - conda: https://conda.anaconda.org/conda-forge/win-64/nh3-0.3.7-py310ha413424_0.conda noarch: python sha256: 4a94b161d41b68dc9e2c9846a4e398cfabb3fcfce377d0c721a94a94adcc1357 @@ -29434,6 +31697,60 @@ packages: run_exports: {} size: 14059614 timestamp: 1789803361326 +- conda: https://conda.anaconda.org/conda-forge/win-64/pandas-3.1.0-np2py315h06e9524_0.conda + sha256: c82e5f409d7e9c45fc779d0f6236a68dee09615f87c0a82efea78955d2adf245 + md5: 746be88e0df9fa5e73ad9820a472be30 + depends: + - python + - numpy >=2.0.2 + - python-dateutil >=2.9.0 + - python-tzdata + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.15.* *_cp315 + - numpy >=1.25,<3 + constrains: + - adbc-driver-postgresql >=1.7.0 + - adbc-driver-sqlite >=1.7.0 + - beautifulsoup4 >=4.13.4 + - bottleneck >=1.5.0 + - fastparquet >=2024.11.0 + - fsspec >=2025.7.0 + - gcsfs >=2025.7.0 + - html5lib >=1.1 + - hypothesis >=6.116.0 + - jinja2 >=3.1.6 + - lxml >=6.0.0 + - matplotlib >=3.10.5 + - numba >=0.61.2 + - numexpr >=2.11.0 + - odfpy >=1.4.1 + - openpyxl >=3.1.5 + - psycopg2 >=2.9.10 + - pyarrow >=16.0.0 + - pyiceberg >=0.9.1 + - pymysql >=1.1.1 + - pyqt5 >=5.15.11 + - pyreadstat >=1.3.0 + - pytables >=3.10.2 + - python-calamine >=0.4.0 + - pytz >=2024.2 + - pyxlsb >=1.0.10 + - qtpy >=2.4.3 + - scipy >=1.16.1 + - s3fs >=2025.7.0 + - sqlalchemy >=2.0.42 + - tabulate >=0.9.0 + - xarray >=2025.7.1 + - xlrd >=2.0.2 + - xlsxwriter >=3.2.5 + - zstandard >=0.23.0 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 15857267 + timestamp: 1792679048143 - conda: https://conda.anaconda.org/conda-forge/win-64/pandoc-3.12-h57928b3_0.conda sha256: 567ee94fc009666870407be3c19f362ccce122d21e0e5cb358dc13d234859475 md5: ee6aab5c407ecba0b72be400edda7f84 @@ -29672,6 +31989,22 @@ packages: run_exports: {} size: 26584 timestamp: 1784258906758 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-25.0.0-py315h5f0381a_1.conda + sha256: 900a063f6f15c7e87134f54e101cf442da965b00582983b78465f0af1e15ed6c + md5: f5c60f85327447ccfc4432d78db85827 + depends: + - libarrow-acero 25.0.0.* + - libarrow-dataset 25.0.0.* + - libarrow-substrait 25.0.0.* + - libparquet 25.0.0.* + - pyarrow-core 25.0.0 *_1_* + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 26445 + timestamp: 1792228512548 - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-25.0.0-py311hee28c0d_0_cpu.conda sha256: 2f83a99040888fb6e2e91033b8ca4558c5c9c67f1294acbab3cfc35d7ed67adf md5: 07f0c5be86fabe9df29fad4df7b659d1 @@ -29756,6 +32089,28 @@ packages: run_exports: {} size: 3689897 timestamp: 1784258892556 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-core-25.0.0-py315h46fe2c0_1_cpu.conda + build_number: 1 + sha256: 789403eaf2a39aef93835d0201a904eddd6ccf5510ee8b64fed037214c4a4872 + md5: 27da56f4bc1c99cd714d1066b462b589 + depends: + - libarrow 25.0.0.* *cpu + - libarrow-compute 25.0.0.* *cpu + - libzlib >=1.3.2,<2.0a0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + constrains: + - apache-arrow-proc * cpu + - libprotobuf >=6.33.5 + - numpy >=1.23,<3 + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 3740947 + timestamp: 1792228496332 - conda: https://conda.anaconda.org/conda-forge/win-64/pydantic-core-2.46.5-py311hf51aa87_2.conda sha256: f8a6c8debaab58f1f6aec693b691b81a3d11427183f97908ef24cd3ba1b7aa51 md5: c9d92403592babc57b9e6817602b6c25 @@ -29842,6 +32197,20 @@ packages: run_exports: {} size: 71517 timestamp: 1789242541829 +- conda: https://conda.anaconda.org/conda-forge/win-64/pyodbc-5.3.0-py315h05291f8_3.conda + sha256: 4937b4c79c358c75b1075e4b87736645f29451e025150b9f2af612a6b517c9f1 + md5: 0cee178f9c494523c42064c8a7f40f05 + depends: + - python + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 71606 + timestamp: 1789242231105 - conda: https://conda.anaconda.org/conda-forge/win-64/python-3.11.17-hb12b558_2_cpython.conda build_number: 2 sha256: 851934f6dd0731870c07e9d925a73496fb11e8ca792b1eb55e4e668461c4bbe6 @@ -29986,6 +32355,35 @@ packages: size: 18545667 timestamp: 1792610702638 python_site_packages_path: lib/python/site-packages +- conda: https://conda.anaconda.org/conda-forge/win-64/python-3.15.2-h53f6dd8_100_cp315.conda + build_number: 100 + sha256: 75ce979442c5a5cd4f38ced72c5060c35e3b3d4539d92d2cb8bae5e3b6043fa4 + md5: 969c2999f8e4cc1da50ec1930cc7f3a5 + depends: + - bzip2 >=1.0.8,<2.0a0 + - libexpat >=2.8.5,<3.0a0 + - libffi >=3.7.0,<3.8.0a0 + - liblzma >=5.8.3,<6.0a0 + - libmpdec >=4.0.0,<5.0a0 + - libsqlite >=3.54.1,<4.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.9,<4.0a0 + - python_abi 3.15.* *_cp315 + - 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 + run_exports: + weak: + - python_abi 3.15.* *_cp315 + noarch: + - python + size: 18579162 + timestamp: 1793015037227 + python_site_packages_path: lib/python/site-packages - conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.16.0-py311hf893f09_0.conda sha256: 89c625256032bfc6b6b006b41f327374b67598692d6816664b94e9d04da10398 md5: d6918d397da6e12caadeaf41ca7674ac @@ -30042,6 +32440,20 @@ packages: run_exports: {} size: 108883 timestamp: 1790684466795 +- conda: https://conda.anaconda.org/conda-forge/win-64/python-librt-0.16.0-py315h37d93b3_0.conda + sha256: 0a2b97443e6d0c60f83c705b25b514ead03461663c404388a07752162df35075 + md5: dd63ba1d627092f83cfed2770de08680 + depends: + - python + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - python_abi 3.15.* *_cp315 + license: MIT + license_family: MIT + run_exports: {} + size: 109003 + timestamp: 1790684465183 - conda: https://conda.anaconda.org/conda-forge/win-64/pywin32-312-py311h0610301_2.conda sha256: 9ed230618efdb46d97f008dca5cbb0857f5e8a2777ce2dd10ce35ff35512bbbd md5: a366e4c5683a60a76356ec9fb012babd @@ -30423,6 +32835,26 @@ packages: run_exports: {} size: 9329293 timestamp: 1790072992279 +- conda: https://conda.anaconda.org/conda-forge/win-64/scikit-learn-1.9.1-np2py315h2eb6698_1.conda + sha256: 21f855e028898faaa71fc15bd0e59b8baacf0645264f7e4ad13594068a46b73d + md5: be6b8e51dd8aeb889f03af478f72c86e + depends: + - python + - numpy >=1.24.1 + - scipy >=1.10.0 + - joblib >=1.4.0 + - threadpoolctl >=3.5.0 + - narwhals >=2.0.1 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - numpy >=1.25,<3 + - python_abi 3.15.* *_cp315 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 9329643 + timestamp: 1790072986736 - conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.17.1-py311h9c22a71_1.conda sha256: 668cfbfb7960df5fff0e2db2677eb00d9e02ee1ce63cc9b1c985d782dacab2fe md5: 0635502eadb751abecd2c68af249f50f @@ -30503,6 +32935,26 @@ packages: run_exports: {} size: 14991924 timestamp: 1790022987236 +- conda: https://conda.anaconda.org/conda-forge/win-64/scipy-1.18.1-py315h2b81d6d_2.conda + sha256: eb5c11ec8075b99d92dabe2d5ba90c1a2295f147ba68e36b1aac79e38ad55912 + md5: 38d72a5e9d42b4605388527f9f12a5df + depends: + - libblas >=3.9.0,<4.0a0 + - libcblas >=3.9.0,<4.0a0 + - liblapack >=3.9.0,<4.0a0 + - numpy <2.8 + - numpy >=1.25,<3 + - numpy >=2.0.0 + - python >=3.15,<3.16.0a0 + - python_abi 3.15.* *_cp315 + - ucrt >=10.0.20348.0 + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 15343990 + timestamp: 1792930519863 - conda: https://conda.anaconda.org/conda-forge/win-64/snappy-1.2.2-h7fa0ca8_2.conda sha256: cb9cb97d7d45eeb12b47eee7649ae6be41e080a5394a42e1467663df734f9971 md5: b67026a6e25ef36a66c21c19754765cb diff --git a/pixi.toml b/pixi.toml index 1e8363ff..f3e96166 100644 --- a/pixi.toml +++ b/pixi.toml @@ -116,6 +116,9 @@ polars = "1.43.*" [feature.nightly.tasks] install-polars-nightly = "pip install --pre --no-deps --upgrade --only-binary :all: polars polars-runtime-32" +[feature.py315.dependencies] +python = "3.15.*" + [environments] build = ["build"] default = ["dev", "lint", "optionals", "polars-latest", "py314", "test"] @@ -129,6 +132,7 @@ py311 = ["polars-latest", "py311", "test"] py312 = ["polars-latest", "py312", "test"] py313 = ["polars-latest", "py313", "test"] py314 = ["polars-latest", "py314", "test"] +py315 = ["polars-latest", "py315", "test"] # Test with optional dependencies py314-optionals = ["optionals", "polars-latest", "py314", "test"] @@ -143,6 +147,3 @@ default-polars-minimal = [ "test", ] polars-minimal = ["polars-minimal", "py314", "test"] - -[feature.py315.dependencies] -python = "3.15.*" diff --git a/pyproject.toml b/pyproject.toml index fc15aeb6..9e2f52c4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,8 @@ sqlalchemy = ["sqlalchemy"] Documentation = "https://dataframely.readthedocs.io/" Repository = "https://github.com/quantco/dataframely" +[project.scripts] + [tool.maturin] module-name = "dataframely._native" @@ -38,30 +40,18 @@ module-name = "dataframely._native" include = ["dataframely"] namespaces = false -[project.scripts] - [tool.docformatter] -black = true # only sets the style options to the default values of black +black = true # only sets the style options to the default values of black [tool.ruff] line-length = 88 [tool.ruff.lint] ignore = [ -<<<<<<< before updating - "E501", # https://docs.astral.sh/ruff/faq/#is-the-ruff-linter-compatible-with-black - "N803", # https://docs.astral.sh/ruff/rules/invalid-argument-name - "N806", # https://docs.astral.sh/ruff/rules/non-lowercase-variable-in-function -||||||| last update - "N803", # https://docs.astral.sh/ruff/rules/invalid-argument-name - "N806", # https://docs.astral.sh/ruff/rules/non-lowercase-variable-in-function - "E501", # https://docs.astral.sh/ruff/faq/#is-the-ruff-linter-compatible-with-black -======= "N803", # https://docs.astral.sh/ruff/rules/invalid-argument-name "N806", # https://docs.astral.sh/ruff/rules/non-lowercase-variable-in-function "E501", # https://docs.astral.sh/ruff/faq/#is-the-ruff-linter-compatible-with-black "D1", # https://docs.astral.sh/ruff/rules/#pydocstyle-d ->>>>>>> after updating ] select = [ # pyflakes @@ -85,6 +75,9 @@ classmethod-decorators = ["dataframely.rule"] [tool.ruff.lint.per-file-ignores] "docs/guides/examples/real-world.ipynb" = ["F811"] +[tool.ruff.lint.pydocstyle] +convention = "google" + [tool.ruff.format] indent-style = "space" quote-style = "double" @@ -122,8 +115,5 @@ testpaths = ["tests"] [tool.coverage.run] omit = ["dataframely/testing/generate.py"] -[tool.ruff.lint.pydocstyle] -convention = "google" - [tool.tombi] schema.enabled = false diff --git a/tests/collection/test_matches.py b/tests/collection/test_matches.py index 46f9579c..87d515d6 100644 --- a/tests/collection/test_matches.py +++ b/tests/collection/test_matches.py @@ -20,8 +20,7 @@ class MyCollection1(dy.Collection): def test_collection_matches_different_members() -> None: - """Collections should count as different if they have members with different - names.""" + """Collections should count as different if they have members with different names.""" class MySchema(dy.Schema): foo = dy.Integer() @@ -62,8 +61,7 @@ class MyCollection2(dy.Collection): def test_collection_matches_different_filter_names() -> None: - """Collections should count as different if they have the same members but different - names.""" + """Collections should count as different if they have the same members but different names.""" class MyIntSchema(dy.Schema): foo = dy.Integer(primary_key=True) @@ -81,8 +79,7 @@ def test_filter(self) -> pl.LazyFrame: def test_collection_matches_different_filter_logc() -> None: - """Collections should count as different if they have the same members but different - filter logic.""" + """Collections should count as different if they have the same members but different filter logic.""" class MyIntSchema(dy.Schema): foo = dy.Integer(primary_key=True) @@ -104,8 +101,7 @@ def test_filter(self) -> pl.LazyFrame: def test_collection_matches_different_optional() -> None: - """Collections should count as different if their members differ in whether they are - optional or not.""" + """Collections should count as different if their members differ in whether they are optional or not.""" class FooSchema(dy.Schema): x = dy.Integer() diff --git a/tests/column_types/test_integer.py b/tests/column_types/test_integer.py index fd2bf3fd..d0b67be3 100644 --- a/tests/column_types/test_integer.py +++ b/tests/column_types/test_integer.py @@ -100,8 +100,7 @@ def test_validate_max(column_type: type[_BaseInteger], inclusive: bool) -> None: @pytest.mark.parametrize("column_type", INTEGER_COLUMN_TYPES) @pytest.mark.parametrize("inclusive", [True, False]) def test_validate_min_zero(column_type: type[_BaseInteger], inclusive: bool) -> None: - """Specific edge case where the minimum is `0`, which can lead to python bugs if we - use `if value` instead of `if value is not None` somewhere.""" + """Specific edge case where the minimum is `0`, which can lead to python bugs if we use `if value` instead of `if value is not None` somewhere.""" key = "min" if inclusive else "min_exclusive" kwargs = {key: 0, "nullable": True} column = column_type(**kwargs) # type: ignore @@ -114,8 +113,7 @@ def test_validate_min_zero(column_type: type[_BaseInteger], inclusive: bool) -> @pytest.mark.parametrize("column_type", INTEGER_COLUMN_TYPES) @pytest.mark.parametrize("inclusive", [True, False]) def test_validate_max_zero(column_type: type[_BaseInteger], inclusive: bool) -> None: - """Specific edge case where the maximum is `0`, which can lead to python bugs if we - use `if value` instead of `if value is not None` somewhere.""" + """Specific edge case where the maximum is `0`, which can lead to python bugs if we use `if value` instead of `if value is not None` somewhere.""" key = "max" if inclusive else "max_exclusive" kwargs = {key: 0, "nullable": True} column = column_type(**kwargs) # type: ignore From 92c69c50737e72eab42ecd75305ffde05018953b Mon Sep 17 00:00:00 2001 From: Oliver Borchert Date: Tue, 27 Oct 2026 15:30:51 -0400 Subject: [PATCH 3/3] fix: require compatible Polars on Python 3.15 --- docs/guides/faq.md | 1 + pixi.lock | 131 +++++++++++++++++++++++++++++++++++++++++---- pixi.toml | 6 ++- pyproject.toml | 6 ++- 4 files changed, 131 insertions(+), 13 deletions(-) diff --git a/docs/guides/faq.md b/docs/guides/faq.md index b800600f..c9fdc463 100644 --- a/docs/guides/faq.md +++ b/docs/guides/faq.md @@ -45,6 +45,7 @@ Starting from this definition, you can then refine the schema by adding addition Our CI automatically tests `dataframely` for a minimal supported version of `polars`, which is currently `1.35.*`, and the latest stable version. +Python 3.15 and later require `polars>=2` for Python 3.15 compatibility. We aim to extend support for new `polars` versions as they are released. If your `polars` version is not in the range of supported versions, `dataframely` may still work, but you may diff --git a/pixi.lock b/pixi.lock index 2b29f10b..29207148 100644 --- a/pixi.lock +++ b/pixi.lock @@ -10276,7 +10276,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/orc-2.3.1-h443056b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pandas-3.1.0-np2py315h105398f_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-1.43.2-py310h9585f58_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-2.1.0-py311hb519a9e_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/prometheus-cpp-1.3.0-ha5d0236_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/psutil-7.2.2-py315hd4e796c_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/pyarrow-25.0.0-py315h6439f66_1.conda @@ -10308,7 +10308,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-2.1.0-pyh3138b34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda @@ -10411,7 +10411,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.6.5-he6ad1d5_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/orc-2.3.1-h1fb4f23_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pandas-3.1.0-np2py315hef38079_0.conda - - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/polars-runtime-32-1.43.2-py310ha6a983b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/polars-runtime-32-2.1.0-py311h9bdc3bb_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/prometheus-cpp-1.3.0-h7938499_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/psutil-7.2.2-py315h161ad5a_3.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyarrow-25.0.0-py315ha1274e1_1.conda @@ -10443,7 +10443,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-2.1.0-pyh3138b34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda @@ -10477,7 +10477,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-2.1.0-pyh3138b34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda @@ -10574,7 +10574,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-64/openssl-3.6.5-h332eb6d_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/orc-2.3.1-h982cfee_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pandas-3.1.0-np2py315h1dd93b8_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-1.43.2-py310hbfc13ad_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-2.1.0-py311h3f6c98b_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/prometheus-cpp-1.3.0-h7802330_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/psutil-7.2.2-py315h54bb5ba_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-64/pyarrow-25.0.0-py315h5de8b50_1.conda @@ -10607,7 +10607,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-2.1.0-pyh3138b34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda @@ -10704,7 +10704,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/orc-2.3.1-hef2a647_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pandas-3.1.0-np2py315h5900ff1_0.conda - - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-1.43.2-py310hcbcba24_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-2.1.0-py311hcf7cb79_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prometheus-cpp-1.3.0-h0967b3e_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/psutil-7.2.2-py315hc6682d9_3.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyarrow-25.0.0-py315h016ee38_1.conda @@ -10737,7 +10737,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pip-26.2.2-pyh145f28c_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda - - conda: https://conda.anaconda.org/conda-forge/noarch/polars-1.43.2-pyh8da0edf_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/polars-2.1.0-pyh3138b34_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/py-cpuinfo-9.0.0-pyhd8ed1ab_1.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.conda @@ -10827,7 +10827,7 @@ environments: - conda: https://conda.anaconda.org/conda-forge/win-64/openssl-3.6.5-hf411b9b_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/orc-2.3.1-hf7eca67_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pandas-3.1.0-np2py315h06e9524_0.conda - - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-1.43.2-py310h60426dd_0.conda + - conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-2.1.0-py311hb4e3305_0.conda - conda: https://conda.anaconda.org/conda-forge/win-64/prometheus-cpp-1.3.0-hd44ad28_1.conda - conda: https://conda.anaconda.org/conda-forge/win-64/psutil-7.2.2-py315h37d93b3_3.conda - conda: https://conda.anaconda.org/conda-forge/win-64/pyarrow-25.0.0-py315h5f0381a_1.conda @@ -13495,6 +13495,24 @@ packages: run_exports: {} size: 38925458 timestamp: 1788957763651 +- conda: https://conda.anaconda.org/conda-forge/linux-64/polars-runtime-32-2.1.0-py311hb519a9e_0.conda + noarch: python + sha256: fd6f86e0de0bb26bc023eeb0d8fb0cd195324bc9553b5b261972fcb46a9d2834 + md5: b61e4c5a066c86ddd692eab0027bb930 + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - libstdcxx >=15 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 41048638 + timestamp: 1793016606615 - conda: https://conda.anaconda.org/conda-forge/linux-64/prettier-3.9.6-hdf27b9d_0.conda sha256: 9993447a29e9d4b53d85e96c3d260fbfb70652083b5b479360e3d1780d835eac md5: dc5bb3031e732eb564a6c948e3fd2081 @@ -17403,6 +17421,23 @@ packages: run_exports: {} size: 36653148 timestamp: 1788957747920 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/polars-runtime-32-2.1.0-py311h9bdc3bb_0.conda + noarch: python + sha256: 215245dcd663917a3d025c897a18f8f413458ea2d374f4dcf5eba681e2828c00 + md5: 19ca4ed518fceb678e04e40add870857 + depends: + - python + - libgcc >=15 + - libstdcxx >=15 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 38361310 + timestamp: 1793016568894 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/prettier-3.9.6-h70496c1_0.conda sha256: 789f69569ee21e4887d60bd51fceff149ff486c63e518264596724026071d4a0 md5: 163a1baa1e287c93584b0d183c7aed3b @@ -20614,6 +20649,32 @@ packages: run_exports: {} size: 559898 timestamp: 1788957763651 +- conda: https://conda.anaconda.org/conda-forge/noarch/polars-2.1.0-pyh3138b34_0.conda + sha256: ebfa4ab7db111a512cbd858e41c01c6b318cd020f303c6af7e432fe4505022b2 + md5: 3e2d5d685bbde2dce96887d79fa481e9 + depends: + - polars-runtime-32 ==2.1.0 + - python >=3.11 + - python + constrains: + - numpy >=1.16.0 + - pyarrow >=7.0.0 + - fastexcel >=0.9 + - openpyxl >=3.0.0 + - xlsx2csv >=0.8.0 + - connectorx >=0.3.2 + - deltalake >=1.0.0 + - pyiceberg >=0.7.1 + - altair >=5.4.0 + - great_tables >=0.8.0 + - polars-runtime-32 ==2.1.0 + - polars-runtime-64 ==2.1.0 + - polars-runtime-compat ==2.1.0 + license: MIT + license_family: MIT + run_exports: {} + size: 596323 + timestamp: 1793016606615 - conda: https://conda.anaconda.org/conda-forge/noarch/pre-commit-hooks-6.0.0-pyhd8ed1ab_0.conda sha256: 292e8666ed5338b1a43a3a7f21030e95e393cfa245725c3d502d87481c4d6ef9 md5: 00a7fda6ccb684f36a8f2f0a17851da9 @@ -24389,6 +24450,23 @@ packages: run_exports: {} size: 38333225 timestamp: 1788957742881 +- conda: https://conda.anaconda.org/conda-forge/osx-64/polars-runtime-32-2.1.0-py311h3f6c98b_0.conda + noarch: python + sha256: 2e6e59d099ffb8de71f72efaded22b918186889f52121d796bf9fde9a3e9c903 + md5: bb079099a62d1d4b741243bc0454c6fe + depends: + - python + - libcxx >=21 + - __osx >=11.0 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 40724605 + timestamp: 1793016564298 - conda: https://conda.anaconda.org/conda-forge/osx-64/prettier-3.9.6-h99b04b3_0.conda sha256: 160cafa3c41aae0a3ec1c76a37b62ddb5e676d6039a8a4024e07ea5a24996687 md5: 2565ee5d958159db8e78e90fafafa182 @@ -28146,6 +28224,23 @@ packages: run_exports: {} size: 34546003 timestamp: 1788957662024 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/polars-runtime-32-2.1.0-py311hcf7cb79_0.conda + noarch: python + sha256: b5aa72f8a2d1600a5c896955527aaab20f29bb414e8b0837830ff87956615176 + md5: 1738bc20fb5e4d260056b461be12e18f + depends: + - python + - __osx >=11.0 + - libcxx >=21 + - _python_abi3_support 1.* + - cpython >=3.11 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 36778053 + timestamp: 1793016470993 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/prettier-3.9.6-he13c965_0.conda sha256: c6eeadc54b2d1318429ccdc8d76226e8c07da095a1160650cf7bab6ca0afff27 md5: 6600dde905eb76c187280a743c1c4498 @@ -31810,6 +31905,22 @@ packages: run_exports: {} size: 41244373 timestamp: 1788957639558 +- conda: https://conda.anaconda.org/conda-forge/win-64/polars-runtime-32-2.1.0-py311hb4e3305_0.conda + noarch: python + sha256: 4a9fd4022f0d1fbee50c72d3718a22fc2dc2ce0cbe0ba24380e4c1c52c2c20c0 + md5: d85d00fd1f75954a1fa4906b538dc1ad + depends: + - python + - vc >=14.3,<15 + - vc14_runtime >=14.44.35208 + - ucrt >=10.0.20348.0 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 44333929 + timestamp: 1793016425121 - conda: https://conda.anaconda.org/conda-forge/win-64/prettier-3.9.6-h2c448b4_0.conda sha256: 3451d1b1296080fcefee5122a2937b53b24572dbeaaa6381e448adc414cd2f2e md5: bbe3c771355cda1c97fcc9b1612d3a00 diff --git a/pixi.toml b/pixi.toml index f3e96166..9dc13991 100644 --- a/pixi.toml +++ b/pixi.toml @@ -118,6 +118,8 @@ install-polars-nightly = "pip install --pre --no-deps --upgrade --only-binary :a [feature.py315.dependencies] python = "3.15.*" +# Polars 2 fixes expression dispatch on Python 3.15. +polars = ">=2,<3" [environments] build = ["build"] @@ -127,12 +129,12 @@ docs = ["docs"] lint = { features = ["lint"], no-default-feature = true } nightly = ["nightly", "optionals", "test"] -# Different python versions with the latest polars +# Different Python versions with compatible Polars releases py311 = ["polars-latest", "py311", "test"] py312 = ["polars-latest", "py312", "test"] py313 = ["polars-latest", "py313", "test"] py314 = ["polars-latest", "py314", "test"] -py315 = ["polars-latest", "py315", "test"] +py315 = ["py315", "test"] # Test with optional dependencies py314-optionals = ["optionals", "polars-latest", "py314", "test"] diff --git a/pyproject.toml b/pyproject.toml index 9e2f52c4..8064d95b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -16,7 +16,11 @@ classifiers = [ "Programming Language :: Python :: 3.14", "Programming Language :: Python :: 3.15", ] -dependencies = ["numpy", "polars>=1.35"] +dependencies = [ + "numpy", + "polars>=1.35; python_version < '3.15'", + "polars>=2; python_version >= '3.15'", +] description = "A declarative, polars-native data frame validation library" name = "dataframely" readme = "README.md"