diff --git a/.copier-answers.yml b/.copier-answers.yml index c85d093..a4eddaa 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: noreply@quantco.com diff --git a/.envrc b/.envrc index 95052c6..88e0c80 100644 --- a/.envrc +++ b/.envrc @@ -1,4 +1,3 @@ -watch_file pixi.toml pixi.lock -eval "$(pixi shell-hook)" +layout pixi dotenv_if_exists .env diff --git a/.gitattributes b/.gitattributes index 1aaeb72..7c0fa8a 100644 --- a/.gitattributes +++ b/.gitattributes @@ -5,6 +5,6 @@ *.{py,yaml,yml,sh} text eol=lf *.bat text eol=crlf -pixi.lock merge=binary linguist-language=YAML linguist-generated=true +pixi.lock merge=binary linguist-language=YAML linguist-generated=true -diff docs/docs/reference/*.md merge=binary linguist-generated=true diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c0a759d..493c4bd 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,7 @@ jobs: with: fetch-depth: 0 - name: Set up pixi - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 - name: Derive version id: version if: startsWith(github.ref, 'refs/tags/') @@ -26,7 +26,7 @@ jobs: - name: Replace version if: startsWith(github.ref, 'refs/tags/') run: | - sed -i -e "s/0.0.0/${STEPS_VERSION_OUTPUTS_VERSION}/g" pyproject.toml + sed -i -E -e "s/(^|[^0-9])0\.0\.0([^0-9]|$)/\1${STEPS_VERSION_OUTPUTS_VERSION}\2/g" pyproject.toml env: STEPS_VERSION_OUTPUTS_VERSION: ${{ steps.version.outputs.version }} - name: Build project @@ -34,7 +34,7 @@ jobs: - name: Check package run: pixi run check-wheel - name: Upload package - uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 + uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2 with: name: artifact path: dist/* @@ -48,7 +48,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: name: artifact path: dist diff --git a/.github/workflows/chore.yml b/.github/workflows/chore.yml index ccd6451..bea6425 100644 --- a/.github/workflows/chore.yml +++ b/.github/workflows/chore.yml @@ -21,7 +21,7 @@ jobs: fetch-depth: 0 persist-credentials: false - name: Set up pixi - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 - name: Check for breaking public API changes env: BASE_SHA: ${{ github.event.pull_request.base.sha }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 70ad4be..89d8f8f 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -19,10 +19,10 @@ jobs: timeout-minutes: 30 runs-on: ubuntu-latest steps: - - name: Checkout branch + - name: Check out branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up pixi - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 - name: Run linting run: pixi run lint env: @@ -39,16 +39,17 @@ jobs: matrix: environment: - py314 + - py315 os: - ubuntu-latest - macos-latest steps: - - name: Checkout branch + - name: Check out branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 with: fetch-depth: 0 - name: Set up pixi - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 with: environments: ${{ matrix.environment }} - name: Run pytest diff --git a/.github/workflows/copilot-setup-steps.yml b/.github/workflows/copilot-setup-steps.yml index f68442a..8b90eae 100644 --- a/.github/workflows/copilot-setup-steps.yml +++ b/.github/workflows/copilot-setup-steps.yml @@ -14,6 +14,6 @@ jobs: - name: Check out branch uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - name: Set up pixi - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 with: locked: false diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 9dd97a5..668733f 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -26,7 +26,7 @@ jobs: id: pages uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0 - name: Set up Pixi - uses: prefix-dev/setup-pixi@d3f436a425481402e6a95a1d1fc10331c708cd9e # v0.10.2 + uses: prefix-dev/setup-pixi@ad1da6449d9e506fd127fd67ab2d054a769f6a94 # v0.11.2 with: environments: docs - name: Build documentation diff --git a/.github/workflows/scorecard.yml b/.github/workflows/scorecard.yml index 631398d..ff9d31a 100644 --- a/.github/workflows/scorecard.yml +++ b/.github/workflows/scorecard.yml @@ -34,13 +34,13 @@ 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" - uses: ossf/scorecard-action@2d1146689b8cda280b9bc96326124645441f03bc # v2.4.4 + uses: ossf/scorecard-action@fa7117db83c52d787ae5a89f350999701505d78e # v2.5.0 with: results_file: results.sarif results_format: sarif @@ -65,7 +65,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 +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" - uses: github/codeql-action/upload-sarif@2892aa5e19bbd11bc0cff5427e3b750a04d9e3c2 # v4.38.2 + uses: github/codeql-action/upload-sarif@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4.39.0 with: sarif_file: results.sarif diff --git a/.gitignore b/.gitignore index e0bca2e..753445a 100644 --- a/.gitignore +++ b/.gitignore @@ -2,399 +2,67 @@ # be ignored in the blocks below. !.* -# NOTE: The block below is NOT copied sic from https://www.toptal.com/developers/gitignore. -# Instead, it contains some customizations that should be taken into account when adjusting the -# block. - -# 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 - -### direnv ### -.direnv -# `.envrc` is checked into this repository, so it must not be ignored. - -### 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 .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 - -# SonarLint plugin -.idea/sonarlint/ - -# Crashlytics plugin (for Android Studio and IntelliJ) -com_crashlytics_export_strings.xml -crashlytics.properties -crashlytics-build.properties -fabric.properties - -# Editor-based Rest Client -.idea/httpRequests - -# Android studio 3.1+ serialized cache file -.idea/caches/build_file_checksums.ser - -### PyCharm+all Patch ### -# Ignore everything but code style settings and run configurations -# that are supposed to be shared within teams. -.idea/* - -!.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/ -# 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/ target/ - -# 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/ /site +docs/_build/ +*.conda -# 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 # Removed as being too broad, see https://github.com/Quantco/copier-template-python/pull/161 -# 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 - -# End of https://www.toptal.com/developers/gitignore/api/linux,macos,direnv,python,windows,pycharm+all,visualstudiocode,vim - -# pixi -.pixi - -# rattler-build -output/ +# general +*.so +cmake-build-*/ +*.log +.env # Claude .claude/*.local.* .claude/worktrees/ -.claude/settings.local.json + +# customizations per repo diff --git a/.lefthook.yaml b/.lefthook.yaml index 21e1a02..441537f 100644 --- a/.lefthook.yaml +++ b/.lefthook.yaml @@ -30,9 +30,9 @@ pre-commit: run: pixi {run} prettier --write --no-error-on-unmatched-pattern --list-different --ignore-unknown {staged_files} env: CI: "1" - - name: taplo + - name: tombi glob: "*.toml" - run: pixi {run} taplo format {staged_files} + run: pixi {run} tombi format --offline {staged_files} - name: trailing-whitespace-fixer glob: "*" file_types: text @@ -47,6 +47,8 @@ pre-commit: run: pixi {run} check-merge-conflict --assume-in-merge {staged_files} - name: typos glob: "*" + exclude: + - .copier-answers.yml file_types: text run: pixi {run} typos --force-exclude {staged_files} - name: zizmor diff --git a/docs/contents/reference/python-api.md b/docs/contents/reference/python-api.md index 2362fae..93ce2ab 100644 --- a/docs/contents/reference/python-api.md +++ b/docs/contents/reference/python-api.md @@ -1322,7 +1322,7 @@ model_config = ConfigDict(frozen=True, extra='forbid') **Classes:** - **CommitAuthor** – -- **CopierMigration** – Changes one answer in a repository's `.copier-answers.yml` by re-running \`copier +- **CopierMigration** – Changes one answer in a repository's `.copier-answers.yml`. - **PullRequestTemplate** – - **PullRequestTemplates** – - **SiteConfig** – Site-wide configuration provided by a `quant_ranger.site_config` plugin. @@ -1375,7 +1375,10 @@ email: str CopierMigration(answer_key: str, templates: frozenset[str], resolve_desired_value: Callable[[CopierMigrationValue], CopierMigrationValue], pull_request_template: PullRequestTemplate, post_migration: Callable[[RepositoryCheckout, RunContext], None] | None = None) -> None ``` -Changes one answer in a repository's `.copier-answers.yml` by re-running `copier update` with the desired value and opening a pull request. +Changes one answer in a repository's `.copier-answers.yml`. + +The migration re-runs `copier update` with the desired value and opens a pull +request. **Attributes:** diff --git a/examples/plugin/pyproject.toml b/examples/plugin/pyproject.toml index 464cc4e..5af7b43 100644 --- a/examples/plugin/pyproject.toml +++ b/examples/plugin/pyproject.toml @@ -8,9 +8,6 @@ description = "Example plugin package for quant-ranger." version = "0.1.0" requires-python = ">=3.14" -[tool.hatch.build.targets.wheel] -packages = ["quant_ranger_example_plugin"] - [project.entry-points."quant_ranger.updaters"] ensure_config = "quant_ranger_example_plugin.updater:EnsureConfigUpdater" @@ -19,3 +16,6 @@ status_summary = "quant_ranger_example_plugin.aggregator:StatusSummaryAggregator [project.entry-points."quant_ranger.site_config"] example = "quant_ranger_example_plugin.site_config:site_config" + +[tool.hatch.build.targets.wheel] +packages = ["quant_ranger_example_plugin"] diff --git a/pixi.lock b/pixi.lock index ee7128a..fcb56e6 100644 --- a/pixi.lock +++ b/pixi.lock @@ -80,8 +80,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-64/rattler-sandbox-0.2.3-hb17b654_0.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.6-hbcb56a7_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.1-hf19af3b_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.5.1-py315hd4e796c_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda @@ -244,8 +244,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/rattler-sandbox-0.2.3-h069e38c_0.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.6-h482a1e1_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.1-h328a733_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/wrapt-2.5.1-py315h161ad5a_0.conda - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-h29ee22c_3.conda @@ -495,8 +495,8 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rattler-sandbox-0.2.3-h6fdd925_0.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.6-h7f187d3_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.1-hc2d82ec_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-2.5.1-py315hc6682d9_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h74c22ad_3.conda @@ -1223,6 +1223,373 @@ environments: - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zizmor-1.22.0-h6fdd925_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda - conda_source: quant-ranger[97c7e493] @ . + 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/brotli-python-1.2.1-py315h80bb748_0.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/cffi-2.1.1-py315h0a45a71_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/charset-normalizer-3.5.2-h1114479_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/coverage-7.16.2-py315h4aa9e2b_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/cryptography-50.0.2-py311hc91d8b8_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/git-2.56.0-pl5440h3795e67_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.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/libcurl-8.23.0-ha042cf0_0.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/libexpat-2.8.5-hd2095e1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.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/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/libpsl-0.23.1-hd9e3e90_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-hebe6cf0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h13e7031_0.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/libuuid-2.42.4-hcfc3c73_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libxcrypt-4.4.38-h280c20c_0.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/mergiraf-0.20.0-hf19af3b_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/openssl-3.6.5-h781a0a9_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-h8b3dc9c_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.44.0-1_h7cc23a3_perl5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/py-rattler-0.23.2-py310h70157a2_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.50.1-py315h80d437b_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.6.2-py311h2d59bce_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/pyrefly-1.4.0-hf19af3b_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.15.1-h6e52b48_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/rattler-sandbox-0.2.3-hb17b654_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.13-noxft_h1df4ec4_4.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wcwidth-0.9.4-py311hd139983_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.5.1-py315hd4e796c_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-hebe6cf0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zizmor-1.22.0-hb17b654_0.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/annotated-doc-0.0.5-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.8.0-py314h723298c_1.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/certifi-2026.10.23-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copier-9.19.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.1-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-3.0.0-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dunamai-1.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/eval-type-backport-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/eval_type_backport-0.2.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/funcy-2.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-ansible-filters-1.3.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.4-pyh9d376c1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-11.2.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ordered-enum-0.0.10-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-diff-to-markdown-0.3.9-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.13.5-pyh5ded981_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/plumbum-2.0.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.12-pyh5ded981_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.14.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.16.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygithub-2.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.15.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.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/python-abi3-3.15-h97fd899_3.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-dotenv-1.2.4-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.1-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/pyyaml-6.0.3-pyh7db6752_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.25.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260906-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_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/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + - conda_source: quant-ranger[ed1215d4] @ . + 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/brotli-python-1.2.1-py315h258431b_0.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/cffi-2.1.1-py315hd8503b0_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/coverage-7.16.2-py315h52ab114_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/cryptography-50.0.2-py311h9269228_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/git-2.56.0-pl5440h0749d22_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-78.3-py311h3512406_2.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/libcurl-8.23.0-h86273da_0.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/libexpat-2.8.5-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/libgomp-16.2.0-h8acb6b2_7.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/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/libpsl-0.23.1-hb8431ed_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsodium-1.0.22-h29ee22c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.54.1-h399dd60_0.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/libuuid-2.42.4-hd6fdeab_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libxcrypt-4.4.38-h80f16a2_0.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/mergiraf-0.20.0-h328a733_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/openssl-3.6.5-he6ad1d5_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.47-he574923_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/perl-5.44.0-1_h5bc82ec_perl5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/py-rattler-0.23.2-py310h45743d3_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pydantic-core-2.50.1-py315h75fd777_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pynacl-1.6.2-py311h86be75f_5.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyrefly-1.4.0-h328a733_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.15.1-h0c7c799_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/rattler-sandbox-0.2.3-h069e38c_0.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/wcwidth-0.9.4-py311h7113396_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/wrapt-2.5.1-py315h161ad5a_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/yaml-0.2.5-h29ee22c_3.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/zizmor-1.22.0-h069e38c_0.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/annotated-doc-0.0.5-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.8.0-py314h723298c_1.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/certifi-2026.10.23-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copier-9.19.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.1-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-3.0.0-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dunamai-1.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/eval-type-backport-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/eval_type_backport-0.2.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/funcy-2.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-ansible-filters-1.3.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.4-pyh9d376c1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-11.2.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ordered-enum-0.0.10-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-diff-to-markdown-0.3.9-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.13.5-pyh5ded981_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/plumbum-2.0.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.12-pyh5ded981_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.14.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.16.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygithub-2.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.15.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.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/python-abi3-3.15-h97fd899_3.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-dotenv-1.2.4-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.1-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/pyyaml-6.0.3-pyh7db6752_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.25.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260906-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_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/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + - conda_source: quant-ranger[866b7251] @ . + 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/annotated-doc-0.0.5-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/annotated-types-0.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.8.0-py314h723298c_1.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/certifi-2026.10.23-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/click-8.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/copier-9.19.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.15.1-py315hd8ed1ab_100.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-3.0.0-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/dunamai-1.26.3-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/eval-type-backport-0.2.2-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/eval_type_backport-0.2.2-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/exceptiongroup-1.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/funcy-2.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.4.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hyperframe-6.1.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/iniconfig-2.3.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-3.1.6-pyhcf101f3_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/jinja2-ansible-filters-1.3.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markdown-it-py-4.2.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/markupsafe-3.0.4-pyh9d376c1_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/mdurl-0.1.2-pyhd8ed1ab_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-11.2.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ordered-enum-0.0.10-pyhe01879c_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/packaging-26.3-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pixi-diff-to-markdown-0.3.9-pyhc364b38_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.13.5-pyh5ded981_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/plumbum-2.0.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt-toolkit-3.0.51-pyha770c72_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/prompt_toolkit-3.0.51-hd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.12-pyh5ded981_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.14.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.16.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygithub-2.10.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pygments-2.21.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.15.1-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pysocks-1.7.1-pyha55dd90_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pytest-9.1.1-pyhc364b38_2.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/python-abi3-3.15-h97fd899_3.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-dotenv-1.2.4-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.15.1-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/pyyaml-6.0.3-pyh7db6752_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/questionary-2.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/requests-2.34.2-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/rich-15.0.0-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/shellingham-1.5.4-pyhd8ed1ab_2.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/six-1.17.0-pyhe01879c_1.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typer-0.25.1-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-pyyaml-6.0.12.20260906-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20261006-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/typing-inspection-0.4.4-pyhcf101f3_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/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.1-py315hbb42f36_0.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/cffi-2.1.1-py315h71aaffb_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/coverage-7.16.2-py315ha816bd5_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/cryptography-50.0.2-py311hc28ac56_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/git-2.56.0-pl5440h66f49b9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-py310h579977c_2.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/libcurl-8.23.0-h6651222_0.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/libexpat-2.8.5-h6111c0a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.7.0-h47dc5ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libiconv-1.18-he4c29f2_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-hae62183_2.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/libpsl-0.23.1-hdb0c161_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.22-h74c22ad_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-hca69786_0.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/libzlib-1.3.2-h8088a28_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/mergiraf-0.20.0-hc2d82ec_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/openssl-3.6.5-h55eecbc_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-he63d830_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/perl-5.44.0-1_hb001647_perl5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/py-rattler-0.23.2-py310hbaa5893_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.50.1-py315hbde48c7_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pynacl-1.6.2-py311h5285816_5.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyrefly-1.4.0-hc2d82ec_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.15.1-h2e4dbab_100_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/rattler-sandbox-0.2.3-h6fdd925_0.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/wcwidth-0.9.4-py311h8794d7f_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-2.5.1-py315hc6682d9_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/yaml-0.2.5-h74c22ad_3.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zizmor-1.22.0-h6fdd925_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda + - conda_source: quant-ranger[b60e20c6] @ . packages: - conda: https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-20_gnu.conda build_number: 20 @@ -1341,6 +1708,21 @@ packages: run_exports: {} size: 306494 timestamp: 1788485313358 +- conda: https://conda.anaconda.org/conda-forge/linux-64/charset-normalizer-3.5.2-h1114479_0.conda + noarch: python + sha256: e4f04b45d68716fcc47c808aeacbf165f6f295fb91bd20b91aa38942b8d2cdc6 + md5: 78d5c6112c9320a1a797935cecfec7c2 + depends: + - python + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - _python_abi3_support 1.* + - cpython >=3.9 + license: MIT + license_family: MIT + run_exports: {} + size: 217200 + timestamp: 1790766086110 - conda: https://conda.anaconda.org/conda-forge/linux-64/comrak-0.55.0-hf19af3b_0.conda sha256: ed797b90e4e08853b143432a14186ca7638a096c8f0801bf0be620aeb5992e6f md5: 1553a9323274ad4db8ea3db1c04944ae @@ -1449,6 +1831,25 @@ packages: run_exports: {} size: 11598127 timestamp: 1783981072661 +- conda: https://conda.anaconda.org/conda-forge/linux-64/git-2.56.0-pl5440h3795e67_0.conda + sha256: d5654608f2bed18580fa05e22d80093fc746cc70dea1d6a208e7a9f65b1888e0 + md5: 6dbccc130bb4e4f86c9d97af2b787a2a + depends: + - __glibc >=2.17,<3.0.a0 + - libcurl >=8.22.0,<9.0a0 + - libexpat >=2.8.5,<3.0a0 + - libgcc >=15 + - libiconv >=1.18,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.8,<4.0a0 + - pcre2 >=10.47,<10.48.0a0 + - perl 5.* + constrains: + - __glibc >=2.17 + license: GPL-2.0-or-later and LGPL-2.1-or-later + run_exports: {} + size: 11920563 + timestamp: 1790670380845 - conda: https://conda.anaconda.org/conda-forge/linux-64/icu-78.3-py310h44b86e0_2.conda sha256: 9f07834f0c546ab14d885ce0366285f61f44e326c0edd1fc63b8294e113ae432 md5: 72a381cbad04f24b1c2a43ef707f45b4 @@ -1506,6 +1907,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.12-hfc2019e_0.conda sha256: df68743500863d5835a5f8c2048089a3ba2196628971dc24d3175597d50a1914 md5: f78fad0e72a1f4f92879b598c6fec543 @@ -1612,6 +2026,26 @@ packages: - libcurl >=8.22.0,<9.0a0 size: 499651 timestamp: 1788340719230 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libcurl-8.23.0-ha042cf0_0.conda + sha256: d2db14d80efb4f2e76e76561c633f1767f7543987f2bcb54a067a9d264d432ab + md5: 0ad16151226df493aed967f0efce0e80 + depends: + - __glibc >=2.17,<3.0.a0 + - krb5 >=1.22.2,<1.23.0a0 + - libgcc >=15 + - libnghttp2 >=1.68.1,<2.0a0 + - libpsl >=0.23.1,<0.24.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.9,<4.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: curl + license_family: MIT + run_exports: + weak: + - libcurl >=8.23.0,<9.0a0 + size: 505683 + timestamp: 1791990900844 - conda: https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20250104-pl5321h373387f_1.conda sha256: 6473eb8caf2aae830f37caa93db9b26dddf7ac84b63229e8bf7fc0e5c3ab95b0 md5: 50708d3b951d0f8e2d7f2df5b5edc040 @@ -1695,6 +2129,20 @@ packages: run_exports: {} size: 1058083 timestamp: 1787618680111 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + sha256: e031634c3a928f9594eba868bc46ef5230d6571a364a0c63215b06c4563bfcea + md5: 735629b400b70eeab21a2ba8f5b1c2ce + depends: + - __glibc >=2.17,<3.0.a0 + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==16.2.0=*_7 + - libgomp 16.2.0 he0feb66_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + run_exports: {} + size: 1058444 + timestamp: 1790303109576 - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-16.2.0-h69a702a_4.conda sha256: d8e66c14e23f2b3c70410cff5979d9d357e6edfb990b28d8e630852f4d395629 md5: b3e52878163a841f6fb951989cc0b217 @@ -1737,6 +2185,18 @@ packages: - _openmp_mutex >=4.5 size: 639968 timestamp: 1787618616266 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.conda + sha256: 92a0bb350c7be6a4eedcb4e111c60aefd176018e6b1c009a6e025dbe9bbcd758 + md5: d904c7ddd95e026254b4b80808ee9e12 + depends: + - __glibc >=2.17,<3.0.a0 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + run_exports: + strong: + - _openmp_mutex >=4.5 + size: 640566 + timestamp: 1790303046034 - conda: https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.18-h0cb94f2_3.conda sha256: f943117edb9cd4d9c61cc972eee5a34291dc55ea7a6e9e38da104995841cbcb6 md5: f92233bf33e24a25668bb2119e2c51f9 @@ -1833,6 +2293,18 @@ packages: - libsodium >=1.0.22,<1.0.23.0a0 size: 269985 timestamp: 1787225747011 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libsodium-1.0.22-hebe6cf0_3.conda + sha256: 2f73c05a1ad07e5a2cb43f0b3759cb04505f0c8bef30b43c9db0caa50218bfd8 + md5: 2d14868d78e969226e4ba07444c0dd25 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + license: ISC + run_exports: + weak: + - libsodium >=1.0.22,<1.0.23.0a0 + size: 270970 + timestamp: 1789425325397 - conda: https://conda.anaconda.org/conda-forge/linux-64/libsqlite-3.54.1-h0737f62_100.conda sha256: 107ba2f9134b45a6fdaf8d2485f432e3a643fdfaf711a325d0c9139b580b3523 md5: 5fdfd335c3d653e41c1eea1353d827d0 @@ -1890,6 +2362,19 @@ packages: run_exports: {} size: 6613148 timestamp: 1787618704262 +- conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda + sha256: fa7018298629fc429971fffd6ecba3d27a7b02e4e890d6a93ea01ffebe8cb745 + md5: 9b6707e0caca917fa6ea9ee473f37a5d + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc 16.2.0 ha9f2e26_7 + constrains: + - libstdcxx-ng ==16.2.0=*_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + run_exports: {} + size: 6615436 + timestamp: 1790303132935 - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.conda sha256: f34b8d1de9a2bf62476d8608057d9b8a918d97444236dc53a47128f2fae79041 md5: 54a948337e66706380ff24d6b5fde63f @@ -1970,6 +2455,19 @@ packages: run_exports: {} size: 5545053 timestamp: 1788276714108 +- conda: https://conda.anaconda.org/conda-forge/linux-64/mergiraf-0.20.0-hf19af3b_0.conda + sha256: e8600da02105b2de3d94425a69ec9866a03b33184405c846b080b2d5ff240689 + md5: 8c1f31d7b8701d6c64a83c3f29f80147 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + constrains: + - __glibc >=2.17 + license: GPL-3.0-only + license_family: GPL + run_exports: {} + size: 5902096 + timestamp: 1790424053854 - conda: https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.6-hdb14827_1.conda sha256: 5d46557214ed184381dafe835b7c94a474a1c3b307a08a250b1ea4779b44ffb3 md5: ee6c0cd80a60961a1f48aa3e0b91f986 @@ -2040,6 +2538,20 @@ packages: - openssl >=3.6.4,<4.0a0 size: 3202955 timestamp: 1787698780103 +- conda: https://conda.anaconda.org/conda-forge/linux-64/openssl-3.6.5-h781a0a9_0.conda + sha256: 9c1533f1cf784f0e250919c0c9762d0b0e6bc727a79290ffb7cea1ceca1d038c + md5: 5a51a2ea653f120240b1a9bf76e0aae9 + depends: + - __glibc >=2.17,<3.0.a0 + - ca-certificates + - libgcc >=15 + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - openssl >=3.6.5,<4.0a0 + size: 3195299 + timestamp: 1791098052301 - conda: https://conda.anaconda.org/conda-forge/linux-64/pcre2-10.47-h8b3dc9c_1.conda sha256: 9ebb10a4eb3be51ae67d85c679f5a7a50cb040ed25c783e6331a225ea09991d4 md5: 06f6113cf1ff4a54b65f87ead132a5f1 @@ -2070,6 +2582,22 @@ packages: - perl >=5.32.1,<6.0a0 *_perl5 size: 13344463 timestamp: 1703310653947 +- conda: https://conda.anaconda.org/conda-forge/linux-64/perl-5.44.0-1_h7cc23a3_perl5.conda + build_number: 1 + sha256: 43afad1c27c24ccc40d98461ab7e1648ccac876421a8783167861ae19c4edc83 + md5: 474944e9c978cc84911f1c1f9eaa8bb2 + depends: + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - libxcrypt >=4.4.38 + license: GPL-1.0-or-later OR Artistic-1.0-Perl + run_exports: + weak: + - perl >=5.44.0,<5.45.0a0 + noarch: + - perl >=5.44.0,<6.0a0 + size: 11438995 + timestamp: 1790621296165 - conda: https://conda.anaconda.org/conda-forge/linux-64/pnpm-12.3.4-he83fb06_0.conda sha256: dad7295a23cf846f1feb6aca75afc2ee88f3932c045266b9771c84c9b07da27e md5: c561434252541a8e11695f8512434e83 @@ -2146,6 +2674,22 @@ packages: run_exports: {} size: 1876797 timestamp: 1789996108913 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pydantic-core-2.50.1-py315h80d437b_1.conda + sha256: b041c0c7b3e8d49d334bdd03418c3b77219c427bd606dc2e6448b3283d947e64 + md5: bd5e4052c185290a80bacff7bcab0f89 + depends: + - python + - typing-extensions >=4.16.0 + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 1986619 + timestamp: 1792686402269 - conda: https://conda.anaconda.org/conda-forge/linux-64/pynacl-1.6.2-py311h2d59bce_5.conda noarch: python sha256: 41793c431be2fcaada58b38a6a6142b135f89fed0b724bd2f8be6d0c21b78ba5 @@ -2193,6 +2737,19 @@ packages: run_exports: {} size: 11772839 timestamp: 1785575423736 +- conda: https://conda.anaconda.org/conda-forge/linux-64/pyrefly-1.4.0-hf19af3b_0.conda + sha256: 4f7b8a46b770e7c43d92afc6eb921c5ac35165f16b98f3e4dd87af4fc5b0c8f0 + md5: ff8b7e22953d93020cbae12c4049de87 + depends: + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 13131404 + timestamp: 1792135850040 - conda: https://conda.anaconda.org/conda-forge/linux-64/python-3.14.9-hcd007b5_100_cp314.conda build_number: 100 sha256: 87874d825447bb21759c6378cbbc4ce380b2b639609bfd4cb67dc864641ac759 @@ -2327,20 +2884,6 @@ packages: run_exports: {} size: 8983605 timestamp: 1788474545889 -- 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 @@ -2357,6 +2900,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/typos-1.50.1-hf19af3b_0.conda sha256: 4f2672adafa80a5992120f04487560d571802feb96ba1f6f5ebaceaa12959a54 md5: a945c56d51133b51c94f4e3a5e236154 @@ -2382,6 +2938,37 @@ packages: run_exports: {} size: 17490179 timestamp: 1788567062128 +- conda: https://conda.anaconda.org/conda-forge/linux-64/uv-0.13.5-h535ca38_0.conda + sha256: 10bd0e46b8b32a73d2d443f627f1c518200d63a4371ab2a218d3a2c895d87173 + md5: 1ceaca51ae1cd358b54a5e4ec6005ddf + depends: + - libstdcxx >=15 + - libgcc >=15 + - __glibc >=2.17,<3.0.a0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - __glibc >=2.17 + license: Apache-2.0 OR MIT + run_exports: {} + size: 14755479 + timestamp: 1792672505702 +- conda: https://conda.anaconda.org/conda-forge/linux-64/wcwidth-0.9.4-py311hd139983_0.conda + noarch: python + sha256: 60fdf9b2819993a285fd5b217e179efbb1e2e63d9464c642a2519fc98c546317 + md5: a2a9b8ec420400e31bbe91048fad2b89 + depends: + - python + - python >=3.11 + - python-abi3 + - __glibc >=2.17,<3.0.a0 + - libgcc >=15 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 373410 + timestamp: 1792880422923 - conda: https://conda.anaconda.org/conda-forge/linux-64/wrapt-2.4.0-py314hfe1a184_1.conda sha256: d30ca14d28fd484223e6668b48bb64b61dd21b69af56f7d506831736221055e1 md5: 05102e121c532d7b538c9b1cf1238b1d @@ -2657,6 +3244,24 @@ packages: run_exports: {} size: 13581417 timestamp: 1783984665476 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/git-2.56.0-pl5440h0749d22_0.conda + sha256: 8e788908bd8d4ced19d53a498868f471c6f2a33b1b34b3b467eaf081082c3113 + md5: 3ceda641dacb779b3c125719ba0ff26e + depends: + - libcurl >=8.22.0,<9.0a0 + - libexpat >=2.8.5,<3.0a0 + - libgcc >=15 + - libiconv >=1.18,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.8,<4.0a0 + - pcre2 >=10.47,<10.48.0a0 + - perl 5.* + constrains: + - __glibc >=2.17 + license: GPL-2.0-or-later and LGPL-2.1-or-later + run_exports: {} + size: 16549091 + timestamp: 1790670372560 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/icu-78.3-py311h3512406_2.conda sha256: 54d921defd947adb58a90e10203d3bfe6c1f209f5f1a1ad2c6a9f7617f2fb59e md5: b35bbb1b957440ed742f35fb96eb7f1c @@ -2710,6 +3315,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.12-h22914b5_0.conda sha256: bfc85f3010a4f9227361f0438c9e195a35d61f87907a3e00e032f2e6b47f12a0 md5: a7dd7df288352d7f5902d43c261a00d0 @@ -2810,6 +3427,25 @@ packages: - libcurl >=8.22.0,<9.0a0 size: 524318 timestamp: 1788340661060 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libcurl-8.23.0-h86273da_0.conda + sha256: 4a9bc4ef7f6ddaef61a900d360214fb285c6aa474a3d7e1c5e4e42b4b2e36697 + md5: 23729bcd7d0045ad537a9cfa6329ac51 + depends: + - krb5 >=1.22.2,<1.23.0a0 + - libgcc >=15 + - libnghttp2 >=1.68.1,<2.0a0 + - libpsl >=0.23.1,<0.24.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.9,<4.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: curl + license_family: MIT + run_exports: + weak: + - libcurl >=8.23.0,<9.0a0 + size: 529565 + timestamp: 1791990806492 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libedit-3.1.20250104-pl5321hc48eb74_1.conda sha256: 2d7218da06f1121619335bff25a2669df810dee90d2eb65b17f8b2e6b1c0d372 md5: 6e06eb2c9fda76721699bcdd759b9c60 @@ -2887,6 +3523,19 @@ packages: run_exports: {} size: 627810 timestamp: 1787617756679 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-16.2.0-h205dda4_7.conda + sha256: eae7a3449d5a3b5351c5427137c076cc3fc826645c7bfc42dc10772b783826f1 + md5: 489d5c9dc62265b3f6a57f9a106f1caf + depends: + - _openmp_mutex >=4.5 + constrains: + - libgcc-ng ==16.2.0=*_7 + - libgomp 16.2.0 h8acb6b2_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + run_exports: {} + size: 627793 + timestamp: 1790302345214 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgcc-ng-16.2.0-he9431aa_4.conda sha256: e8643044040dd8aa88aee26c19e6b78bbbe0ce8a4d04b1c77ee53c71a1efd814 md5: ad0ce2f7fb2e61219df1561115864483 @@ -2926,6 +3575,16 @@ packages: - _openmp_mutex >=4.5 size: 617987 timestamp: 1787617685449 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libgomp-16.2.0-h8acb6b2_7.conda + sha256: 4406fd67c5beeb99b9372f9bf07aa3e40ca141e337eceebac3ff64aa72799494 + md5: 259ded79ac497cfbcf5434540e8b81b6 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + run_exports: + strong: + - _openmp_mutex >=4.5 + size: 617342 + timestamp: 1790302273072 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libiconv-1.18-h1ea5142_3.conda sha256: d22c666eb887afd2119aac2110e23a0e817e9391bda99293421f7c46dab1564c md5: 951b54a36388613a99820b33b997f690 @@ -3015,6 +3674,17 @@ packages: - libsodium >=1.0.22,<1.0.23.0a0 size: 288785 timestamp: 1787225751475 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsodium-1.0.22-h29ee22c_3.conda + sha256: dcf1668e4d73b779c835a05154f16511fb9ab093507da7ba2d5656937ddc08d6 + md5: 73ebc1c03a0bced1a222c8d10869ec6e + depends: + - libgcc >=15 + license: ISC + run_exports: + weak: + - libsodium >=1.0.22,<1.0.23.0a0 + size: 289501 + timestamp: 1789425314417 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libsqlite-3.54.1-h399dd60_0.conda sha256: 6ac4bef81dc57000d16f6e230f4157e2d054189800346b59f3613c07b249dceb md5: d1e0812292cb0f17e574dfe63eb69971 @@ -3068,6 +3738,18 @@ packages: run_exports: {} size: 6241792 timestamp: 1787617775395 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libstdcxx-16.2.0-hef695bb_7.conda + sha256: b241a3acfa9cdb1359112864a1241225533c92642de3000d52ae65ef5d3a9786 + md5: 6c823668e78160957d1b061ceec15c2c + depends: + - libgcc 16.2.0 h205dda4_7 + constrains: + - libstdcxx-ng ==16.2.0=*_7 + license: GPL-3.0-only WITH GCC-exception-3.1 + license_family: GPL + run_exports: {} + size: 6236630 + timestamp: 1790302364054 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libuuid-2.42.4-hd6fdeab_0.conda sha256: 4d94770cc7c47eb4a0d7b92f16d7a450506d1a82406d63c987d6208ab2fb8a16 md5: 9d63e86dc027166aaaeb0c99a0a90fd7 @@ -3141,6 +3823,18 @@ packages: run_exports: {} size: 5519864 timestamp: 1788276725732 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/mergiraf-0.20.0-h328a733_0.conda + sha256: a73fb0b2b7081e464ce386279fc59c0a1c131d9cb831ca08c44fc95c9507c95b + md5: bc71ad44ffbe772b0a8ab85427933cfb + depends: + - libgcc >=15 + constrains: + - __glibc >=2.17 + license: GPL-3.0-only + license_family: GPL + run_exports: {} + size: 5884744 + timestamp: 1790424049420 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/ncurses-6.6-h2b6f883_1.conda sha256: d69a04914139627f0a6bfd19412d6c7f1e37edc896af84a6011e07e8bc1e69fa md5: c3b4349171ca987ff33a1de61f7b3f96 @@ -3208,6 +3902,19 @@ packages: - openssl >=3.6.4,<4.0a0 size: 3712923 timestamp: 1787698545024 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/openssl-3.6.5-he6ad1d5_0.conda + sha256: 238136f1df197ecd89bafd728a34d0642176f3170423d13d8276746d675a9485 + md5: 92aec5ec417d2ce9ae109e6c5ad377ff + depends: + - ca-certificates + - libgcc >=15 + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - openssl >=3.6.5,<4.0a0 + size: 3716078 + timestamp: 1791097887829 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pcre2-10.47-he574923_1.conda sha256: 16e5bee11686028d60a495004f99a10c613ada44cc27e330bee18a1b67fb184c md5: c98763518d0a4c9895e515190afb7dec @@ -3237,6 +3944,21 @@ packages: - perl >=5.32.1,<6.0a0 *_perl5 size: 13338804 timestamp: 1703310557094 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/perl-5.44.0-1_h5bc82ec_perl5.conda + build_number: 1 + sha256: 7cf91a128068608c731df55e9c452cccb179b84df086ebc95f70797092c55d73 + md5: 28e8451d2ec9fbed6a2a2a853ec17a3b + depends: + - libgcc >=15 + - libxcrypt >=4.4.38 + license: GPL-1.0-or-later OR Artistic-1.0-Perl + run_exports: + weak: + - perl >=5.44.0,<5.45.0a0 + noarch: + - perl >=5.44.0,<6.0a0 + size: 11484751 + timestamp: 1790621051317 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pnpm-12.3.4-ha59f2ec_0.conda sha256: b7563e3f804876ab6b23481236cd7c096108b3cd7344d7ae6c486ef4d778fe7f md5: 39221ea482ba047a5da2301dde4274b9 @@ -3308,6 +4030,21 @@ packages: run_exports: {} size: 1758427 timestamp: 1789996105890 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pydantic-core-2.50.1-py315h75fd777_1.conda + sha256: be427b062b6bbe3ad70a79d534edb766b3a451e4cc1fa3b3d085213942bfcf6b + md5: 288b4366f200157927a6f45d5cffd360 + depends: + - python + - typing-extensions >=4.16.0 + - libgcc >=15 + - python_abi 3.15.* *_cp315 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 1863567 + timestamp: 1792686409987 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pynacl-1.6.2-py311h86be75f_5.conda noarch: python sha256: 6c098eedf357665a2450daa720f8ca36fc2661edc7aabba0b906fadd7316feff @@ -3352,6 +4089,18 @@ packages: run_exports: {} size: 11517626 timestamp: 1785575442738 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/pyrefly-1.4.0-h328a733_0.conda + sha256: ef48529f216ebf75922b8dd890791e647c5202c9637869ac5266a6a5c4cdbabf + md5: ad76e9e4f52a7ca004466a1813633ac3 + depends: + - libgcc >=15 + constrains: + - __glibc >=2.17 + license: MIT + license_family: MIT + run_exports: {} + size: 12755038 + timestamp: 1792135865183 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/python-3.14.9-hbec3b18_100_cp314.conda build_number: 100 sha256: 83c59952e1a2e08efa0bde61f9cecfb6dd7aa257007ae86d28f6224ade5201fc @@ -3480,19 +4229,6 @@ packages: run_exports: {} size: 8644186 timestamp: 1788474550999 -- 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 @@ -3508,6 +4244,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/typos-1.50.1-h328a733_0.conda sha256: f15d36edc8a459c26f07997e0461845adc28f4f16442069575f2b39f3f6b7fe0 md5: 162f0e80ec1a6f5ede6ae7c98bea8704 @@ -3531,6 +4279,35 @@ packages: run_exports: {} size: 17303883 timestamp: 1788566993232 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/uv-0.13.5-h779c035_0.conda + sha256: c0abca1fd01f574aecf4d34e10c62756ae2017932f17e976e5bb16e507ce49ea + md5: eb5a268a2196021718667622ae365845 + depends: + - libgcc >=15 + - libstdcxx >=15 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - __glibc >=2.17 + license: Apache-2.0 OR MIT + run_exports: {} + size: 14411564 + timestamp: 1792672542028 +- conda: https://conda.anaconda.org/conda-forge/linux-aarch64/wcwidth-0.9.4-py311h7113396_0.conda + noarch: python + sha256: e05c8b555e0fdc4d512d49efa290e4fd4bae9dd6244432234af9483ed07c62bd + md5: 61735ef81054317717b0d76a6ac5cdba + depends: + - python + - python >=3.11 + - python-abi3 + - libgcc >=15 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 376832 + timestamp: 1792880437381 - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/wrapt-2.4.0-py314ha22a00f_1.conda sha256: e1a6356bdb7f18bbf5282eb3fcae9a8c48c1bf42a23e42667ff3839e9310154e md5: 8f9aafe3e64070ebe450ea365bad7c53 @@ -3656,6 +4433,25 @@ packages: run_exports: {} size: 7539 timestamp: 1788491291925 +- conda: https://conda.anaconda.org/conda-forge/noarch/backports.zstd-1.8.0-py314h723298c_1.conda + noarch: generic + sha256: c84be4a2779cbb7f267b436cef6fb35fc88610ab8d40dabcb360e926820881ea + md5: 675b8527360d6cde4c5f5b309aa5567c + depends: + - python >=3.14 + license: Python-2.0 + run_exports: {} + size: 7663 + timestamp: 1792690550162 +- 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-hbd8a1cb_0.conda sha256: 0a0544cf95f64394fe4959286f5c71f5444ad58feb0602e53becb27448d24da6 md5: 0f51e2391ade309db462a55611263e9c @@ -3674,6 +4470,15 @@ packages: run_exports: {} size: 136752 timestamp: 1792488039424 +- conda: https://conda.anaconda.org/conda-forge/noarch/certifi-2026.10.23-pyhd8ed1ab_0.conda + sha256: 04e641ccaa58278b431e97f2a43090bafc676436d04b5860dfd9b18166f2b326 + md5: 484e26532435808425148c83bf58aa0b + depends: + - python >=3.11 + license: ISC + run_exports: {} + size: 135537 + timestamp: 1792764012327 - conda: https://conda.anaconda.org/conda-forge/noarch/charset-normalizer-3.5.1-pyhd8ed1ab_0.conda sha256: cb60ef3e0631c8bacb4f7057196dee4496091a22baa3bb4b9bccb12c7e1c921b md5: e0ac3accc64e23e40969d660e5f58ac8 @@ -3696,6 +4501,17 @@ packages: run_exports: {} size: 107155 timestamp: 1783085363526 +- conda: https://conda.anaconda.org/conda-forge/noarch/click-8.5.0-pyh5ded981_0.conda + sha256: 9afb0c2c089330321a219c7ee5a25313bd574d4024be606cbb33e7a5735df662 + md5: dea5b13a211bbf99876deb980b408a66 + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 112341 + timestamp: 1788802215348 - conda: https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.6-pyhd8ed1ab_1.conda sha256: ab29d57dc70786c1269633ba3dff20288b81664d3ff8d21af995742e2bb03287 md5: 962b9857ee8e7018c22f2776ffa0b2d7 @@ -3733,6 +4549,33 @@ packages: run_exports: {} size: 62280 timestamp: 1788426577974 +- conda: https://conda.anaconda.org/conda-forge/noarch/copier-9.19.1-pyh5ded981_0.conda + sha256: 7f439ca1aad55f35d3eef51233d00d26fa537813f30bb8a72dbc9f6736c1428a + md5: 33c9a96f8dc4509247a3e1c1f58f9417 + depends: + - python >=3.11 + - colorama >=0.4.6 + - dunamai >=1.7.0 + - funcy >=1.17 + - jinja2 >=3.1.5 + - jinja2-ansible-filters >=1.3.1 + - packaging >=23.0 + - pathspec >=0.9.0 + - plumbum >=1.6.9 + - prompt-toolkit <3.0.52 + - pydantic >=2.4.2 + - pygments >=2.7.1 + - pyyaml >=5.3.1 + - questionary >=1.8.1 + - eval-type-backport >=0.1.3,<0.3.0 + - platformdirs >=4.3.6 + - typing_extensions >=4.0.0,<5.0.0 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 63409 + timestamp: 1791912061650 - conda: https://conda.anaconda.org/conda-forge/noarch/cpython-3.14.7-py314hd8ed1ab_106.conda noarch: generic sha256: fd701880cf6f696420aa5b4b530dbdf0c83a16bdb50aeb760b3159eec5c416bf @@ -3766,6 +4609,18 @@ packages: run_exports: {} size: 15896 timestamp: 1768934186726 +- conda: https://conda.anaconda.org/conda-forge/noarch/deprecated-3.0.0-pyhc364b38_0.conda + sha256: 83ee4ca0b2f761bee4c57d95d4d0146a840a68dcdae6d92b0785d29cbfd63d47 + md5: ca0e7a4b610d5052edccca1007d40c13 + depends: + - python >=3.12 + - wrapt >=1.16,<3 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 23072 + timestamp: 1790496270485 - conda: https://conda.anaconda.org/conda-forge/noarch/docformatter-1.7.7-pyhd8ed1ab_0.conda sha256: 290a1d9935947c72d90781efad59d7be36fc3e6c9ce4bf5d5478804ce9070006 md5: b1e2509c25d36f7b19ceb42193120071 @@ -3801,6 +4656,18 @@ packages: run_exports: {} size: 31774 timestamp: 1787313557354 +- conda: https://conda.anaconda.org/conda-forge/noarch/dunamai-1.26.3-pyhd8ed1ab_0.conda + sha256: 1c161843a77332e1e41241449a04a57713c27e940a73678f0640da94ca61cae8 + md5: 7419d6a1e0ebb4654d023d9f7f5a1b3f + depends: + - importlib-metadata >=1.6.0 + - packaging >=20.9 + - python >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 31792 + timestamp: 1792102097357 - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.6-pyhcf101f3_0.conda sha256: bb826ff403b8195467e7cd5f504bc14767b424dac27bb225508ca2c1852554b2 md5: 86b177231eecb011fe00e2117dbc3348 @@ -3855,6 +4722,17 @@ packages: run_exports: {} size: 30249 timestamp: 1734381235500 +- conda: https://conda.anaconda.org/conda-forge/noarch/funcy-2.1-pyh5ded981_0.conda + sha256: 026947ea56ad46ba64862965022c05fefb39b3894793c158412d02726286d502 + md5: 7defd9069239faba693fc70a93fc26ab + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 31989 + timestamp: 1789040167483 - conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.3.0-pyh5ded981_0.conda sha256: f45219697572a1b4a3358a6add88c3cd92d9949281b4cd53b39a314a6363e91e md5: eee51e43da4aefab71c3aafef7985578 @@ -3867,6 +4745,18 @@ packages: run_exports: {} size: 17014 timestamp: 1788552621365 +- conda: https://conda.anaconda.org/conda-forge/noarch/griffe-2.4.1-pyh5ded981_0.conda + sha256: d72caa26ec5cec66984e51f6c1b3cff694036c15c4d55a39d9b87e1d1117ba0d + md5: 8c531a44074686c2da199514a4c7f1ea + depends: + - python >=3.11 + - griffelib >=2.4.1,<2.4.2.0a0 + - griffecli >=2.4.1,<2.4.2.0a0 + - python + license: ISC + run_exports: {} + size: 16738 + timestamp: 1792683623756 - conda: https://conda.anaconda.org/conda-forge/noarch/griffe2md-1.5.0-pyhcf101f3_0.conda sha256: 71ca63a3c71b13693092ab707eb37b64774535b5f9e3ab93857f3b7c403eabd2 md5: 66936fc6e6c24c857c3ac5f922960c54 @@ -3894,6 +4784,18 @@ packages: run_exports: {} size: 20280 timestamp: 1788552621365 +- conda: https://conda.anaconda.org/conda-forge/noarch/griffecli-2.4.1-pyh5ded981_0.conda + sha256: cbdf6173f1fb61e30883629bf4ce20808a99d99472d80be3576ef8d3d3a9e2e3 + md5: 5eba799e1388259475044d376fd99162 + depends: + - python >=3.11 + - colorama >=0.4 + - griffelib >=2.4.1,<2.4.2.0a0 + - python + license: ISC + run_exports: {} + size: 20154 + timestamp: 1792683623756 - conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.3.0-pyh5ded981_0.conda sha256: d504c05fe153a7951124113276f16f7e80317756f9fbdbd0563168066ce53fe2 md5: 17a89910a54160e754f16b096c012422 @@ -3904,6 +4806,16 @@ packages: run_exports: {} size: 121899 timestamp: 1788552621365 +- conda: https://conda.anaconda.org/conda-forge/noarch/griffelib-2.4.1-pyh5ded981_0.conda + sha256: c2c9aeffba87ce8f1a1474100703156491d30b5d7e0a38fd3fef2805f6a3747e + md5: 58ccb4f24c4d8cf341f80a80cbe45dfa + depends: + - python >=3.11 + - python + license: ISC + run_exports: {} + size: 124046 + timestamp: 1792683623756 - conda: https://conda.anaconda.org/conda-forge/noarch/h2-4.4.1-pyhcf101f3_0.conda sha256: 307dd6ec90140c3cf4171071b0e5e870abec314f4565c1edd5bc433e942cdcc0 md5: e652ac7756069c456d0da2a922cd7df5 @@ -3935,6 +4847,23 @@ packages: run_exports: {} size: 62794 timestamp: 1786711084570 +- conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.32.4-pyh5ded981_0.conda + sha256: 7c26a93ef28b1bebadd012ca403b338e716c378485de783cee1a490d15d409a8 + md5: 29f56fdb658cdccdda59fd575765a19f + depends: + - packaging >=24.2 + - pathspec >=0.10.1 + - pluggy >=1.0.0 + - python >=3.11 + - tomlkit >=0.11.1 + - trove-classifiers + - editables >=0.3 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 63070 + timestamp: 1789948339002 - conda: https://conda.anaconda.org/conda-forge/noarch/hpack-4.2.0-pyhd8ed1ab_0.conda sha256: fdcea5d7cb314485d3907192ef024c704311548c5b0cbeb390cd1951051e29d2 md5: b395909221b9bd1df066e5930e18855b @@ -3978,6 +4907,29 @@ packages: run_exports: {} size: 177433 timestamp: 1787059857580 +- conda: https://conda.anaconda.org/conda-forge/noarch/idna-3.20-pyh5ded981_0.conda + sha256: e044b1ec829e2e24f971fa3f3408eb26f1db836e521a58f08b0fd9a03fee47be + md5: ee73be987f9de9ea5c2fdaeefa7b6491 + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 178572 + timestamp: 1790020377150 +- conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-10.0.0-pyh5ded981_0.conda + sha256: 43151c94c02fa67e8105cfe64c8c27a1b260b22bae6ddbe9c33b56a9c302e459 + md5: 8401f0ee3de84b5a549c47cf3038909b + depends: + - python >=3.11 + - zipp >=3.20 + - python + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 37627 + timestamp: 1792795043391 - conda: https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-9.0.1-pyhcf101f3_0.conda sha256: 95a074a7d3f58b3494c068d4789c364dcb591c56b70ca6b12f149a540f9aeea4 md5: 77ec68e0aa61c3fff9ecbf840f93d64e @@ -4013,6 +4965,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/jaraco.classes-3.4.0-pyhcf101f3_3.conda sha256: 3cc991f0f09dfd00d2626e745ba68da03e4f1dcbb7b36dd20f7a7373643cd5d5 md5: d59568bad316413c89831456e691de29 @@ -4176,6 +5138,17 @@ packages: run_exports: {} size: 71270 timestamp: 1779478190496 +- conda: https://conda.anaconda.org/conda-forge/noarch/more-itertools-11.2.1-pyh5ded981_0.conda + sha256: eac70c03e56f47de5003a76b74f55f8c7e6ed721ca71cc7e5ad5fd231cc5257a + md5: c927a046b5b46ae73c42c82869e9d4b1 + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 73182 + timestamp: 1792042780319 - conda: https://conda.anaconda.org/conda-forge/noarch/ordered-enum-0.0.10-pyhe01879c_0.conda sha256: 84983edcddf93d02c4605c6e1535303238d61942b708d9735d4ff31170e05ac0 md5: ab46b08ff377adff76e216bddce2aa74 @@ -4236,6 +5209,17 @@ packages: run_exports: {} size: 27515 timestamp: 1788271419073 +- conda: https://conda.anaconda.org/conda-forge/noarch/platformdirs-4.13.5-pyh5ded981_0.conda + sha256: 25c9bf883619b020294e7a37d57eb43c3a45964b97a3df48ef7311287bd65a7c + md5: 1304585b8072a3a66b4ca463e5db8d91 + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 33855 + timestamp: 1792444931124 - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.6.0-pyhf9edf01_1.conda sha256: e14aafa63efa0528ca99ba568eaf506eb55a0371d12e6250aaaa61718d2eb62e md5: d7585b6550ad04c8c5e21097ada2888e @@ -4247,6 +5231,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/plumbum-2.0.2-pyhcf101f3_0.conda sha256: 296bb3e96fd32cd1441b6ac853506c90a319c0a2d52057fc7247c5a6a648db64 md5: b8a0e040dacd70612b8137a9c8ccc9de @@ -4305,6 +5300,17 @@ packages: run_exports: {} size: 55886 timestamp: 1779293633166 +- conda: https://conda.anaconda.org/conda-forge/noarch/pycparser-3.12-pyh5ded981_1.conda + sha256: eefb1b2140c1a6c33a85186f954e857e1a824365deeda4e11db9b99c1b5950aa + md5: 3c2d671ef0bc5a0e8d1f7e6c4286af0b + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 68212 + timestamp: 1792687210543 - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.13.5-pyhcf101f3_0.conda sha256: 701ed8122021f62e1c9a46bdf4932ada911c10afa56ba0459f56da940bcbe5a7 md5: 2d0f9304fc1cb1e3e94e7b37c14cd70a @@ -4320,6 +5326,21 @@ packages: run_exports: {} size: 346633 timestamp: 1787941273167 +- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-2.14.1-pyh5ded981_0.conda + sha256: d7cbe20d76f3803e7c36cf6fb42f1a8ce7c74b89f4e9efd678b5353685602621 + md5: 0e25c99148247bf3f89625f06eb18bee + depends: + - typing-inspection >=0.4.4 + - typing_extensions >=4.16.0 + - python >=3.11 + - annotated-types >=0.6.0 + - pydantic-core ==2.50.1 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 358514 + timestamp: 1791761552444 - conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.15.0-pyhcf101f3_0.conda sha256: 674e1ba12010a88441f817a318d3cec7e7a7682813ebd3f427fbd1c6766a16af md5: 687adac0b3eb2dd73762e9f912b4549e @@ -4334,6 +5355,21 @@ packages: run_exports: {} size: 60984 timestamp: 1786146776076 +- conda: https://conda.anaconda.org/conda-forge/noarch/pydantic-settings-2.16.1-pyh5ded981_0.conda + sha256: b21ce48f018d95792e0a952f5ec6debc8e7145987e68ac3de337996351717e8d + md5: 2c8b49831249cdbfcc8ed6317bf43be7 + depends: + - typing-inspection >=0.4.0 + - python >=3.11 + - pydantic >=2.7.0 + - python-dotenv >=1.2.2 + - typing_extensions >=4.0.0 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 69876 + timestamp: 1792504913904 - conda: https://conda.anaconda.org/conda-forge/noarch/pygithub-2.10.0-pyhd8ed1ab_0.conda sha256: 9f99219ebad4ce788c9ad07b76398d3d2075d25ae3eeddf788d91e4f5c594eb0 md5: f8688c6bd088a1812aa44701af0dad90 @@ -4377,6 +5413,17 @@ packages: run_exports: {} size: 33417 timestamp: 1779400286454 +- conda: https://conda.anaconda.org/conda-forge/noarch/pyjwt-2.15.1-pyh5ded981_0.conda + sha256: aac9df67e9c6a8f092c46d1eeea393f6d6de756e0c0deac038b79ab68c485fb8 + md5: ceb86f6237588761137d5b3387e049ca + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 35770 + timestamp: 1790640138515 - conda: https://conda.anaconda.org/conda-forge/noarch/pyproject_hooks-1.2.0-pyhd8ed1ab_1.conda sha256: 065ac44591da9abf1ff740feb25929554b920b00d09287a551fcced2c9791092 md5: d4582021af437c931d7d77ec39007845 @@ -4433,6 +5480,21 @@ packages: run_exports: {} size: 29559 timestamp: 1774139250481 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-abi3-3.15-h97fd899_3.conda + sha256: 0cd3e59abe797fd6b63fc1d7d435796be99f1427ff3c41da77aa523e4282a479 + md5: b49406840c531bdadd9d28205ff9e28e + depends: + - __unix + - _python_abi3_support + - python 3.15.* + license: MIT + license_family: MIT + run_exports: + weak: + - _python_abi3_support 1.* + - cpython >=3.15 + size: 8284 + timestamp: 1792078633540 - conda: https://conda.anaconda.org/conda-forge/noarch/python-build-1.6.0-pyhc364b38_0.conda sha256: d5bad775346fbd21cce7922b29cab2587fe599517654de65c3d2fe50a7126279 md5: 1e696c762d003f8f4af971b6dccb8c1e @@ -4463,6 +5525,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-dotenv-1.2.3-pyhcf101f3_0.conda sha256: ad7b2dd059c1b693a09f799cbaf4b9d06ec7677c02c9447be98e0b33a49bc04c md5: b55edb60d527ce56226a1026abcb3e2c @@ -4474,6 +5549,17 @@ packages: run_exports: {} size: 28328 timestamp: 1787003234261 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-dotenv-1.2.4-pyh5ded981_0.conda + sha256: ee736376b63cd25e99cc0433d24372eb8b6726293bf5ec2fb49078c839db68d0 + md5: 394d85ce305a5405cebcb6caa443137b + depends: + - python >=3.11 + - python + license: BSD-3-Clause + license_family: BSD + run_exports: {} + size: 28844 + timestamp: 1790859080558 - conda: https://conda.anaconda.org/conda-forge/noarch/python-gil-3.14.7-h4df99d1_106.conda sha256: 801ef80bc9f9394d9b3b5cae5a90c33cbbc33004b3e93195b93af818aad8888b md5: b672ecb44198ade19ef249bf99f4b1ff @@ -4494,6 +5580,17 @@ packages: run_exports: {} size: 53452 timestamp: 1792610741689 +- conda: https://conda.anaconda.org/conda-forge/noarch/python-tzdata-2026.5-pyh5ded981_0.conda + sha256: b66b783be882069a9f6c00bc44ee561fc3dfba21fe4bab6de31599caf3c63154 + md5: 4a0ae2a06b469e6f8ca95d0655e31c86 + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 141379 + timestamp: 1791025923003 - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.14-9_cp314.conda build_number: 9 sha256: e7f8e965bbfb98e08feb2365cacdad8bb218fa5b5a0a2752f747287f425f213c @@ -4666,6 +5763,17 @@ packages: run_exports: {} size: 21561 timestamp: 1774492402955 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomli-2.5.0-pyh5ded981_0.conda + sha256: 93b6f517fb7adff00b62be02b798d384a1b34d0e368fdb576fb248bcb3bb9ec7 + md5: 36d6a162326c52d6339c8b606f43932d + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 21687 + timestamp: 1791394576814 - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.1-pyhcf101f3_0.conda sha256: 5cf833b4d199688b7652fb322ecc134de9555e9444d9249750de9a153421ad0a md5: e4942e2de7436ff28be7f5645cf3c8d6 @@ -4677,6 +5785,17 @@ packages: run_exports: {} size: 49054 timestamp: 1784287707171 +- conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + sha256: e6aa9e1c4d4e229280ef5446ebbc99e7b65c874deb47f83be6a751ba20332cc8 + md5: eadfe340211fea481536d602af9ace99 + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 51412 + timestamp: 1792143573427 - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2026.6.1.19-pyhcf101f3_0.conda sha256: 74dabeb087f26116a262a7580a78622f2bf109798a7e154d4d9b48234ed72b11 md5: f23d5a5855f09bcb5026938486a9750d @@ -4686,8 +5805,19 @@ packages: license: Apache-2.0 license_family: APACHE run_exports: {} - size: 24210 - timestamp: 1780385194431 + size: 24210 + timestamp: 1780385194431 +- conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2026.9.21.13-pyh5ded981_0.conda + sha256: 43cde9446d690a198ab5b35801d08e2926afe7202495aaa3df98702cb4a19f9a + md5: ca71e34cacec0f00b1c7c312fbc884b7 + depends: + - python >=3.11 + - python + license: Apache-2.0 + license_family: APACHE + run_exports: {} + size: 24553 + timestamp: 1790234842223 - conda: https://conda.anaconda.org/conda-forge/noarch/twine-7.0.0-pyhcf101f3_0.conda sha256: 9abcd51d09a4d2da757861ad4684b02ae82ff721db6644e6fe477c5fd7e9278c md5: e1d7495efcd3d0bc79bdc6cc5a34b8ba @@ -4744,6 +5874,17 @@ packages: run_exports: {} size: 28741 timestamp: 1788692160310 +- conda: https://conda.anaconda.org/conda-forge/noarch/types-requests-2.33.0.20261006-pyh5ded981_0.conda + sha256: de3a3cc95f6555df424aaba95c7bdf8109b303fcff92a82b6647a9645160cf62 + md5: 30c2dd7fb7769869db683aba8d391a20 + depends: + - python >=3.11 + - urllib3 >=2 + - python + license: Apache-2.0 AND MIT + run_exports: {} + size: 28567 + timestamp: 1791284313098 - conda: https://conda.anaconda.org/conda-forge/noarch/typing-extensions-4.16.0-h69aa097_0.conda sha256: b141933ece3518f6d7b75dfb59451e2f26b405a44c18e2518a83e9a02e09315c md5: c680b5747e8c4c8f23dca0bb7042a8fc @@ -4784,6 +5925,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/untokenize-0.1.1-pyhcf101f3_3.conda sha256: 557f4cef95e3f239d9b7c2e75b32840f0fe1b2c62a9832da76bb51ae3d080687 md5: 5ab2494adac58ab85da2e8e4ed0fa057 @@ -4809,6 +5957,20 @@ packages: run_exports: {} size: 103560 timestamp: 1778188657149 +- conda: https://conda.anaconda.org/conda-forge/noarch/urllib3-2.8.0-pyhd8ed1ab_0.conda + sha256: c5511c190ab55168ca412f3c54592fbf677ae6250784cb72b227a7cf3f538f7d + md5: 407a3d3778570bae8e8fcf554e803e43 + depends: + - backports.zstd >=1.0.0 + - brotli-python >=1.2.0 + - h2 >=4,<5 + - pysocks >=1.5.6,<2.0,!=1.5.7 + - python >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 107485 + timestamp: 1789566710244 - conda: https://conda.anaconda.org/conda-forge/noarch/wcwidth-0.8.3-pyhcf101f3_0.conda sha256: 3b0599d59d70bbe792702d1b5404ac501c9c25bd7b2fd9ccbb5da8ad6587a703 md5: f62991f907a9830ab003b12d07dd3478 @@ -4831,6 +5993,17 @@ packages: run_exports: {} size: 24190 timestamp: 1779159948016 +- conda: https://conda.anaconda.org/conda-forge/noarch/zipp-4.1.2-pyh5ded981_0.conda + sha256: 4e5c50cf5ecc00d83a20b987c52d49b78fa96026437ab09b11f4b7c46b7fc061 + md5: 3a99defa674883e167603f141728de7e + depends: + - python >=3.11 + - python + license: MIT + license_family: MIT + run_exports: {} + size: 24791 + timestamp: 1792622774790 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/brotli-python-1.2.0-py314hee34562_4.conda sha256: bafd111884ad0f5bb75286fd457999536cbeb5e0308ecbb4c5fb49b79d31e304 md5: cfaec5b3d3d1f4877c1ebd84f8e1dfa6 @@ -5012,6 +6185,25 @@ packages: run_exports: {} size: 13383521 timestamp: 1783981746666 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/git-2.56.0-pl5440h66f49b9_0.conda + sha256: 2faaa571f7da2dd0b17f54ddb8a0437c9bde290af2202257c75ba73889819975 + md5: 6db3fc839adc5feaab1f255179a1d39f + depends: + - __osx >=11.0 + - libcurl >=8.22.0,<9.0a0 + - libexpat >=2.8.5,<3.0a0 + - libiconv >=1.18,<2.0a0 + - libintl >=0.25.1,<1.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.8,<4.0a0 + - pcre2 >=10.47,<10.48.0a0 + - perl 5.* + constrains: + - __osx >=11.0 + license: GPL-2.0-or-later and LGPL-2.1-or-later + run_exports: {} + size: 13480930 + timestamp: 1790670419099 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/icu-78.3-py310h579977c_2.conda sha256: 6cdb5dee54c72e56ab189fb3ad33cb28533553d42590e7e831160248f4416a43 md5: a5efc0b42bb8b42e97d0a29ae3e3c187 @@ -5140,6 +6332,25 @@ packages: - libcurl >=8.22.0,<9.0a0 size: 419925 timestamp: 1788340708264 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcurl-8.23.0-h6651222_0.conda + sha256: d9f60525b665e50da15c84fcb4e74e6b1f0a56ea4c89a02d4258f23c3fe1f02c + md5: b955db4c41b9820eba0aa2c9a3c74a37 + depends: + - __osx >=11.0 + - krb5 >=1.22.2,<1.23.0a0 + - libnghttp2 >=1.68.1,<2.0a0 + - libpsl >=0.23.1,<0.24.0a0 + - libssh2 >=1.11.1,<2.0a0 + - libzlib >=1.3.2,<2.0a0 + - openssl >=3.5.9,<4.0a0 + - zstd >=1.5.7,<1.6.0a0 + license: curl + license_family: MIT + run_exports: + weak: + - libcurl >=8.23.0,<9.0a0 + size: 425637 + timestamp: 1792014025908 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libcxx-23.1.0-h55c6f16_0.conda sha256: d3e5f0b767964af25ef81edffc002f8e822b1a5c55330da1ae3a857f70c4e4ee md5: 5303ba06fab927399ed8dfb3227b0af8 @@ -5150,6 +6361,16 @@ packages: run_exports: {} size: 575940 timestamp: 1787698697875 +- 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 @@ -5237,6 +6458,18 @@ packages: - libintl >=0.25.1,<1.0a0 size: 90957 timestamp: 1751558394144 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libintl-0.25.1-hae62183_2.conda + sha256: b43c6645e668f86d04d5c06d6dc17efe921bbd9244be4b77946d56fb950a3fcc + md5: a3a4193101bc5427e6cf8be81d5eeddf + depends: + - __osx >=11.0 + - libiconv >=1.18,<2.0a0 + license: LGPL-2.1-or-later + run_exports: + weak: + - libintl >=0.25.1,<1.0a0 + size: 90024 + timestamp: 1790118675563 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/liblzma-5.8.3-h8088a28_1.conda sha256: 23d0630046a3e8b164d8f80f2b74ed2605af2e7050ab9913018056402fae4311 md5: 8ab10323068b107661a4b9a4af84f3b5 @@ -5315,6 +6548,17 @@ packages: - libsodium >=1.0.22,<1.0.23.0a0 size: 249624 timestamp: 1787225816699 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsodium-1.0.22-h74c22ad_3.conda + sha256: 0fb001d9b28dc19096388beadaed3af98100f4260707ecb9c177fae68b0e9ece + md5: b237804d151d3d05d4d7fd9052c5664b + depends: + - __osx >=11.0 + license: ISC + run_exports: + weak: + - libsodium >=1.0.22,<1.0.23.0a0 + size: 249403 + timestamp: 1789425371505 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libsqlite-3.54.1-h34a968b_100.conda sha256: ed4bbcbd181a8491245c8120609ea288056c8f90db4f8e18b397066ce2a58ec7 md5: eb7c3006eba21a8ebc3466dedd542919 @@ -5408,6 +6652,18 @@ packages: run_exports: {} size: 5769164 timestamp: 1788276820817 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/mergiraf-0.20.0-hc2d82ec_0.conda + sha256: 4a69c5b16fb5391b0793b524c30114b1fff8f0506b248f8d5a4e174e02edbc73 + md5: ca5d076092b0a9a6608d44e9485e956b + depends: + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: GPL-3.0-only + license_family: GPL + run_exports: {} + size: 6178103 + timestamp: 1790424057778 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/ncurses-6.6-he64c551_1.conda sha256: 7024a48c8c0d0114ed4ab53c76bf9275d50e91ba7cea367a9aead638d3c29c68 md5: 3dfa0d0316dc246cd44937a557de4501 @@ -5474,6 +6730,19 @@ packages: - openssl >=3.6.4,<4.0a0 size: 3110142 timestamp: 1787698648639 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/openssl-3.6.5-h55eecbc_0.conda + sha256: 44fbc526456571a9fb8fa18157f6f269d4d4bd40eef20183a93b9c9296f94497 + md5: 45d9179cdf6e53d88aec034246f0dad6 + depends: + - __osx >=11.0 + - ca-certificates + license: Apache-2.0 + license_family: Apache + run_exports: + weak: + - openssl >=3.6.5,<4.0a0 + size: 3111573 + timestamp: 1791097959641 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pcre2-10.47-he63d830_1.conda sha256: f8c415329b542e1fca1ff2917b80e687c18302dfa0353530668b90cb225b494f md5: 5ab90033816cbe4097e8a297e5179f67 @@ -5500,6 +6769,20 @@ packages: - perl >=5.32.1,<6.0a0 *_perl5 size: 14439531 timestamp: 1703311335652 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/perl-5.44.0-1_hb001647_perl5.conda + build_number: 1 + sha256: d68a8d9a8f329e46920d7750b495f613e093fa40736d00a227b727f5898804bb + md5: 1aeb812a899f42e319056e1bafafbd33 + depends: + - __osx >=11.0 + license: GPL-1.0-or-later OR Artistic-1.0-Perl + run_exports: + weak: + - perl >=5.44.0,<5.45.0a0 + noarch: + - perl >=5.44.0,<6.0a0 + size: 10327598 + timestamp: 1790621195432 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pnpm-12.3.4-h465deab_0.conda sha256: 01c86c1d7b930225031665a9519ee305cb4b31263d995164e9f63703fd0c509a md5: b5434c59798058062c56d0ca2919fd5b @@ -5572,6 +6855,21 @@ packages: run_exports: {} size: 1691975 timestamp: 1789996122675 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pydantic-core-2.50.1-py315hbde48c7_1.conda + sha256: ac08d2b52d69524fc88ebd204767f93d1f135bddef59ef8a7cce9e5c15e6c313 + md5: ec73ff99e638ddf007a9b26f369d707b + depends: + - python + - typing-extensions >=4.16.0 + - __osx >=11.0 + - python_abi 3.15.* *_cp315 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 1805871 + timestamp: 1792686446845 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/pynacl-1.6.2-py311h5285816_5.conda noarch: python sha256: f26d6d46065c12560d12684d1f50ee1fa04ce2bfcc66a058b3ecc9bfc30d5410 @@ -5616,6 +6914,18 @@ packages: run_exports: {} size: 11055889 timestamp: 1785575471905 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/pyrefly-1.4.0-hc2d82ec_0.conda + sha256: 5fd71997629a770cace246f974170c1344c5a690aca64463d070f526ef0956ed + md5: 92a0dd855fcf0ccac1a95dd5c45ff1eb + depends: + - __osx >=11.0 + constrains: + - __osx >=11.0 + license: MIT + license_family: MIT + run_exports: {} + size: 12264034 + timestamp: 1792135855297 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/python-3.14.9-h0ae1c2c_100_cp314.conda build_number: 100 sha256: 3704fc2b5557da0bed1b79e23c8dad1ffea284244c659da60a5b6673d71c453a @@ -5740,19 +7050,6 @@ packages: run_exports: {} size: 8188680 timestamp: 1788474751389 -- 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 @@ -5765,6 +7062,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/typos-1.50.1-hc2d82ec_0.conda sha256: 42d1b9b5e9feb081e1599033df3026dd9588f5e0d534f5867594bdbe4b4fb0f4 md5: da1677f5d7a50bc8b1f792f8179e40aa @@ -5788,6 +7097,35 @@ packages: run_exports: {} size: 14674027 timestamp: 1788567040511 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/uv-0.13.5-hbb8eed7_0.conda + sha256: ce9eb619686279d5e7bfb251ac68c0af0d4ae41eaa79222ce6fc33cc5a0f2a96 + md5: b720d75dac4a57a61acdcf6c68b8f8e5 + depends: + - libcxx >=21 + - __osx >=11.0 + - zstd >=1.5.7,<1.6.0a0 + constrains: + - __osx >=11.0 + license: Apache-2.0 OR MIT + run_exports: {} + size: 12534710 + timestamp: 1792672520798 +- conda: https://conda.anaconda.org/conda-forge/osx-arm64/wcwidth-0.9.4-py311h8794d7f_0.conda + noarch: python + sha256: 6b93381f88e3811200950847793d086c960dff7b499b960a8d393ad63ac5143a + md5: ec906d70052188f4e039c7ca346f4873 + depends: + - python + - python >=3.11 + - python-abi3 + - __osx >=11.0 + - _python_abi3_support 1.* + - cpython >=3.11 + license: MIT + license_family: MIT + run_exports: {} + size: 377493 + timestamp: 1792880498657 - conda: https://conda.anaconda.org/conda-forge/osx-arm64/wrapt-2.4.0-py314hd98292b_1.conda sha256: 0814cb91a02210cf1e50f027d74e17ea40867d813906a4279785c97513cd3bc3 md5: 5aa4816a129211d05177a99a991905ae @@ -5957,6 +7295,59 @@ packages: - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.1-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2026.6.1.19-pyhcf101f3_0.conda - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026c-h151e31d_0.conda +- conda_source: quant-ranger[866b7251] @ . + variants: + target_platform: noarch + depends: + - copier >=9.8.0,<10 + - git >=2.54.0 + - mergiraf >=0.17.0 + - packaging >=26.2 + - pixi-diff-to-markdown >=0.3.3,<0.4.0 + - pydantic >=2.13.4,<3 + - pygithub >=2.9.1,<3 + - python * + - python >=3.14 + - pyyaml >=6.0.3,<7 + - rattler-sandbox >=0.2.3 + - requests >=2.34.2,<3 + - rich >=15.0.0,<16 + - tomlkit >=0.15.0,<0.16.0 + - typer >=0.25.1,<0.26 + - urllib3 >=2.7.0,<3 + - zizmor ==1.22.0 + license: BSD-3-Clause + host_packages: + - 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/bzip2-1.0.8-h4777abc_10.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/libedit-3.1.20260512-pl5321hc48eb74_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-aarch64/libexpat-2.8.5-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/libgomp-16.2.0-h8acb6b2_7.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/libsqlite-3.54.1-hd26f1b6_100.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/libuuid-2.42.4-hd6fdeab_0.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/ncurses-6.6-h2b6f883_1.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/python-3.15.1-h0c7c799_100_cp315.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/uv-0.13.5-h779c035_0.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/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.6-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.32.4-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/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2026.9.21.13-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda - conda_source: quant-ranger[97c7e493] @ . variants: target_platform: noarch @@ -6006,3 +7397,104 @@ packages: - 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/uv-0.12.10-h0e72303_0.conda - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda +- conda_source: quant-ranger[b60e20c6] @ . + variants: + target_platform: noarch + depends: + - copier >=9.8.0,<10 + - git >=2.54.0 + - mergiraf >=0.17.0 + - packaging >=26.2 + - pixi-diff-to-markdown >=0.3.3,<0.4.0 + - pydantic >=2.13.4,<3 + - pygithub >=2.9.1,<3 + - python * + - python >=3.14 + - pyyaml >=6.0.3,<7 + - rattler-sandbox >=0.2.3 + - requests >=2.34.2,<3 + - rich >=15.0.0,<16 + - tomlkit >=0.15.0,<0.16.0 + - typer >=0.25.1,<0.26 + - urllib3 >=2.7.0,<3 + - zizmor ==1.22.0 + license: BSD-3-Clause + host_packages: + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.6-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.32.4-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/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2026.9.21.13-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.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/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/libexpat-2.8.5-h6111c0a_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/libffi-3.7.0-h47dc5ef_1.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/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/libsqlite-3.54.1-h34a968b_100.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/ncurses-6.6-he64c551_1.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/python-3.15.1-h2e4dbab_100_cp315.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/uv-0.13.5-hbb8eed7_0.conda + - conda: https://conda.anaconda.org/conda-forge/osx-arm64/zstd-1.5.7-hf451053_7.conda +- conda_source: quant-ranger[ed1215d4] @ . + variants: + target_platform: noarch + depends: + - copier >=9.8.0,<10 + - git >=2.54.0 + - mergiraf >=0.17.0 + - packaging >=26.2 + - pixi-diff-to-markdown >=0.3.3,<0.4.0 + - pydantic >=2.13.4,<3 + - pygithub >=2.9.1,<3 + - python * + - python >=3.14 + - pyyaml >=6.0.3,<7 + - rattler-sandbox >=0.2.3 + - requests >=2.34.2,<3 + - rich >=15.0.0,<16 + - tomlkit >=0.15.0,<0.16.0 + - typer >=0.25.1,<0.26 + - urllib3 >=2.7.0,<3 + - zizmor ==1.22.0 + license: BSD-3-Clause + host_packages: + - 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/bzip2-1.0.8-hda65f42_10.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/libedit-3.1.20260512-pl5321h373387f_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libexpat-2.8.5-hd2095e1_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libffi-3.7.0-h81df57d_1.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgcc-16.2.0-ha9f2e26_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libgomp-16.2.0-he0feb66_7.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/libsqlite-3.54.1-h0737f62_100.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-16.2.0-h934c35e_7.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/libuuid-2.42.4-hcfc3c73_0.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/ncurses-6.6-hdb14827_1.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/python-3.15.1-h6e52b48_100_cp315.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/uv-0.13.5-h535ca38_0.conda + - conda: https://conda.anaconda.org/conda-forge/linux-64/zstd-1.5.7-hb78ec9c_7.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/ca-certificates-2026.10.23-hbd8a1cb_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/editables-0.6-pyhcf101f3_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/hatchling-1.32.4-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/pathspec-1.1.1-pyhd8ed1ab_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/pluggy-1.7.0-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/python_abi-3.15-9_cp315.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tomlkit-0.15.2-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/trove-classifiers-2026.9.21.13-pyh5ded981_0.conda + - conda: https://conda.anaconda.org/conda-forge/noarch/tzdata-2026e-h5d301ff_0.conda diff --git a/pixi.toml b/pixi.toml index a801a6c..7087589 100644 --- a/pixi.toml +++ b/pixi.toml @@ -11,16 +11,20 @@ name = "quant-ranger" version = "0.0.0" license = "BSD-3-Clause" license-file = "LICENSE" + [package.build.backend] name = "pixi-build-python" version = "*" + [package.build.config] # Derive the conda run-dependencies from `[project.dependencies]` in # `pyproject.toml` so that the PyPI metadata is the single source of truth. ignore-pypi-mapping = false + [package.host-dependencies] python = ">=3.14" hatchling = "*" + # Only dependencies that are unavailable on PyPI belong here; everything else is # declared in `pyproject.toml` and mapped automatically. These are all invoked as # external executables, so `pip` users must install them separately (see README). @@ -41,6 +45,7 @@ pyrefly = "*" griffe = "*" types-pyyaml = "*" types-requests = "*" + [feature.test.tasks] test = "pytest" test-coverage = "pytest --cov=quant_ranger --cov-report=xml --cov-report=term-missing" @@ -50,6 +55,7 @@ python = "*" hatchling = "*" python-build = "*" twine = ">=6" + [feature.build.tasks] build-wheel = "python -m build --no-isolation ." check-wheel = "twine check dist/*" @@ -59,7 +65,7 @@ lefthook = "*" docformatter = "<1.7.8" ruff = "*" prettier = "*" -taplo = "*" +tombi = "*" pre-commit-hooks = "*" typos = "*" zizmor = "*" @@ -101,10 +107,14 @@ docs-check = { depends-on = [ "docs-build", ] } +[feature.py315.dependencies] +python = "3.15.*" + [environments] default = ["test", "build", "lint"] py314 = ["py314", "test"] docs = ["docs"] +py315 = ["py315", "test"] [tool.update] autoupdate-commit-message = "chore: Update pixi lockfile" diff --git a/pyproject.toml b/pyproject.toml index 7b97d9b..6c97a39 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,6 +14,7 @@ classifiers = [ "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.14", + "Programming Language :: Python :: 3.15", ] requires-python = ">=3.14" readme = "README.md" @@ -38,23 +39,24 @@ dependencies = [ [project.urls] repository = "https://github.com/quantco/quant-ranger" -[tool.hatch.build.targets.wheel] -packages = ["quant_ranger"] - [project.scripts] quant-ranger = "quant_ranger.cli:main" +[tool.hatch.build.targets.wheel] +packages = ["quant_ranger"] + [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 = [ - "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 ] select = [ # pyflakes @@ -68,8 +70,13 @@ select = [ "N", # pyupgrade "UP", + # pydocstyle + "D", ] +[tool.ruff.lint.pydocstyle] +convention = "google" + [tool.ruff.format] quote-style = "double" indent-style = "space" @@ -77,6 +84,7 @@ indent-style = "space" [tool.pyrefly] python-version = "3.14.0" preset = "strict" + [tool.pyrefly.errors] # https://github.com/Quantco/quant-ranger/issues/17 implicit-any-lambda = false @@ -100,3 +108,6 @@ default.extend-ignore-re = [ [tool.pyright] venv = "default" venvPath = ".pixi/envs/" + +[tool.tombi] +schema.enabled = false diff --git a/quant_ranger/_impl/helpers.py b/quant_ranger/_impl/helpers.py index 7cdb07f..a1e31f5 100644 --- a/quant_ranger/_impl/helpers.py +++ b/quant_ranger/_impl/helpers.py @@ -45,8 +45,7 @@ def pluralize(count: int, singular: str, plural: str | None = None) -> str: def truncate_lines(text: str, *, max_lines: int) -> str: - """Keep the first and last lines of `text`, eliding the middle beyond - `max_lines`.""" + """Elide the middle of `text` so that at most `max_lines` lines remain.""" lines = text.splitlines() if len(lines) <= max_lines: return text @@ -107,9 +106,9 @@ def map_concurrently[ItemT, ResultT]( logger: Logger, description: str, ) -> list[ResultT]: - """Run `fn` over `items` in a thread pool, collecting results in completion order as - a progress bar advances. + """Run `fn` over `items` in a thread pool while a progress bar advances. + Results are collected in completion order. On Ctrl+C, pending items are cancelled and running ones are awaited before the `KeyboardInterrupt` propagates. A second Ctrl+C terminates the process immediately via SIGINT, skipping cleanup handlers such as temporary directory removal. diff --git a/quant_ranger/_impl/site_config.py b/quant_ranger/_impl/site_config.py index 7a1a8c3..32790e9 100644 --- a/quant_ranger/_impl/site_config.py +++ b/quant_ranger/_impl/site_config.py @@ -40,8 +40,11 @@ class PullRequestTemplate: @dataclass(frozen=True, slots=True) class CopierMigration: - """Changes one answer in a repository's `.copier-answers.yml` by re-running `copier - update` with the desired value and opening a pull request.""" + """Changes one answer in a repository's `.copier-answers.yml`. + + The migration re-runs `copier update` with the desired value and opens a pull + request. + """ answer_key: str """The key in `.copier-answers.yml` whose value the migration changes. diff --git a/quant_ranger/_impl/updaters/_copier/_common.py b/quant_ranger/_impl/updaters/_copier/_common.py index 60037e4..56e2fa7 100644 --- a/quant_ranger/_impl/updaters/_copier/_common.py +++ b/quant_ranger/_impl/updaters/_copier/_common.py @@ -88,8 +88,10 @@ def parse_template_repository_for_host( src_path: str, github_server_host: str, ) -> RepositoryRef: - """To protect against SSRF, we only accept template src_paths that originate from - the same GitHub host as the repository being updated. + """Ensure the template src_path is hosted on the repository's GitHub host. + + To protect against SSRF, we only accept template src_paths that originate from the + same GitHub host as the repository being updated. Raises ValueError for src_paths that do not match that host. """ diff --git a/quant_ranger/_impl/updaters/_pixi_update/_auth.py b/quant_ranger/_impl/updaters/_pixi_update/_auth.py index af7cb39..b7bd8b0 100644 --- a/quant_ranger/_impl/updaters/_pixi_update/_auth.py +++ b/quant_ranger/_impl/updaters/_pixi_update/_auth.py @@ -43,8 +43,10 @@ def prepare_sandbox_auth( tempdir: Path, pixi_info: Mapping[str, JsonValue], ) -> SandboxAuth: - """Find credentials for the given channel hosts in the macOS Keychain or the rattler - credentials file.""" + """Find credentials for the given channel hosts. + + Looks in the macOS Keychain or the rattler credentials file. + """ if not channel_hosts: return SandboxAuth() diff --git a/quant_ranger/_impl/updaters/_pixi_update/_checkout_copy.py b/quant_ranger/_impl/updaters/_pixi_update/_checkout_copy.py index 6b3b403..f1b838a 100644 --- a/quant_ranger/_impl/updaters/_pixi_update/_checkout_copy.py +++ b/quant_ranger/_impl/updaters/_pixi_update/_checkout_copy.py @@ -75,8 +75,7 @@ def copy_back_lockfile( def _open_without_symlinks(root: Path, relative_path: Path) -> int: - """Open `root / relative_path` for reading without following symlinks below - `root`.""" + """Open `root / relative_path` for reading without following symlinks.""" *directories, name = relative_path.parts directory_fd = os.open(root, os.O_RDONLY | os.O_DIRECTORY) try: diff --git a/tests/conftest.py b/tests/conftest.py index 4b05fff..b856345 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -15,8 +15,10 @@ @pytest.fixture(autouse=True) def _plain_console_output(monkeypatch: pytest.MonkeyPatch) -> None: - """Keep rich consoles created during tests free of ANSI codes regardless of the - caller's environment, so assertions on console output are deterministic. + """Keep rich consoles created during tests free of ANSI codes. + + This holds regardless of the caller's environment, so assertions on console output + are deterministic. Rich reads these variables at runtime to decide whether to emit ANSI codes, so an ambient value would make styled-output assertions environment-dependent. @@ -28,8 +30,11 @@ def _plain_console_output(monkeypatch: pytest.MonkeyPatch) -> None: @pytest.fixture(autouse=True) def _no_ambient_proxy(monkeypatch: pytest.MonkeyPatch) -> None: - """Remove proxy variables so subprocess environments asserted in tests do not depend - on the caller's environment.""" + """Remove proxy variables from the environment. + + This keeps subprocess environments asserted in tests independent of the caller's + environment. + """ for name in ("HTTP_PROXY", "HTTPS_PROXY", "NO_PROXY"): monkeypatch.delenv(name, raising=False) monkeypatch.delenv(name.lower(), raising=False)