diff --git a/.aspect/version.axl b/.aspect/version.axl index dfb75b439..2b4ccd576 100644 --- a/.aspect/version.axl +++ b/.aspect/version.axl @@ -1 +1 @@ -version("2026.26.18") +version("2026.28.2") diff --git a/.bazelrc b/.bazelrc index a0c99ca0e..2a8022519 100644 --- a/.bazelrc +++ b/.bazelrc @@ -9,7 +9,6 @@ common --define=SOME_VAR=SOME_VALUE # Set the default virtualenv to 'default' common --@pypi//dep_group=aspect_rules_py -common --incompatible_enable_cc_toolchain_resolution common --@llvm//config:experimental_stub_libgcc_s common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=false @@ -40,7 +39,3 @@ common:release --compilation_mode=opt # Build without the bytes common:ci --remote_download_outputs=minimal common:ci --nobuild_runfile_links - -# Override the preset's `--lockfile_mode=error` on CI since we don't -# yet commit MODULE.bazel.lock — see .gitignore. -common:ci --lockfile_mode=off diff --git a/.gitattributes b/.gitattributes index f19f9d58e..66555b1c7 100644 --- a/.gitattributes +++ b/.gitattributes @@ -10,3 +10,6 @@ py/private/release/version.bzl export-subst # is data-only (the write_source_files rule lives in the parent BUILD.bazel), # so the whole tree can be marked generated. **/snapshots/** linguist-generated + +# MODULE lock files are generated +MODULE.bazel.lock linguist-generated diff --git a/.github/workflows/ci-workflows.yaml b/.github/workflows/ci-workflows.yaml index 425a4135e..0703cb69a 100644 --- a/.github/workflows/ci-workflows.yaml +++ b/.github/workflows/ci-workflows.yaml @@ -45,7 +45,7 @@ jobs: - { path: "e2e/interpreter-runtime-metadata", slug: "e2e-interpreter-runtime-metadata", runner: "ubuntu-latest" } - { path: "e2e/interpreter-toolchain-settings", slug: "e2e-interpreter-toolchain-settings", runner: "ubuntu-latest" } - { path: "e2e/interpreter-input-validation", slug: "e2e-interpreter-input-validation", runner: "ubuntu-latest" } - - { path: "e2e/rules-proto-grpc-python", slug: "e2e-rules-proto-grpc-python", runner: "ubuntu-latest" } + - { path: "e2e/rules-proto-grpc-python", slug: "e2e-rules-proto-grpc-python", runner: "ubuntu-22.04-32core" } - { path: "examples/debugger", slug: "examples-debugger", runner: "ubuntu-latest" } - { path: "examples/dev_deps", slug: "examples-dev_deps", runner: "ubuntu-latest" } - { path: "examples/django", slug: "examples-django", runner: "ubuntu-latest" } @@ -58,8 +58,10 @@ jobs: - { path: "examples/virtual_deps", slug: "examples-virtual_deps", runner: "ubuntu-latest" } - { path: "examples/protobuf", slug: "examples-protobuf", runner: "ubuntu-22.04-32core" } bazel: - - { id: "bazel-8", version: "8.x", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel8" } - - { id: "bazel-9", version: "9.x", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel9" } + # An empty version falls back to the workspace's .bazelversion, which validates + # the committed MODULE.bazel.lock; alternate versions may regenerate it instead. + - { id: "bazel-8", version: "", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel8 --bazel-flag=--lockfile_mode=error" } + - { id: "bazel-9", version: "9.x", flags: "--bazel-flag=--test_tag_filters=-skip-on-bazel9 --bazel-flag=--lockfile_mode=update" } env: USE_BAZEL_VERSION: ${{ matrix.bazel.version }} steps: diff --git a/.github/workflows/ci.bazelrc b/.github/workflows/ci.bazelrc index ff5547d7c..d7b9ba99e 100644 --- a/.github/workflows/ci.bazelrc +++ b/.github/workflows/ci.bazelrc @@ -1,19 +1,7 @@ -# This file contains Bazel settings to apply on CI only. -# It is referenced with a --bazelrc option in the call to bazel in ci.yaml +# Bazel settings applied on CI only, via an explicit --bazelrc option. # Debug where options came from build --announce_rc -# This directory is configured in GitHub actions to be persisted between runs. -build --disk_cache=~/.cache/bazel +# Share one repository cache across the many --output_base invocations. build --repository_cache=~/.cache/bazel-repo - -# Don't rely on test logs being easily accessible from the test runner, -# though it makes the log noisier. -test --test_output=errors - -# Allows tests to run bazelisk-in-bazel, since this is the cache folder used -test --test_env=XDG_CACHE_HOME - -# Ensure the binaries are build in opt during release. -build:release --compilation_mode opt diff --git a/.github/workflows/performance-benchmark.yml b/.github/workflows/performance-benchmark.yml new file mode 100644 index 000000000..8e6e1cf39 --- /dev/null +++ b/.github/workflows/performance-benchmark.yml @@ -0,0 +1,315 @@ +name: Performance Benchmark + +on: + pull_request: + push: + branches: [main] + workflow_dispatch: + +env: + BCR_VERSION: "1.11.7" + ANALYSIS_BCR_VERSION: "2.0.0-alpha.4" + +jobs: + startup: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout PR + uses: actions/checkout@v6 + with: + fetch-depth: 0 + path: rules_py_pr + + - name: Checkout HEAD main + uses: actions/checkout@v6 + with: + ref: main + path: rules_py_main + + - name: Install hyperfine + run: | + set -euo pipefail + HYPERFINE_VERSION="1.18.0" + DEB="hyperfine_${HYPERFINE_VERSION}_amd64.deb" + URL="https://github.com/sharkdp/hyperfine/releases/download/v${HYPERFINE_VERSION}/${DEB}" + wget -qO "$DEB" "$URL" + sudo dpkg -i "$DEB" + rm -f "$DEB" + hyperfine --version + + # ── BCR baseline ──────────────────────────────────────────────────────── + - name: Benchmark BCR ${{ env.BCR_VERSION }} + run: | + set -euo pipefail + cd rules_py_pr/benchmark/startup + python3 generate_module.py bcr --version "${BCR_VERSION}" + + OUT_BASE="/tmp/bazel-bcr" + rm -rf "$OUT_BASE" + + START=$(date +%s%N) + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath + END=$(date +%s%N) + BUILD_MS=$(( (END - START) / 1000000 )) + echo "{\"build_ms\": $BUILD_MS}" > "${GITHUB_WORKSPACE}/bcr-build.json" + + BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) + test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; } + RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json "${GITHUB_WORKSPACE}/bcr.json" "$BIN" + + BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) + test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; } + RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/bcr-syspath.json" + + # ── HEAD main ─────────────────────────────────────────────────────────── + - name: Benchmark HEAD main + run: | + set -euo pipefail + cd rules_py_pr/benchmark/startup + python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_main" + + OUT_BASE="/tmp/bazel-main" + rm -rf "$OUT_BASE" + + START=$(date +%s%N) + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath + END=$(date +%s%N) + BUILD_MS=$(( (END - START) / 1000000 )) + echo "{\"build_ms\": $BUILD_MS}" > "${GITHUB_WORKSPACE}/main-build.json" + + BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) + test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; } + RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json "${GITHUB_WORKSPACE}/main.json" "$BIN" + + BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) + test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; } + RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/main-syspath.json" + + # ── Current commit (PR) ───────────────────────────────────────────────── + - name: Benchmark current PR + run: | + set -euo pipefail + cd rules_py_pr/benchmark/startup + python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_pr" + + OUT_BASE="/tmp/bazel-pr" + rm -rf "$OUT_BASE" + + START=$(date +%s%N) + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath + END=$(date +%s%N) + BUILD_MS=$(( (END - START) / 1000000 )) + echo "{\"build_ms\": $BUILD_MS}" > "${GITHUB_WORKSPACE}/pr-build.json" + + BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) + test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; } + RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json "${GITHUB_WORKSPACE}/pr.json" "$BIN" + + BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) + test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; } + RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/pr-syspath.json" + + # ── Compare ───────────────────────────────────────────────────────────── + - name: Compare startup results + id: compare + continue-on-error: true + run: | + set -euo pipefail + python3 rules_py_pr/benchmark/startup/compare.py \ + --output-table startup-table.txt \ + bcr.json main.json pr.json + + - name: Save PR number + if: github.event_name == 'pull_request' + run: echo "${{ github.event.pull_request.number }}" > pr-number.txt + + - name: Upload startup artifacts + if: github.event_name == 'pull_request' + uses: actions/upload-artifact@v4 + with: + name: startup-benchmark-results + path: | + startup-table.txt + pr-number.txt + if-no-files-found: warn + + - name: Fail on regression + if: steps.compare.outcome == 'failure' + run: exit 1 + + analysis: + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - name: Checkout PR + uses: actions/checkout@v6 + with: + fetch-depth: 0 + path: rules_py_pr + + - name: Checkout HEAD main + uses: actions/checkout@v6 + with: + ref: main + path: rules_py_main + + - name: Install hyperfine + run: | + set -euo pipefail + HYPERFINE_VERSION="1.18.0" + DEB="hyperfine_${HYPERFINE_VERSION}_amd64.deb" + URL="https://github.com/sharkdp/hyperfine/releases/download/v${HYPERFINE_VERSION}/${DEB}" + wget -qO "$DEB" "$URL" + sudo dpkg -i "$DEB" + rm -f "$DEB" + hyperfine --version + + - name: Generate workspace + run: | + set -euo pipefail + cd rules_py_pr/benchmark/analysis + python3 workspace/generate_workspace.py --root workspace --packages 50 + + # ── BCR baseline ──────────────────────────────────────────────────────── + - name: Benchmark BCR ${{ env.ANALYSIS_BCR_VERSION }} + run: | + set -euo pipefail + cd rules_py_pr/benchmark/analysis + python3 generate_module.py bcr --version "${ANALYSIS_BCR_VERSION}" + + OUT_BASE="/tmp/bazel-bcr" + rm -rf "$OUT_BASE" + + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc fetch //workspace/... + + hyperfine --warmup 1 --runs 10 \ + --prepare 'rm -rf /tmp/bazel-bcr-analysis' \ + --export-json "${GITHUB_WORKSPACE}/bcr.json" \ + 'bazel --output_base=/tmp/bazel-bcr-analysis --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= --nobuild //workspace/...' + + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... --output=package > /tmp/bcr-packages.txt + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... > /tmp/bcr-targets.txt + echo "{\"packages\": $(wc -l < /tmp/bcr-packages.txt | tr -d ' '), \"targets\": $(wc -l < /tmp/bcr-targets.txt | tr -d ' ')}" > "${GITHUB_WORKSPACE}/bcr-aux.json" + + # ── HEAD main ─────────────────────────────────────────────────────────── + - name: Benchmark HEAD main + run: | + set -euo pipefail + cd rules_py_pr/benchmark/analysis + python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_main" + + OUT_BASE="/tmp/bazel-main" + rm -rf "$OUT_BASE" + + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc fetch //workspace/... + + hyperfine --warmup 1 --runs 10 \ + --prepare 'rm -rf /tmp/bazel-main-analysis' \ + --export-json "${GITHUB_WORKSPACE}/main.json" \ + 'bazel --output_base=/tmp/bazel-main-analysis --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= --nobuild //workspace/...' + + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... --output=package > /tmp/main-packages.txt + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... > /tmp/main-targets.txt + echo "{\"packages\": $(wc -l < /tmp/main-packages.txt | tr -d ' '), \"targets\": $(wc -l < /tmp/main-targets.txt | tr -d ' ')}" > "${GITHUB_WORKSPACE}/main-aux.json" + + # ── Current commit (PR) ───────────────────────────────────────────────── + - name: Benchmark current PR + run: | + set -euo pipefail + cd rules_py_pr/benchmark/analysis + python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_pr" + + OUT_BASE="/tmp/bazel-pr" + rm -rf "$OUT_BASE" + + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc fetch //workspace/... + + hyperfine --warmup 1 --runs 10 \ + --prepare 'rm -rf /tmp/bazel-pr-analysis' \ + --export-json "${GITHUB_WORKSPACE}/pr.json" \ + 'bazel --output_base=/tmp/bazel-pr-analysis --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= --nobuild //workspace/...' + + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... --output=package > /tmp/pr-packages.txt + bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc query //workspace/... > /tmp/pr-targets.txt + echo "{\"packages\": $(wc -l < /tmp/pr-packages.txt | tr -d ' '), \"targets\": $(wc -l < /tmp/pr-targets.txt | tr -d ' ')}" > "${GITHUB_WORKSPACE}/pr-aux.json" + + # ── Compare ───────────────────────────────────────────────────────────── + - name: Compare analysis results + id: compare + continue-on-error: true + run: | + set -euo pipefail + python3 rules_py_pr/benchmark/analysis/compare.py \ + --output-table analysis-table.txt \ + bcr.json main.json pr.json + + - name: Upload analysis artifacts + if: github.event_name == 'pull_request' + uses: actions/upload-artifact@v4 + with: + name: analysis-benchmark-results + path: | + analysis-table.txt + if-no-files-found: warn + + - name: Fail on regression + if: steps.compare.outcome == 'failure' + run: exit 1 + + comment: + runs-on: ubuntu-latest + needs: [startup, analysis] + if: always() && github.event_name == 'pull_request' && (needs.startup.result == 'success' || needs.startup.result == 'failure') && (needs.analysis.result == 'success' || needs.analysis.result == 'failure') + permissions: + pull-requests: write + steps: + - name: Download startup artifacts + uses: actions/download-artifact@v4 + with: + name: startup-benchmark-results + + - name: Download analysis artifacts + uses: actions/download-artifact@v4 + with: + name: analysis-benchmark-results + + - name: Post combined benchmark comment + uses: actions/github-script@v7 + with: + script: | + const fs = require('fs'); + const startup = fs.readFileSync('startup-table.txt', 'utf8').trim(); + const analysis = fs.readFileSync('analysis-table.txt', 'utf8').trim(); + const prNumber = parseInt(fs.readFileSync('pr-number.txt', 'utf8').trim()); + const header = ''; + const body = `${header}\n\n${startup}\n\n${analysis}`; + const { data: comments } = await github.rest.issues.listComments({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + }); + const existing = comments.find(c => c.body && c.body.includes(header)); + if (existing) { + await github.rest.issues.updateComment({ + owner: context.repo.owner, + repo: context.repo.repo, + comment_id: existing.id, + body: body, + }); + console.log(`Updated comment ${existing.id}`); + } else { + const { data: created } = await github.rest.issues.createComment({ + owner: context.repo.owner, + repo: context.repo.repo, + issue_number: prNumber, + body: body, + }); + console.log(`Created comment ${created.id}`); + } + + - name: Fail if any benchmark regressed + if: needs.startup.result == 'failure' || needs.analysis.result == 'failure' + run: exit 1 diff --git a/.github/workflows/release_docs.sh b/.github/workflows/release_docs.sh deleted file mode 100755 index d0198b32e..000000000 --- a/.github/workflows/release_docs.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/usr/bin/env bash -# Add generated API docs to the release -# see https://github.com/bazelbuild/bazel-central-registry/blob/main/docs/stardoc.md -set -o errexit -o nounset -o pipefail - -docs="$(mktemp -d)" -targets="$(mktemp)" -out=$1 -bazel --output_base="$docs" query --output=label --output_file="$targets" 'kind("starlark_doc_extract rule", //...)' -bazel --output_base="$docs" build --target_pattern_file="$targets" -tar --create --auto-compress \ - --directory "$(bazel --output_base="$docs" info bazel-bin)" \ - --file "${out}" . diff --git a/.github/workflows/startup-benchmark-comment.yml b/.github/workflows/startup-benchmark-comment.yml deleted file mode 100644 index 839b4b7ab..000000000 --- a/.github/workflows/startup-benchmark-comment.yml +++ /dev/null @@ -1,54 +0,0 @@ -name: Post Benchmark Comment - -on: - workflow_run: - workflows: ["Startup Benchmark"] - types: [completed] - -permissions: - pull-requests: write - -jobs: - comment: - runs-on: ubuntu-latest - if: github.event.workflow_run.event == 'pull_request' - steps: - - name: Download benchmark artifacts - uses: actions/download-artifact@v4 - with: - name: benchmark-results - run-id: ${{ github.event.workflow_run.id }} - github-token: ${{ secrets.GITHUB_TOKEN }} - - - name: Post PR comment - uses: actions/github-script@v7 - with: - script: | - const fs = require('fs'); - const prNumber = parseInt(fs.readFileSync('pr-number.txt', 'utf8').trim()); - const table = fs.readFileSync('benchmark-table.txt', 'utf8').trim(); - const header = ''; - const body = `${header}\n${table}`; - const { data: comments } = await github.rest.issues.listComments({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: prNumber, - }); - const existing = comments.find(c => c.body && c.body.includes(header)); - if (existing) { - await github.rest.issues.updateComment({ - owner: context.repo.owner, - repo: context.repo.repo, - comment_id: existing.id, - body: body, - }); - console.log(`Updated comment ${existing.id}`); - } else { - const { data: created } = await github.rest.issues.createComment({ - owner: context.repo.owner, - repo: context.repo.repo, - issue_number: prNumber, - body: body, - }); - console.log(`Created comment ${created.id}`); - } diff --git a/.github/workflows/startup-benchmark.yml b/.github/workflows/startup-benchmark.yml deleted file mode 100644 index 874a59aa9..000000000 --- a/.github/workflows/startup-benchmark.yml +++ /dev/null @@ -1,157 +0,0 @@ -name: Startup Benchmark - -on: - pull_request: - push: - branches: [main] - -env: - BCR_VERSION: "1.11.7" - -jobs: - benchmark: - runs-on: ubuntu-latest - permissions: - contents: read - - steps: - - name: Checkout PR - uses: actions/checkout@v6 - with: - fetch-depth: 0 - path: rules_py_pr - - - name: Checkout HEAD main - uses: actions/checkout@v6 - with: - ref: main - path: rules_py_main - - - name: Install hyperfine - run: | - set -euo pipefail - HYPERFINE_VERSION="1.18.0" - DEB="hyperfine_${HYPERFINE_VERSION}_amd64.deb" - URL="https://github.com/sharkdp/hyperfine/releases/download/v${HYPERFINE_VERSION}/${DEB}" - wget -qO "$DEB" "$URL" - sudo dpkg -i "$DEB" - rm -f "$DEB" - hyperfine --version - - # ── BCR baseline ──────────────────────────────────────────────────────── - - name: Benchmark BCR ${{ env.BCR_VERSION }} - run: | - set -euo pipefail - cd rules_py_pr/benchmark/startup - python3 generate_module.py bcr --version "${BCR_VERSION}" - - OUT_BASE="/tmp/bazel-bcr" - rm -rf "$OUT_BASE" - - START=$(date +%s%N) - bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath - END=$(date +%s%N) - BUILD_MS=$(( (END - START) / 1000000 )) - echo "{\"build_ms\": $BUILD_MS}" > "../../../bcr-build.json" - - BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) - test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; } - # Set RUNFILES_DIR as `bazel run` would. Without it, launchers fall back to - # the sibling .runfiles_manifest, whose unresolved-symlink entries (the venv - # python) are relative link targets that cannot be exec'd. - RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json ../../../bcr.json "$BIN" - - BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) - test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; } - RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/bcr-syspath.json" - - # ── HEAD main ─────────────────────────────────────────────────────────── - - name: Benchmark HEAD main - run: | - set -euo pipefail - cd rules_py_pr/benchmark/startup - python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_main" - - OUT_BASE="/tmp/bazel-main" - rm -rf "$OUT_BASE" - - START=$(date +%s%N) - bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath - END=$(date +%s%N) - BUILD_MS=$(( (END - START) / 1000000 )) - echo "{\"build_ms\": $BUILD_MS}" > "../../../main-build.json" - - BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) - test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; } - # See the RUNFILES_DIR comment in the BCR step. - RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json ../../../main.json "$BIN" - - BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) - test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; } - RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/main-syspath.json" - - # ── Current commit (PR) ───────────────────────────────────────────────── - - name: Benchmark current PR - run: | - set -euo pipefail - cd rules_py_pr/benchmark/startup - python3 generate_module.py local --path "$GITHUB_WORKSPACE/rules_py_pr" - - OUT_BASE="/tmp/bazel-pr" - rm -rf "$OUT_BASE" - - START=$(date +%s%N) - bazel --output_base="$OUT_BASE" --bazelrc=../../.github/workflows/ci.bazelrc build --disk_cache= //:bench //:bench_syspath - END=$(date +%s%N) - BUILD_MS=$(( (END - START) / 1000000 )) - echo "{\"build_ms\": $BUILD_MS}" > "../../../pr-build.json" - - BIN=$(bazel --output_base="$OUT_BASE" cquery //:bench --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) - test -x "$BIN" || { echo "ERROR: benchmark binary not executable: $BIN"; exit 1; } - # See the RUNFILES_DIR comment in the BCR step. - RUNFILES_DIR="$PWD/$BIN.runfiles" hyperfine --warmup 5 --runs 50 --export-json ../../../pr.json "$BIN" - - BIN_SP=$(bazel --output_base="$OUT_BASE" cquery //:bench_syspath --disk_cache= --output=starlark --starlark:expr='target.files_to_run.executable.path' | tail -n1) - test -x "$BIN_SP" || { echo "ERROR: bench_syspath binary not executable: $BIN_SP"; exit 1; } - RUNFILES_DIR="$PWD/$BIN_SP.runfiles" "$BIN_SP" "$GITHUB_WORKSPACE/pr-syspath.json" - - # ── Compare & gate ────────────────────────────────────────────────────── - - name: Compare results - id: compare - continue-on-error: true - run: | - set -euo pipefail - for f in bcr.json main.json pr.json; do - if [[ ! -f "$f" ]]; then - echo "ERROR: missing result file: $f" - exit 1 - fi - done - python3 rules_py_pr/benchmark/startup/compare.py bcr.json main.json pr.json | tee benchmark-table.txt - - - name: Save PR number - if: github.event_name == 'pull_request' - run: echo "${{ github.event.pull_request.number }}" > pr-number.txt - - - name: Upload benchmark artifacts - if: github.event_name == 'pull_request' - uses: actions/upload-artifact@v4 - with: - name: benchmark-results - path: | - bcr.json - main.json - pr.json - bcr-build.json - main-build.json - pr-build.json - bcr-syspath.json - main-syspath.json - pr-syspath.json - benchmark-table.txt - pr-number.txt - if-no-files-found: warn - - - name: Fail on regression - if: steps.compare.outcome == 'failure' - run: exit 1 diff --git a/.gitignore b/.gitignore index 067835f20..505d02f57 100644 --- a/.gitignore +++ b/.gitignore @@ -12,11 +12,6 @@ .venv/ node_modules/ -# Bazel's MODULE lockfile isn't ready to check in yet as of Bazel 7.1. -# Do allow for it to be created, however, since it gives a performance boost for local development. -# [Store resolved repository attributes in the Bzlmod lockfile](https://github.com/bazelbuild/bazel/issues/19026) -# [MODULE.bazel.lock file contains user specific paths](https://github.com/bazelbuild/bazel/issues/19621) -# [Consider skipping bazel_tools@_ from lockfile](https://github.com/bazelbuild/bazel/issues/19971) -# [MODULE.bazel.lock file "reads through" already-locked package manager](https://github.com/bazelbuild/bazel/issues/20272) -# [moduleFileHash in MODULE.bazel.lock causes frequent Git merge conflicts](https://github.com/bazelbuild/bazel/issues/20369) -MODULE.bazel.lock +# Generated by benchmark/startup/generate_module.py with a machine-local +# local_path_override; regenerated by CI before every use. +benchmark/startup/MODULE.bazel diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 8124e83ab..2cba886ec 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -33,12 +33,3 @@ repos: examples/django/mysite/settings.py| gazelle_python.yaml ) - - - repo: local - hooks: - - id: check-requirements-lock - name: Update requirements lock - # Note that we use a nested shell to discard $@, which is the file list - entry: /bin/sh -c '/usr/bin/env bazel run //:requirements.update' - language: script - require_serial: true diff --git a/.prettierignore b/.prettierignore deleted file mode 100644 index e69de29bb..000000000 diff --git a/BUILD.bazel b/BUILD.bazel index a87b1a4e1..1d4e904b5 100644 --- a/BUILD.bazel +++ b/BUILD.bazel @@ -1,5 +1,4 @@ load("@bazel_skylib//rules:build_test.bzl", "build_test") -load("@rules_python//python/pip_install:requirements.bzl", "compile_pip_requirements") load("//uv:defs.bzl", "gazelle_python_manifest") # Gazelle manages the bzl_library graph for the public //py/... and //uv/... @@ -41,13 +40,6 @@ alias( actual = "@buildifier_prebuilt//buildifier", ) -compile_pip_requirements( - name = "requirements", - extra_args = ["--allow-unsafe"], - requirements_in = "requirements.in", - requirements_txt = "requirements.txt", -) - # Regression test: a package whose lockfile entry has both an sdist *and* a # `-none-any.whl` must still emit a `sdist_build__*` repo so the source-build # fallback is available for overrides, no-binary settings, and incomplete diff --git a/MODULE.bazel b/MODULE.bazel index 4fe9398d2..e706cb815 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -113,12 +113,6 @@ multitool = use_extension("@rules_multitool//multitool:extension.bzl", "multitoo multitool.hub(lockfile = "//tools:tools.lock.json") use_repo(multitool, "multitool") -# TODO: Replace with bazel_features? -# cf. https://github.com/bazel-contrib/bazelrc-preset.bzl/blob/main/MODULE.bazel#L8C1-L10C70 - -version = use_extension("@bazel_features//private:extensions.bzl", "version_extension") -use_repo(version, "bazel_features_globals", "bazel_features_version") - # rules_oci and friends # rules_python and friends @@ -175,11 +169,6 @@ use_repo( "whl_install__aspect_rules_py__attrs__23_2_0", ) -register_toolchains( - "@uv//:all", - dev_dependency = True, -) - http_file( name = "django_4_2_4", dev_dependency = True, diff --git a/MODULE.bazel.lock b/MODULE.bazel.lock new file mode 100644 index 000000000..de05f67a0 --- /dev/null +++ b/MODULE.bazel.lock @@ -0,0 +1,1258 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/MODULE.bazel": "c5565bac49e1973227225b441fad1c938d498d83df62dc5da95b2fab0f0626a2", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.20.0/source.json": "3eaada79dd3c65b6c57d5fc33c57ffd2896c4ebd78c4c9001a790a70f7f50e61", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", + "https://bcr.bazel.build/modules/aspect_gazelle_prebuilt/0.0.18/MODULE.bazel": "02fda55a3fcf321bad096ddb3856b145c895b2e6b874fd93a0fc87888374029a", + "https://bcr.bazel.build/modules/aspect_gazelle_prebuilt/0.0.18/source.json": "2f1722ded723f24d8a27afa2515562554440cb29594460bf3e5e936c2f2a2650", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_env.bzl/0.5.0/MODULE.bazel": "116884119669ff3ced7535dc6ed5344f08d92cbc514cbcb474b2eb94c840b891", + "https://bcr.bazel.build/modules/bazel_env.bzl/0.5.0/source.json": "e88a7d73547512d987c37541ffe57ed6f946222d448a3117554bdff1ae816ef0", + "https://bcr.bazel.build/modules/bazel_features/1.0.0/MODULE.bazel": "d7f022dc887efb96e1ee51cec7b2e48d41e36ff59a6e4f216c40e4029e1585bf", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.31.0/MODULE.bazel": "eca40770b202b2161c1e20be7f1c323c8836dc959ae48dcf02ee7a051ffe4e8e", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.0/MODULE.bazel": "e8ca15cb2639c5f12183db6dcb678735555d0cdd739b32a0418b6532b5e565f8", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/MODULE.bazel": "e2c890c8a515d6bca9c66d47718aa9e44b458fde64ec7204b8030bf2d349058c", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/source.json": "9e84e115c20e14652c5c21401ae85ff4daa8702e265b5c0b3bf89353f17aa212", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.9.2/MODULE.bazel": "9354bc3d91ee66e804642419af601b853e3228f6493f9263d51c5cd7b25c2a55", + "https://bcr.bazel.build/modules/bazelrc-preset.bzl/1.9.2/source.json": "d78791185eae5a8af3a5793f312f0ba21185bd8a115b9419fb99527d03ab112b", + "https://bcr.bazel.build/modules/buildifier_prebuilt/7.3.1/MODULE.bazel": "537faf0ad9f5892910074b8e43b4c91c96f1d5d86b6ed04bdbe40cf68aa48b68", + "https://bcr.bazel.build/modules/buildifier_prebuilt/8.5.1.2/MODULE.bazel": "9a6e0a2e87d1e3da679e157da5192ea351d5739ca1ff51831c2b736d5b6034de", + "https://bcr.bazel.build/modules/buildifier_prebuilt/8.5.1.2/source.json": "33e11b3bf11e39cb762480a7e6ea1d24d044636135cdd8b8e74b07ebcd3b8d8b", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/llvm/0.8.3/MODULE.bazel": "dbc1bc13171f8f9980a75524883abef1c491613e8d8d805cd4ffa3767ba9708e", + "https://bcr.bazel.build/modules/llvm/0.8.3/source.json": "4b11874c26a9de53c03a25a517ebc36dee6b458c920fe9ed65e3ca279ff19775", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_multitool/1.9.0/MODULE.bazel": "8a042b0dbf35e4aaa94c28ad69efa75c9e673e9ea4bd5c0fb70bab75ef9c636b", + "https://bcr.bazel.build/modules/rules_multitool/1.9.0/source.json": "d9a01604a8b5c4a0e9430824dd34ca5b1b3f5b25277b755e8f3ae91f2c9362a3", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.4/MODULE.bazel": "e8f9ff79199e8d9eaad7f1b0a77ad74b30bb82d794b87d8ca942bead5de83ae9", + "https://bcr.bazel.build/modules/tar.bzl/0.10.4/source.json": "20143442376c03426f6135292ba02d825cb75308aa47e6bf42dd4cc5a435c2ff", + "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_gazelle_prebuilt+//:extensions.bzl%prebuilt_extension": { + "general": { + "bzlTransitiveDigest": "PXjWEodaUkgW4KlLjlh3MgkzomzJrwESbScQ6Z5+AR0=", + "usagesDigest": "YQ4ocQA/oC+jyWDDcgT9LGFFpShxvHItg9d1OTA4g7Q=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_gazelle_prebuilt_linux_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "executable": true, + "sha256": "aedb7ba34b2bcd1c612837324d1825375cb4297649cc3778b4ba78eb7f4b0b98", + "urls": [ + "https://github.com/aspect-build/aspect-gazelle/releases/download/prebuilt-v0.0.18/aspect_gazelle-linux_amd64" + ] + } + }, + "aspect_gazelle_prebuilt_linux_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "executable": true, + "sha256": "f24220bee898265c6e5eef2a8c93fe41b415e30d89e27aacc932cffa442161ad", + "urls": [ + "https://github.com/aspect-build/aspect-gazelle/releases/download/prebuilt-v0.0.18/aspect_gazelle-linux_arm64" + ] + } + }, + "aspect_gazelle_prebuilt_darwin_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "executable": true, + "sha256": "8b06306ca75684875743a63a1380f32cd77bc24cfcfd943f8dbe7cc81113ef24", + "urls": [ + "https://github.com/aspect-build/aspect-gazelle/releases/download/prebuilt-v0.0.18/aspect_gazelle-darwin_amd64" + ] + } + }, + "aspect_gazelle_prebuilt_darwin_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "executable": true, + "sha256": "791a4573acf58550e26fac42e3f4277caa2beb73b4bdbf63fcf86e2a43ec2836", + "urls": [ + "https://github.com/aspect-build/aspect-gazelle/releases/download/prebuilt-v0.0.18/aspect_gazelle-darwin_arm64" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_gazelle_prebuilt+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "zGcBikWE5y+l5zJGFfFlrTZjLdcWRtsQJHVxG7L9yAU=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "//py:extensions.bzl%python_interpreters": { + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/bazel/BUILD.bazel b/bazel/BUILD.bazel index 5c46cc78c..3e8a131eb 100644 --- a/bazel/BUILD.bazel +++ b/bazel/BUILD.bazel @@ -1,8 +1,5 @@ -load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@bazelrc-preset.bzl", "bazelrc_preset") -exports_files(["defs.bzl"]) - bazelrc_preset( name = "defaults", # Note that we're clobbering the Bazel version part of the normal URL @@ -12,17 +9,6 @@ bazelrc_preset( strict = True, # The output is specific to the version in .bazelversion tags = [ - "skip-on-bazel7", "skip-on-bazel9", ], ) - -bzl_library( - name = "defs", - srcs = ["defs.bzl"], - visibility = ["//visibility:public"], - deps = [ - "@bazel_features_version//:version", - "@bazel_skylib//lib:versions", - ], -) diff --git a/bazel/defs.bzl b/bazel/defs.bzl deleted file mode 100644 index cb6c238de..000000000 --- a/bazel/defs.bzl +++ /dev/null @@ -1,28 +0,0 @@ -""" -Helpers. - -Mostly for working around Bazel migration issues. -""" - -load("@bazel_features_version//:version.bzl", bazel_version = "version") -load("@bazel_skylib//lib:versions.bzl", "versions") - -def munge(label): - """Munge external labels from 7->8. - - Under Bazel 8, + is used as the external repo munging character instead of - ~, which was used in 6 and 7. Re-munge 7-style labels to be 8 compatible - when testing on later Bazel versions. Migration helper. - - Args: - label (str): A label string to munge - - Returns: - The string, re-munged as needed - - """ - - if versions.is_at_least("8.0.0", bazel_version): - return label - else: - return label.replace("+", "~") diff --git a/bazel/patches/BUILD.bazel b/bazel/patches/BUILD.bazel deleted file mode 100644 index e69de29bb..000000000 diff --git a/benchmark/analysis/.bazelrc b/benchmark/analysis/.bazelrc new file mode 100644 index 000000000..1efb76ffc --- /dev/null +++ b/benchmark/analysis/.bazelrc @@ -0,0 +1,2 @@ +# Default dependency group for the analysis benchmark workload. +common --@pypi//dep_group=default diff --git a/benchmark/analysis/MODULE.bazel b/benchmark/analysis/MODULE.bazel new file mode 100644 index 000000000..3873c5ccb --- /dev/null +++ b/benchmark/analysis/MODULE.bazel @@ -0,0 +1,29 @@ +"Benchmark workspace for Bazel analysis phase performance" + +module(name = "analysis_benchmark") + +bazel_dep(name = "aspect_rules_py") +local_path_override( + module_name = "aspect_rules_py", + path = "../..", +) + +bazel_dep(name = "bazel_skylib", version = "1.9.0") +bazel_dep(name = "rules_python", version = "1.9.0") + +interpreters = use_extension("@aspect_rules_py//py:extensions.bzl", "python_interpreters") +interpreters.toolchain( + python_version = "3.11", +) +use_repo(interpreters, "python_interpreters") + +register_toolchains("@python_interpreters//:all") + +uv = use_extension("@aspect_rules_py//uv:extensions.bzl", "uv") +uv.declare_hub(hub_name = "pypi") +uv.project( + hub_name = "pypi", + lock = "//workspace:uv.lock", + pyproject = "//workspace:pyproject.toml", +) +use_repo(uv, "pypi") diff --git a/benchmark/analysis/MODULE.bazel.template b/benchmark/analysis/MODULE.bazel.template new file mode 100644 index 000000000..0ec46287c --- /dev/null +++ b/benchmark/analysis/MODULE.bazel.template @@ -0,0 +1,27 @@ +"Benchmark workspace for Bazel analysis phase performance" + +module(name = "analysis_benchmark") + +{{RULES_PY_DECLARATION}} + +bazel_dep(name = "bazel_skylib", version = "1.9.0") +bazel_dep(name = "rules_python", version = "1.9.0") + +# Python interpreters provisioned from python-build-standalone via aspect_rules_py +interpreters = use_extension("@aspect_rules_py//py:extensions.bzl", "python_interpreters") +interpreters.toolchain( + python_version = "3.11", +) +use_repo(interpreters, "python_interpreters") + +register_toolchains("@python_interpreters//:all") + +# UV-based PyPI hub used to stress the rules_py analysis extension. +uv = use_extension("@aspect_rules_py//uv:extensions.bzl", "uv") +uv.declare_hub(hub_name = "pypi") +uv.project( + hub_name = "pypi", + lock = "//workspace:uv.lock", + pyproject = "//workspace:pyproject.toml", +) +use_repo(uv, "pypi") diff --git a/benchmark/analysis/compare.py b/benchmark/analysis/compare.py new file mode 100644 index 000000000..6760b9e39 --- /dev/null +++ b/benchmark/analysis/compare.py @@ -0,0 +1,217 @@ +#!/usr/bin/env python3 +"""Parse hyperfine JSON output for `bazel build --nobuild //...`, build a markdown + table, and exit 1 on regression. + +The regression gate compares PR against HEAD main (not BCR). +BCR is kept as a historical baseline for context, but gating against it is +misleading because transitive dependency versions drift between releases. +""" + +from __future__ import annotations + +import argparse +import json +import os +import sys +from pathlib import Path +from typing import Any + +THRESHOLD_REGRESSION_PCT = 10 # fail CI if PR is >10% slower than HEAD main + + +def write_gh_output(text: str) -> None: + """Write to GITHUB_OUTPUT if available, so sticky PR comment always has content.""" + gh_output = os.environ.get("GITHUB_OUTPUT") + if gh_output: + with open(gh_output, "a") as f: + f.write("table\u003c\u003cEOF\n") + f.write(text) + f.write("EOF\n") + + +def load_runtime(path: str) -> dict[str, Any]: + """Load a single hyperfine JSON result.""" + p = Path(path) + if not p.exists(): + msg = f"ERROR: result file not found: {path}" + print(msg, file=sys.stderr) + write_gh_output(f"❌ {msg}") + sys.exit(2) + + with p.open() as f: + data = json.load(f) + + if "results" not in data or not data["results"]: + msg = f"ERROR: no results in {path}" + print(msg, file=sys.stderr) + write_gh_output(f"❌ {msg}") + sys.exit(2) + + r = data["results"][0] + for key in ("mean", "stddev", "min", "max", "median"): + if key not in r: + msg = f"ERROR: missing '{key}' in {path}" + print(msg, file=sys.stderr) + write_gh_output(f"❌ {msg}") + sys.exit(2) + + return { + "mean_ms": r["mean"] * 1000, + "stddev_ms": r["stddev"] * 1000, + "min_ms": r["min"] * 1000, + "max_ms": r["max"] * 1000, + "median_ms": r["median"] * 1000, + } + + +def load_auxiliary(path: str) -> dict[str, Any] | None: + """Load optional auxiliary metrics JSON emitted by the benchmark harness.""" + p = Path(path) + if not p.exists(): + return None + with p.open() as f: + return json.load(f) + + +def pct(a: float, b: float) -> float: + """Percentage delta from a to b.""" + if a == 0: + return 0.0 + return (b - a) / a * 100 + + +def fmt(val: float) -> str: + """Format milliseconds with sensible precision.""" + return f"{val:.3f}" + + +def warn(delta: float) -> str: + """Return warning emoji if delta exceeds threshold.""" + return "⚠️" if delta > THRESHOLD_REGRESSION_PCT else "" + + +def main() -> None: + parser = argparse.ArgumentParser(description="Compare analysis benchmark results") + parser.add_argument("bcr", help="BCR hyperfine JSON") + parser.add_argument("main", help="HEAD main hyperfine JSON") + parser.add_argument("pr", help="PR hyperfine JSON") + parser.add_argument( + "--output-table", + help="Write only the markdown table to this file instead of stdout", + ) + args = parser.parse_args() + + bcr_path, main_path, pr_path = args.bcr, args.main, args.pr + + bcr = load_runtime(bcr_path) + main = load_runtime(main_path) + pr = load_runtime(pr_path) + + bcr_aux = load_auxiliary(bcr_path.replace(".json", "-aux.json")) + main_aux = load_auxiliary(main_path.replace(".json", "-aux.json")) + pr_aux = load_auxiliary(pr_path.replace(".json", "-aux.json")) + + main_vs_bcr = pct(bcr["mean_ms"], main["mean_ms"]) + pr_vs_bcr = pct(bcr["mean_ms"], pr["mean_ms"]) + pr_vs_main = pct(main["mean_ms"], pr["mean_ms"]) + + has_aux = bcr_aux is not None or main_aux is not None or pr_aux is not None + + table = "## Bazel analysis benchmark\n\n" + if has_aux: + table += "| Version | Mean (ms) | Median (ms) | ± stddev | vs BCR | vs main | Packages | Targets |\n" + table += "|---------|-----------|-------------|----------|--------|---------|----------|----------|\n" + else: + table += "| Version | Mean (ms) | Median (ms) | ± stddev | vs BCR | vs main |\n" + table += "|---------|-----------|-------------|----------|--------|---------|\n" + + def aux_cell(aux: dict[str, Any] | None) -> str: + if aux is None: + return "— | —" + packages = aux.get("packages", "—") + targets = aux.get("targets", "—") + return f"{packages} | {targets}" + + def row( + label: str, + d: dict[str, Any], + vs_bcr: str, + vs_main: str, + aux: dict[str, Any] | None, + ) -> str: + line = ( + f"| {label} | {fmt(d['mean_ms'])} | {fmt(d['median_ms'])} | " + f"±{fmt(d['stddev_ms'])} | {vs_bcr} | {vs_main}" + ) + if has_aux: + line += f" | {aux_cell(aux)}" + line += " |\n" + return line + + table += row( + "BCR 2.0.0-alpha.4 (baseline)", bcr, "—", "—", bcr_aux + ) + table += row( + "HEAD main", + main, + f"{main_vs_bcr:+.1f}% {warn(main_vs_bcr)}", + "—", + main_aux, + ) + table += row( + "This PR", + pr, + f"{pr_vs_bcr:+.1f}% {warn(pr_vs_bcr)}", + f"{pr_vs_main:+.1f}% {warn(pr_vs_main)}", + pr_aux, + ) + + table += ( + f"\n> Measured with `hyperfine --warmup 1 --runs 10` on " + f"`{os.environ.get('RUNNER_OS', 'local')}`\n" + ) + table += ( + f"> **Gate**: PR vs HEAD main (threshold: {THRESHOLD_REGRESSION_PCT}%). " + f"BCR is shown only as a historical baseline.\n" + ) + table += ( + "> **Command**: cold `bazel build --nobuild //workspace/...` with isolated output base, " + "no disk cache.\n" + ) + + if has_aux: + table += ( + "\n### Auxiliary metrics\n\n" + "| Version | Loaded packages | Configured targets |\n" + "|---------|-----------------|---------------------|\n" + ) + + def aux_row(label: str, aux: dict[str, Any] | None) -> str: + if aux is None: + return f"| {label} | — | — |\n" + return f"| {label} | {aux.get('packages', '—')} | {aux.get('targets', '—')} |\n" + + table += aux_row("BCR 2.0.0-alpha.4 (baseline)", bcr_aux) + table += aux_row("HEAD main", main_aux) + table += aux_row("This PR", pr_aux) + + write_gh_output(table) + + if args.output_table: + Path(args.output_table).write_text(table) + else: + print(table) + + if pr_vs_main > THRESHOLD_REGRESSION_PCT: + print( + f"\n❌ REGRESSION: PR is {pr_vs_main:.1f}% slower than HEAD main " + f"(threshold: {THRESHOLD_REGRESSION_PCT}%)" + ) + sys.exit(1) + + print(f"\n✅ No regression detected (PR is {pr_vs_main:+.1f}% vs HEAD main)") + sys.exit(0) + + +if __name__ == "__main__": + main() diff --git a/benchmark/analysis/generate_module.py b/benchmark/analysis/generate_module.py new file mode 100644 index 000000000..a1dacb2c9 --- /dev/null +++ b/benchmark/analysis/generate_module.py @@ -0,0 +1,71 @@ +#!/usr/bin/env python3 +"""Generate MODULE.bazel for the analysis benchmark workspace from a template.""" + +import argparse +import sys +from pathlib import Path + +TEMPLATE = Path(__file__).with_name("MODULE.bazel.template") +OUTPUT = Path(__file__).with_name("MODULE.bazel") + + +def generate(declaration: str) -> str: + """Substitute {{RULES_PY_DECLARATION}} in the template.""" + if not TEMPLATE.exists(): + print(f"ERROR: template not found: {TEMPLATE}", file=sys.stderr) + sys.exit(1) + + content = TEMPLATE.read_text() + if "{{RULES_PY_DECLARATION}}" not in content: + print("ERROR: template missing {{RULES_PY_DECLARATION}} placeholder", file=sys.stderr) + sys.exit(1) + + return content.replace("{{RULES_PY_DECLARATION}}", declaration) + + +def main() -> None: + parser = argparse.ArgumentParser(description="Generate MODULE.bazel for analysis benchmark") + parser.add_argument( + "mode", + choices=["bcr", "local"], + help="'bcr' pins to a BCR release; 'local' uses local_path_override", + ) + parser.add_argument( + "--version", + default="2.0.0-alpha.4", + help="BCR version to pin when mode=bcr (default: 2.0.0-alpha.4)", + ) + parser.add_argument( + "--path", + default="../..", + help="Local path for local_path_override when mode=local (default: ../..)", + ) + parser.add_argument( + "--dry-run", + action="store_true", + help="Print to stdout instead of writing MODULE.bazel", + ) + args = parser.parse_args() + + if args.mode == "bcr": + declaration = f'bazel_dep(name = "aspect_rules_py", version = "{args.version}")' + else: + declaration = ( + f'bazel_dep(name = "aspect_rules_py")\n' + f'local_path_override(\n' + f' module_name = "aspect_rules_py",\n' + f' path = "{args.path}",\n' + f')' + ) + + result = generate(declaration) + + if args.dry_run: + print(result) + else: + OUTPUT.write_text(result) + print(f"Wrote {OUTPUT}") + + +if __name__ == "__main__": + main() diff --git a/benchmark/analysis/workspace/.gitignore b/benchmark/analysis/workspace/.gitignore new file mode 100644 index 000000000..a6d217b72 --- /dev/null +++ b/benchmark/analysis/workspace/.gitignore @@ -0,0 +1,4 @@ +# Generated synthetic workload; do not edit manually. +src/ +tests/ +BUILD.bazel diff --git a/benchmark/analysis/workspace/generate_workspace.py b/benchmark/analysis/workspace/generate_workspace.py new file mode 100644 index 000000000..d46f67f2d --- /dev/null +++ b/benchmark/analysis/workspace/generate_workspace.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python3 +"""Generate a synthetic Python workspace for the analysis benchmark. + +Creates N local packages, M binaries, and M tests across multiple BUILD files to +exercise Bazel's analysis phase with rules_py. +""" + +from __future__ import annotations + +import argparse +import random +import shutil +import sys +from pathlib import Path + +EXTERNAL_DEPS = [ + "django", + "requests", + "pydantic", + "click", + "rich", + "pytest", + "jinja2", + "pyyaml", + "flask", + "sqlalchemy", + "celery", + "boto3", + "beautifulsoup4", + "graphene", + "fastapi", + "httpx", + "aiohttp", + "pydantic_settings", + "marshmallow", + "jsonschema", + "ipython", + "sphinx", + "mkdocs", + "factory_boy", + "faker", + "djangorestframework", +] + +LIBRARY_BUILD_TEMPLATE = '''load("@aspect_rules_py//py:defs.bzl", "py_binary", "py_library") + +py_library( + name = "{name}", + srcs = [ + "__init__.py", + "lib.py", + ], + imports = [".."], + visibility = ["//visibility:public"], + deps = {deps}, +) + +py_binary( + name = "{name}_bin", + srcs = ["main.py"], + main = "main.py", + visibility = ["//visibility:public"], + deps = [":{name}"], +) +''' + +TEST_BUILD_TEMPLATE = '''load("@aspect_rules_py//py:defs.bzl", "py_test") + +py_test( + name = "{name}_test", + srcs = ["test.py"], + main = "test.py", + deps = ["//workspace/src/{name}:{name}"], +) +''' + +INIT_TEMPLATE = '''"""Generated package {name}.""" + +from {name}.lib import compute + +__all__ = ["compute"] +''' + +LIB_TEMPLATE = '''"""Generated library for package {name}.""" + +{imports} + +VALUE = {value} + + +def compute(x: int) -> int: + """Return a deterministic transformation of x.""" + return x * {multiplier} + {offset} +''' + +MAIN_TEMPLATE = '''"""Generated binary for package {name}.""" + +import sys + +from {name}.lib import compute + + +def main() -> int: + print("{name}", compute(1)) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) +''' + +TEST_TEMPLATE = '''"""Generated test for package {name}.""" + +from {name}.lib import compute + + +def test_compute(): + assert compute(0) == {offset} + assert compute(1) == {multiplier} + {offset} +''' + + +def generate_package(pkg_dir: Path, name: str, deps: list[str], seed: int) -> None: + """Generate source and BUILD files for one local package.""" + pkg_dir.mkdir(parents=True, exist_ok=True) + + rng = random.Random(seed) + multiplier = rng.randint(2, 100) + offset = rng.randint(1, 1000) + + local_deps = [d for d in deps if d.startswith("//")] + external_deps = [d for d in deps if not d.startswith("//")] + + imports = [] + for dep in local_deps: + # dep looks like "//src/pkg_0:pkg_0" -> import pkg_0.lib + dep_name = dep.split(":")[-1] + imports.append(f"from {dep_name}.lib import compute as _{dep_name}_compute") + + # External deps are just imported to create real load-time edges. + for dep in external_deps: + imports.append(f"import {dep.split('//')[-1]}") + + (pkg_dir / "__init__.py").write_text(INIT_TEMPLATE.format(name=name)) + (pkg_dir / "lib.py").write_text( + LIB_TEMPLATE.format( + name=name, + imports="\n".join(imports), + value=offset, + multiplier=multiplier, + offset=offset, + ) + ) + (pkg_dir / "main.py").write_text(MAIN_TEMPLATE.format(name=name)) + (pkg_dir / "BUILD.bazel").write_text( + LIBRARY_BUILD_TEMPLATE.format( + name=name, + deps=str(external_deps + local_deps), + ) + ) + + test_dir = pkg_dir.parent.with_name("tests") / name + test_dir.mkdir(parents=True, exist_ok=True) + (test_dir / "test.py").write_text( + TEST_TEMPLATE.format(name=name, multiplier=multiplier, offset=offset) + ) + (test_dir / "BUILD.bazel").write_text( + TEST_BUILD_TEMPLATE.format( + name=name, + ) + ) + + +def generate_root_build(root: Path, package_count: int) -> None: + """Generate a root BUILD that groups all binaries.""" + lines = ['load("@bazel_skylib//rules:build_test.bzl", "build_test")\n\n'] + lines.append('build_test(\n') + lines.append(' name = "all_bins",\n') + targets = [f"//workspace/src/pkg_{i}:pkg_{i}_bin" for i in range(package_count)] + lines.append(f" targets = {targets},\n") + lines.append(')\n') + (root / "BUILD.bazel").write_text("".join(lines)) + + +def clean_generated(root: Path) -> None: + """Remove previously generated package directories.""" + for base in (root / "src", root / "tests"): + if not base.exists(): + continue + for old in list(base.iterdir()): + if old.name.startswith("pkg_"): + shutil.rmtree(old) + + +def main() -> int: + parser = argparse.ArgumentParser(description="Generate synthetic analysis benchmark workspace") + parser.add_argument( + "--root", + default=".", + help="Workspace root directory (default: current directory)", + ) + parser.add_argument( + "--packages", + type=int, + default=50, + help="Number of local packages to generate (default: 50)", + ) + parser.add_argument( + "--seed", + type=int, + default=42, + help="Random seed for reproducibility (default: 42)", + ) + args = parser.parse_args() + + root = Path(args.root) + src = root / "src" + rng = random.Random(args.seed) + + clean_generated(root) + + for i in range(args.packages): + name = f"pkg_{i}" + pkg_dir = src / name + + # Each package depends on 0-3 earlier local packages and 1-2 external deps. + local_deps = [] + if i > 0: + local_count = rng.randint(1, min(3, i)) + local_deps = [ + f"//workspace/src/pkg_{j}:pkg_{j}" + for j in sorted(rng.sample(range(i), local_count)) + ] + + external_count = rng.randint(1, 2) + external_deps = [f"@pypi//{d}" for d in rng.sample(EXTERNAL_DEPS, external_count)] + + generate_package(pkg_dir, name, external_deps + local_deps, seed=args.seed + i) + + generate_root_build(root, args.packages) + print(f"Generated {args.packages} packages under {src}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/benchmark/analysis/workspace/pyproject.toml b/benchmark/analysis/workspace/pyproject.toml new file mode 100644 index 000000000..4bff88e30 --- /dev/null +++ b/benchmark/analysis/workspace/pyproject.toml @@ -0,0 +1,167 @@ +[project] +name = "analysis-benchmark" +version = "0.0.0" +description = "Synthetic workload to benchmark Bazel analysis phases in rules_py" +requires-python = ">=3.11" +# Project dependencies are intentionally empty; the benchmark workload uses +# PEP 735 dependency-groups so we can exercise dep_group transitions while +# keeping a large common set of packages reachable from every group. +dependencies = [] + +[dependency-groups] +default = [ + # Web framework & ecosystem + "django~=4.2.7", + "djangorestframework~=3.14.0", + "django-filter~=23.5", + "django-cors-headers~=4.3.1", + + # HTTP clients / servers + "requests~=2.31.0", + "httpx~=0.25.2", + "fastapi~=0.109.0", + "uvicorn~=0.27.0", + "starlette~=0.35.0", + "aiohttp~=3.9.0", + + # CLI / utilities + "click~=8.1.7", + "typer~=0.9.0", + "rich~=13.7.0", + "pydantic~=2.5.0", + "pydantic-settings~=2.1.0", + "python-dotenv~=1.0.0", + "structlog~=24.1.0", + "python-json-logger~=2.0.7", + + # Data / serialization + "pyyaml~=6.0.1", + "tomli~=2.0.1", + "python-dateutil~=2.8.2", + "pytz~=2023.3", + "babel~=2.14.0", + + # Testing + "pytest~=7.4.3", + "pytest-asyncio~=0.21.1", + "pytest-django~=4.7.0", + "factory-boy~=3.3.0", + "faker~=22.0.0", + + # Templating / markup + "jinja2~=3.1.2", + "markdown~=3.5.1", + "pygments~=2.17.2", + + # Validation / schemas + "marshmallow~=3.20.1", + "webargs~=8.4.0", + "apispec~=6.4.0", + + # Async helpers + "anyio~=4.2.0", + "sniffio~=1.3.0", + "asyncio-mqtt~=0.16.1", + + # Caches / queues + "celery~=5.3.6", + "redis~=5.0.1", + "kombu~=5.3.4", + + # Database + "sqlalchemy~=2.0.23", + "alembic~=1.13.1", + + # Cloud / SDKs (pure-python wheels only) + "boto3~=1.34.0", + "botocore~=1.34.0", + "google-auth~=2.27.0", + "azure-core~=1.30.0", + + # Web scraping / parsing + "beautifulsoup4~=4.12.0", + "html5lib~=1.1", + + # GraphQL + "graphene~=3.3.0", + "graphql-core~=3.2.0", + + # Monitoring / observability + "sentry-sdk~=1.40.0", + "prometheus-client~=0.19.0", + "opentelemetry-api~=1.22.0", + "opentelemetry-sdk~=1.22.0", + + # More Django / DRF ecosystem + "django-extensions~=3.2.3", + "django-debug-toolbar~=4.2.0", + "django-environ~=0.11.2", + "djangorestframework-simplejwt~=5.3.1", + "drf-spectacular~=0.27.0", + + # Utilities + "arrow~=1.3.0", + "python-slugify~=8.0.1", + "jsonschema~=4.21.0", + "wtforms~=3.1.2", + "pypdf~=4.0.0", + "reportlab~=4.0.9", + "inflection~=0.5.1", + "uritemplate~=4.1.1", + + # Flask ecosystem + "flask~=3.0.0", + "flask-restful~=0.3.10", + "flask-sqlalchemy~=3.1.1", + "flask-migrate~=4.0.5", + "flask-login~=0.6.3", + "flask-wtf~=1.2.1", + "werkzeug~=3.0.1", + "itsdangerous~=2.1.2", + + # Auth / OAuth + "requests-oauthlib~=1.3.1", + "oauthlib~=3.2.2", + "pyjwt~=2.8.0", + + # Google API client + "google-api-python-client~=2.116.0", + "google-auth-httplib2~=0.2.0", + "google-auth-oauthlib~=1.2.0", + + # Interactive / notebooks (pure-python) + "ipython~=8.20.0", + "traitlets~=5.14.0", + "matplotlib-inline~=0.1.6", + "pexpect~=4.9.0", + "prompt-toolkit~=3.0.43", + + # Documentation tooling + "sphinx~=7.2.6", + "sphinx-rtd-theme~=2.0.0", + "sphinx-autodoc-typehints~=1.25.0", + "mkdocs~=1.5.3", + "mkdocs-material~=9.5.0", + + # Packaging + "build~=1.0.3", + "twine~=5.0.0", +] + +dev = [ + { include-group = "default" }, + "black~=23.12.1", + "flake8~=7.0.0", + "mypy~=1.8.0", + "isort~=5.13.2", + "coverage~=7.4.0", +] + +test = [ + { include-group = "default" }, + "pytest-cov~=4.1.0", + "responses~=0.24.1", +] + +[tool.uv] +package = true diff --git a/benchmark/analysis/workspace/uv.lock b/benchmark/analysis/workspace/uv.lock new file mode 100644 index 000000000..e0a3cb37f --- /dev/null +++ b/benchmark/analysis/workspace/uv.lock @@ -0,0 +1,4344 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" +resolution-markers = [ + "python_full_version >= '3.13'", + "python_full_version < '3.13'", +] + +[[package]] +name = "aiohttp" +version = "3.9.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aiosignal" }, + { name = "attrs" }, + { name = "frozenlist" }, + { name = "multidict" }, + { name = "yarl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/a4/e3679773ea7eb5b37a2c998e25b017cc5349edf6ba2739d1f32855cfb11b/aiohttp-3.9.5.tar.gz", hash = "sha256:edea7d15772ceeb29db4aff55e482d4bcfb6ae160ce144f2682de02f6d693551", size = 7504841, upload-time = "2024-04-16T17:49:10.915Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/67/f5/aa23d04a1bb57e5f51108a6473964a2618cc83e608e23e3543031aa2bb3a/aiohttp-3.9.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:e0ae53e33ee7476dd3d1132f932eeb39bf6125083820049d06edcdca4381f342", size = 599387, upload-time = "2024-04-16T17:46:27.238Z" }, + { url = "https://files.pythonhosted.org/packages/97/e7/575ca16871071313a7a7a03fa055f0c3d52f77eb8583b373ac17fc87ec15/aiohttp-3.9.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:c088c4d70d21f8ca5c0b8b5403fe84a7bc8e024161febdd4ef04575ef35d474d", size = 402427, upload-time = "2024-04-16T17:46:29.027Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/266be6e31daad1a2dc99c777dfb12b62044691ec573b6e48409a0d804fc7/aiohttp-3.9.5-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:639d0042b7670222f33b0028de6b4e2fad6451462ce7df2af8aee37dcac55424", size = 390243, upload-time = "2024-04-16T17:46:31.583Z" }, + { url = "https://files.pythonhosted.org/packages/73/f1/084f82069428b87d2b5c1e3e2d1d51911981f4cccd94c5c3691f10061c99/aiohttp-3.9.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f26383adb94da5e7fb388d441bf09c61e5e35f455a3217bfd790c6b6bc64b2ee", size = 1312924, upload-time = "2024-04-16T17:46:33.966Z" }, + { url = "https://files.pythonhosted.org/packages/1f/d6/412156ea1aa44a5cc95421db85b0c7a5d1ee3ba71efad04db84305ca1968/aiohttp-3.9.5-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:66331d00fb28dc90aa606d9a54304af76b335ae204d1836f65797d6fe27f1ca2", size = 1349620, upload-time = "2024-04-16T17:46:36.616Z" }, + { url = "https://files.pythonhosted.org/packages/3f/42/376e5e4b6f167358e1e8c6a78cae64ca49d30d6edecbab80796dbb838855/aiohttp-3.9.5-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4ff550491f5492ab5ed3533e76b8567f4b37bd2995e780a1f46bca2024223233", size = 1387070, upload-time = "2024-04-16T17:46:39.46Z" }, + { url = "https://files.pythonhosted.org/packages/24/99/e76e65ca811100b445d3c8af9764b27c5180ca11a15af694366424896647/aiohttp-3.9.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f22eb3a6c1080d862befa0a89c380b4dafce29dc6cd56083f630073d102eb595", size = 1297781, upload-time = "2024-04-16T17:46:41.964Z" }, + { url = "https://files.pythonhosted.org/packages/01/af/8da680fa69632f413860d3f4dcace47f7fc50486fe920ec43447ffaccee7/aiohttp-3.9.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a81b1143d42b66ffc40a441379387076243ef7b51019204fd3ec36b9f69e77d6", size = 1257586, upload-time = "2024-04-16T17:46:44.295Z" }, + { url = "https://files.pythonhosted.org/packages/90/ae/a0741922ef3e99e71faa18ddf1a3a00309dd01107d3dc51f46bedd30e5c6/aiohttp-3.9.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:f64fd07515dad67f24b6ea4a66ae2876c01031de91c93075b8093f07c0a2d93d", size = 1319016, upload-time = "2024-04-16T17:46:47.173Z" }, + { url = "https://files.pythonhosted.org/packages/ef/bd/61671d071518ac18875c1471cf5f6e210f48c855bdfc9e6cbe47134e2921/aiohttp-3.9.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:93e22add827447d2e26d67c9ac0161756007f152fdc5210277d00a85f6c92323", size = 1268646, upload-time = "2024-04-16T17:46:49.682Z" }, + { url = "https://files.pythonhosted.org/packages/ea/d1/0e1d60543d68583ed5b87f4d2eb1c72e54c68933e7799e649de04ffbb6b0/aiohttp-3.9.5-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:55b39c8684a46e56ef8c8d24faf02de4a2b2ac60d26cee93bc595651ff545de9", size = 1350674, upload-time = "2024-04-16T17:46:51.912Z" }, + { url = "https://files.pythonhosted.org/packages/46/60/4f5225360aebb03d9fbf2a26c79fa01c6da326eeb160d212050990a7f658/aiohttp-3.9.5-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4715a9b778f4293b9f8ae7a0a7cef9829f02ff8d6277a39d7f40565c737d3771", size = 1394599, upload-time = "2024-04-16T17:46:54.081Z" }, + { url = "https://files.pythonhosted.org/packages/6b/99/c742967d54091496a5675ae9faa910765f572e7863461ccc7fb22a1501e2/aiohttp-3.9.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:afc52b8d969eff14e069a710057d15ab9ac17cd4b6753042c407dcea0e40bf75", size = 1302531, upload-time = "2024-04-16T17:46:56.706Z" }, + { url = "https://files.pythonhosted.org/packages/a7/a5/e8e0e4bf0adb3ebd3773ebb0fb006d4e4850d1a9eef0a911482eba883814/aiohttp-3.9.5-cp311-cp311-win32.whl", hash = "sha256:b3df71da99c98534be076196791adca8819761f0bf6e08e07fd7da25127150d6", size = 350613, upload-time = "2024-04-16T17:46:59.819Z" }, + { url = "https://files.pythonhosted.org/packages/a4/69/0d415c6d8450842652ce01b29f43416a0f30122b75899de01485623c7850/aiohttp-3.9.5-cp311-cp311-win_amd64.whl", hash = "sha256:88e311d98cc0bf45b62fc46c66753a83445f5ab20038bcc1b8a1cc05666f428a", size = 370792, upload-time = "2024-04-16T17:47:02.843Z" }, + { url = "https://files.pythonhosted.org/packages/5e/25/c6bd6cb160a4dc81f83adbc9bdd6758f01932a6c81a3e4ac707746e7855e/aiohttp-3.9.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:c7a4b7a6cf5b6eb11e109a9755fd4fda7d57395f8c575e166d363b9fc3ec4678", size = 595330, upload-time = "2024-04-16T17:47:05.671Z" }, + { url = "https://files.pythonhosted.org/packages/18/5f/f6428eb55244d44e1c674c8c823ae1567136ac1d2f8b128e194dd4febbe1/aiohttp-3.9.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:0a158704edf0abcac8ac371fbb54044f3270bdbc93e254a82b6c82be1ef08f3c", size = 395974, upload-time = "2024-04-16T17:47:08.508Z" }, + { url = "https://files.pythonhosted.org/packages/78/28/2080ed3140b7d25c406f77fe2d5776edd9c7a25228f7f905d7058a6e2d61/aiohttp-3.9.5-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:d153f652a687a8e95ad367a86a61e8d53d528b0530ef382ec5aaf533140ed00f", size = 392399, upload-time = "2024-04-16T17:47:11.22Z" }, + { url = "https://files.pythonhosted.org/packages/d3/c0/cd9d02e1b9e1b1073c94f7692ffe69067987c4acc0252bbc0c7645360d37/aiohttp-3.9.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82a6a97d9771cb48ae16979c3a3a9a18b600a8505b1115cfe354dfb2054468b4", size = 1322648, upload-time = "2024-04-16T17:47:13.615Z" }, + { url = "https://files.pythonhosted.org/packages/f2/fb/d65d58230e9ed5cfed886b0c433634bfb14cbe183125e84de909559e29e7/aiohttp-3.9.5-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:60cdbd56f4cad9f69c35eaac0fbbdf1f77b0ff9456cebd4902f3dd1cf096464c", size = 1362078, upload-time = "2024-04-16T17:47:17.145Z" }, + { url = "https://files.pythonhosted.org/packages/a6/39/ca4fc97af53167ff6c8888a59002b17447bddd8dd474ae0f0e778446cfe7/aiohttp-3.9.5-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8676e8fd73141ded15ea586de0b7cda1542960a7b9ad89b2b06428e97125d4fa", size = 1404667, upload-time = "2024-04-16T17:47:19.531Z" }, + { url = "https://files.pythonhosted.org/packages/dd/0a/526c8480bd846b9155c624c7e54db94733fc6b381dfd748cc8dd69c994b0/aiohttp-3.9.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:da00da442a0e31f1c69d26d224e1efd3a1ca5bcbf210978a2ca7426dfcae9f58", size = 1317772, upload-time = "2024-04-16T17:47:22.204Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ea/8e1bd13e39b3f4c37889b8480f04ed398e07017f5709d66d4e1d0dee39fe/aiohttp-3.9.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:18f634d540dd099c262e9f887c8bbacc959847cfe5da7a0e2e1cf3f14dbf2daf", size = 1269636, upload-time = "2024-04-16T17:47:24.903Z" }, + { url = "https://files.pythonhosted.org/packages/2a/ac/7c00027510f42a21c0a905f2472d9afef7ea276573357829bfe8c12883d4/aiohttp-3.9.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:320e8618eda64e19d11bdb3bd04ccc0a816c17eaecb7e4945d01deee2a22f95f", size = 1324957, upload-time = "2024-04-16T17:47:27.514Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f5/e0c216a12b2490cbecd79e9b7671f4e50dfc72e9a52347943aabe6f5bc44/aiohttp-3.9.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:2faa61a904b83142747fc6a6d7ad8fccff898c849123030f8e75d5d967fd4a81", size = 1267548, upload-time = "2024-04-16T17:47:30.48Z" }, + { url = "https://files.pythonhosted.org/packages/88/31/e55083b026428324cde827c04bdfbc837c131f9d3ee38d28c766614b09ef/aiohttp-3.9.5-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:8c64a6dc3fe5db7b1b4d2b5cb84c4f677768bdc340611eca673afb7cf416ef5a", size = 1353136, upload-time = "2024-04-16T17:47:32.851Z" }, + { url = "https://files.pythonhosted.org/packages/54/8e/72d1ddd6e653b6d4b7b1fece7619287d3319bae10ad3a7f12d956bcc9e96/aiohttp-3.9.5-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:393c7aba2b55559ef7ab791c94b44f7482a07bf7640d17b341b79081f5e5cd1a", size = 1400946, upload-time = "2024-04-16T17:47:35.487Z" }, + { url = "https://files.pythonhosted.org/packages/5c/f1/f61b397a0eaf01d197e610b0f56935b0002d688f27d73af2882b282fc2f8/aiohttp-3.9.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c671dc117c2c21a1ca10c116cfcd6e3e44da7fcde37bf83b2be485ab377b25da", size = 1319358, upload-time = "2024-04-16T17:47:37.881Z" }, + { url = "https://files.pythonhosted.org/packages/d1/5d/8cb20df780921adf9f436f214350729b12873742abd697c981229c554acc/aiohttp-3.9.5-cp312-cp312-win32.whl", hash = "sha256:5a7ee16aab26e76add4afc45e8f8206c95d1d75540f1039b84a03c3b3800dd59", size = 347602, upload-time = "2024-04-16T17:47:40.081Z" }, + { url = "https://files.pythonhosted.org/packages/a0/00/cdbda8b406ce7b656b9cb765f8134b1edb999f816f54e47347d2bc67f4bf/aiohttp-3.9.5-cp312-cp312-win_amd64.whl", hash = "sha256:5ca51eadbd67045396bc92a4345d1790b7301c14d1848feaac1d6a6c9289e888", size = 369012, upload-time = "2024-04-16T17:47:42.663Z" }, +] + +[[package]] +name = "aiosignal" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "frozenlist" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/61/62/06741b579156360248d1ec624842ad0edf697050bbaf7c3e46394e106ad1/aiosignal-1.4.0.tar.gz", hash = "sha256:f47eecd9468083c2029cc99945502cb7708b082c232f9aca65da147157b251c7", size = 25007, upload-time = "2025-07-03T22:54:43.528Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/76/641ae371508676492379f16e2fa48f4e2c11741bd63c48be4b12a6b09cba/aiosignal-1.4.0-py3-none-any.whl", hash = "sha256:053243f8b92b990551949e63930a839ff0cf0b0ebbe0597b0f3fb19e1a0fe82e", size = 7490, upload-time = "2025-07-03T22:54:42.156Z" }, +] + +[[package]] +name = "alabaster" +version = "0.7.16" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/3e/13dd8e5ed9094e734ac430b5d0eb4f2bb001708a8b7856cbf8e084e001ba/alabaster-0.7.16.tar.gz", hash = "sha256:75a8b99c28a5dad50dd7f8ccdd447a121ddb3892da9e53d1ca5cca3106d58d65", size = 23776, upload-time = "2024-01-10T00:56:10.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/32/34/d4e1c02d3bee589efb5dfa17f88ea08bdb3e3eac12bc475462aec52ed223/alabaster-0.7.16-py3-none-any.whl", hash = "sha256:b46733c07dce03ae4e150330b975c75737fa60f0a7c591b6c8bf4928a28e2c92", size = 13511, upload-time = "2024-01-10T00:56:08.388Z" }, +] + +[[package]] +name = "alembic" +version = "1.13.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mako" }, + { name = "sqlalchemy" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/94/a2/840c3b84382dce8624bc2f0ee67567fc74c32478d0c5a5aea981518c91c3/alembic-1.13.3.tar.gz", hash = "sha256:203503117415561e203aa14541740643a611f641517f0209fcae63e9fa09f1a2", size = 1921223, upload-time = "2024-09-23T14:52:14.593Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/12/58f4f11385fddafef5d6f7bfaaf2f42899c8da6b4f95c04b7c3b744851a8/alembic-1.13.3-py3-none-any.whl", hash = "sha256:908e905976d15235fae59c9ac42c4c5b75cfcefe3d27c0fbf7ae15a37715d80e", size = 233217, upload-time = "2024-09-23T14:52:18.183Z" }, +] + +[[package]] +name = "amqp" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "vine" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/fc/ec94a357dfc6683d8c86f8b4cfa5416a4c36b28052ec8260c77aca96a443/amqp-5.3.1.tar.gz", hash = "sha256:cddc00c725449522023bad949f70fff7b48f0b1ade74d170a6f10ab044739432", size = 129013, upload-time = "2024-11-12T19:55:44.051Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/99/fc813cd978842c26c82534010ea849eee9ab3a13ea2b74e95cb9c99e747b/amqp-5.3.1-py3-none-any.whl", hash = "sha256:43b3319e1b4e7d1251833a93d672b4af1e40f3d632d479b98661a95f117880a2", size = 50944, upload-time = "2024-11-12T19:55:41.782Z" }, +] + +[[package]] +name = "analysis-benchmark" +version = "0.0.0" +source = { editable = "." } + +[package.dev-dependencies] +default = [ + { name = "aiohttp" }, + { name = "alembic" }, + { name = "anyio" }, + { name = "apispec" }, + { name = "arrow" }, + { name = "asyncio-mqtt" }, + { name = "azure-core" }, + { name = "babel" }, + { name = "beautifulsoup4" }, + { name = "boto3" }, + { name = "botocore" }, + { name = "build" }, + { name = "celery" }, + { name = "click" }, + { name = "django" }, + { name = "django-cors-headers" }, + { name = "django-debug-toolbar" }, + { name = "django-environ" }, + { name = "django-extensions" }, + { name = "django-filter" }, + { name = "djangorestframework" }, + { name = "djangorestframework-simplejwt" }, + { name = "drf-spectacular" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "fastapi" }, + { name = "flask" }, + { name = "flask-login" }, + { name = "flask-migrate" }, + { name = "flask-restful" }, + { name = "flask-sqlalchemy" }, + { name = "flask-wtf" }, + { name = "google-api-python-client" }, + { name = "google-auth" }, + { name = "google-auth-httplib2" }, + { name = "google-auth-oauthlib" }, + { name = "graphene" }, + { name = "graphql-core" }, + { name = "html5lib" }, + { name = "httpx" }, + { name = "inflection" }, + { name = "ipython" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "kombu" }, + { name = "markdown" }, + { name = "marshmallow" }, + { name = "matplotlib-inline" }, + { name = "mkdocs" }, + { name = "mkdocs-material" }, + { name = "oauthlib" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "pexpect" }, + { name = "prometheus-client" }, + { name = "prompt-toolkit" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pygments" }, + { name = "pyjwt" }, + { name = "pypdf" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-django" }, + { name = "python-dateutil" }, + { name = "python-dotenv" }, + { name = "python-json-logger" }, + { name = "python-slugify" }, + { name = "pytz" }, + { name = "pyyaml" }, + { name = "redis" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "requests-oauthlib" }, + { name = "rich" }, + { name = "sentry-sdk" }, + { name = "sniffio" }, + { name = "sphinx" }, + { name = "sphinx-autodoc-typehints" }, + { name = "sphinx-rtd-theme" }, + { name = "sqlalchemy" }, + { name = "starlette" }, + { name = "structlog" }, + { name = "tomli" }, + { name = "traitlets" }, + { name = "twine" }, + { name = "typer" }, + { name = "uritemplate" }, + { name = "uvicorn" }, + { name = "webargs" }, + { name = "werkzeug" }, + { name = "wtforms" }, +] +dev = [ + { name = "aiohttp" }, + { name = "alembic" }, + { name = "anyio" }, + { name = "apispec" }, + { name = "arrow" }, + { name = "asyncio-mqtt" }, + { name = "azure-core" }, + { name = "babel" }, + { name = "beautifulsoup4" }, + { name = "black" }, + { name = "boto3" }, + { name = "botocore" }, + { name = "build" }, + { name = "celery" }, + { name = "click" }, + { name = "coverage" }, + { name = "django" }, + { name = "django-cors-headers" }, + { name = "django-debug-toolbar" }, + { name = "django-environ" }, + { name = "django-extensions" }, + { name = "django-filter" }, + { name = "djangorestframework" }, + { name = "djangorestframework-simplejwt" }, + { name = "drf-spectacular" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "fastapi" }, + { name = "flake8" }, + { name = "flask" }, + { name = "flask-login" }, + { name = "flask-migrate" }, + { name = "flask-restful" }, + { name = "flask-sqlalchemy" }, + { name = "flask-wtf" }, + { name = "google-api-python-client" }, + { name = "google-auth" }, + { name = "google-auth-httplib2" }, + { name = "google-auth-oauthlib" }, + { name = "graphene" }, + { name = "graphql-core" }, + { name = "html5lib" }, + { name = "httpx" }, + { name = "inflection" }, + { name = "ipython" }, + { name = "isort" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "kombu" }, + { name = "markdown" }, + { name = "marshmallow" }, + { name = "matplotlib-inline" }, + { name = "mkdocs" }, + { name = "mkdocs-material" }, + { name = "mypy" }, + { name = "oauthlib" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "pexpect" }, + { name = "prometheus-client" }, + { name = "prompt-toolkit" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pygments" }, + { name = "pyjwt" }, + { name = "pypdf" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-django" }, + { name = "python-dateutil" }, + { name = "python-dotenv" }, + { name = "python-json-logger" }, + { name = "python-slugify" }, + { name = "pytz" }, + { name = "pyyaml" }, + { name = "redis" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "requests-oauthlib" }, + { name = "rich" }, + { name = "sentry-sdk" }, + { name = "sniffio" }, + { name = "sphinx" }, + { name = "sphinx-autodoc-typehints" }, + { name = "sphinx-rtd-theme" }, + { name = "sqlalchemy" }, + { name = "starlette" }, + { name = "structlog" }, + { name = "tomli" }, + { name = "traitlets" }, + { name = "twine" }, + { name = "typer" }, + { name = "uritemplate" }, + { name = "uvicorn" }, + { name = "webargs" }, + { name = "werkzeug" }, + { name = "wtforms" }, +] +test = [ + { name = "aiohttp" }, + { name = "alembic" }, + { name = "anyio" }, + { name = "apispec" }, + { name = "arrow" }, + { name = "asyncio-mqtt" }, + { name = "azure-core" }, + { name = "babel" }, + { name = "beautifulsoup4" }, + { name = "boto3" }, + { name = "botocore" }, + { name = "build" }, + { name = "celery" }, + { name = "click" }, + { name = "django" }, + { name = "django-cors-headers" }, + { name = "django-debug-toolbar" }, + { name = "django-environ" }, + { name = "django-extensions" }, + { name = "django-filter" }, + { name = "djangorestframework" }, + { name = "djangorestframework-simplejwt" }, + { name = "drf-spectacular" }, + { name = "factory-boy" }, + { name = "faker" }, + { name = "fastapi" }, + { name = "flask" }, + { name = "flask-login" }, + { name = "flask-migrate" }, + { name = "flask-restful" }, + { name = "flask-sqlalchemy" }, + { name = "flask-wtf" }, + { name = "google-api-python-client" }, + { name = "google-auth" }, + { name = "google-auth-httplib2" }, + { name = "google-auth-oauthlib" }, + { name = "graphene" }, + { name = "graphql-core" }, + { name = "html5lib" }, + { name = "httpx" }, + { name = "inflection" }, + { name = "ipython" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "jsonschema" }, + { name = "kombu" }, + { name = "markdown" }, + { name = "marshmallow" }, + { name = "matplotlib-inline" }, + { name = "mkdocs" }, + { name = "mkdocs-material" }, + { name = "oauthlib" }, + { name = "opentelemetry-api" }, + { name = "opentelemetry-sdk" }, + { name = "pexpect" }, + { name = "prometheus-client" }, + { name = "prompt-toolkit" }, + { name = "pydantic" }, + { name = "pydantic-settings" }, + { name = "pygments" }, + { name = "pyjwt" }, + { name = "pypdf" }, + { name = "pytest" }, + { name = "pytest-asyncio" }, + { name = "pytest-cov" }, + { name = "pytest-django" }, + { name = "python-dateutil" }, + { name = "python-dotenv" }, + { name = "python-json-logger" }, + { name = "python-slugify" }, + { name = "pytz" }, + { name = "pyyaml" }, + { name = "redis" }, + { name = "reportlab" }, + { name = "requests" }, + { name = "requests-oauthlib" }, + { name = "responses" }, + { name = "rich" }, + { name = "sentry-sdk" }, + { name = "sniffio" }, + { name = "sphinx" }, + { name = "sphinx-autodoc-typehints" }, + { name = "sphinx-rtd-theme" }, + { name = "sqlalchemy" }, + { name = "starlette" }, + { name = "structlog" }, + { name = "tomli" }, + { name = "traitlets" }, + { name = "twine" }, + { name = "typer" }, + { name = "uritemplate" }, + { name = "uvicorn" }, + { name = "webargs" }, + { name = "werkzeug" }, + { name = "wtforms" }, +] + +[package.metadata] + +[package.metadata.requires-dev] +default = [ + { name = "aiohttp", specifier = "~=3.9.0" }, + { name = "alembic", specifier = "~=1.13.1" }, + { name = "anyio", specifier = "~=4.2.0" }, + { name = "apispec", specifier = "~=6.4.0" }, + { name = "arrow", specifier = "~=1.3.0" }, + { name = "asyncio-mqtt", specifier = "~=0.16.1" }, + { name = "azure-core", specifier = "~=1.30.0" }, + { name = "babel", specifier = "~=2.14.0" }, + { name = "beautifulsoup4", specifier = "~=4.12.0" }, + { name = "boto3", specifier = "~=1.34.0" }, + { name = "botocore", specifier = "~=1.34.0" }, + { name = "build", specifier = "~=1.0.3" }, + { name = "celery", specifier = "~=5.3.6" }, + { name = "click", specifier = "~=8.1.7" }, + { name = "django", specifier = "~=4.2.7" }, + { name = "django-cors-headers", specifier = "~=4.3.1" }, + { name = "django-debug-toolbar", specifier = "~=4.2.0" }, + { name = "django-environ", specifier = "~=0.11.2" }, + { name = "django-extensions", specifier = "~=3.2.3" }, + { name = "django-filter", specifier = "~=23.5" }, + { name = "djangorestframework", specifier = "~=3.14.0" }, + { name = "djangorestframework-simplejwt", specifier = "~=5.3.1" }, + { name = "drf-spectacular", specifier = "~=0.27.0" }, + { name = "factory-boy", specifier = "~=3.3.0" }, + { name = "faker", specifier = "~=22.0.0" }, + { name = "fastapi", specifier = "~=0.109.0" }, + { name = "flask", specifier = "~=3.0.0" }, + { name = "flask-login", specifier = "~=0.6.3" }, + { name = "flask-migrate", specifier = "~=4.0.5" }, + { name = "flask-restful", specifier = "~=0.3.10" }, + { name = "flask-sqlalchemy", specifier = "~=3.1.1" }, + { name = "flask-wtf", specifier = "~=1.2.1" }, + { name = "google-api-python-client", specifier = "~=2.116.0" }, + { name = "google-auth", specifier = "~=2.27.0" }, + { name = "google-auth-httplib2", specifier = "~=0.2.0" }, + { name = "google-auth-oauthlib", specifier = "~=1.2.0" }, + { name = "graphene", specifier = "~=3.3.0" }, + { name = "graphql-core", specifier = "~=3.2.0" }, + { name = "html5lib", specifier = "~=1.1" }, + { name = "httpx", specifier = "~=0.25.2" }, + { name = "inflection", specifier = "~=0.5.1" }, + { name = "ipython", specifier = "~=8.20.0" }, + { name = "itsdangerous", specifier = "~=2.1.2" }, + { name = "jinja2", specifier = "~=3.1.2" }, + { name = "jsonschema", specifier = "~=4.21.0" }, + { name = "kombu", specifier = "~=5.3.4" }, + { name = "markdown", specifier = "~=3.5.1" }, + { name = "marshmallow", specifier = "~=3.20.1" }, + { name = "matplotlib-inline", specifier = "~=0.1.6" }, + { name = "mkdocs", specifier = "~=1.5.3" }, + { name = "mkdocs-material", specifier = "~=9.5.0" }, + { name = "oauthlib", specifier = "~=3.2.2" }, + { name = "opentelemetry-api", specifier = "~=1.22.0" }, + { name = "opentelemetry-sdk", specifier = "~=1.22.0" }, + { name = "pexpect", specifier = "~=4.9.0" }, + { name = "prometheus-client", specifier = "~=0.19.0" }, + { name = "prompt-toolkit", specifier = "~=3.0.43" }, + { name = "pydantic", specifier = "~=2.5.0" }, + { name = "pydantic-settings", specifier = "~=2.1.0" }, + { name = "pygments", specifier = "~=2.17.2" }, + { name = "pyjwt", specifier = "~=2.8.0" }, + { name = "pypdf", specifier = "~=4.0.0" }, + { name = "pytest", specifier = "~=7.4.3" }, + { name = "pytest-asyncio", specifier = "~=0.21.1" }, + { name = "pytest-django", specifier = "~=4.7.0" }, + { name = "python-dateutil", specifier = "~=2.8.2" }, + { name = "python-dotenv", specifier = "~=1.0.0" }, + { name = "python-json-logger", specifier = "~=2.0.7" }, + { name = "python-slugify", specifier = "~=8.0.1" }, + { name = "pytz", specifier = "~=2023.3" }, + { name = "pyyaml", specifier = "~=6.0.1" }, + { name = "redis", specifier = "~=5.0.1" }, + { name = "reportlab", specifier = "~=4.0.9" }, + { name = "requests", specifier = "~=2.31.0" }, + { name = "requests-oauthlib", specifier = "~=1.3.1" }, + { name = "rich", specifier = "~=13.7.0" }, + { name = "sentry-sdk", specifier = "~=1.40.0" }, + { name = "sniffio", specifier = "~=1.3.0" }, + { name = "sphinx", specifier = "~=7.2.6" }, + { name = "sphinx-autodoc-typehints", specifier = "~=1.25.0" }, + { name = "sphinx-rtd-theme", specifier = "~=2.0.0" }, + { name = "sqlalchemy", specifier = "~=2.0.23" }, + { name = "starlette", specifier = "~=0.35.0" }, + { name = "structlog", specifier = "~=24.1.0" }, + { name = "tomli", specifier = "~=2.0.1" }, + { name = "traitlets", specifier = "~=5.14.0" }, + { name = "twine", specifier = "~=5.0.0" }, + { name = "typer", specifier = "~=0.9.0" }, + { name = "uritemplate", specifier = "~=4.1.1" }, + { name = "uvicorn", specifier = "~=0.27.0" }, + { name = "webargs", specifier = "~=8.4.0" }, + { name = "werkzeug", specifier = "~=3.0.1" }, + { name = "wtforms", specifier = "~=3.1.2" }, +] +dev = [ + { name = "aiohttp", specifier = "~=3.9.0" }, + { name = "alembic", specifier = "~=1.13.1" }, + { name = "anyio", specifier = "~=4.2.0" }, + { name = "apispec", specifier = "~=6.4.0" }, + { name = "arrow", specifier = "~=1.3.0" }, + { name = "asyncio-mqtt", specifier = "~=0.16.1" }, + { name = "azure-core", specifier = "~=1.30.0" }, + { name = "babel", specifier = "~=2.14.0" }, + { name = "beautifulsoup4", specifier = "~=4.12.0" }, + { name = "black", specifier = "~=23.12.1" }, + { name = "boto3", specifier = "~=1.34.0" }, + { name = "botocore", specifier = "~=1.34.0" }, + { name = "build", specifier = "~=1.0.3" }, + { name = "celery", specifier = "~=5.3.6" }, + { name = "click", specifier = "~=8.1.7" }, + { name = "coverage", specifier = "~=7.4.0" }, + { name = "django", specifier = "~=4.2.7" }, + { name = "django-cors-headers", specifier = "~=4.3.1" }, + { name = "django-debug-toolbar", specifier = "~=4.2.0" }, + { name = "django-environ", specifier = "~=0.11.2" }, + { name = "django-extensions", specifier = "~=3.2.3" }, + { name = "django-filter", specifier = "~=23.5" }, + { name = "djangorestframework", specifier = "~=3.14.0" }, + { name = "djangorestframework-simplejwt", specifier = "~=5.3.1" }, + { name = "drf-spectacular", specifier = "~=0.27.0" }, + { name = "factory-boy", specifier = "~=3.3.0" }, + { name = "faker", specifier = "~=22.0.0" }, + { name = "fastapi", specifier = "~=0.109.0" }, + { name = "flake8", specifier = "~=7.0.0" }, + { name = "flask", specifier = "~=3.0.0" }, + { name = "flask-login", specifier = "~=0.6.3" }, + { name = "flask-migrate", specifier = "~=4.0.5" }, + { name = "flask-restful", specifier = "~=0.3.10" }, + { name = "flask-sqlalchemy", specifier = "~=3.1.1" }, + { name = "flask-wtf", specifier = "~=1.2.1" }, + { name = "google-api-python-client", specifier = "~=2.116.0" }, + { name = "google-auth", specifier = "~=2.27.0" }, + { name = "google-auth-httplib2", specifier = "~=0.2.0" }, + { name = "google-auth-oauthlib", specifier = "~=1.2.0" }, + { name = "graphene", specifier = "~=3.3.0" }, + { name = "graphql-core", specifier = "~=3.2.0" }, + { name = "html5lib", specifier = "~=1.1" }, + { name = "httpx", specifier = "~=0.25.2" }, + { name = "inflection", specifier = "~=0.5.1" }, + { name = "ipython", specifier = "~=8.20.0" }, + { name = "isort", specifier = "~=5.13.2" }, + { name = "itsdangerous", specifier = "~=2.1.2" }, + { name = "jinja2", specifier = "~=3.1.2" }, + { name = "jsonschema", specifier = "~=4.21.0" }, + { name = "kombu", specifier = "~=5.3.4" }, + { name = "markdown", specifier = "~=3.5.1" }, + { name = "marshmallow", specifier = "~=3.20.1" }, + { name = "matplotlib-inline", specifier = "~=0.1.6" }, + { name = "mkdocs", specifier = "~=1.5.3" }, + { name = "mkdocs-material", specifier = "~=9.5.0" }, + { name = "mypy", specifier = "~=1.8.0" }, + { name = "oauthlib", specifier = "~=3.2.2" }, + { name = "opentelemetry-api", specifier = "~=1.22.0" }, + { name = "opentelemetry-sdk", specifier = "~=1.22.0" }, + { name = "pexpect", specifier = "~=4.9.0" }, + { name = "prometheus-client", specifier = "~=0.19.0" }, + { name = "prompt-toolkit", specifier = "~=3.0.43" }, + { name = "pydantic", specifier = "~=2.5.0" }, + { name = "pydantic-settings", specifier = "~=2.1.0" }, + { name = "pygments", specifier = "~=2.17.2" }, + { name = "pyjwt", specifier = "~=2.8.0" }, + { name = "pypdf", specifier = "~=4.0.0" }, + { name = "pytest", specifier = "~=7.4.3" }, + { name = "pytest-asyncio", specifier = "~=0.21.1" }, + { name = "pytest-django", specifier = "~=4.7.0" }, + { name = "python-dateutil", specifier = "~=2.8.2" }, + { name = "python-dotenv", specifier = "~=1.0.0" }, + { name = "python-json-logger", specifier = "~=2.0.7" }, + { name = "python-slugify", specifier = "~=8.0.1" }, + { name = "pytz", specifier = "~=2023.3" }, + { name = "pyyaml", specifier = "~=6.0.1" }, + { name = "redis", specifier = "~=5.0.1" }, + { name = "reportlab", specifier = "~=4.0.9" }, + { name = "requests", specifier = "~=2.31.0" }, + { name = "requests-oauthlib", specifier = "~=1.3.1" }, + { name = "rich", specifier = "~=13.7.0" }, + { name = "sentry-sdk", specifier = "~=1.40.0" }, + { name = "sniffio", specifier = "~=1.3.0" }, + { name = "sphinx", specifier = "~=7.2.6" }, + { name = "sphinx-autodoc-typehints", specifier = "~=1.25.0" }, + { name = "sphinx-rtd-theme", specifier = "~=2.0.0" }, + { name = "sqlalchemy", specifier = "~=2.0.23" }, + { name = "starlette", specifier = "~=0.35.0" }, + { name = "structlog", specifier = "~=24.1.0" }, + { name = "tomli", specifier = "~=2.0.1" }, + { name = "traitlets", specifier = "~=5.14.0" }, + { name = "twine", specifier = "~=5.0.0" }, + { name = "typer", specifier = "~=0.9.0" }, + { name = "uritemplate", specifier = "~=4.1.1" }, + { name = "uvicorn", specifier = "~=0.27.0" }, + { name = "webargs", specifier = "~=8.4.0" }, + { name = "werkzeug", specifier = "~=3.0.1" }, + { name = "wtforms", specifier = "~=3.1.2" }, +] +test = [ + { name = "aiohttp", specifier = "~=3.9.0" }, + { name = "alembic", specifier = "~=1.13.1" }, + { name = "anyio", specifier = "~=4.2.0" }, + { name = "apispec", specifier = "~=6.4.0" }, + { name = "arrow", specifier = "~=1.3.0" }, + { name = "asyncio-mqtt", specifier = "~=0.16.1" }, + { name = "azure-core", specifier = "~=1.30.0" }, + { name = "babel", specifier = "~=2.14.0" }, + { name = "beautifulsoup4", specifier = "~=4.12.0" }, + { name = "boto3", specifier = "~=1.34.0" }, + { name = "botocore", specifier = "~=1.34.0" }, + { name = "build", specifier = "~=1.0.3" }, + { name = "celery", specifier = "~=5.3.6" }, + { name = "click", specifier = "~=8.1.7" }, + { name = "django", specifier = "~=4.2.7" }, + { name = "django-cors-headers", specifier = "~=4.3.1" }, + { name = "django-debug-toolbar", specifier = "~=4.2.0" }, + { name = "django-environ", specifier = "~=0.11.2" }, + { name = "django-extensions", specifier = "~=3.2.3" }, + { name = "django-filter", specifier = "~=23.5" }, + { name = "djangorestframework", specifier = "~=3.14.0" }, + { name = "djangorestframework-simplejwt", specifier = "~=5.3.1" }, + { name = "drf-spectacular", specifier = "~=0.27.0" }, + { name = "factory-boy", specifier = "~=3.3.0" }, + { name = "faker", specifier = "~=22.0.0" }, + { name = "fastapi", specifier = "~=0.109.0" }, + { name = "flask", specifier = "~=3.0.0" }, + { name = "flask-login", specifier = "~=0.6.3" }, + { name = "flask-migrate", specifier = "~=4.0.5" }, + { name = "flask-restful", specifier = "~=0.3.10" }, + { name = "flask-sqlalchemy", specifier = "~=3.1.1" }, + { name = "flask-wtf", specifier = "~=1.2.1" }, + { name = "google-api-python-client", specifier = "~=2.116.0" }, + { name = "google-auth", specifier = "~=2.27.0" }, + { name = "google-auth-httplib2", specifier = "~=0.2.0" }, + { name = "google-auth-oauthlib", specifier = "~=1.2.0" }, + { name = "graphene", specifier = "~=3.3.0" }, + { name = "graphql-core", specifier = "~=3.2.0" }, + { name = "html5lib", specifier = "~=1.1" }, + { name = "httpx", specifier = "~=0.25.2" }, + { name = "inflection", specifier = "~=0.5.1" }, + { name = "ipython", specifier = "~=8.20.0" }, + { name = "itsdangerous", specifier = "~=2.1.2" }, + { name = "jinja2", specifier = "~=3.1.2" }, + { name = "jsonschema", specifier = "~=4.21.0" }, + { name = "kombu", specifier = "~=5.3.4" }, + { name = "markdown", specifier = "~=3.5.1" }, + { name = "marshmallow", specifier = "~=3.20.1" }, + { name = "matplotlib-inline", specifier = "~=0.1.6" }, + { name = "mkdocs", specifier = "~=1.5.3" }, + { name = "mkdocs-material", specifier = "~=9.5.0" }, + { name = "oauthlib", specifier = "~=3.2.2" }, + { name = "opentelemetry-api", specifier = "~=1.22.0" }, + { name = "opentelemetry-sdk", specifier = "~=1.22.0" }, + { name = "pexpect", specifier = "~=4.9.0" }, + { name = "prometheus-client", specifier = "~=0.19.0" }, + { name = "prompt-toolkit", specifier = "~=3.0.43" }, + { name = "pydantic", specifier = "~=2.5.0" }, + { name = "pydantic-settings", specifier = "~=2.1.0" }, + { name = "pygments", specifier = "~=2.17.2" }, + { name = "pyjwt", specifier = "~=2.8.0" }, + { name = "pypdf", specifier = "~=4.0.0" }, + { name = "pytest", specifier = "~=7.4.3" }, + { name = "pytest-asyncio", specifier = "~=0.21.1" }, + { name = "pytest-cov", specifier = "~=4.1.0" }, + { name = "pytest-django", specifier = "~=4.7.0" }, + { name = "python-dateutil", specifier = "~=2.8.2" }, + { name = "python-dotenv", specifier = "~=1.0.0" }, + { name = "python-json-logger", specifier = "~=2.0.7" }, + { name = "python-slugify", specifier = "~=8.0.1" }, + { name = "pytz", specifier = "~=2023.3" }, + { name = "pyyaml", specifier = "~=6.0.1" }, + { name = "redis", specifier = "~=5.0.1" }, + { name = "reportlab", specifier = "~=4.0.9" }, + { name = "requests", specifier = "~=2.31.0" }, + { name = "requests-oauthlib", specifier = "~=1.3.1" }, + { name = "responses", specifier = "~=0.24.1" }, + { name = "rich", specifier = "~=13.7.0" }, + { name = "sentry-sdk", specifier = "~=1.40.0" }, + { name = "sniffio", specifier = "~=1.3.0" }, + { name = "sphinx", specifier = "~=7.2.6" }, + { name = "sphinx-autodoc-typehints", specifier = "~=1.25.0" }, + { name = "sphinx-rtd-theme", specifier = "~=2.0.0" }, + { name = "sqlalchemy", specifier = "~=2.0.23" }, + { name = "starlette", specifier = "~=0.35.0" }, + { name = "structlog", specifier = "~=24.1.0" }, + { name = "tomli", specifier = "~=2.0.1" }, + { name = "traitlets", specifier = "~=5.14.0" }, + { name = "twine", specifier = "~=5.0.0" }, + { name = "typer", specifier = "~=0.9.0" }, + { name = "uritemplate", specifier = "~=4.1.1" }, + { name = "uvicorn", specifier = "~=0.27.0" }, + { name = "webargs", specifier = "~=8.4.0" }, + { name = "werkzeug", specifier = "~=3.0.1" }, + { name = "wtforms", specifier = "~=3.1.2" }, +] + +[[package]] +name = "aniso8601" +version = "9.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cb/72/be3db445b03944bfbb2b02b82d00cb2a2bcf96275c4543f14bf60fa79e12/aniso8601-9.0.1.tar.gz", hash = "sha256:72e3117667eedf66951bb2d93f4296a56b94b078a8a95905a052611fb3f1b973", size = 47345, upload-time = "2021-03-02T01:33:22.944Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/04/e97c12dc034791d7b504860acfcdd2963fa21ae61eaca1c9d31245f812c3/aniso8601-9.0.1-py2.py3-none-any.whl", hash = "sha256:1d2b7ef82963909e93c4f24ce48d4de9e66009a21bf1c1e1c85bdd0812fe412f", size = 52754, upload-time = "2021-03-02T01:33:20.669Z" }, +] + +[[package]] +name = "annotated-types" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/67/531ea369ba64dcff5ec9c3402f9f51bf748cec26dde048a2f973a4eea7f5/annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89", size = 16081, upload-time = "2024-05-20T21:33:25.928Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/78/b6/6307fbef88d9b5ee7421e68d78a9f162e0da4900bc5f5793f6d3d0e34fb8/annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53", size = 13643, upload-time = "2024-05-20T21:33:24.1Z" }, +] + +[[package]] +name = "anyio" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "sniffio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2d/b8/7333d87d5f03247215d86a86362fd3e324111788c6cdd8d2e6196a6ba833/anyio-4.2.0.tar.gz", hash = "sha256:e1875bb4b4e2de1669f4bc7869b6d3f54231cdced71605e6e64c9be77e3be50f", size = 158770, upload-time = "2023-12-16T17:06:57.709Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bf/cd/d6d9bb1dadf73e7af02d18225cbd2c93f8552e13130484f1c8dcfece292b/anyio-4.2.0-py3-none-any.whl", hash = "sha256:745843b39e829e108e518c489b31dc757de7d2131d53fac32bd8df268227bfee", size = 85481, upload-time = "2023-12-16T17:06:55.989Z" }, +] + +[[package]] +name = "apispec" +version = "6.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/76/64/29563feb105a1d2a79abd17aa165ed839be3c3de6cffca8a01207c3694fb/apispec-6.4.0.tar.gz", hash = "sha256:42b8a6833cf154c9dbd22d006b56bf9c49c972d32d24fe716fd734e0f6b739b8", size = 79114, upload-time = "2024-01-10T04:27:09.347Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/56/33/7a87f8865f0c532ddb2770b85009151c0dedcced139765173d4009c00a04/apispec-6.4.0-py3-none-any.whl", hash = "sha256:00ac876f1968d8e1624400c8571d2a2887edd3d6aa9d1a130efaafbdb49e85d7", size = 30196, upload-time = "2024-01-10T04:27:06.454Z" }, +] + +[[package]] +name = "arrow" +version = "1.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, + { name = "types-python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2e/00/0f6e8fcdb23ea632c866620cc872729ff43ed91d284c866b515c6342b173/arrow-1.3.0.tar.gz", hash = "sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85", size = 131960, upload-time = "2023-09-30T22:11:18.25Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f8/ed/e97229a566617f2ae958a6b13e7cc0f585470eac730a73e9e82c32a3cdd2/arrow-1.3.0-py3-none-any.whl", hash = "sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80", size = 66419, upload-time = "2023-09-30T22:11:16.072Z" }, +] + +[[package]] +name = "asgiref" +version = "3.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/40/f03da1264ae8f7cfdbf9146542e5e7e8100a4c66ab48e791df9a03d3f6c0/asgiref-3.11.1.tar.gz", hash = "sha256:5f184dc43b7e763efe848065441eac62229c9f7b0475f41f80e207a114eda4ce", size = 38550, upload-time = "2026-02-03T13:30:14.33Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5c/0a/a72d10ed65068e115044937873362e6e32fab1b7dce0046aeb224682c989/asgiref-3.11.1-py3-none-any.whl", hash = "sha256:e8667a091e69529631969fd45dc268fa79b99c92c5fcdda727757e52146ec133", size = 24345, upload-time = "2026-02-03T13:30:13.039Z" }, +] + +[[package]] +name = "asttokens" +version = "3.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/be/a5/8e3f9b6771b0b408517c82d97aed8f2036509bc247d46114925e32fe33f0/asttokens-3.0.1.tar.gz", hash = "sha256:71a4ee5de0bde6a31d64f6b13f2293ac190344478f081c3d1bccfcf5eacb0cb7", size = 62308, upload-time = "2025-11-15T16:43:48.578Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/39/e7eaf1799466a4aef85b6a4fe7bd175ad2b1c6345066aa33f1f58d4b18d0/asttokens-3.0.1-py3-none-any.whl", hash = "sha256:15a3ebc0f43c2d0a50eeafea25e19046c68398e487b9f1f5b517f7c0f40f976a", size = 27047, upload-time = "2025-11-15T16:43:16.109Z" }, +] + +[[package]] +name = "async-timeout" +version = "5.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a5/ae/136395dfbfe00dfc94da3f3e136d0b13f394cba8f4841120e34226265780/async_timeout-5.0.1.tar.gz", hash = "sha256:d9321a7a3d5a6a5e187e824d2fa0793ce379a202935782d555d6e9d2735677d3", size = 9274, upload-time = "2024-11-06T16:41:39.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/ba/e2081de779ca30d473f21f5b30e0e737c438205440784c7dfc81efc2b029/async_timeout-5.0.1-py3-none-any.whl", hash = "sha256:39e3809566ff85354557ec2398b55e096c8364bacac9405a7a1fa429e77fe76c", size = 6233, upload-time = "2024-11-06T16:41:37.9Z" }, +] + +[[package]] +name = "asyncio-mqtt" +version = "0.16.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "paho-mqtt" }, +] +wheels = [ + { url = "https://files.pythonhosted.org/packages/2a/64/c8a8c2ed51f3c1f4b8d2f244424d3bad3fbd4333eb01589c6b00a6dd2c04/asyncio_mqtt-0.16.2-py3-none-any.whl", hash = "sha256:fe70ea2c648b248779a7ff3d9218262cdd739083743dfaa7c0d52ba458a8ad71", size = 17380, upload-time = "2023-06-26T19:46:48.342Z" }, +] + +[[package]] +name = "attrs" +version = "26.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/9a/8e/82a0fe20a541c03148528be8cac2408564a6c9a0cc7e9171802bc1d26985/attrs-26.1.0.tar.gz", hash = "sha256:d03ceb89cb322a8fd706d4fb91940737b6642aa36998fe130a9bc96c985eff32", size = 952055, upload-time = "2026-03-19T14:22:25.026Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/b4/17d4b0b2a2dc85a6df63d1157e028ed19f90d4cd97c36717afef2bc2f395/attrs-26.1.0-py3-none-any.whl", hash = "sha256:c647aa4a12dfbad9333ca4e71fe62ddc36f4e63b2d260a37a8b83d2f043ac309", size = 67548, upload-time = "2026-03-19T14:22:23.645Z" }, +] + +[[package]] +name = "azure-core" +version = "1.30.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, + { name = "six" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/d4/1f469fa246f554b86fb5cebc30eef1b2a38b7af7a2c2791bce0a4c6e4604/azure-core-1.30.2.tar.gz", hash = "sha256:a14dc210efcd608821aa472d9fb8e8d035d29b68993819147bc290a8ac224472", size = 271104, upload-time = "2024-06-06T16:53:47.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/d7/69d53f37733f8cb844862781767aef432ff3152bc9b9864dc98c7e286ce9/azure_core-1.30.2-py3-none-any.whl", hash = "sha256:cf019c1ca832e96274ae85abd3d9f752397194d9fea3b41487290562ac8abe4a", size = 194253, upload-time = "2024-06-06T16:53:49.814Z" }, +] + +[[package]] +name = "babel" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/80/cfbe44a9085d112e983282ee7ca4c00429bc4d1ce86ee5f4e60259ddff7f/Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363", size = 10795622, upload-time = "2023-12-12T13:33:16.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/35/4196b21041e29a42dc4f05866d0c94fa26c9da88ce12c38c2265e42c82fb/Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287", size = 11034798, upload-time = "2023-12-12T13:33:13.288Z" }, +] + +[[package]] +name = "backports-tarfile" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/86/72/cd9b395f25e290e633655a100af28cb253e4393396264a98bd5f5951d50f/backports_tarfile-1.2.0.tar.gz", hash = "sha256:d75e02c268746e1b8144c278978b6e98e85de6ad16f8e4b0844a154557eca991", size = 86406, upload-time = "2024-05-28T17:01:54.731Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/fa/123043af240e49752f1c4bd24da5053b6bd00cad78c2be53c0d1e8b975bc/backports.tarfile-1.2.0-py3-none-any.whl", hash = "sha256:77e284d754527b01fb1e6fa8a1afe577858ebe4e9dad8919e34c862cb399bc34", size = 30181, upload-time = "2024-05-28T17:01:53.112Z" }, +] + +[[package]] +name = "beautifulsoup4" +version = "4.12.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/ca/824b1195773ce6166d388573fc106ce56d4a805bd7427b624e063596ec58/beautifulsoup4-4.12.3.tar.gz", hash = "sha256:74e3d1928edc070d21748185c46e3fb33490f22f52a3addee9aee0f4f7781051", size = 581181, upload-time = "2024-01-17T16:53:17.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/fe/e8c672695b37eecc5cbf43e1d0638d88d66ba3a44c4d321c796f4e59167f/beautifulsoup4-4.12.3-py3-none-any.whl", hash = "sha256:b80878c9f40111313e55da8ba20bdba06d8fa3969fc68304167741bbf9e082ed", size = 147925, upload-time = "2024-01-17T16:53:12.779Z" }, +] + +[[package]] +name = "billiard" +version = "4.2.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/58/23/b12ac0bcdfb7360d664f40a00b1bda139cbbbced012c34e375506dbd0143/billiard-4.2.4.tar.gz", hash = "sha256:55f542c371209e03cd5862299b74e52e4fbcba8250ba611ad94276b369b6a85f", size = 156537, upload-time = "2025-11-30T13:28:48.52Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/87/8bab77b323f16d67be364031220069f79159117dd5e43eeb4be2fef1ac9b/billiard-4.2.4-py3-none-any.whl", hash = "sha256:525b42bdec68d2b983347ac312f892db930858495db601b5836ac24e6477cde5", size = 87070, upload-time = "2025-11-30T13:28:47.016Z" }, +] + +[[package]] +name = "black" +version = "23.12.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "mypy-extensions" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "platformdirs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fd/f4/a57cde4b60da0e249073009f4a9087e9e0a955deae78d3c2a493208d0c5c/black-23.12.1.tar.gz", hash = "sha256:4ce3ef14ebe8d9509188014d96af1c456a910d5b5cbf434a09fef7e024b3d0d5", size = 620809, upload-time = "2023-12-22T23:06:17.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ed/2c/d9b1a77101e6e5f294f6553d76c39322122bfea2a438aeea4eb6d4b22749/black-23.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:8d4df77958a622f9b5a4c96edb4b8c0034f8434032ab11077ec6c56ae9f384ba", size = 1541926, upload-time = "2023-12-22T23:23:17.72Z" }, + { url = "https://files.pythonhosted.org/packages/72/e2/d981a3ff05ba9abe3cfa33e70c986facb0614fd57c4f802ef435f4dd1697/black-23.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:602cfb1196dc692424c70b6507593a2b29aac0547c1be9a1d1365f0d964c353b", size = 1388465, upload-time = "2023-12-22T23:19:00.611Z" }, + { url = "https://files.pythonhosted.org/packages/eb/59/1f5c8eb7bba8a8b1bb5c87f097d16410c93a48a6655be3773db5d2783deb/black-23.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c4352800f14be5b4864016882cdba10755bd50805c95f728011bcb47a4afd59", size = 1691993, upload-time = "2023-12-22T23:08:32.018Z" }, + { url = "https://files.pythonhosted.org/packages/37/bf/a80abc6fcdb00f0d4d3d74184b172adbf2197f6b002913fa0fb6af4dc6db/black-23.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:0808494f2b2df923ffc5723ed3c7b096bd76341f6213989759287611e9837d50", size = 1340929, upload-time = "2023-12-22T23:09:37.088Z" }, + { url = "https://files.pythonhosted.org/packages/66/16/8726cedc83be841dfa854bbeef1288ee82272282a71048d7935292182b0b/black-23.12.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:25e57fd232a6d6ff3f4478a6fd0580838e47c93c83eaf1ccc92d4faf27112c4e", size = 1569989, upload-time = "2023-12-22T23:20:22.158Z" }, + { url = "https://files.pythonhosted.org/packages/d2/1e/30f5eafcc41b8378890ba39b693fa111f7dca8a2620ba5162075d95ffe46/black-23.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:2d9e13db441c509a3763a7a3d9a49ccc1b4e974a47be4e08ade2a228876500ec", size = 1398647, upload-time = "2023-12-22T23:19:57.225Z" }, + { url = "https://files.pythonhosted.org/packages/99/de/ddb45cc044256431d96d846ce03164d149d81ca606b5172224d1872e0b58/black-23.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d1bd9c210f8b109b1762ec9fd36592fdd528485aadb3f5849b2740ef17e674e", size = 1720450, upload-time = "2023-12-22T23:08:52.675Z" }, + { url = "https://files.pythonhosted.org/packages/98/2b/54e5dbe9be5a10cbea2259517206ff7b6a452bb34e07508c7e1395950833/black-23.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:ae76c22bde5cbb6bfd211ec343ded2163bba7883c7bc77f6b756a1049436fbb9", size = 1351070, upload-time = "2023-12-22T23:09:32.762Z" }, + { url = "https://files.pythonhosted.org/packages/7b/14/4da7b12a9abc43a601c215cb5a3d176734578da109f0dbf0a832ed78be09/black-23.12.1-py3-none-any.whl", hash = "sha256:78baad24af0f033958cad29731e27363183e140962595def56423e626f4bee3e", size = 194363, upload-time = "2023-12-22T23:06:14.278Z" }, +] + +[[package]] +name = "blinker" +version = "1.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/28/9b3f50ce0e048515135495f198351908d99540d69bfdc8c1d15b73dc55ce/blinker-1.9.0.tar.gz", hash = "sha256:b4ce2265a7abece45e7cc896e98dbebe6cead56bcf805a3d23136d145f5445bf", size = 22460, upload-time = "2024-11-08T17:25:47.436Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/cb/f2ad4230dc2eb1a74edf38f1a38b9b52277f75bef262d8908e60d957e13c/blinker-1.9.0-py3-none-any.whl", hash = "sha256:ba0efaa9080b619ff2f3459d1d500c57bddea4a6b424b60a91141db6fd2f08bc", size = 8458, upload-time = "2024-11-08T17:25:46.184Z" }, +] + +[[package]] +name = "boto3" +version = "1.34.162" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, + { name = "jmespath" }, + { name = "s3transfer" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/74/c1/f80cfbe564c89cdb080cd9ac2079ce05a2fac869bf8fbc45929ed3190da9/boto3-1.34.162.tar.gz", hash = "sha256:873f8f5d2f6f85f1018cbb0535b03cceddc7b655b61f66a0a56995238804f41f", size = 108585, upload-time = "2024-08-15T19:25:38.714Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/41/faa5081761be3bac3999f912996c14c4dc9d06eab86c234bd6441f54bd64/boto3-1.34.162-py3-none-any.whl", hash = "sha256:d6f6096bdab35a0c0deff469563b87d184a28df7689790f7fe7be98502b7c590", size = 139174, upload-time = "2024-08-15T19:25:35.384Z" }, +] + +[[package]] +name = "botocore" +version = "1.34.162" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "jmespath" }, + { name = "python-dateutil" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/de/17d672eac6725da49bd5832e3bd2f74c4d212311cd393fd56b59f51a4e86/botocore-1.34.162.tar.gz", hash = "sha256:adc23be4fb99ad31961236342b7cbf3c0bfc62532cd02852196032e8c0d682f3", size = 12676693, upload-time = "2024-08-15T19:25:25.162Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/47/e35f788047c91110f48703a6254e5c84e33111b3291f7b57a653ca00accf/botocore-1.34.162-py3-none-any.whl", hash = "sha256:2d918b02db88d27a75b48275e6fb2506e9adaaddbec1ffa6a8a0898b34e769be", size = 12468049, upload-time = "2024-08-15T19:25:18.301Z" }, +] + +[[package]] +name = "build" +version = "1.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "os_name == 'nt'" }, + { name = "packaging" }, + { name = "pyproject-hooks" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/e3/83a89a9d338317f05a68c86a2bbc9af61235bc55a0c6a749d37598fb2af1/build-1.0.3.tar.gz", hash = "sha256:538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b", size = 40797, upload-time = "2023-09-06T23:46:43.081Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/dd/b464b728b866aaa62785a609e0dd8c72201d62c5f7c53e7c20f4dceb085f/build-1.0.3-py3-none-any.whl", hash = "sha256:589bf99a67df7c9cf07ec0ac0e5e2ea5d4b37ac63301c4986d1acb126aa83f8f", size = 18587, upload-time = "2023-09-06T23:46:41.471Z" }, +] + +[[package]] +name = "cachetools" +version = "5.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/81/3747dad6b14fa2cf53fcf10548cf5aea6913e96fab41a3c198676f8948a5/cachetools-5.5.2.tar.gz", hash = "sha256:1a661caa9175d26759571b2e19580f9d6393969e5dfca11fdb1f947a23e640d4", size = 28380, upload-time = "2025-02-20T21:01:19.524Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/76/20fa66124dbe6be5cafeb312ece67de6b61dd91a0247d1ea13db4ebb33c2/cachetools-5.5.2-py3-none-any.whl", hash = "sha256:d26a22bcc62eb95c3beabd9f1ee5e820d3d2704fe2967cbe350e20c8ffcd3f0a", size = 10080, upload-time = "2025-02-20T21:01:16.647Z" }, +] + +[[package]] +name = "celery" +version = "5.3.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "billiard" }, + { name = "click" }, + { name = "click-didyoumean" }, + { name = "click-plugins" }, + { name = "click-repl" }, + { name = "kombu" }, + { name = "python-dateutil" }, + { name = "tzdata" }, + { name = "vine" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/72/45a2d2f9b45ccc6e80e2168ce169d17bf06a98711c192d7b53d5a8accf77/celery-5.3.6.tar.gz", hash = "sha256:870cc71d737c0200c397290d730344cc991d13a057534353d124c9380267aab9", size = 1544498, upload-time = "2023-11-22T15:16:33.646Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/37/c2/4c8a67a4d98a6fcd55dbdd79b641f945d7f59637c3e885c4abbda3c431f6/celery-5.3.6-py3-none-any.whl", hash = "sha256:9da4ea0118d232ce97dff5ed4974587fb1c0ff5c10042eb15278487cdd27d1af", size = 422035, upload-time = "2023-11-22T15:16:19.555Z" }, +] + +[[package]] +name = "certifi" +version = "2026.6.17" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/c9/c7/424b75da314c1045981bd9777432fad05a9e0c69daa4ed7e308bbaffe405/certifi-2026.6.17.tar.gz", hash = "sha256:024c88eeec92ca068db80f02b8b07c9cef7b9fe261d1d535abfd5abd6f6af432", size = 134594, upload-time = "2026-06-17T10:31:07.894Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/2f/c5464532e965badff2f4c4c1a3a83f5697f0d7c407ed0cda44aaa99bb451/certifi-2026.6.17-py3-none-any.whl", hash = "sha256:2227dcbaafe0d2f59279d1762ddddc37783ed4354594f194ffc31d20f41fc3db", size = 133289, upload-time = "2026-06-17T10:31:06.348Z" }, +] + +[[package]] +name = "cffi" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/57/5f/ff100cae70ebe9d8df1c01a00e510e45d9adb5c1fdda84791b199141de97/cffi-2.1.0.tar.gz", hash = "sha256:efc1cdd798b1aaf39b4610bba7aad28c9bea9b910f25c784ccf9ec1fa719d1f9", size = 531036, upload-time = "2026-07-06T21:34:30.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/65/68/9f3ef890cf3c6ab97bd531c5677f67613d302165d16f8142b2811782a614/cffi-2.1.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:30b65779d598c370374fefabf138d456fd6f3216bfa7bedfab1ba82025b0cd93", size = 211892, upload-time = "2026-07-06T21:32:29.565Z" }, + { url = "https://files.pythonhosted.org/packages/22/d7/1a74539db16d8bfd839ff1515948948efbb162e574650fd3d846896eea95/cffi-2.1.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:88023dfe18799507b73f1dbb0d14326a17465de1bc9c9c7655c22845e9ddc3a2", size = 218793, upload-time = "2026-07-06T21:32:30.951Z" }, + { url = "https://files.pythonhosted.org/packages/ec/d1/9a5b7169499e8e8d8e636de70b97ac7c9447104d2ff1a2cd94790cea5162/cffi-2.1.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:0a96b74cda968eebbad56d973efe5098974f0a9fb323865bf99ea1fd24e3e64c", size = 205737, upload-time = "2026-07-06T21:32:32.216Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b0/e131a9c41f10607926278453d9596163594fe1c4ebc46efe3b5e5b34eb84/cffi-2.1.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:a5781494d4d400a3f47f8f1da94b324f6e6b440a53387774002890a2a2f4b50f", size = 204909, upload-time = "2026-07-06T21:32:33.655Z" }, + { url = "https://files.pythonhosted.org/packages/fb/d2/4398416cd699b35167947c6e22aca52c47e69ad5695073c9f1f2c52e04aa/cffi-2.1.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:aa7a1b53a2a4452ada2d1b5dade9960b2522f1e61293a811a077439e39029565", size = 217883, upload-time = "2026-07-06T21:32:35.173Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a5/d4fe77b589e5e82d43ebc809bf2e6474afe8e48e32ea050b9357645b6471/cffi-2.1.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:9d8272c0e483b024e1b9ad029821470ed8ec65631dbd90217469da0e7cd89f1c", size = 221251, upload-time = "2026-07-06T21:32:36.527Z" }, + { url = "https://files.pythonhosted.org/packages/22/f0/a2fc43084c0433caf7f461bccc013e28f848d04ee1c5ed7fce71423cf4d9/cffi-2.1.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7762faa47e8ff7eb80bd261d9a7d8eea2d8baa69de5e95b70c1f338bbe712f02", size = 214250, upload-time = "2026-07-06T21:32:37.852Z" }, + { url = "https://files.pythonhosted.org/packages/04/8c/b925975448cf20634a9fbd5efceb807219db452653648d2897c0989cab2d/cffi-2.1.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:89095c1968b4ba8285840e131bf2891b09ae137fe2146905acae0354fbce1b5e", size = 219441, upload-time = "2026-07-06T21:32:39.146Z" }, + { url = "https://files.pythonhosted.org/packages/c3/c0/d1ec30ffb370f748f2fb54425972bfef9871e0132e82fb589c46b6676049/cffi-2.1.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5972433ad71a9e46516584ef60a0fda12d9dc459938d1539c3ddecf9bdc1368d", size = 214815, upload-time = "2026-07-06T21:32:48.557Z" }, + { url = "https://files.pythonhosted.org/packages/1b/dc/5620cf930688be01f2d673804291de757a934c90b946dbdc3d84130c2ea4/cffi-2.1.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b6422532152adf4e59b110cb2808cee7a033800952f5c036b4af047ee43199e7", size = 222429, upload-time = "2026-07-06T21:32:49.848Z" }, + { url = "https://files.pythonhosted.org/packages/4b/a4/77b53abbf7a1e0beb9637edbef2a94d15f9c822f591e85d439ffd91519a6/cffi-2.1.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:46b1c8db8f6122420f32d02fffb924c2fe9bc772d228c7c711748fff56aabb2b", size = 210315, upload-time = "2026-07-06T21:32:51.221Z" }, + { url = "https://files.pythonhosted.org/packages/58/0c/f528df19cc94b675087324d4760d9e6d5bfae97d6217aa4fac43de4f5fcc/cffi-2.1.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9fafc5aa2e2a39aaf7f8cc0c1f044a9b07fca12e558dca53a3cc5c654ad67a7", size = 208859, upload-time = "2026-07-06T21:32:52.512Z" }, + { url = "https://files.pythonhosted.org/packages/62/f2/c9522a81c32132799a1972c39f5c5f8b4c8b9f00488a23feaa6c06f07741/cffi-2.1.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:1e9f50d192a3e525b15a75ab5114e442d83d657b7ec29182a991bc9a88fd3a66", size = 221844, upload-time = "2026-07-06T21:32:53.704Z" }, + { url = "https://files.pythonhosted.org/packages/6e/28/bd53988b9833e8f8ad539d26f4c07a6b3f6bcb1e9e02e7ca038250b3428d/cffi-2.1.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:98fff996e983a36d3aa2eca83af40c5821202e7e6f32d13ae94e3d2286f10cfe", size = 225287, upload-time = "2026-07-06T21:32:54.907Z" }, + { url = "https://files.pythonhosted.org/packages/79/99/0d0fd37f055224085f42bbb2c022d002e17dde4a97972822327b07d84101/cffi-2.1.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:379de10ce1ba048b1448599d1b37b24caee16309d1ac98d3982fc997f768700b", size = 223681, upload-time = "2026-07-06T21:32:56.329Z" }, + { url = "https://files.pythonhosted.org/packages/96/88/a996879e2eeccb815f6e3a5967b12a308257412acec882039d386bd2aa7b/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:10537b1df4967ca26d21e5072d7d54188354483b91dc75058968d3f0cf13fbda", size = 194331, upload-time = "2026-07-06T21:33:03.697Z" }, + { url = "https://files.pythonhosted.org/packages/58/85/7ae00d5c8dd6266f4e944c3db630f3c5c9a98b61d469c714d848b1d8138a/cffi-2.1.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:a95b05f9baf29b91171b3a8bd2020b028835243e7b0ff6bb23e2a3c228518b1b", size = 196966, upload-time = "2026-07-06T21:33:05.353Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1c/4ed5a0e5bdca6cbc275556de3328dd1b76fd0c11cc13c88fe66d1d8715f2/cffi-2.1.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:63960549e4f8dc41e31accb97b975abaecfc44c03e396c093a6436763c2ea7db", size = 214747, upload-time = "2026-07-06T21:33:09.671Z" }, + { url = "https://files.pythonhosted.org/packages/3a/a6/e879bb68cc23a2bc9ba8f4b7d8019f0c2694bad2ab6c4a3701d429439f58/cffi-2.1.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:ff067a8d8d880e7809e4ac88eb009bb848870115317b306666502ccad30b147f", size = 222392, upload-time = "2026-07-06T21:33:10.896Z" }, + { url = "https://files.pythonhosted.org/packages/88/f6/01890cfd63c08f8eb96a8319b0443690197d240a8bd6346048cf7bde9190/cffi-2.1.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3b926723c13eba9f81d2ef3820d63aeceec3b2d4639906047bf675cb8a7a500d", size = 210285, upload-time = "2026-07-06T21:33:12.251Z" }, + { url = "https://files.pythonhosted.org/packages/a6/cf/2b684132056f438567b61e19d690dd31cd0921ace051e0a458be6074369e/cffi-2.1.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:47ff3a8bfd8cb9da1af7524b965127095055654c177fcfc7578debcb015eecd0", size = 208801, upload-time = "2026-07-06T21:33:13.617Z" }, + { url = "https://files.pythonhosted.org/packages/6f/08/f2e7d62c460faae0926f2d6e423694aa409ced3bc1fe2927a0a6e5f05416/cffi-2.1.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:799416bae98336e400981ff6e532d67d5c709cfb30afb79865a1315f94b0e224", size = 221808, upload-time = "2026-07-06T21:33:15.466Z" }, + { url = "https://files.pythonhosted.org/packages/38/37/04f54b8e63a02f3d908332c9effbf8c366167c6f733ed8a3d4f79b7e2a1e/cffi-2.1.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:961be50688f7fba2fa65f63712d3b9b341a22311f5253460ce933f52f0de1c8c", size = 225241, upload-time = "2026-07-06T21:33:16.869Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d6/c72eecca433cd3e681c65ed313ab4835d9d4a379704d0f628a6a05f51c2e/cffi-2.1.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bf5c6cf48238b0eb4c086978c492ad1cbc22373fc5b2d7353b3a598ce6db887a", size = 223588, upload-time = "2026-07-06T21:33:18.239Z" }, + { url = "https://files.pythonhosted.org/packages/d8/f0/81478e482afa03f6d18dc8f2afb5edc45b3080853b634b5ed91961be0998/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:d2117334c3af3bdcb9a88522b844a2bdb5efdc4f71c6c822df55486ae1c3347a", size = 194142, upload-time = "2026-07-06T21:33:23.657Z" }, + { url = "https://files.pythonhosted.org/packages/7d/95/8de304305cd9204974b0ca051b86d307cafca13aa575a0ef1b44d92c0d8c/cffi-2.1.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:702c436735fbe99d59ada02a1f65cfc0d31c0ee8b7290912f8fbc5cd1e4b16c3", size = 196819, upload-time = "2026-07-06T21:33:25.007Z" }, + { url = "https://files.pythonhosted.org/packages/2e/d2/065fcae1c73979fac8e054462478d0ff8a29c40cdc2ed7ea5676a061df53/cffi-2.1.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:276f20fffd7b396e12516ba8edf9509210ac248cbbc5acbc39cd512f9f59ebe6", size = 222353, upload-time = "2026-07-06T21:33:29.178Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a5/e8bbb1ce5b3ac2f53ad6a10bde44318a5a8d99d4f4a000d44a6e39aeb3e4/cffi-2.1.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:7d5980a3433d4b71a5e120f9dd551403d7824e31e2e67124fe2769c404c06913", size = 210051, upload-time = "2026-07-06T21:33:30.534Z" }, + { url = "https://files.pythonhosted.org/packages/28/ed/c127d3ac36e899c965e3361357c3befacd6578c03f40125183e41c3b219e/cffi-2.1.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:6ca4919c6e4f89aa99c42510b42cf54596892c00b3f9077f6bdd1505e24b9c8d", size = 208630, upload-time = "2026-07-06T21:33:31.753Z" }, + { url = "https://files.pythonhosted.org/packages/cc/d7/97d3136f81db489ec8d1d67748c110d6c994268fd7528014aa9f2b085e4e/cffi-2.1.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:d53d10f7da99ae46f7373b9150393e9c5eab9b224909982b43832668de4779f5", size = 221593, upload-time = "2026-07-06T21:33:33.044Z" }, + { url = "https://files.pythonhosted.org/packages/d3/27/93195977168ee63aed233a1a0993a2178798654d1f4bddcdd321d6fd3b21/cffi-2.1.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:c351efb95e832a853a29361675f33a7ce53de1a109cd73fd47af0712213aa4ce", size = 225146, upload-time = "2026-07-06T21:33:34.224Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c1/6dbd291ee2ae5a50a034aa057207081f545923bbf15dad4511e985aafff5/cffi-2.1.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:dbf7c7a88e2bac086f06d14577332760bdeecc42bdec8ac4077f6260557d9326", size = 223240, upload-time = "2026-07-06T21:33:35.57Z" }, + { url = "https://files.pythonhosted.org/packages/14/d0/117dcd9209255ad8571fbc8c92ef32593a1d294dcec91ddc4e4db50606f2/cffi-2.1.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:eb4e8997a49aa2c08a3e43c9045d224448b8941d88e7ac163c7d383e560cbf98", size = 223899, upload-time = "2026-07-06T21:33:39.514Z" }, + { url = "https://files.pythonhosted.org/packages/b6/3d/f20f8b886b254e3ad10e15cd4186d3aed49f3e6a35ab37aab9f8f25f7c03/cffi-2.1.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:bf01d8c84cbea96b944c73b22182e6c7c432b3475632b8111dbfdc95ddad6e13", size = 211652, upload-time = "2026-07-06T21:33:40.851Z" }, + { url = "https://files.pythonhosted.org/packages/28/3b/fad54de07260b93ddeef4b96d0131d57ea900675df1d410ae1deee52d7a6/cffi-2.1.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:33eb1ad83ebe8f313e0df035c406227d55a79456704a863fad9842136af5ad7d", size = 210755, upload-time = "2026-07-06T21:33:42.183Z" }, + { url = "https://files.pythonhosted.org/packages/cc/82/3d5c705acb7abbba9bbd7d79b8e62e0f25b6120eb7ae6ac49f1b721722fe/cffi-2.1.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:ac0f1a2d0cfa7eea3f2aaf006ab6e70e8feeb16b75d65b7e5939982ca2f11056", size = 223933, upload-time = "2026-07-06T21:33:43.603Z" }, + { url = "https://files.pythonhosted.org/packages/6c/d0/47e338384ab6b1004241002fa616301020cea4fc95f283506565d252f276/cffi-2.1.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:c16914df9fb7f500e440e6875fa23ff5e0b31db01fa9c06af98d59a91f0dc2e4", size = 226749, upload-time = "2026-07-06T21:33:45.046Z" }, + { url = "https://files.pythonhosted.org/packages/70/25/65bd5b58ea4bfdfc15cde02cb5365f89ef8ab8b2adfb8fe5c4bd4233382f/cffi-2.1.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5ecbd0499275d57506d397eebe1981cee87b47fcd9ef5c22cab7ed7644a39a94", size = 225703, upload-time = "2026-07-06T21:33:46.374Z" }, + { url = "https://files.pythonhosted.org/packages/55/c7/8c8c50cb11c6750051daf12164098a9a6f027ac4356967fd4d800a07f242/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:2e9dabb9abcb7ad15938c7196ad5c1718a4e6d33cc79b4c0209bdb64c4a54a5c", size = 194121, upload-time = "2026-07-06T21:33:56.109Z" }, + { url = "https://files.pythonhosted.org/packages/99/e2/67680bf19a6b60d2bb7ff83baefa2a4c3d2d7dc0f3277034b802e1fc504c/cffi-2.1.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:37f525a7e7e50c017fdebe58b787be310ad59357ae43a053943a6e1a6c526001", size = 196820, upload-time = "2026-07-06T21:33:57.288Z" }, + { url = "https://files.pythonhosted.org/packages/ef/c3/ad299dc38f3583f8d916b299f028af418a9ec98bc695fcbebeae7420691c/cffi-2.1.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:90bec57cf82089383bd06a605b3eb8daebf7e5a668520beaf6e327a83a947699", size = 222342, upload-time = "2026-07-06T21:34:01.814Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d8/df4543cc087245044ed02ef3ad8e0a26619d0075ac7a77a12dc81177851b/cffi-2.1.0-cp315-cp315-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6274dcb2d15cef48daa73ed1be5a40d501d74dccd0cd6db364776d12cb6ba022", size = 210073, upload-time = "2026-07-06T21:34:03.255Z" }, + { url = "https://files.pythonhosted.org/packages/2c/0e/fac738d73728c6cea2a88a2883dca54892496cbba88a1dc1f2909cb8a6f5/cffi-2.1.0-cp315-cp315-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:2b71d409cccee78310ab5dec549aed052aaea483346e282c7b02362596e01bb0", size = 208551, upload-time = "2026-07-06T21:34:04.433Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3f/0b04a700dd64f465c93020253a793a82c9b4dff9961f48facd0df945d9b8/cffi-2.1.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7d3538f9c0e50670f4deb93dbb696576e60590369cae2faf7de681e597a8a1f1", size = 221649, upload-time = "2026-07-06T21:34:06.157Z" }, + { url = "https://files.pythonhosted.org/packages/5d/7c/b7379a5704c79eda57ce075869ba70a0368d1c850f803b3c0d078d39dcaf/cffi-2.1.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:8f9ec95b8a043d3dfbc74d9abc6f7baf524dd27a8dc160b0a32ff9cdab650c28", size = 225203, upload-time = "2026-07-06T21:34:07.489Z" }, + { url = "https://files.pythonhosted.org/packages/5a/02/d5e6c43ea85c41bda2a184a3418f195fe7cf602967a8d2b94e085b83deef/cffi-2.1.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:af5e2915d41fe6c961694d7bfdc8562942638200f3ce2765dfb8b745cf997629", size = 223263, upload-time = "2026-07-06T21:34:08.712Z" }, + { url = "https://files.pythonhosted.org/packages/e0/27/1d0b408497e41a74795af122d7b603c418c5fed0171450f899afd04e594f/cffi-2.1.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:0520e1f4c35f44e209cbbb421b67eec42e6a157f59444dfb6058874ff3610e5d", size = 223904, upload-time = "2026-07-06T21:34:12.606Z" }, + { url = "https://files.pythonhosted.org/packages/8b/31/e115c985105dd7ffb32444505f18ceb874bb42d992af05d5dced7ecf1980/cffi-2.1.0-cp315-cp315t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:3681e031db29958a7502f5c0c9d6bbc4c36cb20f7b104086fa642d1799631ff8", size = 211554, upload-time = "2026-07-06T21:34:13.987Z" }, + { url = "https://files.pythonhosted.org/packages/5a/67/9e6e09409336d9e515c58367e7cfcf4f89df06ad25252675595a58eb59d5/cffi-2.1.0-cp315-cp315t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:762f99479dcb369f60ab9017ad4ab97a36a1dd7c1ee5a3b15db0f4b8659120cd", size = 210795, upload-time = "2026-07-06T21:34:15.972Z" }, + { url = "https://files.pythonhosted.org/packages/19/e5/d3cc82a4a0be7902af279c04181ad038449c096734464a5ae1de3e1401bd/cffi-2.1.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0611e7ebf90573a535ebdc33ae9da222d037853983e13359f580fab781ca017f", size = 223843, upload-time = "2026-07-06T21:34:17.509Z" }, + { url = "https://files.pythonhosted.org/packages/b9/65/b434abc97ce7cecc2c640fde160507c0ecc7e21544b483ba3325d2e2ea17/cffi-2.1.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:86cf8755a791f72c85dc287128cc62d4f24d392e3f1e15837245623f4a33cccc", size = 226773, upload-time = "2026-07-06T21:34:19.05Z" }, + { url = "https://files.pythonhosted.org/packages/b5/9f/d4dc66ca651eb1145a133314cda721abf13cfac3d28c4a0402263ae6ad75/cffi-2.1.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:ba00f661f8ba35d075c937174e27c2c421cec3942fd2e0ea3e66996757c0fdd9", size = 225719, upload-time = "2026-07-06T21:34:20.576Z" }, +] + +[[package]] +name = "chardet" +version = "7.4.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/19/b6/9df434a8eeba2e6628c465a1dfa31034228ef79b26f76f46278f4ef7e49d/chardet-7.4.3.tar.gz", hash = "sha256:cc1d4eb92a4ec1c2df3b490836ffa46922e599d34ce0bb75cf41fd2bf6303d56", size = 784800, upload-time = "2026-04-13T21:33:39.803Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/19/52/505c207f334d51e937cbaa27ff95776e16e2d120e13cbe491cd7b3a70b50/chardet-7.4.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:25a862cddc6a9ac07023e808aedd297115345fbaabc2690479481ddc0f980e09", size = 870747, upload-time = "2026-04-13T21:32:56.916Z" }, + { url = "https://files.pythonhosted.org/packages/14/4b/d3c79495dee4831b8bebca2790e72cb90f0c5849c940570a7c7e5b70b952/chardet-7.4.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7005c88da26fd95d8abb8acbe6281d833e9a9181b03cf49b4546c4555389bd97", size = 853210, upload-time = "2026-04-13T21:32:58.309Z" }, + { url = "https://files.pythonhosted.org/packages/b9/99/f6a822ad1bde25a4c38dc3e770485e78e0893dfd871cd6e18ed3ea3a795e/chardet-7.4.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:dc50f28bad067393cce0af9091052c3b8df7a23115afd8ba7b2e0947f0cef1f8", size = 873625, upload-time = "2026-04-13T21:32:59.606Z" }, + { url = "https://files.pythonhosted.org/packages/b1/10/31932775c94a86814f76b41c4a772b52abfb0e6125324f32c6da1196c297/chardet-7.4.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c3da294de1a681097848ab58bd3f2771a674f8039d2d87a5538b28856b815e9", size = 883436, upload-time = "2026-04-13T21:33:01.351Z" }, + { url = "https://files.pythonhosted.org/packages/6c/63/0f43e3acf2c436fdb32a0f904aeb03a2904d2126eed34a042a194d235926/chardet-7.4.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:93c45e116dd51b66226a53ade3f9f635e870de5399b90e00ce45dcc311093bf4", size = 876589, upload-time = "2026-04-13T21:33:02.636Z" }, + { url = "https://files.pythonhosted.org/packages/5d/a6/e9b8f8a3e99602792b01fa7d0a731737615ab56d8bfd0b52935a0ef88b85/chardet-7.4.3-cp311-cp311-win_amd64.whl", hash = "sha256:ccc1f83ab4bcfb901cf39e0c4ba6bc6e726fc6264735f10e24ceb5cb47387578", size = 941866, upload-time = "2026-04-13T21:33:04.282Z" }, + { url = "https://files.pythonhosted.org/packages/61/33/29de185079e6675c3f375546e30a559b7ddc75ce972f18d6e566cd9ea4eb/chardet-7.4.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:75d3c65cc16bddf40b8da1fd25ba84fca5f8070f2b14e86083653c1c85aee971", size = 874870, upload-time = "2026-04-13T21:33:05.977Z" }, + { url = "https://files.pythonhosted.org/packages/9c/2f/4c5af01fd1a7506a1d5375403d68925eac70289229492db5aa68b58103d8/chardet-7.4.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:29af5999f654e8729d251f1724a62b538b1262d9292cccaefddf8a02aae1ef6a", size = 854859, upload-time = "2026-04-13T21:33:07.381Z" }, + { url = "https://files.pythonhosted.org/packages/36/21/edb36ad5dfa48d7f8eed97ab43931ecdaa8c15166c21b1d614967e49d681/chardet-7.4.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:626f00299ad62dfe937058a09572beed442ccc7b58f87aa667949b20fd3db235", size = 875032, upload-time = "2026-04-13T21:33:08.741Z" }, + { url = "https://files.pythonhosted.org/packages/e5/59/a32a241d861cf180853a11c8e5a67641cb1b2af13c3a5ccce83ec07e2c9f/chardet-7.4.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9a4904dd5f071b7a7d7f50b4a67a86db3c902d243bf31708f1d5cde2f68239cb", size = 888283, upload-time = "2026-04-13T21:33:10.213Z" }, + { url = "https://files.pythonhosted.org/packages/87/2e/e1ee6a77abf3782c00e05b89c4d4328c8353bf9500661c4348df1dd68614/chardet-7.4.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5d2879598bc220689e8ce509fe9c3f37ad2fca53a36be9c9bd91abdd91dd364f", size = 879974, upload-time = "2026-04-13T21:33:11.448Z" }, + { url = "https://files.pythonhosted.org/packages/32/60/fca69c534602a7ced04280c952a246ad1edde2a6ca3a164f65d32ac41fe7/chardet-7.4.3-cp312-cp312-win_amd64.whl", hash = "sha256:4b2799bd58e7245cfa8d4ab2e8ad1d76a5c3a5b1f32318eb6acca4c69a3e7101", size = 943973, upload-time = "2026-04-13T21:33:12.756Z" }, + { url = "https://files.pythonhosted.org/packages/7c/43/79ac9b4db5bc87020c9dbc419125371d80882d1d197e9c4765ba8682b605/chardet-7.4.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a9e4486df251b8962e86ea9f139ca235aa6e0542a00f7844c9a04160afb99aa9", size = 873769, upload-time = "2026-04-13T21:33:14.002Z" }, + { url = "https://files.pythonhosted.org/packages/55/5f/25bdec773905bff0ff6cf35ca73b17bd05593b4f87bd8c5fa43705f7167d/chardet-7.4.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4fbff1907925b0c5a1064cffb5e040cd5e338585c9c552625f30de6bc2f3107a", size = 853991, upload-time = "2026-04-13T21:33:15.564Z" }, + { url = "https://files.pythonhosted.org/packages/b4/07/a29380ee0b215d23d77733b5ad60c5c0c7969650e080c667acdf9462040d/chardet-7.4.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:365135eaf37ba65a828f8e668eb0a8c38c479dcbec724dc25f4dfd781049c357", size = 874024, upload-time = "2026-04-13T21:33:16.915Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b1/3338e121cbd4c8a126b8ccb1061170c2ce51a53f678c502793ea49c6fd6d/chardet-7.4.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfc134b70c846c21ead8e43ada3ae1a805fff732f6922f8abcf2ff27b8f6493d", size = 887410, upload-time = "2026-04-13T21:33:18.368Z" }, + { url = "https://files.pythonhosted.org/packages/63/1c/44a9a9e0c59c185a5d307ceaeee8768afa1558f0a24f7a4b5fa11b67586b/chardet-7.4.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:9acd9988a93e09390f3cd231201ea7166c415eb8da1b735928990ffc05cb9fbb", size = 879269, upload-time = "2026-04-13T21:33:20.377Z" }, + { url = "https://files.pythonhosted.org/packages/1b/b3/5d0e77ea774bd3224321c248880ea0c0379000ac5c2bb6d77609549de247/chardet-7.4.3-cp313-cp313-win_amd64.whl", hash = "sha256:e1b98790c284ff813f18f7cf7de5f05ea2435a080030c7f1a8318f3a4f80b131", size = 944155, upload-time = "2026-04-13T21:33:21.694Z" }, + { url = "https://files.pythonhosted.org/packages/70/a8/bf0811d859e13801279a2ae64f37a408027b282f2047bc0001c75dd356ad/chardet-7.4.3-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:d892d3dcd652fdef53e3d6327d39b17c0df40a899dfc919abaeb64c974497531", size = 872887, upload-time = "2026-04-13T21:33:23.328Z" }, + { url = "https://files.pythonhosted.org/packages/51/ac/b9d68ebddfe1b02c77af5bf81120e12b036b4432dc6af7a303d90e2bc38b/chardet-7.4.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:acc46d1b8b7d5783216afe15db56d1c179b9a40e5a1558bc13164c4fd20674c4", size = 853964, upload-time = "2026-04-13T21:33:24.724Z" }, + { url = "https://files.pythonhosted.org/packages/2a/81/17fa103ea9caf5d325a5e4051ab2ba65996fd66baa60b81ee41af1f54e10/chardet-7.4.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0ac3bf11c645734a1701a3804e43eabd98851838192267d08c353a834ab79fea", size = 876006, upload-time = "2026-04-13T21:33:26.098Z" }, + { url = "https://files.pythonhosted.org/packages/c2/20/193faab46a68ea550587331a698c3dca8099f8901d10937c4443135c7ed9/chardet-7.4.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e3bd9f936e04bae89c254262af08d9e5b98f805175ba1e29d454e6cba3107b7", size = 887680, upload-time = "2026-04-13T21:33:27.49Z" }, + { url = "https://files.pythonhosted.org/packages/40/c6/94a3c673327392652ee8bdea9a45bc8a5f5365197a7387d68f0eed007115/chardet-7.4.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:27cc23da03630cdecc9aa81a895aa86629c211f995cd57651f0fbc280717bf93", size = 879865, upload-time = "2026-04-13T21:33:29.052Z" }, + { url = "https://files.pythonhosted.org/packages/b1/2c/cad8b5e3623a987f3c930b68e2bdd06cfc388cd91cd42ed05f1227701b73/chardet-7.4.3-cp314-cp314-win_amd64.whl", hash = "sha256:b95c934b9ad59e2ba8abb9be49df70d3ad1b0d95d864b9fdb7588d4fa8bd921c", size = 939594, upload-time = "2026-04-13T21:33:31.391Z" }, + { url = "https://files.pythonhosted.org/packages/33/e0/d06e42fd6f02a58e5e227e5106587751cb38adcff0aaf949add744b78b6e/chardet-7.4.3-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c77867f0c1cb8bd819502249fcdc500364aedb07881e11b743726fa2148e7b6e", size = 889714, upload-time = "2026-04-13T21:33:32.772Z" }, + { url = "https://files.pythonhosted.org/packages/d4/ed/40d091954d48abea037baae6be8fb79905e5f78d34d12ea955132c7d8011/chardet-7.4.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:cf1efeaf65a6ef2f5b9cc3a1df6f08ba2831b369ccaa4c7018eaf90aa757bb11", size = 872319, upload-time = "2026-04-13T21:33:34.427Z" }, + { url = "https://files.pythonhosted.org/packages/bb/77/82a46821dbfbdfe062710d2bf2ede13426304e3567a23c57d919c0c31630/chardet-7.4.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9f3504c139a2ad544077dd2d9e412cd08b01786843d76997cd43bb6de311723c", size = 892021, upload-time = "2026-04-13T21:33:35.766Z" }, + { url = "https://files.pythonhosted.org/packages/49/57/42d30c562bda5b4a839766c1aad8d5856b798ad2a1c3247b72a679afec94/chardet-7.4.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457f619882ba66327d4d8d14c6c342269bdb1e4e1c38e8117df941d14d351b04", size = 902509, upload-time = "2026-04-13T21:33:37.096Z" }, + { url = "https://files.pythonhosted.org/packages/8c/6c/0a40afdb50a0fe041ab95553b835a8160b6cf0e81edf2ae2fe9f5224cbf9/chardet-7.4.3-py3-none-any.whl", hash = "sha256:1173b74051570cf08099d7429d92e4882d375ad4217f92a6e5240ccfb26f231e", size = 626562, upload-time = "2026-04-13T21:33:38.559Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.4.8" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/56/10a88e00039537d74bd420f0457c52ab8f58a1af56126e3b9f1b1c8c4724/charset_normalizer-3.4.8.tar.gz", hash = "sha256:d9bf144d6faf12c70d58e47f7512992ae2882b820031d6cef68152deb645bf2d", size = 151790, upload-time = "2026-07-06T15:27:58.477Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/b5/7f10929c45e2d0d0dc78bead98458c271af3e028e66b16441de88829a8b7/charset_normalizer-3.4.8-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ca832d525a2a52542048111cb44e0dea595b9ad53ad542020aa770f308427b92", size = 316812, upload-time = "2026-07-06T15:25:58.71Z" }, + { url = "https://files.pythonhosted.org/packages/2a/b4/8e936a5e19d7e7b19db29aeed0988b481dc745eed3437829780f6ec98ce9/charset_normalizer-3.4.8-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ab07eb7b564635602734c3ef0e8d2db9d59cbbce54f5dc42b8f11aa1f56ce364", size = 213580, upload-time = "2026-07-06T15:26:00.121Z" }, + { url = "https://files.pythonhosted.org/packages/27/b8/dbc3b3c4796e4e29e193c5d7e100bb8ebfa66267994c01ba1eaaa3ebc474/charset_normalizer-3.4.8-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6e88da593ea098194ea08f58924b716a9ae0c39058edad8c5c9b0bafa39fbd56", size = 235244, upload-time = "2026-07-06T15:26:01.402Z" }, + { url = "https://files.pythonhosted.org/packages/93/22/808ff7eb8d344a174b89a388a4540fb86e486f608c16b9a2a023ddf6c9c6/charset_normalizer-3.4.8-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:8ca83574f63f71b485da1c50d4e17bcef7375a56b459a861562554f1fbaac1a4", size = 229678, upload-time = "2026-07-06T15:26:02.62Z" }, + { url = "https://files.pythonhosted.org/packages/c2/35/525d3e86af55a66073c02dbf9b6a720c74601489e4b4cb391cad0a4cb620/charset_normalizer-3.4.8-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9840cca6969a7e35498f1ce6fc32b7842500783d303b5ab254679a0f591093c4", size = 221015, upload-time = "2026-07-06T15:26:03.888Z" }, + { url = "https://files.pythonhosted.org/packages/e1/63/10f18541380f2d1c40ffda42835661aa9f88a1333e586d7b0f1d29869113/charset_normalizer-3.4.8-cp311-cp311-manylinux_2_31_armv7l.whl", hash = "sha256:ca8776b012d464136c239f51133120db94397bc69f3faee404ff8c99827f8192", size = 205002, upload-time = "2026-07-06T15:26:05.32Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/28168f20737bb7d7d40d29cb82d2084cb3a8c19a4e1fef18f07069a24338/charset_normalizer-3.4.8-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:23c40d25fe581d34ff0ef7ff1ca1527f5c51c5c6edf0b8384eeafac4a0438469", size = 217527, upload-time = "2026-07-06T15:26:06.47Z" }, + { url = "https://files.pythonhosted.org/packages/8a/41/bc39417675dcca7151be665ec20f4b1b25ff3486d8eb2f3d7662ebc56082/charset_normalizer-3.4.8-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6809e40a8876eb4742676fbbb57056c0344ef2555e5597d4343f0b365953afdd", size = 216538, upload-time = "2026-07-06T15:26:07.836Z" }, + { url = "https://files.pythonhosted.org/packages/76/7f/e322a4f060a32aa9510d3c76689be7d58c62653b09fe156912471e17a7bc/charset_normalizer-3.4.8-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:1bfd4bf262d6f26805cc6a32dae2554db66ef7533e6c62cc12644d3882be05e5", size = 206170, upload-time = "2026-07-06T15:26:09.269Z" }, + { url = "https://files.pythonhosted.org/packages/5d/64/07d0a02c401433ba18d57f55a96ffe7c701a11eac57c74bae0e1506cfa40/charset_normalizer-3.4.8-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9421549d803f0f712aa6e1496d15ff5ac510fc4c7104e7e299ea1d498d582d59", size = 222807, upload-time = "2026-07-06T15:26:10.476Z" }, + { url = "https://files.pythonhosted.org/packages/e1/84/2d132bdad9cadc3251bbad2813d29642c068855ad0394234f76845672100/charset_normalizer-3.4.8-cp311-cp311-win32.whl", hash = "sha256:9a2748f7588b0c1e5166db3a9448fe86e392479aded89b0c86382d41cade91a2", size = 150195, upload-time = "2026-07-06T15:26:11.654Z" }, + { url = "https://files.pythonhosted.org/packages/8d/5f/c46567479049f46929d8ed9e628990c2419f369c5ea5797add417808d37b/charset_normalizer-3.4.8-cp311-cp311-win_amd64.whl", hash = "sha256:2e9f0db12ea28a3349e514443fc56d4b1fb3c81d0f9c0e33dacfdfc2ac63f774", size = 161151, upload-time = "2026-07-06T15:26:13.111Z" }, + { url = "https://files.pythonhosted.org/packages/d1/ac/39a8bc03f7550f86f8c43205f2c97bc3a4cea775e5a0c0317917679cdef5/charset_normalizer-3.4.8-cp311-cp311-win_arm64.whl", hash = "sha256:4b1f25c6e376033f31463d66f8bb01ae77a128ca11c6677c69ed8e9ce913bbf9", size = 152392, upload-time = "2026-07-06T15:26:14.335Z" }, + { url = "https://files.pythonhosted.org/packages/59/c2/39de60ef5687662f467bed3d1e6944c67a4f0d057141d0404002b8f405ae/charset_normalizer-3.4.8-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:faac37c4904598daa00cb4c9b32f3b4cc814fb5f145d7a531ceb4a70f2114132", size = 319040, upload-time = "2026-07-06T15:26:15.854Z" }, + { url = "https://files.pythonhosted.org/packages/a7/57/a9474c3aeaa337c8a330c0dc5df266527d56da3b189c029529f6b08af2a4/charset_normalizer-3.4.8-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f191c19a32dc6cec0fb8079789d786254653a9ce906fcab04ccd2eed07bba233", size = 215541, upload-time = "2026-07-06T15:26:17.265Z" }, + { url = "https://files.pythonhosted.org/packages/13/a9/be1ff7e81f6e086dced2a7a7a28b789be351d9796084ccaf6136a4ffafb3/charset_normalizer-3.4.8-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:05811b76943d477bb90822dedb5c4565cef70148847a59d574e2b35043aeb563", size = 236913, upload-time = "2026-07-06T15:26:18.482Z" }, + { url = "https://files.pythonhosted.org/packages/8f/75/d8c5eae93da26d463f9ebe46a4937ca44434dc2937a565b92437befb3d94/charset_normalizer-3.4.8-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:3868a3e4ec1e40b419e060d063f93eac6f046fa21426c4816421223ae7dc8ab8", size = 232815, upload-time = "2026-07-06T15:26:19.734Z" }, + { url = "https://files.pythonhosted.org/packages/27/0d/98e301ca944bcca5e6bc312406b579c8a6d81546c1b494afb3a9478495d6/charset_normalizer-3.4.8-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:25f93d194eb6264c64416cabff46a91f6d99b97e7525a1b4f35c77a99e75cc68", size = 223995, upload-time = "2026-07-06T15:26:20.931Z" }, + { url = "https://files.pythonhosted.org/packages/fa/df/f5222366b76dcb31453a9bd922610c893540d0e729fd390439b0d3e972ee/charset_normalizer-3.4.8-cp312-cp312-manylinux_2_31_armv7l.whl", hash = "sha256:ee6a62492f18d432cca031fabd158f400a8c25bf7b9458f50953393a2a23d97a", size = 208522, upload-time = "2026-07-06T15:26:22.214Z" }, + { url = "https://files.pythonhosted.org/packages/74/52/293220d59d8ddfb8aa56836b33bd6df58e70795d8a102a858c2984480f00/charset_normalizer-3.4.8-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1c16cb4fc35e4b064f5ee78d849f15a550ada1729c3372916672e38f1f01d1d4", size = 219660, upload-time = "2026-07-06T15:26:23.493Z" }, + { url = "https://files.pythonhosted.org/packages/c3/2c/81a298e66f3d01e61bfc6f7064bbb553b067a9f1d979e5962bf00733069b/charset_normalizer-3.4.8-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2fbd0edb0426ab28e70fac9d1d4ef549eb5a64a2521f0428c441d75e4387e6c2", size = 218230, upload-time = "2026-07-06T15:26:24.629Z" }, + { url = "https://files.pythonhosted.org/packages/0d/45/f1dd2328cbc3340705f82072c09bd4c68d6e079191cde05810c1eac77eee/charset_normalizer-3.4.8-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ccb9052771216170015f810b88065fd9e13b1e0b391f92abb9b47e0919a42aad", size = 210006, upload-time = "2026-07-06T15:26:25.837Z" }, + { url = "https://files.pythonhosted.org/packages/38/63/28697000620e117eb413424caaf60b6f98ddb1b09b2c11f7c0038d9936a7/charset_normalizer-3.4.8-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3809ba5d3cd02aca0894597f2669a825bdfe2229061515c128b0f4e5533b4ab5", size = 225771, upload-time = "2026-07-06T15:26:27.079Z" }, + { url = "https://files.pythonhosted.org/packages/12/a7/d5844e315f5f35e7938c415f07a1df144eed1cf993f1b43cc16c980c5b46/charset_normalizer-3.4.8-cp312-cp312-win32.whl", hash = "sha256:de63c31666a049f653ada24e800192e3c019e96bc7d70fb449a000bccf26a36f", size = 150922, upload-time = "2026-07-06T15:26:28.514Z" }, + { url = "https://files.pythonhosted.org/packages/9b/82/eb8b72f184b1e4986dd9daec15d7f6d9285a6728d2b07b7f04656829f473/charset_normalizer-3.4.8-cp312-cp312-win_amd64.whl", hash = "sha256:14a4bbe066f3fb05c6ba70e9cf9d34614b57a2fd70ea8c27cc30f34155e16a58", size = 162294, upload-time = "2026-07-06T15:26:29.745Z" }, + { url = "https://files.pythonhosted.org/packages/09/5a/ab810134aa41034a08ffe94c058102016e6ad9bce62f3cdba547b4723385/charset_normalizer-3.4.8-cp312-cp312-win_arm64.whl", hash = "sha256:2b5b0c0dca0a02c3f816f89abf18af3d20416dedbc3d3aa5f3981045f88ae7b0", size = 152409, upload-time = "2026-07-06T15:26:31.034Z" }, + { url = "https://files.pythonhosted.org/packages/11/49/fe5a8572a70cd9cba79f80af9388ac8c5c914ed4459b956f940244e499a5/charset_normalizer-3.4.8-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:057f8609f7341618c98e5aa9a6109fa116acff2a658497d47ab3325b5e8f2b08", size = 317424, upload-time = "2026-07-06T15:26:32.23Z" }, + { url = "https://files.pythonhosted.org/packages/e5/59/d71c96616b6825425a876f79f38fa440db30b32cc1166179a839f6259150/charset_normalizer-3.4.8-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c591f9a82adc5b89a039b90df74e43de2b9177fb46771172bed7b80722a70db0", size = 214723, upload-time = "2026-07-06T15:26:33.635Z" }, + { url = "https://files.pythonhosted.org/packages/c6/35/dc9eeb297f19b7b6ada39709ccb74937e6c51f0947958ae601a977cedd5d/charset_normalizer-3.4.8-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5b56f449132d9adefe55b87635d05177a914ed5d070438a74725e1d77a280002", size = 236200, upload-time = "2026-07-06T15:26:34.99Z" }, + { url = "https://files.pythonhosted.org/packages/0a/37/6775fe852b4acad8bf7e0575fbe8aa9f41b546e33251acbded3c04a6b0d9/charset_normalizer-3.4.8-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1004c3b5831a301dadfb9e916f38e78e2ff3e08db24a1ad7c354db8ee3dea9c3", size = 231740, upload-time = "2026-07-06T15:26:36.498Z" }, + { url = "https://files.pythonhosted.org/packages/e4/28/1bcc3f5f3bac81532384adcfcdd9362c7f46a188a19deacc1ddaf7bdaa00/charset_normalizer-3.4.8-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:60883e22821d17c9e5b4f3ca1ef8074f766e3db28791f851b665929c515635c0", size = 222888, upload-time = "2026-07-06T15:26:38.161Z" }, + { url = "https://files.pythonhosted.org/packages/47/81/9f3993ca62ef090c58059da641e49e3129e74700a6a3beb58436cdb8d4b9/charset_normalizer-3.4.8-cp313-cp313-manylinux_2_31_armv7l.whl", hash = "sha256:21e4dbb942c8a6342e2685f232dd2a7bc73465697bd26ead4f118271d28be383", size = 207649, upload-time = "2026-07-06T15:26:39.628Z" }, + { url = "https://files.pythonhosted.org/packages/11/f4/679f636bcbdc2d53d06b1f4039be310450dca95a9f76bbf22f09985556e8/charset_normalizer-3.4.8-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:84bcae14c65e645ca66b661339183d32b8c846a17c96e3e81ab3d346e1c498d4", size = 218908, upload-time = "2026-07-06T15:26:40.911Z" }, + { url = "https://files.pythonhosted.org/packages/7e/44/96e8c81867ba8a45ff893c8e7474c2d6b9633f7aa663da7901d040214d3e/charset_normalizer-3.4.8-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:b4e4d44b8287aa13a25e16e29393d494b0643b24894f7c8266c6f6788dd36337", size = 217096, upload-time = "2026-07-06T15:26:42.148Z" }, + { url = "https://files.pythonhosted.org/packages/a5/bf/4d53f04f29bdb22601701f4f9f4d038edfb27976c296fcb7400c02736a6e/charset_normalizer-3.4.8-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:f68545d1b267dbfafd5d253b6d1cb161562c4e61ab25b5c4cdb7d9e5923e441e", size = 209355, upload-time = "2026-07-06T15:26:43.557Z" }, + { url = "https://files.pythonhosted.org/packages/ad/60/92b3f630798d777fa880ad289a3f9f2fc663e4b4beb24783c53318820254/charset_normalizer-3.4.8-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1936e48214adea74922a20c8ab41b1393ae27cc9e329eb1f0b937d3416824f36", size = 224732, upload-time = "2026-07-06T15:26:44.892Z" }, + { url = "https://files.pythonhosted.org/packages/bd/85/eafa0a3c7bb6fe9f02f4c7901f02071933cac85ee634197e17280818c6de/charset_normalizer-3.4.8-cp313-cp313-win32.whl", hash = "sha256:1f8e3521860187d597f3867d8466da225b9179ea2833bb26de1bb026144d07c3", size = 150358, upload-time = "2026-07-06T15:26:46.153Z" }, + { url = "https://files.pythonhosted.org/packages/f5/8c/879fafff7b47bb1166d289f2d2472cb31b9922f9f4ca1f392edf85ec16be/charset_normalizer-3.4.8-cp313-cp313-win_amd64.whl", hash = "sha256:8b654b6f52a0a9a6be38e88f3e1dc68f1093ebeb2abbadafc7c82da0786a34be", size = 161685, upload-time = "2026-07-06T15:26:47.423Z" }, + { url = "https://files.pythonhosted.org/packages/c3/46/b57c7e778a7b578f28d35fd38544687d4f8d9c019585eebc5ad936073fad/charset_normalizer-3.4.8-cp313-cp313-win_arm64.whl", hash = "sha256:d2d5a250ee26e29468b7607d97479221b069fa8aaf6f929ac84ec0e962e15154", size = 152333, upload-time = "2026-07-06T15:26:48.689Z" }, + { url = "https://files.pythonhosted.org/packages/1c/bc/0a8540b8cd494951cca1428606373942803f5ffcec40fe798f819c5a8adb/charset_normalizer-3.4.8-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:77e993ecf65f21ab1f82266ff5e84a7de2c879e7d9b8bc006009df83f22a1d5e", size = 316993, upload-time = "2026-07-06T15:26:49.962Z" }, + { url = "https://files.pythonhosted.org/packages/0e/99/a0868f0a1f0a045fd374d1f2cf7042d8ad5d7fb4dd1f4ac7365e319f7e32/charset_normalizer-3.4.8-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:524939917f17f6de502dfda30b472550965740d7f126659d4c4f8dd1569cce22", size = 215638, upload-time = "2026-07-06T15:26:51.338Z" }, + { url = "https://files.pythonhosted.org/packages/e8/e9/43c4d09a09b5557cc5fe1d87c9d96f86a3942aec0517d2b5408cef87ca75/charset_normalizer-3.4.8-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a4508989ba8e2ce43ef989453d18188b261546e8188cbdd4ef451fb9e4c3b467", size = 236456, upload-time = "2026-07-06T15:26:52.531Z" }, + { url = "https://files.pythonhosted.org/packages/e2/67/492ca98b3ab785b736b5da10c1bc233e1c8fec6c0cdb29b482c38bfc52a2/charset_normalizer-3.4.8-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:9e44127f7d11eee4548ad2cdf1f4e1b6eaaddd5cb92d15ad65f6ecc9bcf403ab", size = 232253, upload-time = "2026-07-06T15:26:53.838Z" }, + { url = "https://files.pythonhosted.org/packages/2d/fd/1e6eff58c14f1aace1e26d80defbeaea2d35e075dbe4b611111ee4b47fa8/charset_normalizer-3.4.8-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bb90317359f7e67bb6df615999a95e0980877468e617ddce8b6c2f8e7fe60d95", size = 222886, upload-time = "2026-07-06T15:26:55.009Z" }, + { url = "https://files.pythonhosted.org/packages/40/7a/90056a5326b0c4b9a3f924d337729c344c11542e5bc7191e50410db61587/charset_normalizer-3.4.8-cp314-cp314-manylinux_2_31_armv7l.whl", hash = "sha256:35d9e7a9c960520ae89d1f4e305d1c047a74dea2e0f73a0e84f879356c2e8776", size = 206482, upload-time = "2026-07-06T15:26:56.306Z" }, + { url = "https://files.pythonhosted.org/packages/18/ff/94761d31a33878dbb5008ddbd918615061fcf5c0a612aa3075450e60f628/charset_normalizer-3.4.8-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:92e322b054c7ff886f78feab7360736bb45de2e18cf4a0ee84e8fc5a08d53a19", size = 218929, upload-time = "2026-07-06T15:26:57.422Z" }, + { url = "https://files.pythonhosted.org/packages/2b/dc/00b9675acd7c4b926b9102ee3f0d1a570ce943901be73b87485001393fe1/charset_normalizer-3.4.8-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:3c0086d97094363556206dc3bcf43f7edcfc043ea7a568a46f45efea74858bd1", size = 218069, upload-time = "2026-07-06T15:26:58.719Z" }, + { url = "https://files.pythonhosted.org/packages/04/11/94ada5a0482ee4bf688d04be4c7d6fd945d37370d04a95671040dfe2b416/charset_normalizer-3.4.8-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:0752c849b51198267df2aba013c4de3a2955bd014a4fd70828809946c1acbc0c", size = 207146, upload-time = "2026-07-06T15:27:00.058Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f7/246bd36762207ab4752cd436b64e5d81a1668b15ddea7b5b2d0e8545e727/charset_normalizer-3.4.8-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2a4707e09eca11e81ece4fced600c5a0a801f568b962244f6f517bc274745fc9", size = 224896, upload-time = "2026-07-06T15:27:01.599Z" }, + { url = "https://files.pythonhosted.org/packages/6f/f7/3510622d1fbe13b0ebf827c475e40a27e2be427140d792878b63ab6425cc/charset_normalizer-3.4.8-cp314-cp314-win32.whl", hash = "sha256:8ea67f427c073ae3da0923aa55f3715131fa613a61a7f2f8d762bde75eaf00ae", size = 150851, upload-time = "2026-07-06T15:27:02.964Z" }, + { url = "https://files.pythonhosted.org/packages/32/2b/9ce65dd21672b55cf800cca5f4433afa1586fda1d78731067ec9ec544c62/charset_normalizer-3.4.8-cp314-cp314-win_amd64.whl", hash = "sha256:ff71018850863362e5c7533769d0a9f77715c31af1502d523630ce822922f5c9", size = 162549, upload-time = "2026-07-06T15:27:04.249Z" }, + { url = "https://files.pythonhosted.org/packages/2f/34/9a5967eed666a88f31a0866884606d9ec3c2cd6091e2ccd7e0b4c4176c35/charset_normalizer-3.4.8-cp314-cp314-win_arm64.whl", hash = "sha256:44464e66f4da2f21dea7145c7693f9f60717ca4794a954dea5bf8c2c932678bd", size = 153079, upload-time = "2026-07-06T15:27:05.608Z" }, + { url = "https://files.pythonhosted.org/packages/02/4f/aa44cc81d8987f105352c74c0bf919007f8b80e9880d28bcf0393c1a816e/charset_normalizer-3.4.8-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:50a0c2e58ad2c203adb616fef28941b7e13716adbc25e0dfaeec29f5afe6382f", size = 338586, upload-time = "2026-07-06T15:27:06.86Z" }, + { url = "https://files.pythonhosted.org/packages/1d/2b/b0392e2b235c08ff0623d905c2ee8ac820620544043c1ce92ce0b3d64c55/charset_normalizer-3.4.8-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:8a1e589fdb95c76f08288bbb346230cdd8994db74903db6637b380f7b5fc9336", size = 222764, upload-time = "2026-07-06T15:27:08.23Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a1/7d466879190731f5559662c22232646f2ae2dace2323c3e5aefcf78d458a/charset_normalizer-3.4.8-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:b3d7c887444c5a7ef0d68d358d81e758a850bc626f8e639e2ca5667153272b20", size = 241331, upload-time = "2026-07-06T15:27:09.512Z" }, + { url = "https://files.pythonhosted.org/packages/70/17/8b89e797137aa28c8fb0bafbafc243246a7afe21620a13b00e37624ece1d/charset_normalizer-3.4.8-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:65c389b96c0cfff3a3f0458fa1c7ce554a30e23101a88a49f03997afce6a929f", size = 239323, upload-time = "2026-07-06T15:27:10.86Z" }, + { url = "https://files.pythonhosted.org/packages/d7/98/1c1940730ed22d50983be4e243c722c89d5136d6f073bd840d1128bfddcb/charset_normalizer-3.4.8-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:593403fc47dcdf55e2987b2e3cc2e064127e2b908929f1f18b2e4a4652cbd780", size = 229964, upload-time = "2026-07-06T15:27:12.113Z" }, + { url = "https://files.pythonhosted.org/packages/53/2d/bb8e81b7ff603d3f77e9a8a5d1ad34fcabbf3c54d300c29d99fba581fa23/charset_normalizer-3.4.8-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:606088e9fa2b7469ab9c42d4da8e05a415622a07714edd2fcd8fed48dda4c853", size = 212405, upload-time = "2026-07-06T15:27:13.447Z" }, + { url = "https://files.pythonhosted.org/packages/ce/1f/e52a3a53b13da591bb8f21d29e63877268eadf20686b7762351d4b89062c/charset_normalizer-3.4.8-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:0317406326fed512f42a1632ad91a96228a7616c06547666a6dd79967f1bd6ca", size = 226918, upload-time = "2026-07-06T15:27:14.89Z" }, + { url = "https://files.pythonhosted.org/packages/e8/f9/32996d79c57189af9722fe618f46d8a86b7be035ca98887b8d0c3821f141/charset_normalizer-3.4.8-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:b67d50ee47e5c57a0064a9cb575b963a7125819dfd1fd094d44d378fff94659b", size = 225113, upload-time = "2026-07-06T15:27:16.125Z" }, + { url = "https://files.pythonhosted.org/packages/d6/d2/9248c18e695696513774523a794cfb8b677521ce9ad7554d301cb10a9b20/charset_normalizer-3.4.8-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:79e402b869f270140afa5e2b0e2ac100585358d812fe3dd093d424f7a72964e0", size = 214966, upload-time = "2026-07-06T15:27:17.418Z" }, + { url = "https://files.pythonhosted.org/packages/1e/9d/4b19432d406179a40f924691906ee5b15ac664b408971c973295192444ea/charset_normalizer-3.4.8-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:2970b9f7ab69ec3a0423ec6b6ac718e79fbf4a282c0bc103ef88c1ef50dfa15a", size = 231699, upload-time = "2026-07-06T15:27:19.131Z" }, + { url = "https://files.pythonhosted.org/packages/be/41/bdbdf71e8c3ccff10ef3cc2bb9467a7fdb3dc94b9a406d1a3c44afd39632/charset_normalizer-3.4.8-cp314-cp314t-win32.whl", hash = "sha256:458c2972a78043b7261c9726670029f15f722e70669bcbe961153a01968f589f", size = 155333, upload-time = "2026-07-06T15:27:20.681Z" }, + { url = "https://files.pythonhosted.org/packages/bd/f8/e05c69323bd50091ec39f5f885385b884624b0131a6885a0c83a6217ba7a/charset_normalizer-3.4.8-cp314-cp314t-win_amd64.whl", hash = "sha256:0c926329a1df7cd56d7d8349fe354460d20aefd2e394c9e159e479d018b2b359", size = 167378, upload-time = "2026-07-06T15:27:22.042Z" }, + { url = "https://files.pythonhosted.org/packages/c2/04/cbaf1a2f5e2bbf70760e774380cbf052b10849fc35e770905df31af5cf00/charset_normalizer-3.4.8-cp314-cp314t-win_arm64.whl", hash = "sha256:2232baea80a2b01783679fed4e625ccdb19a974f44c9cf0fba21a777a4c8179c", size = 157782, upload-time = "2026-07-06T15:27:23.312Z" }, + { url = "https://files.pythonhosted.org/packages/23/52/d5bee5b6ea81882d549b566d2545b044bbcbc33fe5fbe001008a7e745a21/charset_normalizer-3.4.8-py3-none-any.whl", hash = "sha256:b7c1fb310df524e01fbe84d43b7f95aa4f808f8eaa0dafc185f64ba395e37d54", size = 64279, upload-time = "2026-07-06T15:27:57.043Z" }, +] + +[[package]] +name = "click" +version = "8.1.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593, upload-time = "2024-12-21T18:38:44.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188, upload-time = "2024-12-21T18:38:41.666Z" }, +] + +[[package]] +name = "click-didyoumean" +version = "0.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/30/ce/217289b77c590ea1e7c24242d9ddd6e249e52c795ff10fac2c50062c48cb/click_didyoumean-0.3.1.tar.gz", hash = "sha256:4f82fdff0dbe64ef8ab2279bd6aa3f6a99c3b28c05aa09cbfc07c9d7fbb5a463", size = 3089, upload-time = "2024-03-24T08:22:07.499Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1b/5b/974430b5ffdb7a4f1941d13d83c64a0395114503cc357c6b9ae4ce5047ed/click_didyoumean-0.3.1-py3-none-any.whl", hash = "sha256:5c4bb6007cfea5f2fd6583a2fb6701a22a41eb98957e63d0fac41c10e7c3117c", size = 3631, upload-time = "2024-03-24T08:22:06.356Z" }, +] + +[[package]] +name = "click-plugins" +version = "1.1.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/a4/34847b59150da33690a36da3681d6bbc2ec14ee9a846bc30a6746e5984e4/click_plugins-1.1.1.2.tar.gz", hash = "sha256:d7af3984a99d243c131aa1a828331e7630f4a88a9741fd05c927b204bcf92261", size = 8343, upload-time = "2025-06-25T00:47:37.555Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3d/9a/2abecb28ae875e39c8cad711eb1186d8d14eab564705325e77e4e6ab9ae5/click_plugins-1.1.1.2-py2.py3-none-any.whl", hash = "sha256:008d65743833ffc1f5417bf0e78e8d2c23aab04d9745ba817bd3e71b0feb6aa6", size = 11051, upload-time = "2025-06-25T00:47:36.731Z" }, +] + +[[package]] +name = "click-repl" +version = "0.3.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "prompt-toolkit" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/cb/a2/57f4ac79838cfae6912f997b4d1a64a858fb0c86d7fcaae6f7b58d267fca/click-repl-0.3.0.tar.gz", hash = "sha256:17849c23dba3d667247dc4defe1757fff98694e90fe37474f3feebb69ced26a9", size = 10449, upload-time = "2023-06-15T12:43:51.141Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/40/9d857001228658f0d59e97ebd4c346fe73e138c6de1bce61dc568a57c7f8/click_repl-0.3.0-py3-none-any.whl", hash = "sha256:fb7e06deb8da8de86180a33a9da97ac316751c094c6899382da7feeeeb51b812", size = 10289, upload-time = "2023-06-15T12:43:48.626Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "coverage" +version = "7.4.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bf/d5/f809d8b630cf4c11fe490e20037a343d12a74ec2783c6cdb5aee725e7137/coverage-7.4.4.tar.gz", hash = "sha256:c901df83d097649e257e803be22592aedfd5182f07b3cc87d640bbb9afd50f49", size = 783727, upload-time = "2024-03-14T19:11:17.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/26/e9bd37635e0e0343f41394e715725982de8811a1229ace1b3e94c9e47b86/coverage-7.4.4-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:0f9f50e7ef2a71e2fae92774c99170eb8304e3fdf9c8c3c7ae9bab3e7229c5cf", size = 206305, upload-time = "2024-03-14T19:09:35.936Z" }, + { url = "https://files.pythonhosted.org/packages/ec/1b/0c493f14813e9518ae71b8bd3061af63a332b41e6fee983996a7b90deb07/coverage-7.4.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:623512f8ba53c422fcfb2ce68362c97945095b864cda94a92edbaf5994201083", size = 206574, upload-time = "2024-03-14T19:09:39.003Z" }, + { url = "https://files.pythonhosted.org/packages/64/9b/d0a8c02209f17549ce2283829b7be2b4eaef8bc7c7e0d8016774e73d54c0/coverage-7.4.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0513b9508b93da4e1716744ef6ebc507aff016ba115ffe8ecff744d1322a7b63", size = 238036, upload-time = "2024-03-14T19:09:41.129Z" }, + { url = "https://files.pythonhosted.org/packages/0f/86/d5d971283ef625391595d79321d3f9bef09dcaa0537db665fb0d4f445c7d/coverage-7.4.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40209e141059b9370a2657c9b15607815359ab3ef9918f0196b6fccce8d3230f", size = 235610, upload-time = "2024-03-14T19:09:43.097Z" }, + { url = "https://files.pythonhosted.org/packages/ab/1c/f8fefae78482f1998f7a9d68419b22089b5ce69a7e0fa0035827d2ce2206/coverage-7.4.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a2b2b78c78293782fd3767d53e6474582f62443d0504b1554370bde86cc8227", size = 237314, upload-time = "2024-03-14T19:09:45.809Z" }, + { url = "https://files.pythonhosted.org/packages/5e/7c/d700521aafd6a23a61b5eb60db2f42a2306e494b3097030fcf400ce768a3/coverage-7.4.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:73bfb9c09951125d06ee473bed216e2c3742f530fc5acc1383883125de76d9cd", size = 246411, upload-time = "2024-03-14T19:09:47.992Z" }, + { url = "https://files.pythonhosted.org/packages/95/44/c3f2e14450239fcdaff38e66a165f4aa8ac3a0753d1db33321c692558a15/coverage-7.4.4-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:1f384c3cc76aeedce208643697fb3e8437604b512255de6d18dae3f27655a384", size = 244786, upload-time = "2024-03-14T19:09:50.223Z" }, + { url = "https://files.pythonhosted.org/packages/f4/ce/98e90709f9879d5834d04b49b86736118a78d848a9162333aa659c6442a7/coverage-7.4.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:54eb8d1bf7cacfbf2a3186019bcf01d11c666bd495ed18717162f7eb1e9dd00b", size = 245869, upload-time = "2024-03-14T19:09:52.3Z" }, + { url = "https://files.pythonhosted.org/packages/a8/79/9dceb3847177d3bed1df3dd25a7672cc634369bc3cb6d2eed57ed6366a86/coverage-7.4.4-cp311-cp311-win32.whl", hash = "sha256:cac99918c7bba15302a2d81f0312c08054a3359eaa1929c7e4b26ebe41e9b286", size = 208337, upload-time = "2024-03-14T19:09:54.419Z" }, + { url = "https://files.pythonhosted.org/packages/d0/b2/994e08535fcc094df65c00440d71a05133cc8dc0c371eecf84bbb58154f0/coverage-7.4.4-cp311-cp311-win_amd64.whl", hash = "sha256:b14706df8b2de49869ae03a5ccbc211f4041750cd4a66f698df89d44f4bd30ec", size = 209273, upload-time = "2024-03-14T19:09:56.78Z" }, + { url = "https://files.pythonhosted.org/packages/a0/de/a54b245e781bfd6f3fd7ce5566a695686b5c25ee7c743f514e7634428972/coverage-7.4.4-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:201bef2eea65e0e9c56343115ba3814e896afe6d36ffd37bab783261db430f76", size = 206409, upload-time = "2024-03-14T19:09:59.428Z" }, + { url = "https://files.pythonhosted.org/packages/88/92/07f9c593cd27e3c595b8cb83b95adad8c9ba3d611debceed097a5fd6be4b/coverage-7.4.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:41c9c5f3de16b903b610d09650e5e27adbfa7f500302718c9ffd1c12cf9d6818", size = 206568, upload-time = "2024-03-14T19:10:01.887Z" }, + { url = "https://files.pythonhosted.org/packages/41/6d/e142c823e5d4b24481f990da4cf9d2d577a6f4e1fb6faf39d9a4e42b1d43/coverage-7.4.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d898fe162d26929b5960e4e138651f7427048e72c853607f2b200909794ed978", size = 238920, upload-time = "2024-03-14T19:10:04.56Z" }, + { url = "https://files.pythonhosted.org/packages/30/1a/105f0139df6a2adbcaa0c110711a46dbd9f59e93a09ca15a97d59c2564f2/coverage-7.4.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:3ea79bb50e805cd6ac058dfa3b5c8f6c040cb87fe83de10845857f5535d1db70", size = 236288, upload-time = "2024-03-14T19:10:07.448Z" }, + { url = "https://files.pythonhosted.org/packages/98/79/185cb42910b6a2b2851980407c8445ac0da0750dff65e420e86f973c8396/coverage-7.4.4-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce4b94265ca988c3f8e479e741693d143026632672e3ff924f25fab50518dd51", size = 238223, upload-time = "2024-03-14T19:10:10.055Z" }, + { url = "https://files.pythonhosted.org/packages/92/12/2303d1c543a11ea060dbc7144ed3174fc09107b5dd333649415c95ede58b/coverage-7.4.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00838a35b882694afda09f85e469c96367daa3f3f2b097d846a7216993d37f4c", size = 245161, upload-time = "2024-03-14T19:10:12.27Z" }, + { url = "https://files.pythonhosted.org/packages/96/5a/7d0e945c4759fe9d19aad1679dd3096aeb4cb9fcf0062fe24554dc4787b8/coverage-7.4.4-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:fdfafb32984684eb03c2d83e1e51f64f0906b11e64482df3c5db936ce3839d48", size = 243066, upload-time = "2024-03-14T19:10:14.212Z" }, + { url = "https://files.pythonhosted.org/packages/f4/1b/79cdb7b11bbbd6540a536ac79412904b5c1f8903d5c1330084212afa8ceb/coverage-7.4.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:69eb372f7e2ece89f14751fbcbe470295d73ed41ecd37ca36ed2eb47512a6ab9", size = 244805, upload-time = "2024-03-14T19:10:16.343Z" }, + { url = "https://files.pythonhosted.org/packages/af/7f/54dc676e7e63549838a3a7b95a8e11df80441bf7d64c6ce8f1cdbc0d1ff0/coverage-7.4.4-cp312-cp312-win32.whl", hash = "sha256:137eb07173141545e07403cca94ab625cc1cc6bc4c1e97b6e3846270e7e1fea0", size = 208590, upload-time = "2024-03-14T19:10:18.615Z" }, + { url = "https://files.pythonhosted.org/packages/46/c4/1dfe76d96034a347d717a2392b004d42d45934cb94efa362ad41ca871f6e/coverage-7.4.4-cp312-cp312-win_amd64.whl", hash = "sha256:d71eec7d83298f1af3326ce0ff1d0ea83c7cb98f72b577097f9083b20bdaf05e", size = 209415, upload-time = "2024-03-14T19:10:20.722Z" }, +] + +[package.optional-dependencies] +toml = [ + { name = "tomli", marker = "python_full_version <= '3.11'" }, +] + +[[package]] +name = "cryptography" +version = "49.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/99/d1c90d6041656cc6ee229dc99cd67fd0cd5aec3c5f7d72fffc27cc750054/cryptography-49.0.0.tar.gz", hash = "sha256:f89660a348f4f78a92366240a61404e337586ef7f5909a2fef59ca88ef505493", size = 854345, upload-time = "2026-06-12T20:02:30.512Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/09/41/3797cfaf69cae04a13ee78ebd83f0678d9c02b4779d21ce24445326f1a69/cryptography-49.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36d1709f992593689b45bda411498d62c6e365f2ca00b84657d4dadd24de16db", size = 4692978, upload-time = "2026-06-12T20:01:21.305Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8b/43011f7ebe515a8aa20d61f290a326cd890c2e738e16e59eaff8d9c3a412/cryptography-49.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0e959b578856a3924bc0cbb710fc12c387b9412a951389f3ca61704a9e25f325", size = 4716422, upload-time = "2026-06-12T20:01:48.566Z" }, + { url = "https://files.pythonhosted.org/packages/4a/91/01ce7303a4579e6d3a6abef01bd322848e9ea7a219adcabc5048b9033571/cryptography-49.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:53ecee2e23f7169b6117e99fc8a944e5e50f79e69758a83b52a00cb98ab2b2d2", size = 4700503, upload-time = "2026-06-12T20:02:47.091Z" }, + { url = "https://files.pythonhosted.org/packages/62/99/a2c95cf8293f07491e9e27c20cc4dcd18176d944e674679adeb1d0173fd6/cryptography-49.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:2eda353d8a27bcbcaa4cbed18994a74ab4d19a2ca897db188ea269ab9b71419b", size = 5309779, upload-time = "2026-06-12T20:02:08.987Z" }, + { url = "https://files.pythonhosted.org/packages/20/2c/0622f20ff02b2ef32558733443805dc82fd4c275be01b2d19d14676f3a1b/cryptography-49.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2afe9051da7ae7bd5905da5a949280c7d2bb75682e188f650a9d0f2756b834c6", size = 4749683, upload-time = "2026-06-12T20:02:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/a3/5b/c5246635d5fd3b64e0d45ae10e99fd32fe9676a79915ccfe5a61ba9af1a5/cryptography-49.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:0b82e28ee398a386f0807bba7884d30f25218855690f45115831bcce5d90822c", size = 4337874, upload-time = "2026-06-12T20:02:54.323Z" }, + { url = "https://files.pythonhosted.org/packages/6d/88/05563c7fe2e914e87d1a536d06fe83e66b4e1d95cb593e05aea375531da8/cryptography-49.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ccac2bfebc306b862133e3bb71f3f6ee8bb525240089b2d952e4144b3a6d5da7", size = 4700283, upload-time = "2026-06-12T20:01:34.822Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b6/d7696e4e890d6ae1469935164c9e5215c557671cb78d6e3f458ccceaa632/cryptography-49.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:d0527ce944105f257f605a827d6ebead966c752038b6e8656abb9c5edee6fc68", size = 5265844, upload-time = "2026-06-12T20:01:24.09Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3c/f3ad17eecc1a57b0ba236dc01f90e783c51f4a2f35f64777cc4f47a184b2/cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:cbc77da8c523d5abd028635ba850a6966fcee2c82e2bf65a41d1d8afe0f98be9", size = 4749290, upload-time = "2026-06-12T20:01:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/4f/01/339573cf1023163a400b0b5d16f6d507de413b9f60be6fd1b77feeaf6737/cryptography-49.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b87e65d263b3e5d3bb92a57e2a6638e2f31110fa7aa890c7b2dbba42248d0a3f", size = 4834612, upload-time = "2026-06-12T20:01:29.246Z" }, + { url = "https://files.pythonhosted.org/packages/71/fd/577302e213a1be9468f92d1afef66fcf1ef83d516819d9992ca547f592bd/cryptography-49.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:66ec79c3904820572d7e987abdf304281f141d37ad9a489b8e97066e7b9b6459", size = 4980804, upload-time = "2026-06-12T20:01:42.853Z" }, + { url = "https://files.pythonhosted.org/packages/86/12/c48a424f38db03027be9f7ed5c7dc5de9933dbee992865f98b13727a009d/cryptography-49.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:196ecd6a36e4e9aa10270393bb98d8df88fccee0bf1e5128b91ae4eb4375896d", size = 4678835, upload-time = "2026-06-12T20:02:48.743Z" }, + { url = "https://files.pythonhosted.org/packages/68/28/8a3ad4653662c93fc44dc4e5d8fd374c25c42e07b34bbfbadf49cf57a5a8/cryptography-49.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7abcee80084cda3f7691f3eb1ce480d8df49cec637b429aa35986c1de71738aa", size = 4697239, upload-time = "2026-06-12T20:02:56.03Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b2/2193fc74f81aee4f9b62733133b73b5176718932ed8f2e4b03fa040480a6/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:4ae387c9cb68ea569ca17e490d66d8142b81c3cc814bf179974b7d146e490bbb", size = 4685593, upload-time = "2026-06-12T20:02:50.666Z" }, + { url = "https://files.pythonhosted.org/packages/47/f1/1d3eaa243bfc5de4a187b22aa8c048b3e4980bfbe830ac46e6bac2e66947/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:f37d847238971164fdbc68ade6f6574aecc9c0af714190e2083429ff68f4ce9d", size = 5289961, upload-time = "2026-06-12T20:01:46.468Z" }, + { url = "https://files.pythonhosted.org/packages/58/39/2d51306721330c486495853eda1c567880ff036de15a14c4b74f399934af/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:c2bc30226390d60ea19d9f82b19db005fe0452154a23c1c410c12ea801e43561", size = 4731145, upload-time = "2026-06-12T20:02:16.832Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/983e838c7fd0d87fd8c969bcdd328edaf5f756e38df5281637424c155873/cryptography-49.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:07cab27cc7b7e0fd28e5e26bb9eeedde5c135c868b46de4a27845abe94af6122", size = 4321719, upload-time = "2026-06-12T20:02:52.611Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f5/8f571d7e27c55bce9f76f026143bcb1e040a4233149ecca0bea5fa5dd5f7/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:b20133d204d2bb56ba047642199603876c872026ca53e79c35b83772ab2cc505", size = 4685209, upload-time = "2026-06-12T20:02:07.282Z" }, + { url = "https://files.pythonhosted.org/packages/e7/84/0e27016a6fc5a0886f797018b26aa42f40c09a82332bff77822a451deaaa/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b970c6da94d5bb18629db453d14f2a1300f6bf59b61e9b82377931ef95504866", size = 5246285, upload-time = "2026-06-12T20:01:32.439Z" }, + { url = "https://files.pythonhosted.org/packages/11/2d/5e1fb307cb5931881516b464c98774b3f2c36b5d4bb9a2830253cf553cad/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d8ecde755e2e91bf773fc94e8c9d730cd7f2007004cb492263a794ec3899a1c8", size = 4730441, upload-time = "2026-06-12T20:02:01.469Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c0/bff5a02ee731d207d6a1ed51732549d8c53d2bc8da1d10ec6f2844201d68/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e3fb64c420688e5319ae25113a354015abbd8dffbfbc41781a1ea66fc7622ac3", size = 4815869, upload-time = "2026-06-12T20:01:36.574Z" }, + { url = "https://files.pythonhosted.org/packages/b9/26/814681d14248d95d73d5c3eea0c39a94eb8302df966f670a2c60de90974b/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32703d93296f5c1f4b53349ad3a250c2cae0fdecd3a3dd5d47e616d8d616af27", size = 4960948, upload-time = "2026-06-12T20:02:18.688Z" }, + { url = "https://files.pythonhosted.org/packages/3d/df/40577043ca124e17012f408ddddaeb213b856336ac82ddb3bc915f39e29f/cryptography-49.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f78ff2c9ed8dc2d036b0f4d640e22522213d047c1b14e61205a7e55c80a494d4", size = 4692429, upload-time = "2026-06-12T20:01:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/2c/99/2d13299eb3dd27b02dcfaafcc91d6b5cb3329f7cbd6d8f51921acd566c1a/cryptography-49.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:35b151772baff2c74cba7fa290ceaff4c3b11c0c881eb93eb5dbc05a7cfbba18", size = 4700968, upload-time = "2026-06-12T20:02:45.383Z" }, + { url = "https://files.pythonhosted.org/packages/a5/4d/9c0cd02f95e2602dd5e563da149ee0830abef3537be8b34dc56281ebe27a/cryptography-49.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0f21641cf4b30fca7aee061ced0ec7ad7b073518088b7c9969a297c0ae796c69", size = 4697758, upload-time = "2026-06-12T20:01:41.13Z" }, + { url = "https://files.pythonhosted.org/packages/24/01/186c825898477d77e2324d5360fefe622ff1d8d1963ec0554e2cada8ec77/cryptography-49.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:9e82dcc8e56052715fb18b2429e3bca4823b1629136a2084fc45a9a5cecb9b64", size = 5298863, upload-time = "2026-06-12T20:02:24.579Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7b/62cbbab75d0659865bf0273790031544a0b16c8072d258f9428dcd8190dc/cryptography-49.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6f2debedf9ca60cf1d5bd466475638af5130f89965605cd818484d19987d3a21", size = 4735983, upload-time = "2026-06-12T20:01:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/6c/72/3e798c064bc39e471008075d0f9bc9daf77a80879c092e4a8e170c585ed4/cryptography-49.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:8c25ceb16df5b9435f3f6a9829204985b0e0cbee3b48aacd432c7d2c850b44d9", size = 4334173, upload-time = "2026-06-12T20:01:44.743Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ee/6fca21d1ac73e06f8bef71940abfd4d2f6472b4bca284d770f32bd4086f6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:28d8b15e6275f12c8a207dc309dfa957903c927d08d0cc937ee3f63f200693cc", size = 4697298, upload-time = "2026-06-12T20:02:20.918Z" }, + { url = "https://files.pythonhosted.org/packages/67/d0/a5fcd3515f0bae49a7b6d0413cc1bdccdcc1fc0047037a0d480642cdc5d6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:6fc361c34fb6aac015ce19435876635e5c6d21db31998b0920f675f131e043b8", size = 5254338, upload-time = "2026-06-12T20:02:22.737Z" }, + { url = "https://files.pythonhosted.org/packages/a0/84/84fe36f19caf857d61cb7fc9c63035a47ffabd84ea12d1d393148efa3615/cryptography-49.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2400ef9c9e2299a25614eb1dea3db54a69b1349efd043bfac9c67630d136df36", size = 4735650, upload-time = "2026-06-12T20:02:41.389Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a0/db537264e234f7273a73ec020873d6d6b39dfd8a53db78b550ca8320440e/cryptography-49.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:67e1d20ad9ef3a563c59ef22e7a8a0b8210bd26604369ea4a30a7c66aefe504e", size = 4834820, upload-time = "2026-06-12T20:01:51.847Z" }, + { url = "https://files.pythonhosted.org/packages/93/77/8df9eb486495979bccecd1062e2eaf435250e84437040295b57d09048b0b/cryptography-49.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:42b0684e0e40cf26122427802486f6d93aea593612603a94fbf260c7eb1e9c1b", size = 4967968, upload-time = "2026-06-12T20:02:12.524Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a7/f9dac0ab7f80368c56993a7bf638ef9935f825c91902798481fac0898138/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83782480a4a9da4d0feb51950131ba32e12e70813848b3343f6e18c28a66838", size = 4676239, upload-time = "2026-06-12T20:02:28.793Z" }, + { url = "https://files.pythonhosted.org/packages/d7/70/2ba3769dd0ae167e2f33dfa9592d45db6ff9a61d62ca1a5b3d1bdd09068f/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b39efa323140595abd3ecca8529d321ae50f55f3aa3ba9cc81ea56a6011953d5", size = 4715584, upload-time = "2026-06-12T20:01:27.495Z" }, + { url = "https://files.pythonhosted.org/packages/94/64/2923570ac1c0bd3a737aa366ac3abbbbde273042308b8cde95e2364a6e6a/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b47db11c2c3525083296069b98ac5221907455e989ae0c2e3008bde851921615", size = 4675885, upload-time = "2026-06-12T20:01:55.49Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f8/614dc7e051418cfe53d55173c1e24c6b0085e89996fe90508c2fdf769aef/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:084ef1af862eb07ec46d25f68689f2102a9fc0e05ce7b80f14f5fe51e4eef0f6", size = 4715449, upload-time = "2026-06-12T20:02:05.469Z" }, +] + +[[package]] +name = "decorator" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/60/8b/32f9823da46cde7df2087faa08cd98d01b908f8dcab982cdba9c84e85355/decorator-5.3.1.tar.gz", hash = "sha256:4cbcdd55a6efadb9dbea26b858f4fb3264567b52d69ca0d25b721b553f60ea82", size = 58084, upload-time = "2026-05-18T06:03:28.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/05/7f/798705f5296a58ca505d600456748d1be48078eac8a7050d8a98bc9edb89/decorator-5.3.1-py3-none-any.whl", hash = "sha256:f47fe6fdbd2edd623ecfe36875d37aba411624e2670dd395dddae1358689bb3c", size = 10365, upload-time = "2026-05-18T06:03:26.517Z" }, +] + +[[package]] +name = "deprecated" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wrapt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/49/85/12f0a49a7c4ffb70572b6c2ef13c90c88fd190debda93b23f026b25f9634/deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223", size = 2932523, upload-time = "2025-10-30T08:19:02.757Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/d0/205d54408c08b13550c733c4b85429e7ead111c7f0014309637425520a9a/deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f", size = 11298, upload-time = "2025-10-30T08:19:00.758Z" }, +] + +[[package]] +name = "django" +version = "4.2.30" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asgiref" }, + { name = "sqlparse" }, + { name = "tzdata", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/11/b5/f1a53dc68da6429d6e0345bb848161e2381a2e9f02700148911e8582c2b3/django-4.2.30.tar.gz", hash = "sha256:4ebc7a434e3819db6cf4b399fb5b3f536310a30e8486f08b66886840be84b37c", size = 10468707, upload-time = "2026-04-07T14:05:45.57Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/b7/a7c96f239cf91313a6589233fed55111c7063b26683b226802732c455dbc/django-4.2.30-py3-none-any.whl", hash = "sha256:4d07aaf1c62f9984842b67c2874ebbf7056a17be253860299b93ae1881faad65", size = 7997231, upload-time = "2026-04-07T14:05:38.241Z" }, +] + +[[package]] +name = "django-cors-headers" +version = "4.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asgiref" }, + { name = "django" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/04/a280a98256602d3f4fffae37a9410711fb80f9d6cf199679f6e93bbdb8b3/django-cors-headers-4.3.1.tar.gz", hash = "sha256:0bf65ef45e606aff1994d35503e6b677c0b26cafff6506f8fd7187f3be840207", size = 21146, upload-time = "2023-11-14T17:27:29.31Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fe/6a/3428ab5d1ec270e845f4ef064a7cefbf1339b4454788d77c00d36caa828c/django_cors_headers-4.3.1-py3-none-any.whl", hash = "sha256:0b1fd19297e37417fc9f835d39e45c8c642938ddba1acce0c1753d3edef04f36", size = 12785, upload-time = "2023-11-14T17:27:27.128Z" }, +] + +[[package]] +name = "django-debug-toolbar" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "django" }, + { name = "sqlparse" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/65/bd/81b812b3a69874f382514a8982f1e7c30e9851e86c9d976eef4960da97ac/django_debug_toolbar-4.2.0.tar.gz", hash = "sha256:bc7fdaafafcdedefcc67a4a5ad9dac96efd6e41db15bc74d402a54a2ba4854dc", size = 259709, upload-time = "2023-08-11T01:41:46.393Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/5c/fffae0d49d0b9d6a0782540e172272edf70493588ec9fca10b01a3a75c3e/django_debug_toolbar-4.2.0-py3-none-any.whl", hash = "sha256:af99128c06e8e794479e65ab62cc6c7d1e74e1c19beb44dcbf9bad7a9c017327", size = 223156, upload-time = "2023-08-11T01:41:40.992Z" }, +] + +[[package]] +name = "django-environ" +version = "0.11.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/0b/f2c024529ee4bbf8b95176eebeb86c6e695192a9ce0e91059cb83a33c1d3/django-environ-0.11.2.tar.gz", hash = "sha256:f32a87aa0899894c27d4e1776fa6b477e8164ed7f6b3e410a62a6d72caaf64be", size = 54326, upload-time = "2023-09-01T21:03:02.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/f1/468b49cccba3b42dda571063a14c668bb0b53a1d5712426d18e36663bd53/django_environ-0.11.2-py2.py3-none-any.whl", hash = "sha256:0ff95ab4344bfeff693836aa978e6840abef2e2f1145adff7735892711590c05", size = 19141, upload-time = "2023-09-01T21:02:59.88Z" }, +] + +[[package]] +name = "django-extensions" +version = "3.2.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "django" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8a/f1/318684c9466968bf9a9c221663128206e460c1a67f595055be4b284cde8a/django-extensions-3.2.3.tar.gz", hash = "sha256:44d27919d04e23b3f40231c4ab7af4e61ce832ef46d610cc650d53e68328410a", size = 277216, upload-time = "2023-06-05T17:09:01.447Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/7e/ba12b9660642663f5273141018d2bec0a1cae1711f4f6d1093920e157946/django_extensions-3.2.3-py3-none-any.whl", hash = "sha256:9600b7562f79a92cbf1fde6403c04fee314608fefbb595502e34383ae8203401", size = 229868, upload-time = "2023-06-05T17:08:58.197Z" }, +] + +[[package]] +name = "django-filter" +version = "23.5" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "django" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/ce/e874b30a66684e3e79b183b0197dd3d08f842a8674972e47a90c09a6ec9c/django-filter-23.5.tar.gz", hash = "sha256:67583aa43b91fe8c49f74a832d95f4d8442be628fd4c6d65e9f811f5153a4e5c", size = 141058, upload-time = "2023-12-05T08:15:31.888Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/ff/4ae79361e09c3803562368700bc56672cca37bab7c1a8a91e7a225ce8fa0/django_filter-23.5-py3-none-any.whl", hash = "sha256:99122a201d83860aef4fe77758b69dda913e874cc5e0eaa50a86b0b18d708400", size = 94402, upload-time = "2023-12-05T08:15:29.191Z" }, +] + +[[package]] +name = "djangorestframework" +version = "3.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "django" }, + { name = "pytz" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8e/53/5b2a002c5ebafd60dff1e1945a7d63dee40155830997439a9ba324f0fd50/djangorestframework-3.14.0.tar.gz", hash = "sha256:579a333e6256b09489cbe0a067e66abe55c6595d8926be6b99423786334350c8", size = 1055343, upload-time = "2022-09-22T11:38:44.245Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/4b/3b46c0914ba4b7546a758c35fdfa8e7f017fcbe7f23c878239e93623337a/djangorestframework-3.14.0-py3-none-any.whl", hash = "sha256:eb63f58c9f218e1a7d064d17a70751f528ed4e1d35547fdade9aaf4cd103fd08", size = 1062761, upload-time = "2022-09-22T11:38:41.825Z" }, +] + +[[package]] +name = "djangorestframework-simplejwt" +version = "5.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "django" }, + { name = "djangorestframework" }, + { name = "pyjwt" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/f3/f2ce06fcd1c53e12b26cc5a3ec9e0acd47eb4be02e1d24de50edee5c5abf/djangorestframework_simplejwt-5.3.1.tar.gz", hash = "sha256:6c4bd37537440bc439564ebf7d6085e74c5411485197073f508ebdfa34bc9fae", size = 94266, upload-time = "2023-12-04T06:37:22.761Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/ab/88f73cf08d2ad3fb9f71b956dceca5680a57f121e5ce9a604f365877d57e/djangorestframework_simplejwt-5.3.1-py3-none-any.whl", hash = "sha256:381bc966aa46913905629d472cd72ad45faa265509764e20ffd440164c88d220", size = 101339, upload-time = "2023-12-04T06:38:25.362Z" }, +] + +[[package]] +name = "docutils" +version = "0.20.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1f/53/a5da4f2c5739cf66290fac1431ee52aff6851c7c8ffd8264f13affd7bcdd/docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b", size = 2058365, upload-time = "2023-05-16T23:39:19.748Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/87/f238c0670b94533ac0353a4e2a1a771a0cc73277b88bff23d3ae35a256c1/docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6", size = 572666, upload-time = "2023-05-16T23:39:15.976Z" }, +] + +[[package]] +name = "drf-spectacular" +version = "0.27.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "django" }, + { name = "djangorestframework" }, + { name = "inflection" }, + { name = "jsonschema" }, + { name = "pyyaml" }, + { name = "uritemplate" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b1/c9/55311dcbdae9a437eeb8f898f8421a6a3eabf08725c23ddf458cf2479b78/drf-spectacular-0.27.2.tar.gz", hash = "sha256:a199492f2163c4101055075ebdbb037d59c6e0030692fc83a1a8c0fc65929981", size = 235131, upload-time = "2024-04-01T18:00:21.171Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/cd/84c44a5d435f6544e58a9b138305f59bca232157ae4ecb658f9787f87d1c/drf_spectacular-0.27.2-py3-none-any.whl", hash = "sha256:b1c04bf8b2fbbeaf6f59414b4ea448c8787aba4d32f76055c3b13335cf7ec37b", size = 102930, upload-time = "2024-04-01T18:00:17.937Z" }, +] + +[[package]] +name = "executing" +version = "2.2.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cc/28/c14e053b6762b1044f34a13aab6859bbf40456d37d23aa286ac24cfd9a5d/executing-2.2.1.tar.gz", hash = "sha256:3632cc370565f6648cc328b32435bd120a1e4ebb20c77e3fdde9a13cd1e533c4", size = 1129488, upload-time = "2025-09-01T09:48:10.866Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c1/ea/53f2148663b321f21b5a606bd5f191517cf40b7072c0497d3c92c4a13b1e/executing-2.2.1-py2.py3-none-any.whl", hash = "sha256:760643d3452b4d777d295bb167ccc74c64a81df23fb5e08eff250c425a4b2017", size = 28317, upload-time = "2025-09-01T09:48:08.5Z" }, +] + +[[package]] +name = "factory-boy" +version = "3.3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "faker" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ba/98/75cacae9945f67cfe323829fc2ac451f64517a8a330b572a06a323997065/factory_boy-3.3.3.tar.gz", hash = "sha256:866862d226128dfac7f2b4160287e899daf54f2612778327dd03d0e2cb1e3d03", size = 164146, upload-time = "2025-02-03T09:49:04.433Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/8d/2bc5f5546ff2ccb3f7de06742853483ab75bf74f36a92254702f8baecc79/factory_boy-3.3.3-py2.py3-none-any.whl", hash = "sha256:1c39e3289f7e667c4285433f305f8d506efc2fe9c73aaea4151ebd5cdea394fc", size = 37036, upload-time = "2025-02-03T09:49:01.659Z" }, +] + +[[package]] +name = "faker" +version = "22.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/be/71eee68fc027929e59f003306b8fbaab619adbacec8b2feb985f44f2550a/Faker-22.0.0.tar.gz", hash = "sha256:1d5dc0a75da7bc40741ee4c84d99dc087b97bd086d4222ad06ac4dd2219bcf3f", size = 1702044, upload-time = "2023-12-29T16:14:13.67Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/21/25e4f6d5a98ae5d90d73a0648934c4577e667a771ffa0e9aacf0d9642d69/Faker-22.0.0-py3-none-any.whl", hash = "sha256:9c22c0a734ca01c6e4f2259eab5dab9081905a9d67b27272aea5c9feeb5a3789", size = 1739412, upload-time = "2023-12-29T16:14:08.65Z" }, +] + +[[package]] +name = "fastapi" +version = "0.109.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "starlette" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/62/b2c12c2a381040a1d77e1b4fd3e210ffb0488876e9b493069f56eb2db971/fastapi-0.109.1.tar.gz", hash = "sha256:5402389843a3561918634eb327e86b9ae98645a9e7696bede9074449c48d610a", size = 11720487, upload-time = "2024-02-03T12:45:29.797Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/cb/fa5122eec49e6bca91d3a332a3bc1dff3c12d093228e9e524cad3a7f1039/fastapi-0.109.1-py3-none-any.whl", hash = "sha256:510042044906b17b6d9149135d90886ade170bf615efcfb5533f568ae6d88534", size = 92070, upload-time = "2024-02-03T12:45:26.049Z" }, +] + +[[package]] +name = "flake8" +version = "7.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mccabe" }, + { name = "pycodestyle" }, + { name = "pyflakes" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/40/3c/3464b567aa367b221fa610bbbcce8015bf953977d21e52f2d711b526fb48/flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132", size = 48219, upload-time = "2024-01-05T00:41:52.142Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e3/01/cc8cdec7b61db0315c2ab62d80677a138ef06832ec17f04d87e6ef858f7f/flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3", size = 57570, upload-time = "2024-01-05T00:41:49.837Z" }, +] + +[[package]] +name = "flask" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "blinker" }, + { name = "click" }, + { name = "itsdangerous" }, + { name = "jinja2" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/41/e1/d104c83026f8d35dfd2c261df7d64738341067526406b40190bc063e829a/flask-3.0.3.tar.gz", hash = "sha256:ceb27b0af3823ea2737928a4d99d125a06175b8512c445cbd9a9ce200ef76842", size = 676315, upload-time = "2024-04-07T19:26:11.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/80/ffe1da13ad9300f87c93af113edd0638c75138c42a0994becfacac078c06/flask-3.0.3-py3-none-any.whl", hash = "sha256:34e815dfaa43340d1d15a5c3a02b8476004037eb4840b34910c6e21679d288f3", size = 101735, upload-time = "2024-04-07T19:26:08.569Z" }, +] + +[[package]] +name = "flask-login" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "werkzeug" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/6e/2f4e13e373bb49e68c02c51ceadd22d172715a06716f9299d9df01b6ddb2/Flask-Login-0.6.3.tar.gz", hash = "sha256:5e23d14a607ef12806c699590b89d0f0e0d67baeec599d75947bf9c147330333", size = 48834, upload-time = "2023-10-30T14:53:21.151Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/f5/67e9cc5c2036f58115f9fe0f00d203cf6780c3ff8ae0e705e7a9d9e8ff9e/Flask_Login-0.6.3-py3-none-any.whl", hash = "sha256:849b25b82a436bf830a054e74214074af59097171562ab10bfa999e6b78aae5d", size = 17303, upload-time = "2023-10-30T14:53:19.636Z" }, +] + +[[package]] +name = "flask-migrate" +version = "4.0.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "alembic" }, + { name = "flask" }, + { name = "flask-sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/3b/e2/4008fc0d298d7ce797021b194bbe151d4d12db670691648a226d4fc8aefc/Flask-Migrate-4.0.7.tar.gz", hash = "sha256:dff7dd25113c210b069af280ea713b883f3840c1e3455274745d7355778c8622", size = 21770, upload-time = "2024-03-11T18:43:01.498Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/93/01/587023575286236f95d2ab8a826c320375ed5ea2102bb103ed89704ffa6b/Flask_Migrate-4.0.7-py3-none-any.whl", hash = "sha256:5c532be17e7b43a223b7500d620edae33795df27c75811ddf32560f7d48ec617", size = 21127, upload-time = "2024-03-11T18:42:59.462Z" }, +] + +[[package]] +name = "flask-restful" +version = "0.3.10" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aniso8601" }, + { name = "flask" }, + { name = "pytz" }, + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/ce/a0a133db616ea47f78a41e15c4c68b9f08cab3df31eb960f61899200a119/Flask-RESTful-0.3.10.tar.gz", hash = "sha256:fe4af2ef0027df8f9b4f797aba20c5566801b6ade995ac63b588abf1a59cec37", size = 110453, upload-time = "2023-05-21T03:58:55.781Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/7b/f0b45f0df7d2978e5ae51804bb5939b7897b2ace24306009da0cc34d8d1f/Flask_RESTful-0.3.10-py2.py3-none-any.whl", hash = "sha256:1cf93c535172f112e080b0d4503a8d15f93a48c88bdd36dd87269bdaf405051b", size = 26217, upload-time = "2023-05-21T03:58:54.004Z" }, +] + +[[package]] +name = "flask-sqlalchemy" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "sqlalchemy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/91/53/b0a9fcc1b1297f51e68b69ed3b7c3c40d8c45be1391d77ae198712914392/flask_sqlalchemy-3.1.1.tar.gz", hash = "sha256:e4b68bb881802dda1a7d878b2fc84c06d1ee57fb40b874d3dc97dabfa36b8312", size = 81899, upload-time = "2023-09-11T21:42:36.147Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1d/6a/89963a5c6ecf166e8be29e0d1bf6806051ee8fe6c82e232842e3aeac9204/flask_sqlalchemy-3.1.1-py3-none-any.whl", hash = "sha256:4ba4be7f419dc72f4efd8802d69974803c37259dd42f3913b0dcf75c9447e0a0", size = 25125, upload-time = "2023-09-11T21:42:34.514Z" }, +] + +[[package]] +name = "flask-wtf" +version = "1.2.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "flask" }, + { name = "itsdangerous" }, + { name = "wtforms" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/9b/f1cd6e41bbf874f3436368f2c7ee3216c1e82d666ff90d1d800e20eb1317/flask_wtf-1.2.2.tar.gz", hash = "sha256:79d2ee1e436cf570bccb7d916533fa18757a2f18c290accffab1b9a0b684666b", size = 42641, upload-time = "2024-10-24T07:18:58.555Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dc/19/354449145fbebb65e7c621235b6ad69bebcfaec2142481f044d0ddc5b5c5/flask_wtf-1.2.2-py3-none-any.whl", hash = "sha256:e93160c5c5b6b571cf99300b6e01b72f9a101027cab1579901f8b10c5daf0b70", size = 12779, upload-time = "2024-10-24T07:18:56.976Z" }, +] + +[[package]] +name = "frozenlist" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/2d/f5/c831fac6cc817d26fd54c7eaccd04ef7e0288806943f7cc5bbf69f3ac1f0/frozenlist-1.8.0.tar.gz", hash = "sha256:3ede829ed8d842f6cd48fc7081d7a41001a56f1f38603f9d49bf3020d59a31ad", size = 45875, upload-time = "2025-10-06T05:38:17.865Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/03/077f869d540370db12165c0aa51640a873fb661d8b315d1d4d67b284d7ac/frozenlist-1.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:09474e9831bc2b2199fad6da3c14c7b0fbdd377cce9d3d77131be28906cb7d84", size = 86912, upload-time = "2025-10-06T05:35:45.98Z" }, + { url = "https://files.pythonhosted.org/packages/df/b5/7610b6bd13e4ae77b96ba85abea1c8cb249683217ef09ac9e0ae93f25a91/frozenlist-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:17c883ab0ab67200b5f964d2b9ed6b00971917d5d8a92df149dc2c9779208ee9", size = 50046, upload-time = "2025-10-06T05:35:47.009Z" }, + { url = "https://files.pythonhosted.org/packages/6e/ef/0e8f1fe32f8a53dd26bdd1f9347efe0778b0fddf62789ea683f4cc7d787d/frozenlist-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:fa47e444b8ba08fffd1c18e8cdb9a75db1b6a27f17507522834ad13ed5922b93", size = 50119, upload-time = "2025-10-06T05:35:48.38Z" }, + { url = "https://files.pythonhosted.org/packages/11/b1/71a477adc7c36e5fb628245dfbdea2166feae310757dea848d02bd0689fd/frozenlist-1.8.0-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2552f44204b744fba866e573be4c1f9048d6a324dfe14475103fd51613eb1d1f", size = 231067, upload-time = "2025-10-06T05:35:49.97Z" }, + { url = "https://files.pythonhosted.org/packages/45/7e/afe40eca3a2dc19b9904c0f5d7edfe82b5304cb831391edec0ac04af94c2/frozenlist-1.8.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:957e7c38f250991e48a9a73e6423db1bb9dd14e722a10f6b8bb8e16a0f55f695", size = 233160, upload-time = "2025-10-06T05:35:51.729Z" }, + { url = "https://files.pythonhosted.org/packages/a6/aa/7416eac95603ce428679d273255ffc7c998d4132cfae200103f164b108aa/frozenlist-1.8.0-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8585e3bb2cdea02fc88ffa245069c36555557ad3609e83be0ec71f54fd4abb52", size = 228544, upload-time = "2025-10-06T05:35:53.246Z" }, + { url = "https://files.pythonhosted.org/packages/8b/3d/2a2d1f683d55ac7e3875e4263d28410063e738384d3adc294f5ff3d7105e/frozenlist-1.8.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:edee74874ce20a373d62dc28b0b18b93f645633c2943fd90ee9d898550770581", size = 243797, upload-time = "2025-10-06T05:35:54.497Z" }, + { url = "https://files.pythonhosted.org/packages/78/1e/2d5565b589e580c296d3bb54da08d206e797d941a83a6fdea42af23be79c/frozenlist-1.8.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:c9a63152fe95756b85f31186bddf42e4c02c6321207fd6601a1c89ebac4fe567", size = 247923, upload-time = "2025-10-06T05:35:55.861Z" }, + { url = "https://files.pythonhosted.org/packages/aa/c3/65872fcf1d326a7f101ad4d86285c403c87be7d832b7470b77f6d2ed5ddc/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:b6db2185db9be0a04fecf2f241c70b63b1a242e2805be291855078f2b404dd6b", size = 230886, upload-time = "2025-10-06T05:35:57.399Z" }, + { url = "https://files.pythonhosted.org/packages/a0/76/ac9ced601d62f6956f03cc794f9e04c81719509f85255abf96e2510f4265/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:f4be2e3d8bc8aabd566f8d5b8ba7ecc09249d74ba3c9ed52e54dc23a293f0b92", size = 245731, upload-time = "2025-10-06T05:35:58.563Z" }, + { url = "https://files.pythonhosted.org/packages/b9/49/ecccb5f2598daf0b4a1415497eba4c33c1e8ce07495eb07d2860c731b8d5/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:c8d1634419f39ea6f5c427ea2f90ca85126b54b50837f31497f3bf38266e853d", size = 241544, upload-time = "2025-10-06T05:35:59.719Z" }, + { url = "https://files.pythonhosted.org/packages/53/4b/ddf24113323c0bbcc54cb38c8b8916f1da7165e07b8e24a717b4a12cbf10/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:1a7fa382a4a223773ed64242dbe1c9c326ec09457e6b8428efb4118c685c3dfd", size = 241806, upload-time = "2025-10-06T05:36:00.959Z" }, + { url = "https://files.pythonhosted.org/packages/a7/fb/9b9a084d73c67175484ba2789a59f8eebebd0827d186a8102005ce41e1ba/frozenlist-1.8.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:11847b53d722050808926e785df837353bd4d75f1d494377e59b23594d834967", size = 229382, upload-time = "2025-10-06T05:36:02.22Z" }, + { url = "https://files.pythonhosted.org/packages/95/a3/c8fb25aac55bf5e12dae5c5aa6a98f85d436c1dc658f21c3ac73f9fa95e5/frozenlist-1.8.0-cp311-cp311-win32.whl", hash = "sha256:27c6e8077956cf73eadd514be8fb04d77fc946a7fe9f7fe167648b0b9085cc25", size = 39647, upload-time = "2025-10-06T05:36:03.409Z" }, + { url = "https://files.pythonhosted.org/packages/0a/f5/603d0d6a02cfd4c8f2a095a54672b3cf967ad688a60fb9faf04fc4887f65/frozenlist-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:ac913f8403b36a2c8610bbfd25b8013488533e71e62b4b4adce9c86c8cea905b", size = 44064, upload-time = "2025-10-06T05:36:04.368Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/c2c9ab44e181f043a86f9a8f84d5124b62dbcb3a02c0977ec72b9ac1d3e0/frozenlist-1.8.0-cp311-cp311-win_arm64.whl", hash = "sha256:d4d3214a0f8394edfa3e303136d0575eece0745ff2b47bd2cb2e66dd92d4351a", size = 39937, upload-time = "2025-10-06T05:36:05.669Z" }, + { url = "https://files.pythonhosted.org/packages/69/29/948b9aa87e75820a38650af445d2ef2b6b8a6fab1a23b6bb9e4ef0be2d59/frozenlist-1.8.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:78f7b9e5d6f2fdb88cdde9440dc147259b62b9d3b019924def9f6478be254ac1", size = 87782, upload-time = "2025-10-06T05:36:06.649Z" }, + { url = "https://files.pythonhosted.org/packages/64/80/4f6e318ee2a7c0750ed724fa33a4bdf1eacdc5a39a7a24e818a773cd91af/frozenlist-1.8.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:229bf37d2e4acdaf808fd3f06e854a4a7a3661e871b10dc1f8f1896a3b05f18b", size = 50594, upload-time = "2025-10-06T05:36:07.69Z" }, + { url = "https://files.pythonhosted.org/packages/2b/94/5c8a2b50a496b11dd519f4a24cb5496cf125681dd99e94c604ccdea9419a/frozenlist-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f833670942247a14eafbb675458b4e61c82e002a148f49e68257b79296e865c4", size = 50448, upload-time = "2025-10-06T05:36:08.78Z" }, + { url = "https://files.pythonhosted.org/packages/6a/bd/d91c5e39f490a49df14320f4e8c80161cfcce09f1e2cde1edd16a551abb3/frozenlist-1.8.0-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:494a5952b1c597ba44e0e78113a7266e656b9794eec897b19ead706bd7074383", size = 242411, upload-time = "2025-10-06T05:36:09.801Z" }, + { url = "https://files.pythonhosted.org/packages/8f/83/f61505a05109ef3293dfb1ff594d13d64a2324ac3482be2cedc2be818256/frozenlist-1.8.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96f423a119f4777a4a056b66ce11527366a8bb92f54e541ade21f2374433f6d4", size = 243014, upload-time = "2025-10-06T05:36:11.394Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cb/cb6c7b0f7d4023ddda30cf56b8b17494eb3a79e3fda666bf735f63118b35/frozenlist-1.8.0-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3462dd9475af2025c31cc61be6652dfa25cbfb56cbbf52f4ccfe029f38decaf8", size = 234909, upload-time = "2025-10-06T05:36:12.598Z" }, + { url = "https://files.pythonhosted.org/packages/31/c5/cd7a1f3b8b34af009fb17d4123c5a778b44ae2804e3ad6b86204255f9ec5/frozenlist-1.8.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:c4c800524c9cd9bac5166cd6f55285957fcfc907db323e193f2afcd4d9abd69b", size = 250049, upload-time = "2025-10-06T05:36:14.065Z" }, + { url = "https://files.pythonhosted.org/packages/c0/01/2f95d3b416c584a1e7f0e1d6d31998c4a795f7544069ee2e0962a4b60740/frozenlist-1.8.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d6a5df73acd3399d893dafc71663ad22534b5aa4f94e8a2fabfe856c3c1b6a52", size = 256485, upload-time = "2025-10-06T05:36:15.39Z" }, + { url = "https://files.pythonhosted.org/packages/ce/03/024bf7720b3abaebcff6d0793d73c154237b85bdf67b7ed55e5e9596dc9a/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:405e8fe955c2280ce66428b3ca55e12b3c4e9c336fb2103a4937e891c69a4a29", size = 237619, upload-time = "2025-10-06T05:36:16.558Z" }, + { url = "https://files.pythonhosted.org/packages/69/fa/f8abdfe7d76b731f5d8bd217827cf6764d4f1d9763407e42717b4bed50a0/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:908bd3f6439f2fef9e85031b59fd4f1297af54415fb60e4254a95f75b3cab3f3", size = 250320, upload-time = "2025-10-06T05:36:17.821Z" }, + { url = "https://files.pythonhosted.org/packages/f5/3c/b051329f718b463b22613e269ad72138cc256c540f78a6de89452803a47d/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:294e487f9ec720bd8ffcebc99d575f7eff3568a08a253d1ee1a0378754b74143", size = 246820, upload-time = "2025-10-06T05:36:19.046Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ae/58282e8f98e444b3f4dd42448ff36fa38bef29e40d40f330b22e7108f565/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:74c51543498289c0c43656701be6b077f4b265868fa7f8a8859c197006efb608", size = 250518, upload-time = "2025-10-06T05:36:20.763Z" }, + { url = "https://files.pythonhosted.org/packages/8f/96/007e5944694d66123183845a106547a15944fbbb7154788cbf7272789536/frozenlist-1.8.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:776f352e8329135506a1d6bf16ac3f87bc25b28e765949282dcc627af36123aa", size = 239096, upload-time = "2025-10-06T05:36:22.129Z" }, + { url = "https://files.pythonhosted.org/packages/66/bb/852b9d6db2fa40be96f29c0d1205c306288f0684df8fd26ca1951d461a56/frozenlist-1.8.0-cp312-cp312-win32.whl", hash = "sha256:433403ae80709741ce34038da08511d4a77062aa924baf411ef73d1146e74faf", size = 39985, upload-time = "2025-10-06T05:36:23.661Z" }, + { url = "https://files.pythonhosted.org/packages/b8/af/38e51a553dd66eb064cdf193841f16f077585d4d28394c2fa6235cb41765/frozenlist-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:34187385b08f866104f0c0617404c8eb08165ab1272e884abc89c112e9c00746", size = 44591, upload-time = "2025-10-06T05:36:24.958Z" }, + { url = "https://files.pythonhosted.org/packages/a7/06/1dc65480ab147339fecc70797e9c2f69d9cea9cf38934ce08df070fdb9cb/frozenlist-1.8.0-cp312-cp312-win_arm64.whl", hash = "sha256:fe3c58d2f5db5fbd18c2987cba06d51b0529f52bc3a6cdc33d3f4eab725104bd", size = 40102, upload-time = "2025-10-06T05:36:26.333Z" }, + { url = "https://files.pythonhosted.org/packages/2d/40/0832c31a37d60f60ed79e9dfb5a92e1e2af4f40a16a29abcc7992af9edff/frozenlist-1.8.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:8d92f1a84bb12d9e56f818b3a746f3efba93c1b63c8387a73dde655e1e42282a", size = 85717, upload-time = "2025-10-06T05:36:27.341Z" }, + { url = "https://files.pythonhosted.org/packages/30/ba/b0b3de23f40bc55a7057bd38434e25c34fa48e17f20ee273bbde5e0650f3/frozenlist-1.8.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:96153e77a591c8adc2ee805756c61f59fef4cf4073a9275ee86fe8cba41241f7", size = 49651, upload-time = "2025-10-06T05:36:28.855Z" }, + { url = "https://files.pythonhosted.org/packages/0c/ab/6e5080ee374f875296c4243c381bbdef97a9ac39c6e3ce1d5f7d42cb78d6/frozenlist-1.8.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f21f00a91358803399890ab167098c131ec2ddd5f8f5fd5fe9c9f2c6fcd91e40", size = 49417, upload-time = "2025-10-06T05:36:29.877Z" }, + { url = "https://files.pythonhosted.org/packages/d5/4e/e4691508f9477ce67da2015d8c00acd751e6287739123113a9fca6f1604e/frozenlist-1.8.0-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb30f9626572a76dfe4293c7194a09fb1fe93ba94c7d4f720dfae3b646b45027", size = 234391, upload-time = "2025-10-06T05:36:31.301Z" }, + { url = "https://files.pythonhosted.org/packages/40/76/c202df58e3acdf12969a7895fd6f3bc016c642e6726aa63bd3025e0fc71c/frozenlist-1.8.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eaa352d7047a31d87dafcacbabe89df0aa506abb5b1b85a2fb91bc3faa02d822", size = 233048, upload-time = "2025-10-06T05:36:32.531Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c0/8746afb90f17b73ca5979c7a3958116e105ff796e718575175319b5bb4ce/frozenlist-1.8.0-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:03ae967b4e297f58f8c774c7eabcce57fe3c2434817d4385c50661845a058121", size = 226549, upload-time = "2025-10-06T05:36:33.706Z" }, + { url = "https://files.pythonhosted.org/packages/7e/eb/4c7eefc718ff72f9b6c4893291abaae5fbc0c82226a32dcd8ef4f7a5dbef/frozenlist-1.8.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f6292f1de555ffcc675941d65fffffb0a5bcd992905015f85d0592201793e0e5", size = 239833, upload-time = "2025-10-06T05:36:34.947Z" }, + { url = "https://files.pythonhosted.org/packages/c2/4e/e5c02187cf704224f8b21bee886f3d713ca379535f16893233b9d672ea71/frozenlist-1.8.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29548f9b5b5e3460ce7378144c3010363d8035cea44bc0bf02d57f5a685e084e", size = 245363, upload-time = "2025-10-06T05:36:36.534Z" }, + { url = "https://files.pythonhosted.org/packages/1f/96/cb85ec608464472e82ad37a17f844889c36100eed57bea094518bf270692/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ec3cc8c5d4084591b4237c0a272cc4f50a5b03396a47d9caaf76f5d7b38a4f11", size = 229314, upload-time = "2025-10-06T05:36:38.582Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6f/4ae69c550e4cee66b57887daeebe006fe985917c01d0fff9caab9883f6d0/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:517279f58009d0b1f2e7c1b130b377a349405da3f7621ed6bfae50b10adf20c1", size = 243365, upload-time = "2025-10-06T05:36:40.152Z" }, + { url = "https://files.pythonhosted.org/packages/7a/58/afd56de246cf11780a40a2c28dc7cbabbf06337cc8ddb1c780a2d97e88d8/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:db1e72ede2d0d7ccb213f218df6a078a9c09a7de257c2fe8fcef16d5925230b1", size = 237763, upload-time = "2025-10-06T05:36:41.355Z" }, + { url = "https://files.pythonhosted.org/packages/cb/36/cdfaf6ed42e2644740d4a10452d8e97fa1c062e2a8006e4b09f1b5fd7d63/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:b4dec9482a65c54a5044486847b8a66bf10c9cb4926d42927ec4e8fd5db7fed8", size = 240110, upload-time = "2025-10-06T05:36:42.716Z" }, + { url = "https://files.pythonhosted.org/packages/03/a8/9ea226fbefad669f11b52e864c55f0bd57d3c8d7eb07e9f2e9a0b39502e1/frozenlist-1.8.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:21900c48ae04d13d416f0e1e0c4d81f7931f73a9dfa0b7a8746fb2fe7dd970ed", size = 233717, upload-time = "2025-10-06T05:36:44.251Z" }, + { url = "https://files.pythonhosted.org/packages/1e/0b/1b5531611e83ba7d13ccc9988967ea1b51186af64c42b7a7af465dcc9568/frozenlist-1.8.0-cp313-cp313-win32.whl", hash = "sha256:8b7b94a067d1c504ee0b16def57ad5738701e4ba10cec90529f13fa03c833496", size = 39628, upload-time = "2025-10-06T05:36:45.423Z" }, + { url = "https://files.pythonhosted.org/packages/d8/cf/174c91dbc9cc49bc7b7aab74d8b734e974d1faa8f191c74af9b7e80848e6/frozenlist-1.8.0-cp313-cp313-win_amd64.whl", hash = "sha256:878be833caa6a3821caf85eb39c5ba92d28e85df26d57afb06b35b2efd937231", size = 43882, upload-time = "2025-10-06T05:36:46.796Z" }, + { url = "https://files.pythonhosted.org/packages/c1/17/502cd212cbfa96eb1388614fe39a3fc9ab87dbbe042b66f97acb57474834/frozenlist-1.8.0-cp313-cp313-win_arm64.whl", hash = "sha256:44389d135b3ff43ba8cc89ff7f51f5a0bb6b63d829c8300f79a2fe4fe61bcc62", size = 39676, upload-time = "2025-10-06T05:36:47.8Z" }, + { url = "https://files.pythonhosted.org/packages/d2/5c/3bbfaa920dfab09e76946a5d2833a7cbdf7b9b4a91c714666ac4855b88b4/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:e25ac20a2ef37e91c1b39938b591457666a0fa835c7783c3a8f33ea42870db94", size = 89235, upload-time = "2025-10-06T05:36:48.78Z" }, + { url = "https://files.pythonhosted.org/packages/d2/d6/f03961ef72166cec1687e84e8925838442b615bd0b8854b54923ce5b7b8a/frozenlist-1.8.0-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:07cdca25a91a4386d2e76ad992916a85038a9b97561bf7a3fd12d5d9ce31870c", size = 50742, upload-time = "2025-10-06T05:36:49.837Z" }, + { url = "https://files.pythonhosted.org/packages/1e/bb/a6d12b7ba4c3337667d0e421f7181c82dda448ce4e7ad7ecd249a16fa806/frozenlist-1.8.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4e0c11f2cc6717e0a741f84a527c52616140741cd812a50422f83dc31749fb52", size = 51725, upload-time = "2025-10-06T05:36:50.851Z" }, + { url = "https://files.pythonhosted.org/packages/bc/71/d1fed0ffe2c2ccd70b43714c6cab0f4188f09f8a67a7914a6b46ee30f274/frozenlist-1.8.0-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:b3210649ee28062ea6099cfda39e147fa1bc039583c8ee4481cb7811e2448c51", size = 284533, upload-time = "2025-10-06T05:36:51.898Z" }, + { url = "https://files.pythonhosted.org/packages/c9/1f/fb1685a7b009d89f9bf78a42d94461bc06581f6e718c39344754a5d9bada/frozenlist-1.8.0-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581ef5194c48035a7de2aefc72ac6539823bb71508189e5de01d60c9dcd5fa65", size = 292506, upload-time = "2025-10-06T05:36:53.101Z" }, + { url = "https://files.pythonhosted.org/packages/e6/3b/b991fe1612703f7e0d05c0cf734c1b77aaf7c7d321df4572e8d36e7048c8/frozenlist-1.8.0-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:3ef2d026f16a2b1866e1d86fc4e1291e1ed8a387b2c333809419a2f8b3a77b82", size = 274161, upload-time = "2025-10-06T05:36:54.309Z" }, + { url = "https://files.pythonhosted.org/packages/ca/ec/c5c618767bcdf66e88945ec0157d7f6c4a1322f1473392319b7a2501ded7/frozenlist-1.8.0-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:5500ef82073f599ac84d888e3a8c1f77ac831183244bfd7f11eaa0289fb30714", size = 294676, upload-time = "2025-10-06T05:36:55.566Z" }, + { url = "https://files.pythonhosted.org/packages/7c/ce/3934758637d8f8a88d11f0585d6495ef54b2044ed6ec84492a91fa3b27aa/frozenlist-1.8.0-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:50066c3997d0091c411a66e710f4e11752251e6d2d73d70d8d5d4c76442a199d", size = 300638, upload-time = "2025-10-06T05:36:56.758Z" }, + { url = "https://files.pythonhosted.org/packages/fc/4f/a7e4d0d467298f42de4b41cbc7ddaf19d3cfeabaf9ff97c20c6c7ee409f9/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:5c1c8e78426e59b3f8005e9b19f6ff46e5845895adbde20ece9218319eca6506", size = 283067, upload-time = "2025-10-06T05:36:57.965Z" }, + { url = "https://files.pythonhosted.org/packages/dc/48/c7b163063d55a83772b268e6d1affb960771b0e203b632cfe09522d67ea5/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:eefdba20de0d938cec6a89bd4d70f346a03108a19b9df4248d3cf0d88f1b0f51", size = 292101, upload-time = "2025-10-06T05:36:59.237Z" }, + { url = "https://files.pythonhosted.org/packages/9f/d0/2366d3c4ecdc2fd391e0afa6e11500bfba0ea772764d631bbf82f0136c9d/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:cf253e0e1c3ceb4aaff6df637ce033ff6535fb8c70a764a8f46aafd3d6ab798e", size = 289901, upload-time = "2025-10-06T05:37:00.811Z" }, + { url = "https://files.pythonhosted.org/packages/b8/94/daff920e82c1b70e3618a2ac39fbc01ae3e2ff6124e80739ce5d71c9b920/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:032efa2674356903cd0261c4317a561a6850f3ac864a63fc1583147fb05a79b0", size = 289395, upload-time = "2025-10-06T05:37:02.115Z" }, + { url = "https://files.pythonhosted.org/packages/e3/20/bba307ab4235a09fdcd3cc5508dbabd17c4634a1af4b96e0f69bfe551ebd/frozenlist-1.8.0-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:6da155091429aeba16851ecb10a9104a108bcd32f6c1642867eadaee401c1c41", size = 283659, upload-time = "2025-10-06T05:37:03.711Z" }, + { url = "https://files.pythonhosted.org/packages/fd/00/04ca1c3a7a124b6de4f8a9a17cc2fcad138b4608e7a3fc5877804b8715d7/frozenlist-1.8.0-cp313-cp313t-win32.whl", hash = "sha256:0f96534f8bfebc1a394209427d0f8a63d343c9779cda6fc25e8e121b5fd8555b", size = 43492, upload-time = "2025-10-06T05:37:04.915Z" }, + { url = "https://files.pythonhosted.org/packages/59/5e/c69f733a86a94ab10f68e496dc6b7e8bc078ebb415281d5698313e3af3a1/frozenlist-1.8.0-cp313-cp313t-win_amd64.whl", hash = "sha256:5d63a068f978fc69421fb0e6eb91a9603187527c86b7cd3f534a5b77a592b888", size = 48034, upload-time = "2025-10-06T05:37:06.343Z" }, + { url = "https://files.pythonhosted.org/packages/16/6c/be9d79775d8abe79b05fa6d23da99ad6e7763a1d080fbae7290b286093fd/frozenlist-1.8.0-cp313-cp313t-win_arm64.whl", hash = "sha256:bf0a7e10b077bf5fb9380ad3ae8ce20ef919a6ad93b4552896419ac7e1d8e042", size = 41749, upload-time = "2025-10-06T05:37:07.431Z" }, + { url = "https://files.pythonhosted.org/packages/f1/c8/85da824b7e7b9b6e7f7705b2ecaf9591ba6f79c1177f324c2735e41d36a2/frozenlist-1.8.0-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:cee686f1f4cadeb2136007ddedd0aaf928ab95216e7691c63e50a8ec066336d0", size = 86127, upload-time = "2025-10-06T05:37:08.438Z" }, + { url = "https://files.pythonhosted.org/packages/8e/e8/a1185e236ec66c20afd72399522f142c3724c785789255202d27ae992818/frozenlist-1.8.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:119fb2a1bd47307e899c2fac7f28e85b9a543864df47aa7ec9d3c1b4545f096f", size = 49698, upload-time = "2025-10-06T05:37:09.48Z" }, + { url = "https://files.pythonhosted.org/packages/a1/93/72b1736d68f03fda5fdf0f2180fb6caaae3894f1b854d006ac61ecc727ee/frozenlist-1.8.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:4970ece02dbc8c3a92fcc5228e36a3e933a01a999f7094ff7c23fbd2beeaa67c", size = 49749, upload-time = "2025-10-06T05:37:10.569Z" }, + { url = "https://files.pythonhosted.org/packages/a7/b2/fabede9fafd976b991e9f1b9c8c873ed86f202889b864756f240ce6dd855/frozenlist-1.8.0-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:cba69cb73723c3f329622e34bdbf5ce1f80c21c290ff04256cff1cd3c2036ed2", size = 231298, upload-time = "2025-10-06T05:37:11.993Z" }, + { url = "https://files.pythonhosted.org/packages/3a/3b/d9b1e0b0eed36e70477ffb8360c49c85c8ca8ef9700a4e6711f39a6e8b45/frozenlist-1.8.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:778a11b15673f6f1df23d9586f83c4846c471a8af693a22e066508b77d201ec8", size = 232015, upload-time = "2025-10-06T05:37:13.194Z" }, + { url = "https://files.pythonhosted.org/packages/dc/94/be719d2766c1138148564a3960fc2c06eb688da592bdc25adcf856101be7/frozenlist-1.8.0-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0325024fe97f94c41c08872db482cf8ac4800d80e79222c6b0b7b162d5b13686", size = 225038, upload-time = "2025-10-06T05:37:14.577Z" }, + { url = "https://files.pythonhosted.org/packages/e4/09/6712b6c5465f083f52f50cf74167b92d4ea2f50e46a9eea0523d658454ae/frozenlist-1.8.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:97260ff46b207a82a7567b581ab4190bd4dfa09f4db8a8b49d1a958f6aa4940e", size = 240130, upload-time = "2025-10-06T05:37:15.781Z" }, + { url = "https://files.pythonhosted.org/packages/f8/d4/cd065cdcf21550b54f3ce6a22e143ac9e4836ca42a0de1022da8498eac89/frozenlist-1.8.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:54b2077180eb7f83dd52c40b2750d0a9f175e06a42e3213ce047219de902717a", size = 242845, upload-time = "2025-10-06T05:37:17.037Z" }, + { url = "https://files.pythonhosted.org/packages/62/c3/f57a5c8c70cd1ead3d5d5f776f89d33110b1addae0ab010ad774d9a44fb9/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:2f05983daecab868a31e1da44462873306d3cbfd76d1f0b5b69c473d21dbb128", size = 229131, upload-time = "2025-10-06T05:37:18.221Z" }, + { url = "https://files.pythonhosted.org/packages/6c/52/232476fe9cb64f0742f3fde2b7d26c1dac18b6d62071c74d4ded55e0ef94/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:33f48f51a446114bc5d251fb2954ab0164d5be02ad3382abcbfe07e2531d650f", size = 240542, upload-time = "2025-10-06T05:37:19.771Z" }, + { url = "https://files.pythonhosted.org/packages/5f/85/07bf3f5d0fb5414aee5f47d33c6f5c77bfe49aac680bfece33d4fdf6a246/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:154e55ec0655291b5dd1b8731c637ecdb50975a2ae70c606d100750a540082f7", size = 237308, upload-time = "2025-10-06T05:37:20.969Z" }, + { url = "https://files.pythonhosted.org/packages/11/99/ae3a33d5befd41ac0ca2cc7fd3aa707c9c324de2e89db0e0f45db9a64c26/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:4314debad13beb564b708b4a496020e5306c7333fa9a3ab90374169a20ffab30", size = 238210, upload-time = "2025-10-06T05:37:22.252Z" }, + { url = "https://files.pythonhosted.org/packages/b2/60/b1d2da22f4970e7a155f0adde9b1435712ece01b3cd45ba63702aea33938/frozenlist-1.8.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:073f8bf8becba60aa931eb3bc420b217bb7d5b8f4750e6f8b3be7f3da85d38b7", size = 231972, upload-time = "2025-10-06T05:37:23.5Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ab/945b2f32de889993b9c9133216c068b7fcf257d8595a0ac420ac8677cab0/frozenlist-1.8.0-cp314-cp314-win32.whl", hash = "sha256:bac9c42ba2ac65ddc115d930c78d24ab8d4f465fd3fc473cdedfccadb9429806", size = 40536, upload-time = "2025-10-06T05:37:25.581Z" }, + { url = "https://files.pythonhosted.org/packages/59/ad/9caa9b9c836d9ad6f067157a531ac48b7d36499f5036d4141ce78c230b1b/frozenlist-1.8.0-cp314-cp314-win_amd64.whl", hash = "sha256:3e0761f4d1a44f1d1a47996511752cf3dcec5bbdd9cc2b4fe595caf97754b7a0", size = 44330, upload-time = "2025-10-06T05:37:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/82/13/e6950121764f2676f43534c555249f57030150260aee9dcf7d64efda11dd/frozenlist-1.8.0-cp314-cp314-win_arm64.whl", hash = "sha256:d1eaff1d00c7751b7c6662e9c5ba6eb2c17a2306ba5e2a37f24ddf3cc953402b", size = 40627, upload-time = "2025-10-06T05:37:28.075Z" }, + { url = "https://files.pythonhosted.org/packages/c0/c7/43200656ecc4e02d3f8bc248df68256cd9572b3f0017f0a0c4e93440ae23/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:d3bb933317c52d7ea5004a1c442eef86f426886fba134ef8cf4226ea6ee1821d", size = 89238, upload-time = "2025-10-06T05:37:29.373Z" }, + { url = "https://files.pythonhosted.org/packages/d1/29/55c5f0689b9c0fb765055629f472c0de484dcaf0acee2f7707266ae3583c/frozenlist-1.8.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:8009897cdef112072f93a0efdce29cd819e717fd2f649ee3016efd3cd885a7ed", size = 50738, upload-time = "2025-10-06T05:37:30.792Z" }, + { url = "https://files.pythonhosted.org/packages/ba/7d/b7282a445956506fa11da8c2db7d276adcbf2b17d8bb8407a47685263f90/frozenlist-1.8.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:2c5dcbbc55383e5883246d11fd179782a9d07a986c40f49abe89ddf865913930", size = 51739, upload-time = "2025-10-06T05:37:32.127Z" }, + { url = "https://files.pythonhosted.org/packages/62/1c/3d8622e60d0b767a5510d1d3cf21065b9db874696a51ea6d7a43180a259c/frozenlist-1.8.0-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:39ecbc32f1390387d2aa4f5a995e465e9e2f79ba3adcac92d68e3e0afae6657c", size = 284186, upload-time = "2025-10-06T05:37:33.21Z" }, + { url = "https://files.pythonhosted.org/packages/2d/14/aa36d5f85a89679a85a1d44cd7a6657e0b1c75f61e7cad987b203d2daca8/frozenlist-1.8.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:92db2bf818d5cc8d9c1f1fc56b897662e24ea5adb36ad1f1d82875bd64e03c24", size = 292196, upload-time = "2025-10-06T05:37:36.107Z" }, + { url = "https://files.pythonhosted.org/packages/05/23/6bde59eb55abd407d34f77d39a5126fb7b4f109a3f611d3929f14b700c66/frozenlist-1.8.0-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:2dc43a022e555de94c3b68a4ef0b11c4f747d12c024a520c7101709a2144fb37", size = 273830, upload-time = "2025-10-06T05:37:37.663Z" }, + { url = "https://files.pythonhosted.org/packages/d2/3f/22cff331bfad7a8afa616289000ba793347fcd7bc275f3b28ecea2a27909/frozenlist-1.8.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cb89a7f2de3602cfed448095bab3f178399646ab7c61454315089787df07733a", size = 294289, upload-time = "2025-10-06T05:37:39.261Z" }, + { url = "https://files.pythonhosted.org/packages/a4/89/5b057c799de4838b6c69aa82b79705f2027615e01be996d2486a69ca99c4/frozenlist-1.8.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:33139dc858c580ea50e7e60a1b0ea003efa1fd42e6ec7fdbad78fff65fad2fd2", size = 300318, upload-time = "2025-10-06T05:37:43.213Z" }, + { url = "https://files.pythonhosted.org/packages/30/de/2c22ab3eb2a8af6d69dc799e48455813bab3690c760de58e1bf43b36da3e/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:168c0969a329b416119507ba30b9ea13688fafffac1b7822802537569a1cb0ef", size = 282814, upload-time = "2025-10-06T05:37:45.337Z" }, + { url = "https://files.pythonhosted.org/packages/59/f7/970141a6a8dbd7f556d94977858cfb36fa9b66e0892c6dd780d2219d8cd8/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:28bd570e8e189d7f7b001966435f9dac6718324b5be2990ac496cf1ea9ddb7fe", size = 291762, upload-time = "2025-10-06T05:37:46.657Z" }, + { url = "https://files.pythonhosted.org/packages/c1/15/ca1adae83a719f82df9116d66f5bb28bb95557b3951903d39135620ef157/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b2a095d45c5d46e5e79ba1e5b9cb787f541a8dee0433836cea4b96a2c439dcd8", size = 289470, upload-time = "2025-10-06T05:37:47.946Z" }, + { url = "https://files.pythonhosted.org/packages/ac/83/dca6dc53bf657d371fbc88ddeb21b79891e747189c5de990b9dfff2ccba1/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:eab8145831a0d56ec9c4139b6c3e594c7a83c2c8be25d5bcf2d86136a532287a", size = 289042, upload-time = "2025-10-06T05:37:49.499Z" }, + { url = "https://files.pythonhosted.org/packages/96/52/abddd34ca99be142f354398700536c5bd315880ed0a213812bc491cff5e4/frozenlist-1.8.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:974b28cf63cc99dfb2188d8d222bc6843656188164848c4f679e63dae4b0708e", size = 283148, upload-time = "2025-10-06T05:37:50.745Z" }, + { url = "https://files.pythonhosted.org/packages/af/d3/76bd4ed4317e7119c2b7f57c3f6934aba26d277acc6309f873341640e21f/frozenlist-1.8.0-cp314-cp314t-win32.whl", hash = "sha256:342c97bf697ac5480c0a7ec73cd700ecfa5a8a40ac923bd035484616efecc2df", size = 44676, upload-time = "2025-10-06T05:37:52.222Z" }, + { url = "https://files.pythonhosted.org/packages/89/76/c615883b7b521ead2944bb3480398cbb07e12b7b4e4d073d3752eb721558/frozenlist-1.8.0-cp314-cp314t-win_amd64.whl", hash = "sha256:06be8f67f39c8b1dc671f5d83aaefd3358ae5cdcf8314552c57e7ed3e6475bdd", size = 49451, upload-time = "2025-10-06T05:37:53.425Z" }, + { url = "https://files.pythonhosted.org/packages/e0/a3/5982da14e113d07b325230f95060e2169f5311b1017ea8af2a29b374c289/frozenlist-1.8.0-cp314-cp314t-win_arm64.whl", hash = "sha256:102e6314ca4da683dca92e3b1355490fed5f313b768500084fbe6371fddfdb79", size = 42507, upload-time = "2025-10-06T05:37:54.513Z" }, + { url = "https://files.pythonhosted.org/packages/9a/9a/e35b4a917281c0b8419d4207f4334c8e8c5dbf4f3f5f9ada73958d937dcc/frozenlist-1.8.0-py3-none-any.whl", hash = "sha256:0c18a16eab41e82c295618a77502e17b195883241c563b00f0aa5106fc4eaa0d", size = 13409, upload-time = "2025-10-06T05:38:16.721Z" }, +] + +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "google-api-core" +version = "2.30.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "googleapis-common-protos" }, + { name = "proto-plus" }, + { name = "protobuf" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/ce/502a57fb0ec752026d24df1280b162294b22a0afb98a326084f9a979138b/google_api_core-2.30.3.tar.gz", hash = "sha256:e601a37f148585319b26db36e219df68c5d07b6382cff2d580e83404e44d641b", size = 177001, upload-time = "2026-04-10T00:41:28.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/15/e56f351cf6ef1cfea58e6ac226a7318ed1deb2218c4b3cc9bd9e4b786c5a/google_api_core-2.30.3-py3-none-any.whl", hash = "sha256:a85761ba72c444dad5d611c2220633480b2b6be2521eca69cca2dbb3ffd6bfe8", size = 173274, upload-time = "2026-04-09T22:57:16.198Z" }, +] + +[[package]] +name = "google-api-python-client" +version = "2.116.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-api-core" }, + { name = "google-auth" }, + { name = "google-auth-httplib2" }, + { name = "httplib2" }, + { name = "uritemplate" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/7f/cc87798090179a13c1c0c65521e9d9477f16b64a2510c128d63604543be0/google-api-python-client-2.116.0.tar.gz", hash = "sha256:f9f32361e16114d62929638fe07f77be30216b079ad316dc2ced859d9f72e5ad", size = 11545357, upload-time = "2024-01-30T16:50:32.525Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/73/e4/d8d38ca79045a72880c98e6d2ebc737c92d596d5dc0bf2e4233b00be5daa/google_api_python_client-2.116.0-py2.py3-none-any.whl", hash = "sha256:846e44417c6b7385fa5f5a46cb6b9d23327754c560830245ee53a577c5e44cec", size = 12013377, upload-time = "2024-01-30T16:50:27.425Z" }, +] + +[[package]] +name = "google-auth" +version = "2.27.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cachetools" }, + { name = "pyasn1-modules" }, + { name = "rsa" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/71/10/8a86f8c81350bff52399b9e1125bc72963812c179567e5e6e93dd74c0bbb/google-auth-2.27.0.tar.gz", hash = "sha256:e863a56ccc2d8efa83df7a80272601e43487fa9a728a376205c86c26aaefa821", size = 239688, upload-time = "2024-01-24T18:47:22.41Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/82/41/7fb855444cead5b2213e053447ce3a0b7bf2c3529c443e0cf75b2f13b405/google_auth-2.27.0-py2.py3-none-any.whl", hash = "sha256:8e4bad367015430ff253fe49d500fdc3396c1a434db5740828c728e45bcce245", size = 186786, upload-time = "2024-01-24T18:47:19.869Z" }, +] + +[[package]] +name = "google-auth-httplib2" +version = "0.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "httplib2" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e0/83/7ef576d1c7ccea214e7b001e69c006bc75e058a3a1f2ab810167204b698b/google_auth_httplib2-0.2.1.tar.gz", hash = "sha256:5ef03be3927423c87fb69607b42df23a444e434ddb2555b73b3679793187b7de", size = 11086, upload-time = "2025-10-30T21:13:16.569Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/44/a7/ca23dd006255f70e2bc469d3f9f0c82ea455335bfd682ad4d677adc435de/google_auth_httplib2-0.2.1-py3-none-any.whl", hash = "sha256:1be94c611db91c01f9703e7f62b0a59bbd5587a95571c7b6fade510d648bc08b", size = 9525, upload-time = "2025-10-30T21:13:15.758Z" }, +] + +[[package]] +name = "google-auth-oauthlib" +version = "1.2.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "google-auth" }, + { name = "requests-oauthlib" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/dd/211f27c1e927e2292c2a71d5df1a2aaf261ce50ba7d50848c6ee24e20970/google_auth_oauthlib-1.2.4.tar.gz", hash = "sha256:3ca93859c6cc9003c8e12b2a0868915209d7953f05a70f4880ab57d57e56ee3e", size = 21185, upload-time = "2026-01-15T22:03:10.027Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/21/fb96db432d187b07756e62971c4d89bdef70259e4cfa76ee32bcc0ac97d1/google_auth_oauthlib-1.2.4-py3-none-any.whl", hash = "sha256:0e922eea5f2baacaf8867febb782e46e7b153236c21592ed76ab3ddb77ffd772", size = 19193, upload-time = "2026-01-15T22:03:09.046Z" }, +] + +[[package]] +name = "googleapis-common-protos" +version = "1.75.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b5/c8/f439cffde755cffa462bfbb156278fa6f9d09119719af9814b858fd4f81f/googleapis_common_protos-1.75.0.tar.gz", hash = "sha256:53a062ff3c32552fbd62c11fe23768b78e4ddf0494d5e5fd97d3f4689c75fbbd", size = 151035, upload-time = "2026-05-07T08:04:49.423Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/c8/e2645aa8ed02fd4c7a2f59d68783b65b1f3cbdfe39a6308e156509d1fee8/googleapis_common_protos-1.75.0-py3-none-any.whl", hash = "sha256:961ed60399c457ceb0ee8f285a84c870aabc9c6a832b9d37bb281b5bebde43ed", size = 300631, upload-time = "2026-05-07T08:03:30.345Z" }, +] + +[[package]] +name = "graphene" +version = "3.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "aniso8601" }, + { name = "graphql-core" }, + { name = "graphql-relay" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/82/75/02875858c7c09fc156840181cdee27b23408fac75720a2e1e9128f3d48a5/graphene-3.3.tar.gz", hash = "sha256:529bf40c2a698954217d3713c6041d69d3f719ad0080857d7ee31327112446b0", size = 57893, upload-time = "2023-07-26T06:48:39.083Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/70/96f6027cdfc9bb89fc07627b615cb43fb1c443c93498412beaeaf157e9f1/graphene-3.3-py2.py3-none-any.whl", hash = "sha256:bb3810be33b54cb3e6969506671eb72319e8d7ba0d5ca9c8066472f75bf35a38", size = 128227, upload-time = "2023-07-26T06:48:37.766Z" }, +] + +[[package]] +name = "graphql-core" +version = "3.2.11" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4d/90/f2aff026ab4aebd80eb71905106a0885f4cfde85dcf965543f45bed0d9ee/graphql_core-3.2.11.tar.gz", hash = "sha256:e7e156d10beb127cab5c89ff0da71416fc73d27c484a4757d3b2d35633774802", size = 528407, upload-time = "2026-06-05T13:45:22.915Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/15/b92b4e1d88d02c6eff9733c9eea21846ab435cc4d813d84ccc5d335955df/graphql_core-3.2.11-py3-none-any.whl", hash = "sha256:0b3e35ff41e9adba53021ab0cef475eb18f57c7f53f0f2ca55567fbf3c537ea0", size = 214879, upload-time = "2026-06-05T13:45:21.245Z" }, +] + +[[package]] +name = "graphql-relay" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "graphql-core" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d1/13/98fbf8d67552f102488ffc16c6f559ce71ea15f6294728d33928ab5ff14d/graphql-relay-3.2.0.tar.gz", hash = "sha256:1ff1c51298356e481a0be009ccdff249832ce53f30559c1338f22a0e0d17250c", size = 50027, upload-time = "2022-04-16T11:03:45.447Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/74/16/a4cf06adbc711bd364a73ce043b0b08d8fa5aae3df11b6ee4248bcdad2e0/graphql_relay-3.2.0-py3-none-any.whl", hash = "sha256:c9b22bd28b170ba1fe674c74384a8ff30a76c8e26f88ac3aa1584dd3179953e5", size = 16940, upload-time = "2022-04-16T11:03:43.895Z" }, +] + +[[package]] +name = "greenlet" +version = "3.5.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/f1/fbbfef6af0bad0548f09bc28948ea3c275b4edb19e17fc5ca9900a6a634d/greenlet-3.5.3.tar.gz", hash = "sha256:a61efc018fd3eb317eeca31aba90ee9e7f26f22884a79b6c6ec715bf71bb62f1", size = 200270, upload-time = "2026-06-26T19:28:24.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/58/5404031044f55afad7aad1aff8be3f22b1bed03e237cfeabbc7e5c8cfde0/greenlet-3.5.3-cp311-cp311-macosx_11_0_universal2.whl", hash = "sha256:aca9b4ce85b152b5524ef7d88170efdff80dc0032aa8b75f9aaf7f3479ea95b4", size = 287424, upload-time = "2026-06-26T18:20:31.469Z" }, + { url = "https://files.pythonhosted.org/packages/b4/bf/1c65e9b94a54d547068fa5b5a8a06f221f3316b48908e08668d29c77cb50/greenlet-3.5.3-cp311-cp311-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f71be4920368fe1fabeeaa53d1e3548337e2b223d9565f8ad5e392a75ba23fc", size = 606523, upload-time = "2026-06-26T19:07:08.859Z" }, + { url = "https://files.pythonhosted.org/packages/b8/c7/b66baacc95775ad511287acb0137b95574a9ce5491902372b7564799d790/greenlet-3.5.3-cp311-cp311-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:4d77e67f65f98449e3fb83f795b5d0a8437aead2f874ca89c96576caf4be3af6", size = 618315, upload-time = "2026-06-26T19:10:06.055Z" }, + { url = "https://files.pythonhosted.org/packages/78/2b/28ed29463522fdbe4c15b1f63922041626a7478316b34ab4adda3f0a4aba/greenlet-3.5.3-cp311-cp311-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8540f1e6205bd13ca0ce685581037219ca54a1b41a0a15d228c6c9b8ad5903d7", size = 617381, upload-time = "2026-06-26T18:32:16.077Z" }, + { url = "https://files.pythonhosted.org/packages/2a/7b/ad04e9d1337fc04965dc9fc616b6a72cb65a24b800a014c011ec812f5489/greenlet-3.5.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ef56fe650f50575bf843acde967b9c567687f3c22340941a899b7bc56e956a8", size = 1577771, upload-time = "2026-06-26T19:09:01.537Z" }, + { url = "https://files.pythonhosted.org/packages/d8/33/6c87ab7ba663f70ca21f3022aad1ffe56d3f3e0521e836c2415e13abcc3c/greenlet-3.5.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5121af01cf911e70056c00d4b46d5e9b5d1415550038573d744138bacb59e6b8", size = 1644048, upload-time = "2026-06-26T18:31:42.996Z" }, + { url = "https://files.pythonhosted.org/packages/1c/35/f0d8ee998b422cf8693b270f098e55d8d4ec8006b061b333f54f177d28d9/greenlet-3.5.3-cp311-cp311-win_amd64.whl", hash = "sha256:0f41e4a05a3c0cb31b17023eff28dd111e1d16bf7d7d00406cd7df23f31398a7", size = 239137, upload-time = "2026-06-26T18:23:21.664Z" }, + { url = "https://files.pythonhosted.org/packages/fb/96/b9820295576ef18c9edc404f10e260ae7215ceaf3781a54b720ed2627862/greenlet-3.5.3-cp311-cp311-win_arm64.whl", hash = "sha256:ec6f1af59f6b5f3fc9678e2ea062d8377d22ac644f7844cb7a292910cf12ff44", size = 237630, upload-time = "2026-06-26T18:24:00.281Z" }, + { url = "https://files.pythonhosted.org/packages/5d/6e/4c37d51a2b7f82d2ff11bb6b5f7d766d9a011726624af255e843727627a3/greenlet-3.5.3-cp312-cp312-macosx_11_0_universal2.whl", hash = "sha256:719757059f5a53fd0dde23f78cffeafcdd97b21c850ddb7ca684a3c1a1f122e2", size = 288685, upload-time = "2026-06-26T18:22:08.977Z" }, + { url = "https://files.pythonhosted.org/packages/7a/73/815dd90131c1b71ebdf53dbc7c276cafec2a1173b97559f97aba72724a87/greenlet-3.5.3-cp312-cp312-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:efa9f765dd09f9d0cdac651ffdf631ee59ec5dc6ee7a73e0c012ba9c52fbdf5b", size = 604761, upload-time = "2026-06-26T19:07:10.114Z" }, + { url = "https://files.pythonhosted.org/packages/9f/57/079cfe76bcef36b153b25607ee91c6fcb58f17f8b23c86bbbeabe0c88d72/greenlet-3.5.3-cp312-cp312-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:7faba15ac005376e02a0384504e0243be3370ce010296a44a820feb342b505ab", size = 617044, upload-time = "2026-06-26T19:10:07.25Z" }, + { url = "https://files.pythonhosted.org/packages/37/87/b4d095775a3fb1bcafbb483fc206b27ebb785724c83051447737085dc54e/greenlet-3.5.3-cp312-cp312-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:87142215824be6ac05e2e8e2786eec307ccbc27c36723c3881959df654af6861", size = 614244, upload-time = "2026-06-26T18:32:17.594Z" }, + { url = "https://files.pythonhosted.org/packages/8a/70/7559b609683650fa2b95b8ab84b4ab0b26556a635d19675e12aa832d826d/greenlet-3.5.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:215275b1b49320987352e6c1b054acca0064f965a2c66992bed9a6f7d913f149", size = 1574210, upload-time = "2026-06-26T19:09:03.077Z" }, + { url = "https://files.pythonhosted.org/packages/ae/73/be55392074c60fc37655ca40fa6022457bfbf6718e9e342a7b0b41f96dd2/greenlet-3.5.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:6b1b0eed82364b0e32c4ea0f221452d33e6bb17ae094d9f72aed9851812747ea", size = 1638627, upload-time = "2026-06-26T18:31:44.748Z" }, + { url = "https://files.pythonhosted.org/packages/14/40/c57489acf8e37d74e2913d4eff63aa0dba17acccc4bdeef874dde2dbbec9/greenlet-3.5.3-cp312-cp312-win_amd64.whl", hash = "sha256:cde8adafa2365676f74a979744629589999093bc86e2484214f58e61df08902c", size = 239882, upload-time = "2026-06-26T18:23:27.518Z" }, + { url = "https://files.pythonhosted.org/packages/71/fd/6fea0e3d6600f785069481ee637e09378dd4118acdfd38ad88ae2db31c98/greenlet-3.5.3-cp312-cp312-win_arm64.whl", hash = "sha256:c4e7b79d83805475f0102008843f6eb45fd3bb0b2e88c774adab5fbaab27117d", size = 238211, upload-time = "2026-06-26T18:22:37.671Z" }, + { url = "https://files.pythonhosted.org/packages/9b/ff/a620267401db30a50cc8450ee90730e2d4a85658c055c0e760d4ed47fb13/greenlet-3.5.3-cp313-cp313-macosx_11_0_universal2.whl", hash = "sha256:c8d87c2134d871df96ecdea9cec7cbaab286dadab0f56476e57aaf9e8ac11550", size = 287609, upload-time = "2026-06-26T18:21:14.724Z" }, + { url = "https://files.pythonhosted.org/packages/d6/fa/5401ac78021c826a25b6dde0c705e0a8f29b617509f9185a31dac15fbe1b/greenlet-3.5.3-cp313-cp313-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a2d185dd1621757e70c3861cceffd5317ab4e7ed7eb09c82994828468527ade5", size = 607435, upload-time = "2026-06-26T19:07:11.412Z" }, + { url = "https://files.pythonhosted.org/packages/e9/76/1dc144a2e56e65d36405078ed774224375ea520a1870a6e46e08bb4ac7bf/greenlet-3.5.3-cp313-cp313-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1c514a468149bf8fbbab874188a3535cd8a48a3e353eb53a3d424296f8dbacd3", size = 619787, upload-time = "2026-06-26T19:10:08.396Z" }, + { url = "https://files.pythonhosted.org/packages/bf/87/c298cee62df1de4ad7fec32abda73526cff347fd143a6ed4ac369246668a/greenlet-3.5.3-cp313-cp313-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:915f887cf2682b66419b879423a2e072634aa7b7dce6f3ada4957cfced3f1e9a", size = 616786, upload-time = "2026-06-26T18:32:19.128Z" }, + { url = "https://files.pythonhosted.org/packages/9e/2e/e6f009885ed0705ccf33fe0583c117cfd03cde77e31a596dd5785a30762b/greenlet-3.5.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:766cfd421c13e450feb340cd472a3ed9957d438727b7b4593ad7c76c5d2b0deb", size = 1574316, upload-time = "2026-06-26T19:09:04.273Z" }, + { url = "https://files.pythonhosted.org/packages/ef/fe/43fd110b01e40da0adb7c90ac7ea744bef2d43dca00de5095fd2351c2a68/greenlet-3.5.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2ecda9ec22edf38fa389369eaed8c3d37c05f3c54e69f69438dbb2cc1de1458b", size = 1638614, upload-time = "2026-06-26T18:31:46.297Z" }, + { url = "https://files.pythonhosted.org/packages/0f/7c/062447147a61f8b4337b156fe70d32a165fcf2f89d7ca6255e572806705c/greenlet-3.5.3-cp313-cp313-win_amd64.whl", hash = "sha256:c82304750f057167ff60d188df1d0cc1764ce9567eadf03e6a7443bcedd0b30b", size = 239850, upload-time = "2026-06-26T18:21:54.613Z" }, + { url = "https://files.pythonhosted.org/packages/c7/7e/220a7f5824a64a60443fc03b39dfac4ea63a7fb6d481efa27eafa928e7f4/greenlet-3.5.3-cp313-cp313-win_arm64.whl", hash = "sha256:dc133a1569ee667b2a6ef56ce551084aeefd87a5acbc4736d336d1e2edc6cfc4", size = 238141, upload-time = "2026-06-26T18:22:48.507Z" }, + { url = "https://files.pythonhosted.org/packages/c3/93/43e116ee114b28737ba7e12952a0d4e2f55944d0f84e42bc91ba7192a3c9/greenlet-3.5.3-cp314-cp314-macosx_11_0_universal2.whl", hash = "sha256:fd2e02fa07485778536a036222d616ab957b1d533f36b3ed98ce725d9c9d3117", size = 288202, upload-time = "2026-06-26T18:23:49.604Z" }, + { url = "https://files.pythonhosted.org/packages/82/2f/146d218299046a43d1f029fd544b3d110d0f175a09c715c7e8da4a4a345d/greenlet-3.5.3-cp314-cp314-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:df0a0628d1597eb0897b62f55d1343f772405fd25f3b2a796c76874b0c2e22e8", size = 654096, upload-time = "2026-06-26T19:07:12.71Z" }, + { url = "https://files.pythonhosted.org/packages/a0/cc/04738cafb3f45fa991ea44f9de94c47dcec964f5a972300988a6751f49d9/greenlet-3.5.3-cp314-cp314-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ebd933a6adabc298bab47731a130fe6bfb888bd934eee37810f151159544540d", size = 666304, upload-time = "2026-06-26T19:10:09.503Z" }, + { url = "https://files.pythonhosted.org/packages/ce/aa/4e0dad5e605c270c784ab911c43da6adb136ccd4d81180f763ca429a723d/greenlet-3.5.3-cp314-cp314-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4b9d501b40e80b70e32323c799dd9b420a5577a9601469d362ae1ffb690f3a7c", size = 663635, upload-time = "2026-06-26T18:32:20.802Z" }, + { url = "https://files.pythonhosted.org/packages/d1/50/13efdbea246fe3d3b735e191fec08fb50809f53cd2383ebe123d0809e44b/greenlet-3.5.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:a1fad1d11e7d6aab184107baa8e4ece11ccba3ec9599cd7efa5ff4d70d43256a", size = 1621252, upload-time = "2026-06-26T19:09:05.647Z" }, + { url = "https://files.pythonhosted.org/packages/f7/22/c0a336ae4a1410fd5f5121098e5bfbf1865f64c5ef80b4b5412886c4a332/greenlet-3.5.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fad5aec764399f1b5cc347ad250a59660f20c8f8888ea6bae1f93b769cce1154", size = 1684824, upload-time = "2026-06-26T18:31:47.738Z" }, + { url = "https://files.pythonhosted.org/packages/7a/94/91aec0030bea75c4b3244251d0de60a1f3432d1ecb53ab6c437fb5c3ba61/greenlet-3.5.3-cp314-cp314-win_amd64.whl", hash = "sha256:7669aa24cf2a1041d6f7899575b494a3ab4cf68bfcc8609b1dc0be7272db835e", size = 240754, upload-time = "2026-06-26T18:22:15.669Z" }, + { url = "https://files.pythonhosted.org/packages/e5/06/68d0983e79e02138f64b4d303c500c27ddb48e5e77f3debb80888a921eae/greenlet-3.5.3-cp314-cp314-win_arm64.whl", hash = "sha256:5b4807c4082c9d1b6d9eed56fcd041863e37f2228106eef24c30ca096e238605", size = 239549, upload-time = "2026-06-26T18:22:42.996Z" }, + { url = "https://files.pythonhosted.org/packages/91/95/3e161213d7f1d378d15aa9e792093e9bfe01844680d04b7fd6e0107c9098/greenlet-3.5.3-cp314-cp314t-macosx_11_0_universal2.whl", hash = "sha256:271a8ea7c1024e8a0d7dd2be66dd66dda8a07193f41a17b9e924f7600f5b62be", size = 296389, upload-time = "2026-06-26T18:22:20.657Z" }, + { url = "https://files.pythonhosted.org/packages/00/92/715c44721abe2b4d1ae9abde4179411868a5bff312479f54e105d372f131/greenlet-3.5.3-cp314-cp314t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:19131729ae0ddc3c2e1ef85e650169b5e37ee32e400f215f78b94d7b0d567310", size = 653382, upload-time = "2026-06-26T19:07:14.209Z" }, + { url = "https://files.pythonhosted.org/packages/a0/83/37a10372a1090a6624cca8e74c12df1a36c2dc36429ed0255b7fb1aeee23/greenlet-3.5.3-cp314-cp314t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1540dd8e5fc2a5aec40fbb98ef8e149fa47c89a4b4a1cf2575a14d3d1869d7a8", size = 659401, upload-time = "2026-06-26T19:10:10.876Z" }, + { url = "https://files.pythonhosted.org/packages/db/e2/d1509cad4207da559cc42986ecdd8fc67ad0d1bba2bf03023c467fd5e0f3/greenlet-3.5.3-cp314-cp314t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e81fa194a1d20967877bdf9c7794db2bc99063e5be36aee710c08f04c5bb087f", size = 656969, upload-time = "2026-06-26T18:32:22.272Z" }, + { url = "https://files.pythonhosted.org/packages/86/7d/eaf70de20aadca3a5884aec58362861c64ce45e7b277f47ed026926a3b89/greenlet-3.5.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:55cf4d777485d43110e47133cbba6d74a8885a87ec1227ef0267f9ee80c5aa21", size = 1617822, upload-time = "2026-06-26T19:09:06.893Z" }, + { url = "https://files.pythonhosted.org/packages/8a/f9/414d38fc400ae4350d4185eaad1827676f7cf5287b9136e0ed1cbbe20a7f/greenlet-3.5.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:12a248ba75f6a9a236375f52296c498c89ff1d8badf32deb9eca7abd5853f7da", size = 1677983, upload-time = "2026-06-26T18:31:49.396Z" }, + { url = "https://files.pythonhosted.org/packages/e4/15/7edb977e08f9bff702fe42d6c902702786ff6b9694058b4e6a2a6ac90e57/greenlet-3.5.3-cp314-cp314t-win_amd64.whl", hash = "sha256:efc6bd60ea02e085862c74a3ef64b147ffc6f1a5ea7d9f26e7a939943f68c1e3", size = 243626, upload-time = "2026-06-26T18:24:41.485Z" }, + { url = "https://files.pythonhosted.org/packages/2c/8a/93928dce91e6b3598b5e779e8d1fd6576a504640c58e78627077f6a7a91a/greenlet-3.5.3-cp315-cp315-macosx_11_0_universal2.whl", hash = "sha256:ea03f2f04367845d6b58eeed276e1e56e51f0b97d8ad5a88a7d20a91dc9056cc", size = 288860, upload-time = "2026-06-26T18:22:48.07Z" }, + { url = "https://files.pythonhosted.org/packages/4f/ca/69db42d447a1378043e2c8f19c09cbbd1263371505053c496b49066d3d16/greenlet-3.5.3-cp315-cp315-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:78dbef602fda6d97d957eb7937f70c9ce9e9527330347f8f6b6f9e554a9e7a47", size = 659747, upload-time = "2026-06-26T19:07:15.565Z" }, + { url = "https://files.pythonhosted.org/packages/a8/0b/af7ac2ef8dd41e3da1a40dda6305c23b9a03e13ba975ec916357b50f8575/greenlet-3.5.3-cp315-cp315-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6f73857adb8fee13fa56c172bd11262f888c0c648f9fea113e777bb2c7904a81", size = 670419, upload-time = "2026-06-26T19:10:12.293Z" }, + { url = "https://files.pythonhosted.org/packages/51/1e/1d51640cacbfc455dbe9f9a9f594c49e4e244f63b9971a2f4764e46cc53d/greenlet-3.5.3-cp315-cp315-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:232fec92e823addaf02d9472cf7381e24a1d046a6ced1103c5caa4c21b9dfc1d", size = 668787, upload-time = "2026-06-26T18:32:24.298Z" }, + { url = "https://files.pythonhosted.org/packages/21/66/4030d5b0b5894500023f003bb054d9bb354dfbd1e186c3a296759172f5f5/greenlet-3.5.3-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:2421c3564da9429d5586d46ca31ebb26516b5498a802cf65c041a8e8a8980d34", size = 1626305, upload-time = "2026-06-26T19:09:08.281Z" }, + { url = "https://files.pythonhosted.org/packages/0e/50/5221371c7550108dfa3c378debc41d032aa9c78e89abb01d8011cfc93289/greenlet-3.5.3-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e0f0d160f0b2e558e6c75f7930967183255dc9735e5f5b8cae58ee09c9576d8b", size = 1688631, upload-time = "2026-06-26T18:31:51.278Z" }, + { url = "https://files.pythonhosted.org/packages/68/5d/00d469daae3c65d2bf620b10eee82eb022127d483c6bc8c69fae6f3fbf17/greenlet-3.5.3-cp315-cp315-win_amd64.whl", hash = "sha256:dd99329bbc15ca78dcc583dba05d0b1b0bae01ab6c2174989f5aaee3e41ac930", size = 241027, upload-time = "2026-06-26T18:22:38.203Z" }, + { url = "https://files.pythonhosted.org/packages/e7/e8/883785b44c5780ed71e83d3e4437e710470be17a2e181e8b601e2da0dc4a/greenlet-3.5.3-cp315-cp315-win_arm64.whl", hash = "sha256:499fef2acede88c1864a57bb586b4bf533c81e1b82df7ab93451cdb47dfec227", size = 240085, upload-time = "2026-06-26T18:23:54.217Z" }, + { url = "https://files.pythonhosted.org/packages/1c/da/4f4a8450962fad137c1c8981a3f1b8919d06c829993d4d476f9c525d5173/greenlet-3.5.3-cp315-cp315t-macosx_11_0_universal2.whl", hash = "sha256:176bc16a721fa5fc294d70b87b4dfa5fbdd251b3da5d5372735ecef9bd7d6d0c", size = 297221, upload-time = "2026-06-26T18:23:27.176Z" }, + { url = "https://files.pythonhosted.org/packages/57/66/b3bfae3e220a9b63ea539a0eea681800c69ab1aada757eae8789f183e7ce/greenlet-3.5.3-cp315-cp315t-manylinux_2_24_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:629b614d2b786e89c50440e246f33eea78f58a962d0bdbbcc809e6d13605903f", size = 657221, upload-time = "2026-06-26T19:07:16.973Z" }, + { url = "https://files.pythonhosted.org/packages/7b/81/b6d4d73a709684fc77e7fa034d7c2fe82cffa9fc920fadcaa659c2626213/greenlet-3.5.3-cp315-cp315t-manylinux_2_24_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:2b2e857ae16f5f72142edf75f9f176fe7526ba19a2841df1420516f83831c9f2", size = 663226, upload-time = "2026-06-26T19:10:13.723Z" }, + { url = "https://files.pythonhosted.org/packages/f5/07/e210b02b589f16e74ff48b730690e4a34ffe984219fce4f3c1a0e7ec8545/greenlet-3.5.3-cp315-cp315t-manylinux_2_24_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e515757e2e36bcbf1fad09a46e1557e8b1ae1797d4b44d09da7deed88ad28608", size = 660802, upload-time = "2026-06-26T18:32:26.081Z" }, + { url = "https://files.pythonhosted.org/packages/eb/2e/5303eb3fa06bca089060f479707182a93e360683bc252acf846c3090d34e/greenlet-3.5.3-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:b363d46ed1ea431825fdb01471bb024fc08399bad1572a616e853c7684415adb", size = 1622157, upload-time = "2026-06-26T19:09:09.527Z" }, + { url = "https://files.pythonhosted.org/packages/54/70/50de47a488f14df260b50ae34fb5d56016e308b098eab02c878b5223c26a/greenlet-3.5.3-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:e44da2f5bbdaabaf7d80b73dbb430c7035771e9f244e3c8b769715c9d8fa0a16", size = 1681159, upload-time = "2026-06-26T18:31:52.986Z" }, + { url = "https://files.pythonhosted.org/packages/a7/13/1055e1dda7882073eda533e2b96c62e55bbd2db7fda6d5ece992febc7071/greenlet-3.5.3-cp315-cp315t-win_amd64.whl", hash = "sha256:8ff8bed3e3baa20a3ea261ce00526f1898ad4801d4886fd2220580ee0ad8fadf", size = 244007, upload-time = "2026-06-26T18:22:04.353Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0d/ca7d15afbdc397e3401134c9e1800d51d12b829661786187a4ad08fe484f/greenlet-3.5.3-cp315-cp315t-win_arm64.whl", hash = "sha256:b7068bd09f761f3f5b4d214c2bed063186b2a86148c740b3873e3f56d79bac31", size = 242586, upload-time = "2026-06-26T18:23:37.93Z" }, +] + +[[package]] +name = "h11" +version = "0.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/01/ee/02a2c011bdab74c6fb3c75474d40b3052059d95df7e73351460c8588d963/h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1", size = 101250, upload-time = "2025-04-24T03:35:25.427Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/4b/29cac41a4d98d144bf5f6d33995617b185d14b22401f75ca86f384e87ff1/h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86", size = 37515, upload-time = "2025-04-24T03:35:24.344Z" }, +] + +[[package]] +name = "html5lib" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, + { name = "webencodings" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/b6/b55c3f49042f1df3dcd422b7f224f939892ee94f22abcf503a9b7339eaf2/html5lib-1.1.tar.gz", hash = "sha256:b2e5b40261e20f354d198eae92afc10d750afb487ed5e50f9c4eaf07c184146f", size = 272215, upload-time = "2020-06-22T23:32:38.834Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/dd/a834df6482147d48e225a49515aabc28974ad5a4ca3215c18a882565b028/html5lib-1.1-py2.py3-none-any.whl", hash = "sha256:0d78f8fde1c230e99fe37986a60526d7049ed4bf8a9fadbad5f00e22e58e041d", size = 112173, upload-time = "2020-06-22T23:32:36.781Z" }, +] + +[[package]] +name = "httpcore" +version = "1.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/94/82699a10bca87a5556c9c59b5963f2d039dbd239f25bc2a63907a05a14cb/httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8", size = 85484, upload-time = "2025-04-24T22:06:22.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/f5/f66802a942d491edb555dd61e3a9961140fd64c90bce1eafd741609d334d/httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55", size = 78784, upload-time = "2025-04-24T22:06:20.566Z" }, +] + +[[package]] +name = "httplib2" +version = "0.32.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyparsing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/84/f5/ccf58de92d61e3ad921119668f54ed36ca1d0cf5dcc5c1657dfb164fd78b/httplib2-0.32.0.tar.gz", hash = "sha256:48a0ef30a42db65d8f3399045e1d09ab0ba66e3b9efc360d07f80ea55d286025", size = 254283, upload-time = "2026-06-26T10:13:56.265Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/33/a0/550eec327e5f5c7b732531c489f5307efec41f047b0d703bd4ca1e5ad2db/httplib2-0.32.0-py3-none-any.whl", hash = "sha256:dc6705cacdf3fb0a2aba7629fa33c90fd93e30035db0c157325826be177e4816", size = 93148, upload-time = "2026-06-26T10:13:54.985Z" }, +] + +[[package]] +name = "httpx" +version = "0.25.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, + { name = "certifi" }, + { name = "httpcore" }, + { name = "idna" }, + { name = "sniffio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/8c/23/911d93a022979d3ea295f659fbe7edb07b3f4561a477e83b3a6d0e0c914e/httpx-0.25.2.tar.gz", hash = "sha256:8b8fcaa0c8ea7b05edd69a094e63a2094c4efcb48129fb757361bc423c0ad9e8", size = 123889, upload-time = "2023-11-24T12:36:33.988Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a2/65/6940eeb21dcb2953778a6895281c179efd9100463ff08cb6232bb6480da7/httpx-0.25.2-py3-none-any.whl", hash = "sha256:a05d3d052d9b2dfce0e3896636467f8a5342fb2b902c819428e1ac65413ca118", size = 74980, upload-time = "2023-11-24T12:36:31.403Z" }, +] + +[[package]] +name = "idna" +version = "3.18" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/63/9496c57188a2ee585e0f1db071d75089a11e98aa86eb99d9d7618fc1edce/idna-3.18.tar.gz", hash = "sha256:ffb385a7e039654cef1ab9ef32c6fafe283c0c0467bba1d9029738ce4a14a848", size = 196711, upload-time = "2026-06-02T14:34:07.794Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/5e/d4e9f1a599fb8e573b7b87160658329fbf28d19eac2718f51fc3def3aa5a/idna-3.18-py3-none-any.whl", hash = "sha256:7f952cbe720b688055e3f87de14f5c3e5fdaa8bc3928985c4077ca689de849a2", size = 65455, upload-time = "2026-06-02T14:34:06.319Z" }, +] + +[[package]] +name = "imagesize" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/e6/7bf14eeb8f8b7251141944835abd42eb20a658d89084b7e1f3e5fe394090/imagesize-2.0.0.tar.gz", hash = "sha256:8e8358c4a05c304f1fccf7ff96f036e7243a189e9e42e90851993c558cfe9ee3", size = 1773045, upload-time = "2026-03-03T14:18:29.941Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5f/53/fb7122b71361a0d121b669dcf3d31244ef75badbbb724af388948de543e2/imagesize-2.0.0-py2.py3-none-any.whl", hash = "sha256:5667c5bbb57ab3f1fa4bc366f4fbc971db3d5ed011fd2715fd8001f782718d96", size = 9441, upload-time = "2026-03-03T14:18:27.892Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "6.11.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ee/eb/58c2ab27ee628ad801f56d4017fe62afab0293116f6d0b08f1d5bd46e06f/importlib_metadata-6.11.0.tar.gz", hash = "sha256:1231cf92d825c9e03cfc4da076a16de6422c863558229ea0b22b675657463443", size = 54593, upload-time = "2023-12-03T17:33:10.693Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/9b/ecce94952ab5ea74c31dcf9ccf78ccd484eebebef06019bf8cb579ab4519/importlib_metadata-6.11.0-py3-none-any.whl", hash = "sha256:f0afba6205ad8f8947c7d338b5342d5db2afbfd82f9cbef7879a9539cc12eb9b", size = 23427, upload-time = "2023-12-03T17:33:08.965Z" }, +] + +[[package]] +name = "inflection" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e1/7e/691d061b7329bc8d54edbf0ec22fbfb2afe61facb681f9aaa9bff7a27d04/inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417", size = 15091, upload-time = "2020-08-22T08:16:29.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/59/91/aa6bde563e0085a02a435aa99b49ef75b0a4b062635e606dab23ce18d720/inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2", size = 9454, upload-time = "2020-08-22T08:16:27.816Z" }, +] + +[[package]] +name = "iniconfig" +version = "2.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/34/14ca021ce8e5dfedc35312d08ba8bf51fdd999c576889fc2c24cb97f4f10/iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730", size = 20503, upload-time = "2025-10-18T21:55:43.219Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cb/b1/3846dd7f199d53cb17f49cba7e651e9ce294d8497c8c150530ed11865bb8/iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12", size = 7484, upload-time = "2025-10-18T21:55:41.639Z" }, +] + +[[package]] +name = "ipython" +version = "8.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "decorator" }, + { name = "jedi" }, + { name = "matplotlib-inline" }, + { name = "pexpect", marker = "sys_platform != 'win32'" }, + { name = "prompt-toolkit" }, + { name = "pygments" }, + { name = "stack-data" }, + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c5/d1/187474d64bdefcb6804c1a3a1597d9e94f287e71c06f50f7784d56833fb7/ipython-8.20.0.tar.gz", hash = "sha256:2f21bd3fc1d51550c89ee3944ae04bbc7bc79e129ea0937da6e6c68bfdbf117a", size = 5488416, upload-time = "2024-01-08T10:11:39.261Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/db/04/1bf767de3ee9e462a09efb1eab3074d715ef5ab582b8a0cb6d5d5615212d/ipython-8.20.0-py3-none-any.whl", hash = "sha256:bc9716aad6f29f36c449e30821c9dd0c1c1a7b59ddcc26931685b87b4c569619", size = 809179, upload-time = "2024-01-08T10:11:36.16Z" }, +] + +[[package]] +name = "isort" +version = "5.13.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/87/f9/c1eb8635a24e87ade2efce21e3ce8cd6b8630bb685ddc9cdaca1349b2eb5/isort-5.13.2.tar.gz", hash = "sha256:48fdfcb9face5d58a4f6dde2e72a1fb8dcaf8ab26f95ab49fab84c2ddefb0109", size = 175303, upload-time = "2023-12-13T20:37:26.124Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/b3/8def84f539e7d2289a02f0524b944b15d7c75dab7628bedf1c4f0992029c/isort-5.13.2-py3-none-any.whl", hash = "sha256:8ca5e72a8d85860d5a3fa69b8745237f2939afe12dbf656afbcb47fe72d947a6", size = 92310, upload-time = "2023-12-13T20:37:23.244Z" }, +] + +[[package]] +name = "itsdangerous" +version = "2.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7f/a1/d3fb83e7a61fa0c0d3d08ad0a94ddbeff3731c05212617dff3a94e097f08/itsdangerous-2.1.2.tar.gz", hash = "sha256:5dbbc68b317e5e42f327f9021763545dc3fc3bfe22e6deb96aaf1fc38874156a", size = 56143, upload-time = "2022-03-24T15:12:15.102Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/68/5f/447e04e828f47465eeab35b5d408b7ebaaaee207f48b7136c5a7267a30ae/itsdangerous-2.1.2-py3-none-any.whl", hash = "sha256:2c2349112351b88699d8d4b6b075022c0808887cb7ad10069318a8b0bc88db44", size = 15749, upload-time = "2022-03-24T15:12:13.2Z" }, +] + +[[package]] +name = "jaraco-classes" +version = "3.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/c0/ed4a27bc5571b99e3cff68f8a9fa5b56ff7df1c2251cc715a652ddd26402/jaraco.classes-3.4.0.tar.gz", hash = "sha256:47a024b51d0239c0dd8c8540c6c7f484be3b8fcf0b2d85c13825780d3b3f3acd", size = 11780, upload-time = "2024-03-31T07:27:36.643Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/66/b15ce62552d84bbfcec9a4873ab79d993a1dd4edb922cbfccae192bd5b5f/jaraco.classes-3.4.0-py3-none-any.whl", hash = "sha256:f662826b6bed8cace05e7ff873ce0f9283b5c924470fe664fff1c2f00f581790", size = 6777, upload-time = "2024-03-31T07:27:34.792Z" }, +] + +[[package]] +name = "jaraco-context" +version = "6.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "backports-tarfile", marker = "python_full_version < '3.12'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/af/50/4763cd07e722bb6285316d390a164bc7e479db9d90daa769f22578f698b4/jaraco_context-6.1.2.tar.gz", hash = "sha256:f1a6c9d391e661cc5b8d39861ff077a7dc24dc23833ccee564b234b81c82dfe3", size = 16801, upload-time = "2026-03-20T22:13:33.922Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f2/58/bc8954bda5fcda97bd7c19be11b85f91973d67a706ed4a3aec33e7de22db/jaraco_context-6.1.2-py3-none-any.whl", hash = "sha256:bf8150b79a2d5d91ae48629d8b427a8f7ba0e1097dd6202a9059f29a36379535", size = 7871, upload-time = "2026-03-20T22:13:32.808Z" }, +] + +[[package]] +name = "jaraco-functools" +version = "4.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "more-itertools" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/36/cf/ea4ef2920830dea3f5ab2ea4da6fb67724e6dca80ee2553788c3607243d0/jaraco_functools-4.5.0.tar.gz", hash = "sha256:3bb5665ea4a020cf78a7040e89154c77edadb3ca74f366479669c5999aa70b03", size = 20272, upload-time = "2026-05-15T21:34:10.025Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/9a/982e48afcffcd727a9144506720ffd4224b6b7e355c98641866f38b7c043/jaraco_functools-4.5.0-py3-none-any.whl", hash = "sha256:79ce39246eddbde4b3a03b77ea5f0f7878dc669b166a66cf3fa8e266aa3fa2f4", size = 10594, upload-time = "2026-05-15T21:34:08.595Z" }, +] + +[[package]] +name = "jedi" +version = "0.20.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "parso" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/46/b7/a3635f6a2d7cf5b5dd98064fc1d5fbbafcb25477bcea204a3a92145d158b/jedi-0.20.0.tar.gz", hash = "sha256:c3f4ccbd276696f4b19c54618d4fb18f9fc24b0aef02acf704b23f487daa1011", size = 3119416, upload-time = "2026-05-01T23:38:47.814Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/93/242e2eab5fe682ffcb8b0084bde703a41d51e17ee0f3a31ff0d9d813620a/jedi-0.20.0-py2.py3-none-any.whl", hash = "sha256:7bdd9c2634f56713299976f4cbd59cb3fa92165cc5e05ea811fb253480728b67", size = 4884812, upload-time = "2026-05-01T23:38:43.919Z" }, +] + +[[package]] +name = "jeepney" +version = "0.9.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7b/6f/357efd7602486741aa73ffc0617fb310a29b588ed0fd69c2399acbb85b0c/jeepney-0.9.0.tar.gz", hash = "sha256:cf0e9e845622b81e4a28df94c40345400256ec608d0e55bb8a3feaa9163f5732", size = 106758, upload-time = "2025-02-27T18:51:01.684Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/a3/e137168c9c44d18eff0376253da9f1e9234d0239e0ee230d2fee6cea8e55/jeepney-0.9.0-py3-none-any.whl", hash = "sha256:97e5714520c16fc0a45695e5365a2e11b81ea79bba796e26f9f1d178cb182683", size = 49010, upload-time = "2025-02-27T18:51:00.104Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/df/bf/f7da0350254c0ed7c72f3e33cef02e048281fec7ecec5f032d4aac52226b/jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d", size = 245115, upload-time = "2025-03-05T20:05:02.478Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/a1/3d680cbfd5f4b8f15abc1d571870c5fc3e594bb582bc3b64ea099db13e56/jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67", size = 134899, upload-time = "2025-03-05T20:05:00.369Z" }, +] + +[[package]] +name = "jmespath" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d3/59/322338183ecda247fb5d1763a6cbe46eff7222eaeebafd9fa65d4bf5cb11/jmespath-1.1.0.tar.gz", hash = "sha256:472c87d80f36026ae83c6ddd0f1d05d4e510134ed462851fd5f754c8c3cbb88d", size = 27377, upload-time = "2026-01-22T16:35:26.279Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/14/2f/967ba146e6d58cf6a652da73885f52fc68001525b4197effc174321d70b4/jmespath-1.1.0-py3-none-any.whl", hash = "sha256:a5663118de4908c91729bea0acadca56526eb2698e83de10cd116ae0f4e97c64", size = 20419, upload-time = "2026-01-22T16:35:24.919Z" }, +] + +[[package]] +name = "jsonschema" +version = "4.21.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "jsonschema-specifications" }, + { name = "referencing" }, + { name = "rpds-py" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4d/c5/3f6165d3df419ea7b0990b3abed4ff348946a826caf0e7c990b65ff7b9be/jsonschema-4.21.1.tar.gz", hash = "sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5", size = 321491, upload-time = "2024-01-19T21:11:13.923Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/39/9d/b035d024c62c85f2e2d4806a59ca7b8520307f34e0932fbc8cc75fe7b2d9/jsonschema-4.21.1-py3-none-any.whl", hash = "sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f", size = 85527, upload-time = "2024-01-19T21:11:12.105Z" }, +] + +[[package]] +name = "jsonschema-specifications" +version = "2025.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "referencing" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/19/74/a633ee74eb36c44aa6d1095e7cc5569bebf04342ee146178e2d36600708b/jsonschema_specifications-2025.9.1.tar.gz", hash = "sha256:b540987f239e745613c7a9176f3edb72b832a4ac465cf02712288397832b5e8d", size = 32855, upload-time = "2025-09-08T01:34:59.186Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/41/45/1a4ed80516f02155c51f51e8cedb3c1902296743db0bbc66608a0db2814f/jsonschema_specifications-2025.9.1-py3-none-any.whl", hash = "sha256:98802fee3a11ee76ecaca44429fda8a41bff98b00a0f2838151b113f210cc6fe", size = 18437, upload-time = "2025-09-08T01:34:57.871Z" }, +] + +[[package]] +name = "keyring" +version = "25.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata", marker = "python_full_version < '3.12'" }, + { name = "jaraco-classes" }, + { name = "jaraco-context" }, + { name = "jaraco-functools" }, + { name = "jeepney", marker = "sys_platform == 'linux'" }, + { name = "pywin32-ctypes", marker = "sys_platform == 'win32'" }, + { name = "secretstorage", marker = "sys_platform == 'linux'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/4b/674af6ef2f97d56f0ab5153bf0bfa28ccb6c3ed4d1babf4305449668807b/keyring-25.7.0.tar.gz", hash = "sha256:fe01bd85eb3f8fb3dd0405defdeac9a5b4f6f0439edbb3149577f244a2e8245b", size = 63516, upload-time = "2025-11-16T16:26:09.482Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/db/e655086b7f3a705df045bf0933bdd9c2f79bb3c97bfef1384598bb79a217/keyring-25.7.0-py3-none-any.whl", hash = "sha256:be4a0b195f149690c166e850609a477c532ddbfbaed96a404d4e43f8d5e2689f", size = 39160, upload-time = "2025-11-16T16:26:08.402Z" }, +] + +[[package]] +name = "kombu" +version = "5.3.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "amqp" }, + { name = "vine" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/3a/2fb09708fef243e35c286414f2bf78543dc311ae7d3de5d343bd8437e38d/kombu-5.3.7.tar.gz", hash = "sha256:011c4cd9a355c14a1de8d35d257314a1d2456d52b7140388561acac3cf1a97bf", size = 439344, upload-time = "2024-04-11T12:15:06.105Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/9a/1951f2261271d6994f0df5a55b3e9cdad42ed1fc3020a0dc7f6de80a4566/kombu-5.3.7-py3-none-any.whl", hash = "sha256:5634c511926309c7f9789f1433e9ed402616b56836ef9878f01bd59267b4c7a9", size = 200190, upload-time = "2024-04-11T12:14:59.891Z" }, +] + +[[package]] +name = "mako" +version = "1.3.12" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/00/62/791b31e69ae182791ec67f04850f2f062716bbd205483d63a215f3e062d3/mako-1.3.12.tar.gz", hash = "sha256:9f778e93289bd410bb35daadeb4fc66d95a746f0b75777b942088b7fd7af550a", size = 400219, upload-time = "2026-04-28T19:01:08.512Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bc/b1/a0ec7a5a9db730a08daef1fdfb8090435b82465abbf758a596f0ea88727e/mako-1.3.12-py3-none-any.whl", hash = "sha256:8f61569480282dbf557145ce441e4ba888be453c30989f879f0d652e39f53ea9", size = 78521, upload-time = "2026-04-28T19:01:10.393Z" }, +] + +[[package]] +name = "markdown" +version = "3.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/11/28/c5441a6642681d92de56063fa7984df56f783d3f1eba518dc3e7a253b606/Markdown-3.5.2.tar.gz", hash = "sha256:e1ac7b3dc550ee80e602e71c1d168002f062e49f1b11e26a36264dafd4df2ef8", size = 349398, upload-time = "2024-01-10T15:19:38.261Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/f4/f0031854de10a0bc7821ef9fca0b92ca0d7aa6fbfbf504c5473ba825e49c/Markdown-3.5.2-py3-none-any.whl", hash = "sha256:d43323865d89fc0cb9b20c75fc8ad313af307cc087e84b657d9eec768eddeadd", size = 103870, upload-time = "2024-01-10T15:19:36.071Z" }, +] + +[[package]] +name = "markdown-it-py" +version = "4.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mdurl" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/06/ff/7841249c247aa650a76b9ee4bbaeae59370dc8bfd2f6c01f3630c35eb134/markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49", size = 82454, upload-time = "2026-05-07T12:08:28.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/81/4da04ced5a082363ecfa159c010d200ecbd959ae410c10c0264a38cac0f5/markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a", size = 91687, upload-time = "2026-05-07T12:08:27.182Z" }, +] + +[[package]] +name = "markupsafe" +version = "3.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/7e/99/7690b6d4034fffd95959cbe0c02de8deb3098cc577c67bb6a24fe5d7caa7/markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698", size = 80313, upload-time = "2025-09-27T18:37:40.426Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/db/fefacb2136439fc8dd20e797950e749aa1f4997ed584c62cfb8ef7c2be0e/markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad", size = 11631, upload-time = "2025-09-27T18:36:18.185Z" }, + { url = "https://files.pythonhosted.org/packages/e1/2e/5898933336b61975ce9dc04decbc0a7f2fee78c30353c5efba7f2d6ff27a/markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a", size = 12058, upload-time = "2025-09-27T18:36:19.444Z" }, + { url = "https://files.pythonhosted.org/packages/1d/09/adf2df3699d87d1d8184038df46a9c80d78c0148492323f4693df54e17bb/markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50", size = 24287, upload-time = "2025-09-27T18:36:20.768Z" }, + { url = "https://files.pythonhosted.org/packages/30/ac/0273f6fcb5f42e314c6d8cd99effae6a5354604d461b8d392b5ec9530a54/markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf", size = 22940, upload-time = "2025-09-27T18:36:22.249Z" }, + { url = "https://files.pythonhosted.org/packages/19/ae/31c1be199ef767124c042c6c3e904da327a2f7f0cd63a0337e1eca2967a8/markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f", size = 21887, upload-time = "2025-09-27T18:36:23.535Z" }, + { url = "https://files.pythonhosted.org/packages/b2/76/7edcab99d5349a4532a459e1fe64f0b0467a3365056ae550d3bcf3f79e1e/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a", size = 23692, upload-time = "2025-09-27T18:36:24.823Z" }, + { url = "https://files.pythonhosted.org/packages/a4/28/6e74cdd26d7514849143d69f0bf2399f929c37dc2b31e6829fd2045b2765/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115", size = 21471, upload-time = "2025-09-27T18:36:25.95Z" }, + { url = "https://files.pythonhosted.org/packages/62/7e/a145f36a5c2945673e590850a6f8014318d5577ed7e5920a4b3448e0865d/markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a", size = 22923, upload-time = "2025-09-27T18:36:27.109Z" }, + { url = "https://files.pythonhosted.org/packages/0f/62/d9c46a7f5c9adbeeeda52f5b8d802e1094e9717705a645efc71b0913a0a8/markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19", size = 14572, upload-time = "2025-09-27T18:36:28.045Z" }, + { url = "https://files.pythonhosted.org/packages/83/8a/4414c03d3f891739326e1783338e48fb49781cc915b2e0ee052aa490d586/markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01", size = 15077, upload-time = "2025-09-27T18:36:29.025Z" }, + { url = "https://files.pythonhosted.org/packages/35/73/893072b42e6862f319b5207adc9ae06070f095b358655f077f69a35601f0/markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c", size = 13876, upload-time = "2025-09-27T18:36:29.954Z" }, + { url = "https://files.pythonhosted.org/packages/5a/72/147da192e38635ada20e0a2e1a51cf8823d2119ce8883f7053879c2199b5/markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e", size = 11615, upload-time = "2025-09-27T18:36:30.854Z" }, + { url = "https://files.pythonhosted.org/packages/9a/81/7e4e08678a1f98521201c3079f77db69fb552acd56067661f8c2f534a718/markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce", size = 12020, upload-time = "2025-09-27T18:36:31.971Z" }, + { url = "https://files.pythonhosted.org/packages/1e/2c/799f4742efc39633a1b54a92eec4082e4f815314869865d876824c257c1e/markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d", size = 24332, upload-time = "2025-09-27T18:36:32.813Z" }, + { url = "https://files.pythonhosted.org/packages/3c/2e/8d0c2ab90a8c1d9a24f0399058ab8519a3279d1bd4289511d74e909f060e/markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d", size = 22947, upload-time = "2025-09-27T18:36:33.86Z" }, + { url = "https://files.pythonhosted.org/packages/2c/54/887f3092a85238093a0b2154bd629c89444f395618842e8b0c41783898ea/markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a", size = 21962, upload-time = "2025-09-27T18:36:35.099Z" }, + { url = "https://files.pythonhosted.org/packages/c9/2f/336b8c7b6f4a4d95e91119dc8521402461b74a485558d8f238a68312f11c/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b", size = 23760, upload-time = "2025-09-27T18:36:36.001Z" }, + { url = "https://files.pythonhosted.org/packages/32/43/67935f2b7e4982ffb50a4d169b724d74b62a3964bc1a9a527f5ac4f1ee2b/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f", size = 21529, upload-time = "2025-09-27T18:36:36.906Z" }, + { url = "https://files.pythonhosted.org/packages/89/e0/4486f11e51bbba8b0c041098859e869e304d1c261e59244baa3d295d47b7/markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b", size = 23015, upload-time = "2025-09-27T18:36:37.868Z" }, + { url = "https://files.pythonhosted.org/packages/2f/e1/78ee7a023dac597a5825441ebd17170785a9dab23de95d2c7508ade94e0e/markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d", size = 14540, upload-time = "2025-09-27T18:36:38.761Z" }, + { url = "https://files.pythonhosted.org/packages/aa/5b/bec5aa9bbbb2c946ca2733ef9c4ca91c91b6a24580193e891b5f7dbe8e1e/markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c", size = 15105, upload-time = "2025-09-27T18:36:39.701Z" }, + { url = "https://files.pythonhosted.org/packages/e5/f1/216fc1bbfd74011693a4fd837e7026152e89c4bcf3e77b6692fba9923123/markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f", size = 13906, upload-time = "2025-09-27T18:36:40.689Z" }, + { url = "https://files.pythonhosted.org/packages/38/2f/907b9c7bbba283e68f20259574b13d005c121a0fa4c175f9bed27c4597ff/markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795", size = 11622, upload-time = "2025-09-27T18:36:41.777Z" }, + { url = "https://files.pythonhosted.org/packages/9c/d9/5f7756922cdd676869eca1c4e3c0cd0df60ed30199ffd775e319089cb3ed/markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219", size = 12029, upload-time = "2025-09-27T18:36:43.257Z" }, + { url = "https://files.pythonhosted.org/packages/00/07/575a68c754943058c78f30db02ee03a64b3c638586fba6a6dd56830b30a3/markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6", size = 24374, upload-time = "2025-09-27T18:36:44.508Z" }, + { url = "https://files.pythonhosted.org/packages/a9/21/9b05698b46f218fc0e118e1f8168395c65c8a2c750ae2bab54fc4bd4e0e8/markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676", size = 22980, upload-time = "2025-09-27T18:36:45.385Z" }, + { url = "https://files.pythonhosted.org/packages/7f/71/544260864f893f18b6827315b988c146b559391e6e7e8f7252839b1b846a/markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9", size = 21990, upload-time = "2025-09-27T18:36:46.916Z" }, + { url = "https://files.pythonhosted.org/packages/c2/28/b50fc2f74d1ad761af2f5dcce7492648b983d00a65b8c0e0cb457c82ebbe/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1", size = 23784, upload-time = "2025-09-27T18:36:47.884Z" }, + { url = "https://files.pythonhosted.org/packages/ed/76/104b2aa106a208da8b17a2fb72e033a5a9d7073c68f7e508b94916ed47a9/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc", size = 21588, upload-time = "2025-09-27T18:36:48.82Z" }, + { url = "https://files.pythonhosted.org/packages/b5/99/16a5eb2d140087ebd97180d95249b00a03aa87e29cc224056274f2e45fd6/markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12", size = 23041, upload-time = "2025-09-27T18:36:49.797Z" }, + { url = "https://files.pythonhosted.org/packages/19/bc/e7140ed90c5d61d77cea142eed9f9c303f4c4806f60a1044c13e3f1471d0/markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed", size = 14543, upload-time = "2025-09-27T18:36:51.584Z" }, + { url = "https://files.pythonhosted.org/packages/05/73/c4abe620b841b6b791f2edc248f556900667a5a1cf023a6646967ae98335/markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5", size = 15113, upload-time = "2025-09-27T18:36:52.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/3a/fa34a0f7cfef23cf9500d68cb7c32dd64ffd58a12b09225fb03dd37d5b80/markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485", size = 13911, upload-time = "2025-09-27T18:36:53.513Z" }, + { url = "https://files.pythonhosted.org/packages/e4/d7/e05cd7efe43a88a17a37b3ae96e79a19e846f3f456fe79c57ca61356ef01/markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73", size = 11658, upload-time = "2025-09-27T18:36:54.819Z" }, + { url = "https://files.pythonhosted.org/packages/99/9e/e412117548182ce2148bdeacdda3bb494260c0b0184360fe0d56389b523b/markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37", size = 12066, upload-time = "2025-09-27T18:36:55.714Z" }, + { url = "https://files.pythonhosted.org/packages/bc/e6/fa0ffcda717ef64a5108eaa7b4f5ed28d56122c9a6d70ab8b72f9f715c80/markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19", size = 25639, upload-time = "2025-09-27T18:36:56.908Z" }, + { url = "https://files.pythonhosted.org/packages/96/ec/2102e881fe9d25fc16cb4b25d5f5cde50970967ffa5dddafdb771237062d/markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025", size = 23569, upload-time = "2025-09-27T18:36:57.913Z" }, + { url = "https://files.pythonhosted.org/packages/4b/30/6f2fce1f1f205fc9323255b216ca8a235b15860c34b6798f810f05828e32/markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6", size = 23284, upload-time = "2025-09-27T18:36:58.833Z" }, + { url = "https://files.pythonhosted.org/packages/58/47/4a0ccea4ab9f5dcb6f79c0236d954acb382202721e704223a8aafa38b5c8/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f", size = 24801, upload-time = "2025-09-27T18:36:59.739Z" }, + { url = "https://files.pythonhosted.org/packages/6a/70/3780e9b72180b6fecb83a4814d84c3bf4b4ae4bf0b19c27196104149734c/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb", size = 22769, upload-time = "2025-09-27T18:37:00.719Z" }, + { url = "https://files.pythonhosted.org/packages/98/c5/c03c7f4125180fc215220c035beac6b9cb684bc7a067c84fc69414d315f5/markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009", size = 23642, upload-time = "2025-09-27T18:37:01.673Z" }, + { url = "https://files.pythonhosted.org/packages/80/d6/2d1b89f6ca4bff1036499b1e29a1d02d282259f3681540e16563f27ebc23/markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354", size = 14612, upload-time = "2025-09-27T18:37:02.639Z" }, + { url = "https://files.pythonhosted.org/packages/2b/98/e48a4bfba0a0ffcf9925fe2d69240bfaa19c6f7507b8cd09c70684a53c1e/markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218", size = 15200, upload-time = "2025-09-27T18:37:03.582Z" }, + { url = "https://files.pythonhosted.org/packages/0e/72/e3cc540f351f316e9ed0f092757459afbc595824ca724cbc5a5d4263713f/markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287", size = 13973, upload-time = "2025-09-27T18:37:04.929Z" }, + { url = "https://files.pythonhosted.org/packages/33/8a/8e42d4838cd89b7dde187011e97fe6c3af66d8c044997d2183fbd6d31352/markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe", size = 11619, upload-time = "2025-09-27T18:37:06.342Z" }, + { url = "https://files.pythonhosted.org/packages/b5/64/7660f8a4a8e53c924d0fa05dc3a55c9cee10bbd82b11c5afb27d44b096ce/markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026", size = 12029, upload-time = "2025-09-27T18:37:07.213Z" }, + { url = "https://files.pythonhosted.org/packages/da/ef/e648bfd021127bef5fa12e1720ffed0c6cbb8310c8d9bea7266337ff06de/markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737", size = 24408, upload-time = "2025-09-27T18:37:09.572Z" }, + { url = "https://files.pythonhosted.org/packages/41/3c/a36c2450754618e62008bf7435ccb0f88053e07592e6028a34776213d877/markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97", size = 23005, upload-time = "2025-09-27T18:37:10.58Z" }, + { url = "https://files.pythonhosted.org/packages/bc/20/b7fdf89a8456b099837cd1dc21974632a02a999ec9bf7ca3e490aacd98e7/markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d", size = 22048, upload-time = "2025-09-27T18:37:11.547Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a7/591f592afdc734f47db08a75793a55d7fbcc6902a723ae4cfbab61010cc5/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda", size = 23821, upload-time = "2025-09-27T18:37:12.48Z" }, + { url = "https://files.pythonhosted.org/packages/7d/33/45b24e4f44195b26521bc6f1a82197118f74df348556594bd2262bda1038/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf", size = 21606, upload-time = "2025-09-27T18:37:13.485Z" }, + { url = "https://files.pythonhosted.org/packages/ff/0e/53dfaca23a69fbfbbf17a4b64072090e70717344c52eaaaa9c5ddff1e5f0/markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe", size = 23043, upload-time = "2025-09-27T18:37:14.408Z" }, + { url = "https://files.pythonhosted.org/packages/46/11/f333a06fc16236d5238bfe74daccbca41459dcd8d1fa952e8fbd5dccfb70/markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9", size = 14747, upload-time = "2025-09-27T18:37:15.36Z" }, + { url = "https://files.pythonhosted.org/packages/28/52/182836104b33b444e400b14f797212f720cbc9ed6ba34c800639d154e821/markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581", size = 15341, upload-time = "2025-09-27T18:37:16.496Z" }, + { url = "https://files.pythonhosted.org/packages/6f/18/acf23e91bd94fd7b3031558b1f013adfa21a8e407a3fdb32745538730382/markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4", size = 14073, upload-time = "2025-09-27T18:37:17.476Z" }, + { url = "https://files.pythonhosted.org/packages/3c/f0/57689aa4076e1b43b15fdfa646b04653969d50cf30c32a102762be2485da/markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab", size = 11661, upload-time = "2025-09-27T18:37:18.453Z" }, + { url = "https://files.pythonhosted.org/packages/89/c3/2e67a7ca217c6912985ec766c6393b636fb0c2344443ff9d91404dc4c79f/markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175", size = 12069, upload-time = "2025-09-27T18:37:19.332Z" }, + { url = "https://files.pythonhosted.org/packages/f0/00/be561dce4e6ca66b15276e184ce4b8aec61fe83662cce2f7d72bd3249d28/markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634", size = 25670, upload-time = "2025-09-27T18:37:20.245Z" }, + { url = "https://files.pythonhosted.org/packages/50/09/c419f6f5a92e5fadde27efd190eca90f05e1261b10dbd8cbcb39cd8ea1dc/markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50", size = 23598, upload-time = "2025-09-27T18:37:21.177Z" }, + { url = "https://files.pythonhosted.org/packages/22/44/a0681611106e0b2921b3033fc19bc53323e0b50bc70cffdd19f7d679bb66/markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e", size = 23261, upload-time = "2025-09-27T18:37:22.167Z" }, + { url = "https://files.pythonhosted.org/packages/5f/57/1b0b3f100259dc9fffe780cfb60d4be71375510e435efec3d116b6436d43/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5", size = 24835, upload-time = "2025-09-27T18:37:23.296Z" }, + { url = "https://files.pythonhosted.org/packages/26/6a/4bf6d0c97c4920f1597cc14dd720705eca0bf7c787aebc6bb4d1bead5388/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523", size = 22733, upload-time = "2025-09-27T18:37:24.237Z" }, + { url = "https://files.pythonhosted.org/packages/14/c7/ca723101509b518797fedc2fdf79ba57f886b4aca8a7d31857ba3ee8281f/markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc", size = 23672, upload-time = "2025-09-27T18:37:25.271Z" }, + { url = "https://files.pythonhosted.org/packages/fb/df/5bd7a48c256faecd1d36edc13133e51397e41b73bb77e1a69deab746ebac/markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d", size = 14819, upload-time = "2025-09-27T18:37:26.285Z" }, + { url = "https://files.pythonhosted.org/packages/1a/8a/0402ba61a2f16038b48b39bccca271134be00c5c9f0f623208399333c448/markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9", size = 15426, upload-time = "2025-09-27T18:37:27.316Z" }, + { url = "https://files.pythonhosted.org/packages/70/bc/6f1c2f612465f5fa89b95bead1f44dcb607670fd42891d8fdcd5d039f4f4/markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa", size = 14146, upload-time = "2025-09-27T18:37:28.327Z" }, +] + +[[package]] +name = "marshmallow" +version = "3.20.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/03/81/763717b3448e5d3a3906f27ab2ffedc9a495e8077946f54b8033967d29fd/marshmallow-3.20.2.tar.gz", hash = "sha256:4c1daff273513dc5eb24b219a8035559dc573c8f322558ef85f5438ddd1236dd", size = 185043, upload-time = "2024-01-09T21:43:21.005Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/57/e9/4368d49d3b462da16a3bac976487764a84dd85cef97232c7bd61f5bdedf3/marshmallow-3.20.2-py3-none-any.whl", hash = "sha256:c21d4b98fee747c130e6bc8f45c4b3199ea66bc00c12ee1f639f0aeca034d5e9", size = 49449, upload-time = "2024-01-09T21:43:18.093Z" }, +] + +[[package]] +name = "matplotlib-inline" +version = "0.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "traitlets" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/99/5b/a36a337438a14116b16480db471ad061c36c3694df7c2084a0da7ba538b7/matplotlib_inline-0.1.7.tar.gz", hash = "sha256:8423b23ec666be3d16e16b60bdd8ac4e86e840ebd1dd11a30b9f117f2fa0ab90", size = 8159, upload-time = "2024-04-15T13:44:44.803Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8f/8e/9ad090d3553c280a8060fbf6e24dc1c0c29704ee7d1c372f0c174aa59285/matplotlib_inline-0.1.7-py3-none-any.whl", hash = "sha256:df192d39a4ff8f21b1895d72e6a13f5fcc5099f00fa84384e0ea28c2cc0653ca", size = 9899, upload-time = "2024-04-15T13:44:43.265Z" }, +] + +[[package]] +name = "mccabe" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/ff/0ffefdcac38932a54d2b5eed4e0ba8a408f215002cd178ad1df0f2806ff8/mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325", size = 9658, upload-time = "2022-01-24T01:14:51.113Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/1a/1f68f9ba0c207934b35b86a8ca3aad8395a3d6dd7921c0686e23853ff5a9/mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e", size = 7350, upload-time = "2022-01-24T01:14:49.62Z" }, +] + +[[package]] +name = "mdurl" +version = "0.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d6/54/cfe61301667036ec958cb99bd3efefba235e65cdeb9c84d24a8293ba1d90/mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba", size = 8729, upload-time = "2022-08-14T12:40:10.846Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b3/38/89ba8ad64ae25be8de66a6d463314cf1eb366222074cfda9ee839c56a4b4/mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8", size = 9979, upload-time = "2022-08-14T12:40:09.779Z" }, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + +[[package]] +name = "mkdocs" +version = "1.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mergedeep" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "platformdirs" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "watchdog" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/bb/24a22f8154cf79b07b45da070633613837d6e59c7d870076f693b7b1c556/mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2", size = 3654364, upload-time = "2023-09-18T21:26:11.452Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/89/58/aa3301b23966a71d7f8e55233f467b3cec94a651434e9cd9053811342539/mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1", size = 3694750, upload-time = "2023-09-18T21:26:09.089Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.5.18" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "regex" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b6/2d/6da67c06f8af1f7b8fb534eec7ebad5b9ce4fcecfab4287312dea2e62912/mkdocs_material-9.5.18.tar.gz", hash = "sha256:a43f470947053fa2405c33995f282d24992c752a50114f23f30da9d8d0c57e62", size = 4077674, upload-time = "2024-04-16T03:47:54.197Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4a/c6/2db256334564689703390a27f3bdc64f4fe6e6f6c917cc497452cee8ef1c/mkdocs_material-9.5.18-py3-none-any.whl", hash = "sha256:1e0e27fc9fe239f9064318acf548771a4629d5fd5dfd45444fd80a953fe21eb4", size = 8766354, upload-time = "2024-04-16T03:47:48.579Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "more-itertools" +version = "11.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/de/1d/f4da6f02cdffe04d6362210b807146a26044c88d839208aec273bb0d9184/more_itertools-11.1.0.tar.gz", hash = "sha256:48e8f4d9e7e5878571ecf6f2b4e57634f93cd474cc8cfbd2376f2d11b396e30d", size = 145772, upload-time = "2026-05-22T14:14:29.909Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e8/3d/1087453384dbde46a8c7f9356eead2c58be8a7bf156bca40243377c85715/more_itertools-11.1.0-py3-none-any.whl", hash = "sha256:4b65538ae22f6fed0ce4874efd317463a7489796a0939fa66824dd542125a192", size = 72226, upload-time = "2026-05-22T14:14:28.824Z" }, +] + +[[package]] +name = "multidict" +version = "6.7.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1a/c2/c2d94cbe6ac1753f3fc980da97b3d930efe1da3af3c9f5125354436c073d/multidict-6.7.1.tar.gz", hash = "sha256:ec6652a1bee61c53a3e5776b6049172c53b6aaba34f18c9ad04f82712bac623d", size = 102010, upload-time = "2026-01-26T02:46:45.979Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/f1/a90635c4f88fb913fbf4ce660b83b7445b7a02615bda034b2f8eb38fd597/multidict-6.7.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:7ff981b266af91d7b4b3793ca3382e53229088d193a85dfad6f5f4c27fc73e5d", size = 76626, upload-time = "2026-01-26T02:43:26.485Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/267e64eaf6fc637a15b35f5de31a566634a2740f97d8d094a69d34f524a4/multidict-6.7.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:844c5bca0b5444adb44a623fb0a1310c2f4cd41f402126bb269cd44c9b3f3e1e", size = 44706, upload-time = "2026-01-26T02:43:27.607Z" }, + { url = "https://files.pythonhosted.org/packages/dd/a4/d45caf2b97b035c57267791ecfaafbd59c68212004b3842830954bb4b02e/multidict-6.7.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f2a0a924d4c2e9afcd7ec64f9de35fcd96915149b2216e1cb2c10a56df483855", size = 44356, upload-time = "2026-01-26T02:43:28.661Z" }, + { url = "https://files.pythonhosted.org/packages/fd/d2/0a36c8473f0cbaeadd5db6c8b72d15bbceeec275807772bfcd059bef487d/multidict-6.7.1-cp311-cp311-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:8be1802715a8e892c784c0197c2ace276ea52702a0ede98b6310c8f255a5afb3", size = 244355, upload-time = "2026-01-26T02:43:31.165Z" }, + { url = "https://files.pythonhosted.org/packages/5d/16/8c65be997fd7dd311b7d39c7b6e71a0cb449bad093761481eccbbe4b42a2/multidict-6.7.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2e2d2ed645ea29f31c4c7ea1552fcfd7cb7ba656e1eafd4134a6620c9f5fdd9e", size = 246433, upload-time = "2026-01-26T02:43:32.581Z" }, + { url = "https://files.pythonhosted.org/packages/01/fb/4dbd7e848d2799c6a026ec88ad39cf2b8416aa167fcc903baa55ecaa045c/multidict-6.7.1-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:95922cee9a778659e91db6497596435777bd25ed116701a4c034f8e46544955a", size = 225376, upload-time = "2026-01-26T02:43:34.417Z" }, + { url = "https://files.pythonhosted.org/packages/b6/8a/4a3a6341eac3830f6053062f8fbc9a9e54407c80755b3f05bc427295c2d0/multidict-6.7.1-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6b83cabdc375ffaaa15edd97eb7c0c672ad788e2687004990074d7d6c9b140c8", size = 257365, upload-time = "2026-01-26T02:43:35.741Z" }, + { url = "https://files.pythonhosted.org/packages/f7/a2/dd575a69c1aa206e12d27d0770cdf9b92434b48a9ef0cd0d1afdecaa93c4/multidict-6.7.1-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:38fb49540705369bab8484db0689d86c0a33a0a9f2c1b197f506b71b4b6c19b0", size = 254747, upload-time = "2026-01-26T02:43:36.976Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/21b27c560c13822ed93133f08aa6372c53a8e067f11fbed37b4adcdac922/multidict-6.7.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:439cbebd499f92e9aa6793016a8acaa161dfa749ae86d20960189f5398a19144", size = 246293, upload-time = "2026-01-26T02:43:38.258Z" }, + { url = "https://files.pythonhosted.org/packages/5a/a4/23466059dc3854763423d0ad6c0f3683a379d97673b1b89ec33826e46728/multidict-6.7.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:6d3bc717b6fe763b8be3f2bee2701d3c8eb1b2a8ae9f60910f1b2860c82b6c49", size = 242962, upload-time = "2026-01-26T02:43:40.034Z" }, + { url = "https://files.pythonhosted.org/packages/1f/67/51dd754a3524d685958001e8fa20a0f5f90a6a856e0a9dcabff69be3dbb7/multidict-6.7.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:619e5a1ac57986dbfec9f0b301d865dddf763696435e2962f6d9cf2fdff2bb71", size = 237360, upload-time = "2026-01-26T02:43:41.752Z" }, + { url = "https://files.pythonhosted.org/packages/64/3f/036dfc8c174934d4b55d86ff4f978e558b0e585cef70cfc1ad01adc6bf18/multidict-6.7.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:0b38ebffd9be37c1170d33bc0f36f4f262e0a09bc1aac1c34c7aa51a7293f0b3", size = 245940, upload-time = "2026-01-26T02:43:43.042Z" }, + { url = "https://files.pythonhosted.org/packages/3d/20/6214d3c105928ebc353a1c644a6ef1408bc5794fcb4f170bb524a3c16311/multidict-6.7.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:10ae39c9cfe6adedcdb764f5e8411d4a92b055e35573a2eaa88d3323289ef93c", size = 253502, upload-time = "2026-01-26T02:43:44.371Z" }, + { url = "https://files.pythonhosted.org/packages/b1/e2/c653bc4ae1be70a0f836b82172d643fcf1dade042ba2676ab08ec08bff0f/multidict-6.7.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:25167cc263257660290fba06b9318d2026e3c910be240a146e1f66dd114af2b0", size = 247065, upload-time = "2026-01-26T02:43:45.745Z" }, + { url = "https://files.pythonhosted.org/packages/c8/11/a854b4154cd3bd8b1fd375e8a8ca9d73be37610c361543d56f764109509b/multidict-6.7.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:128441d052254f42989ef98b7b6a6ecb1e6f708aa962c7984235316db59f50fa", size = 241870, upload-time = "2026-01-26T02:43:47.054Z" }, + { url = "https://files.pythonhosted.org/packages/13/bf/9676c0392309b5fdae322333d22a829715b570edb9baa8016a517b55b558/multidict-6.7.1-cp311-cp311-win32.whl", hash = "sha256:d62b7f64ffde3b99d06b707a280db04fb3855b55f5a06df387236051d0668f4a", size = 41302, upload-time = "2026-01-26T02:43:48.753Z" }, + { url = "https://files.pythonhosted.org/packages/c9/68/f16a3a8ba6f7b6dc92a1f19669c0810bd2c43fc5a02da13b1cbf8e253845/multidict-6.7.1-cp311-cp311-win_amd64.whl", hash = "sha256:bdbf9f3b332abd0cdb306e7c2113818ab1e922dc84b8f8fd06ec89ed2a19ab8b", size = 45981, upload-time = "2026-01-26T02:43:49.921Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ad/9dd5305253fa00cd3c7555dbef69d5bf4133debc53b87ab8d6a44d411665/multidict-6.7.1-cp311-cp311-win_arm64.whl", hash = "sha256:b8c990b037d2fff2f4e33d3f21b9b531c5745b33a49a7d6dbe7a177266af44f6", size = 43159, upload-time = "2026-01-26T02:43:51.635Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9c/f20e0e2cf80e4b2e4b1c365bf5fe104ee633c751a724246262db8f1a0b13/multidict-6.7.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:a90f75c956e32891a4eda3639ce6dd86e87105271f43d43442a3aedf3cddf172", size = 76893, upload-time = "2026-01-26T02:43:52.754Z" }, + { url = "https://files.pythonhosted.org/packages/fe/cf/18ef143a81610136d3da8193da9d80bfe1cb548a1e2d1c775f26b23d024a/multidict-6.7.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fccb473e87eaa1382689053e4a4618e7ba7b9b9b8d6adf2027ee474597128cd", size = 45456, upload-time = "2026-01-26T02:43:53.893Z" }, + { url = "https://files.pythonhosted.org/packages/a9/65/1caac9d4cd32e8433908683446eebc953e82d22b03d10d41a5f0fefe991b/multidict-6.7.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:b0fa96985700739c4c7853a43c0b3e169360d6855780021bfc6d0f1ce7c123e7", size = 43872, upload-time = "2026-01-26T02:43:55.041Z" }, + { url = "https://files.pythonhosted.org/packages/cf/3b/d6bd75dc4f3ff7c73766e04e705b00ed6dbbaccf670d9e05a12b006f5a21/multidict-6.7.1-cp312-cp312-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:cb2a55f408c3043e42b40cc8eecd575afa27b7e0b956dfb190de0f8499a57a53", size = 251018, upload-time = "2026-01-26T02:43:56.198Z" }, + { url = "https://files.pythonhosted.org/packages/fd/80/c959c5933adedb9ac15152e4067c702a808ea183a8b64cf8f31af8ad3155/multidict-6.7.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:eb0ce7b2a32d09892b3dd6cc44877a0d02a33241fafca5f25c8b6b62374f8b75", size = 258883, upload-time = "2026-01-26T02:43:57.499Z" }, + { url = "https://files.pythonhosted.org/packages/86/85/7ed40adafea3d4f1c8b916e3b5cc3a8e07dfcdcb9cd72800f4ed3ca1b387/multidict-6.7.1-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c3a32d23520ee37bf327d1e1a656fec76a2edd5c038bf43eddfa0572ec49c60b", size = 242413, upload-time = "2026-01-26T02:43:58.755Z" }, + { url = "https://files.pythonhosted.org/packages/d2/57/b8565ff533e48595503c785f8361ff9a4fde4d67de25c207cd0ba3befd03/multidict-6.7.1-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9c90fed18bffc0189ba814749fdcc102b536e83a9f738a9003e569acd540a733", size = 268404, upload-time = "2026-01-26T02:44:00.216Z" }, + { url = "https://files.pythonhosted.org/packages/e0/50/9810c5c29350f7258180dfdcb2e52783a0632862eb334c4896ac717cebcb/multidict-6.7.1-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:da62917e6076f512daccfbbde27f46fed1c98fee202f0559adec8ee0de67f71a", size = 269456, upload-time = "2026-01-26T02:44:02.202Z" }, + { url = "https://files.pythonhosted.org/packages/f3/8d/5e5be3ced1d12966fefb5c4ea3b2a5b480afcea36406559442c6e31d4a48/multidict-6.7.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bfde23ef6ed9db7eaee6c37dcec08524cb43903c60b285b172b6c094711b3961", size = 256322, upload-time = "2026-01-26T02:44:03.56Z" }, + { url = "https://files.pythonhosted.org/packages/31/6e/d8a26d81ac166a5592782d208dd90dfdc0a7a218adaa52b45a672b46c122/multidict-6.7.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3758692429e4e32f1ba0df23219cd0b4fc0a52f476726fff9337d1a57676a582", size = 253955, upload-time = "2026-01-26T02:44:04.845Z" }, + { url = "https://files.pythonhosted.org/packages/59/4c/7c672c8aad41534ba619bcd4ade7a0dc87ed6b8b5c06149b85d3dd03f0cd/multidict-6.7.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:398c1478926eca669f2fd6a5856b6de9c0acf23a2cb59a14c0ba5844fa38077e", size = 251254, upload-time = "2026-01-26T02:44:06.133Z" }, + { url = "https://files.pythonhosted.org/packages/7b/bd/84c24de512cbafbdbc39439f74e967f19570ce7924e3007174a29c348916/multidict-6.7.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:c102791b1c4f3ab36ce4101154549105a53dc828f016356b3e3bcae2e3a039d3", size = 252059, upload-time = "2026-01-26T02:44:07.518Z" }, + { url = "https://files.pythonhosted.org/packages/fa/ba/f5449385510825b73d01c2d4087bf6d2fccc20a2d42ac34df93191d3dd03/multidict-6.7.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:a088b62bd733e2ad12c50dad01b7d0166c30287c166e137433d3b410add807a6", size = 263588, upload-time = "2026-01-26T02:44:09.382Z" }, + { url = "https://files.pythonhosted.org/packages/d7/11/afc7c677f68f75c84a69fe37184f0f82fce13ce4b92f49f3db280b7e92b3/multidict-6.7.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:3d51ff4785d58d3f6c91bdbffcb5e1f7ddfda557727043aa20d20ec4f65e324a", size = 259642, upload-time = "2026-01-26T02:44:10.73Z" }, + { url = "https://files.pythonhosted.org/packages/2b/17/ebb9644da78c4ab36403739e0e6e0e30ebb135b9caf3440825001a0bddcb/multidict-6.7.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:fc5907494fccf3e7d3f94f95c91d6336b092b5fc83811720fae5e2765890dfba", size = 251377, upload-time = "2026-01-26T02:44:12.042Z" }, + { url = "https://files.pythonhosted.org/packages/ca/a4/840f5b97339e27846c46307f2530a2805d9d537d8b8bd416af031cad7fa0/multidict-6.7.1-cp312-cp312-win32.whl", hash = "sha256:28ca5ce2fd9716631133d0e9a9b9a745ad7f60bac2bccafb56aa380fc0b6c511", size = 41887, upload-time = "2026-01-26T02:44:14.245Z" }, + { url = "https://files.pythonhosted.org/packages/80/31/0b2517913687895f5904325c2069d6a3b78f66cc641a86a2baf75a05dcbb/multidict-6.7.1-cp312-cp312-win_amd64.whl", hash = "sha256:fcee94dfbd638784645b066074b338bc9cc155d4b4bffa4adce1615c5a426c19", size = 46053, upload-time = "2026-01-26T02:44:15.371Z" }, + { url = "https://files.pythonhosted.org/packages/0c/5b/aba28e4ee4006ae4c7df8d327d31025d760ffa992ea23812a601d226e682/multidict-6.7.1-cp312-cp312-win_arm64.whl", hash = "sha256:ba0a9fb644d0c1a2194cf7ffb043bd852cea63a57f66fbd33959f7dae18517bf", size = 43307, upload-time = "2026-01-26T02:44:16.852Z" }, + { url = "https://files.pythonhosted.org/packages/f2/22/929c141d6c0dba87d3e1d38fbdf1ba8baba86b7776469f2bc2d3227a1e67/multidict-6.7.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:2b41f5fed0ed563624f1c17630cb9941cf2309d4df00e494b551b5f3e3d67a23", size = 76174, upload-time = "2026-01-26T02:44:18.509Z" }, + { url = "https://files.pythonhosted.org/packages/c7/75/bc704ae15fee974f8fccd871305e254754167dce5f9e42d88a2def741a1d/multidict-6.7.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:84e61e3af5463c19b67ced91f6c634effb89ef8bfc5ca0267f954451ed4bb6a2", size = 45116, upload-time = "2026-01-26T02:44:19.745Z" }, + { url = "https://files.pythonhosted.org/packages/79/76/55cd7186f498ed080a18440c9013011eb548f77ae1b297206d030eb1180a/multidict-6.7.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:935434b9853c7c112eee7ac891bc4cb86455aa631269ae35442cb316790c1445", size = 43524, upload-time = "2026-01-26T02:44:21.571Z" }, + { url = "https://files.pythonhosted.org/packages/e9/3c/414842ef8d5a1628d68edee29ba0e5bcf235dbfb3ccd3ea303a7fe8c72ff/multidict-6.7.1-cp313-cp313-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:432feb25a1cb67fe82a9680b4d65fb542e4635cb3166cd9c01560651ad60f177", size = 249368, upload-time = "2026-01-26T02:44:22.803Z" }, + { url = "https://files.pythonhosted.org/packages/f6/32/befed7f74c458b4a525e60519fe8d87eef72bb1e99924fa2b0f9d97a221e/multidict-6.7.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e82d14e3c948952a1a85503817e038cba5905a3352de76b9a465075d072fba23", size = 256952, upload-time = "2026-01-26T02:44:24.306Z" }, + { url = "https://files.pythonhosted.org/packages/03/d6/c878a44ba877f366630c860fdf74bfb203c33778f12b6ac274936853c451/multidict-6.7.1-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:4cfb48c6ea66c83bcaaf7e4dfa7ec1b6bbcf751b7db85a328902796dfde4c060", size = 240317, upload-time = "2026-01-26T02:44:25.772Z" }, + { url = "https://files.pythonhosted.org/packages/68/49/57421b4d7ad2e9e60e25922b08ceb37e077b90444bde6ead629095327a6f/multidict-6.7.1-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:1d540e51b7e8e170174555edecddbd5538105443754539193e3e1061864d444d", size = 267132, upload-time = "2026-01-26T02:44:27.648Z" }, + { url = "https://files.pythonhosted.org/packages/b7/fe/ec0edd52ddbcea2a2e89e174f0206444a61440b40f39704e64dc807a70bd/multidict-6.7.1-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:273d23f4b40f3dce4d6c8a821c741a86dec62cded82e1175ba3d99be128147ed", size = 268140, upload-time = "2026-01-26T02:44:29.588Z" }, + { url = "https://files.pythonhosted.org/packages/b0/73/6e1b01cbeb458807aa0831742232dbdd1fa92bfa33f52a3f176b4ff3dc11/multidict-6.7.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9d624335fd4fa1c08a53f8b4be7676ebde19cd092b3895c421045ca87895b429", size = 254277, upload-time = "2026-01-26T02:44:30.902Z" }, + { url = "https://files.pythonhosted.org/packages/6a/b2/5fb8c124d7561a4974c342bc8c778b471ebbeb3cc17df696f034a7e9afe7/multidict-6.7.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:12fad252f8b267cc75b66e8fc51b3079604e8d43a75428ffe193cd9e2195dfd6", size = 252291, upload-time = "2026-01-26T02:44:32.31Z" }, + { url = "https://files.pythonhosted.org/packages/5a/96/51d4e4e06bcce92577fcd488e22600bd38e4fd59c20cb49434d054903bd2/multidict-6.7.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:03ede2a6ffbe8ef936b92cb4529f27f42be7f56afcdab5ab739cd5f27fb1cbf9", size = 250156, upload-time = "2026-01-26T02:44:33.734Z" }, + { url = "https://files.pythonhosted.org/packages/db/6b/420e173eec5fba721a50e2a9f89eda89d9c98fded1124f8d5c675f7a0c0f/multidict-6.7.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:90efbcf47dbe33dcf643a1e400d67d59abeac5db07dc3f27d6bdeae497a2198c", size = 249742, upload-time = "2026-01-26T02:44:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/44/a3/ec5b5bd98f306bc2aa297b8c6f11a46714a56b1e6ef5ebda50a4f5d7c5fb/multidict-6.7.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:5c4b9bfc148f5a91be9244d6264c53035c8a0dcd2f51f1c3c6e30e30ebaa1c84", size = 262221, upload-time = "2026-01-26T02:44:36.604Z" }, + { url = "https://files.pythonhosted.org/packages/cd/f7/e8c0d0da0cd1e28d10e624604e1a36bcc3353aaebdfdc3a43c72bc683a12/multidict-6.7.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:401c5a650f3add2472d1d288c26deebc540f99e2fb83e9525007a74cd2116f1d", size = 258664, upload-time = "2026-01-26T02:44:38.008Z" }, + { url = "https://files.pythonhosted.org/packages/52/da/151a44e8016dd33feed44f730bd856a66257c1ee7aed4f44b649fb7edeb3/multidict-6.7.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:97891f3b1b3ffbded884e2916cacf3c6fc87b66bb0dde46f7357404750559f33", size = 249490, upload-time = "2026-01-26T02:44:39.386Z" }, + { url = "https://files.pythonhosted.org/packages/87/af/a3b86bf9630b732897f6fc3f4c4714b90aa4361983ccbdcd6c0339b21b0c/multidict-6.7.1-cp313-cp313-win32.whl", hash = "sha256:e1c5988359516095535c4301af38d8a8838534158f649c05dd1050222321bcb3", size = 41695, upload-time = "2026-01-26T02:44:41.318Z" }, + { url = "https://files.pythonhosted.org/packages/b2/35/e994121b0e90e46134673422dd564623f93304614f5d11886b1b3e06f503/multidict-6.7.1-cp313-cp313-win_amd64.whl", hash = "sha256:960c83bf01a95b12b08fd54324a4eb1d5b52c88932b5cba5d6e712bb3ed12eb5", size = 45884, upload-time = "2026-01-26T02:44:42.488Z" }, + { url = "https://files.pythonhosted.org/packages/ca/61/42d3e5dbf661242a69c97ea363f2d7b46c567da8eadef8890022be6e2ab0/multidict-6.7.1-cp313-cp313-win_arm64.whl", hash = "sha256:563fe25c678aaba333d5399408f5ec3c383ca5b663e7f774dd179a520b8144df", size = 43122, upload-time = "2026-01-26T02:44:43.664Z" }, + { url = "https://files.pythonhosted.org/packages/6d/b3/e6b21c6c4f314bb956016b0b3ef2162590a529b84cb831c257519e7fde44/multidict-6.7.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:c76c4bec1538375dad9d452d246ca5368ad6e1c9039dadcf007ae59c70619ea1", size = 83175, upload-time = "2026-01-26T02:44:44.894Z" }, + { url = "https://files.pythonhosted.org/packages/fb/76/23ecd2abfe0957b234f6c960f4ade497f55f2c16aeb684d4ecdbf1c95791/multidict-6.7.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:57b46b24b5d5ebcc978da4ec23a819a9402b4228b8a90d9c656422b4bdd8a963", size = 48460, upload-time = "2026-01-26T02:44:46.106Z" }, + { url = "https://files.pythonhosted.org/packages/c4/57/a0ed92b23f3a042c36bc4227b72b97eca803f5f1801c1ab77c8a212d455e/multidict-6.7.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e954b24433c768ce78ab7929e84ccf3422e46deb45a4dc9f93438f8217fa2d34", size = 46930, upload-time = "2026-01-26T02:44:47.278Z" }, + { url = "https://files.pythonhosted.org/packages/b5/66/02ec7ace29162e447f6382c495dc95826bf931d3818799bbef11e8f7df1a/multidict-6.7.1-cp313-cp313t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:3bd231490fa7217cc832528e1cd8752a96f0125ddd2b5749390f7c3ec8721b65", size = 242582, upload-time = "2026-01-26T02:44:48.604Z" }, + { url = "https://files.pythonhosted.org/packages/58/18/64f5a795e7677670e872673aca234162514696274597b3708b2c0d276cce/multidict-6.7.1-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:253282d70d67885a15c8a7716f3a73edf2d635793ceda8173b9ecc21f2fb8292", size = 250031, upload-time = "2026-01-26T02:44:50.544Z" }, + { url = "https://files.pythonhosted.org/packages/c8/ed/e192291dbbe51a8290c5686f482084d31bcd9d09af24f63358c3d42fd284/multidict-6.7.1-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b4c48648d7649c9335cf1927a8b87fa692de3dcb15faa676c6a6f1f1aabda43", size = 228596, upload-time = "2026-01-26T02:44:51.951Z" }, + { url = "https://files.pythonhosted.org/packages/1e/7e/3562a15a60cf747397e7f2180b0a11dc0c38d9175a650e75fa1b4d325e15/multidict-6.7.1-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:98bc624954ec4d2c7cb074b8eefc2b5d0ce7d482e410df446414355d158fe4ca", size = 257492, upload-time = "2026-01-26T02:44:53.902Z" }, + { url = "https://files.pythonhosted.org/packages/24/02/7d0f9eae92b5249bb50ac1595b295f10e263dd0078ebb55115c31e0eaccd/multidict-6.7.1-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:1b99af4d9eec0b49927b4402bcbb58dea89d3e0db8806a4086117019939ad3dd", size = 255899, upload-time = "2026-01-26T02:44:55.316Z" }, + { url = "https://files.pythonhosted.org/packages/00/e3/9b60ed9e23e64c73a5cde95269ef1330678e9c6e34dd4eb6b431b85b5a10/multidict-6.7.1-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6aac4f16b472d5b7dc6f66a0d49dd57b0e0902090be16594dc9ebfd3d17c47e7", size = 247970, upload-time = "2026-01-26T02:44:56.783Z" }, + { url = "https://files.pythonhosted.org/packages/3e/06/538e58a63ed5cfb0bd4517e346b91da32fde409d839720f664e9a4ae4f9d/multidict-6.7.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:21f830fe223215dffd51f538e78c172ed7c7f60c9b96a2bf05c4848ad49921c3", size = 245060, upload-time = "2026-01-26T02:44:58.195Z" }, + { url = "https://files.pythonhosted.org/packages/b2/2f/d743a3045a97c895d401e9bd29aaa09b94f5cbdf1bd561609e5a6c431c70/multidict-6.7.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:f5dd81c45b05518b9aa4da4aa74e1c93d715efa234fd3e8a179df611cc85e5f4", size = 235888, upload-time = "2026-01-26T02:44:59.57Z" }, + { url = "https://files.pythonhosted.org/packages/38/83/5a325cac191ab28b63c52f14f1131f3b0a55ba3b9aa65a6d0bf2a9b921a0/multidict-6.7.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:eb304767bca2bb92fb9c5bd33cedc95baee5bb5f6c88e63706533a1c06ad08c8", size = 243554, upload-time = "2026-01-26T02:45:01.054Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/9d2327086bd15da2725ef6aae624208e2ef828ed99892b17f60c344e57ed/multidict-6.7.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c9035dde0f916702850ef66460bc4239d89d08df4d02023a5926e7446724212c", size = 252341, upload-time = "2026-01-26T02:45:02.484Z" }, + { url = "https://files.pythonhosted.org/packages/e8/2c/2a1aa0280cf579d0f6eed8ee5211c4f1730bd7e06c636ba2ee6aafda302e/multidict-6.7.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:af959b9beeb66c822380f222f0e0a1889331597e81f1ded7f374f3ecb0fd6c52", size = 246391, upload-time = "2026-01-26T02:45:03.862Z" }, + { url = "https://files.pythonhosted.org/packages/e5/03/7ca022ffc36c5a3f6e03b179a5ceb829be9da5783e6fe395f347c0794680/multidict-6.7.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:41f2952231456154ee479651491e94118229844dd7226541788be783be2b5108", size = 243422, upload-time = "2026-01-26T02:45:05.296Z" }, + { url = "https://files.pythonhosted.org/packages/dc/1d/b31650eab6c5778aceed46ba735bd97f7c7d2f54b319fa916c0f96e7805b/multidict-6.7.1-cp313-cp313t-win32.whl", hash = "sha256:df9f19c28adcb40b6aae30bbaa1478c389efd50c28d541d76760199fc1037c32", size = 47770, upload-time = "2026-01-26T02:45:06.754Z" }, + { url = "https://files.pythonhosted.org/packages/ac/5b/2d2d1d522e51285bd61b1e20df8f47ae1a9d80839db0b24ea783b3832832/multidict-6.7.1-cp313-cp313t-win_amd64.whl", hash = "sha256:d54ecf9f301853f2c5e802da559604b3e95bb7a3b01a9c295c6ee591b9882de8", size = 53109, upload-time = "2026-01-26T02:45:08.044Z" }, + { url = "https://files.pythonhosted.org/packages/3d/a3/cc409ba012c83ca024a308516703cf339bdc4b696195644a7215a5164a24/multidict-6.7.1-cp313-cp313t-win_arm64.whl", hash = "sha256:5a37ca18e360377cfda1d62f5f382ff41f2b8c4ccb329ed974cc2e1643440118", size = 45573, upload-time = "2026-01-26T02:45:09.349Z" }, + { url = "https://files.pythonhosted.org/packages/91/cc/db74228a8be41884a567e88a62fd589a913708fcf180d029898c17a9a371/multidict-6.7.1-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:8f333ec9c5eb1b7105e3b84b53141e66ca05a19a605368c55450b6ba208cb9ee", size = 75190, upload-time = "2026-01-26T02:45:10.651Z" }, + { url = "https://files.pythonhosted.org/packages/d5/22/492f2246bb5b534abd44804292e81eeaf835388901f0c574bac4eeec73c5/multidict-6.7.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a407f13c188f804c759fc6a9f88286a565c242a76b27626594c133b82883b5c2", size = 44486, upload-time = "2026-01-26T02:45:11.938Z" }, + { url = "https://files.pythonhosted.org/packages/f1/4f/733c48f270565d78b4544f2baddc2fb2a245e5a8640254b12c36ac7ac68e/multidict-6.7.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0e161ddf326db5577c3a4cc2d8648f81456e8a20d40415541587a71620d7a7d1", size = 43219, upload-time = "2026-01-26T02:45:14.346Z" }, + { url = "https://files.pythonhosted.org/packages/24/bb/2c0c2287963f4259c85e8bcbba9182ced8d7fca65c780c38e99e61629d11/multidict-6.7.1-cp314-cp314-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:1e3a8bb24342a8201d178c3b4984c26ba81a577c80d4d525727427460a50c22d", size = 245132, upload-time = "2026-01-26T02:45:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f9/44d4b3064c65079d2467888794dea218d1601898ac50222ab8a9a8094460/multidict-6.7.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:97231140a50f5d447d3164f994b86a0bed7cd016e2682f8650d6a9158e14fd31", size = 252420, upload-time = "2026-01-26T02:45:17.293Z" }, + { url = "https://files.pythonhosted.org/packages/8b/13/78f7275e73fa17b24c9a51b0bd9d73ba64bb32d0ed51b02a746eb876abe7/multidict-6.7.1-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:6b10359683bd8806a200fd2909e7c8ca3a7b24ec1d8132e483d58e791d881048", size = 233510, upload-time = "2026-01-26T02:45:19.356Z" }, + { url = "https://files.pythonhosted.org/packages/4b/25/8167187f62ae3cbd52da7893f58cb036b47ea3fb67138787c76800158982/multidict-6.7.1-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:283ddac99f7ac25a4acadbf004cb5ae34480bbeb063520f70ce397b281859362", size = 264094, upload-time = "2026-01-26T02:45:20.834Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e7/69a3a83b7b030cf283fb06ce074a05a02322359783424d7edf0f15fe5022/multidict-6.7.1-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:538cec1e18c067d0e6103aa9a74f9e832904c957adc260e61cd9d8cf0c3b3d37", size = 260786, upload-time = "2026-01-26T02:45:22.818Z" }, + { url = "https://files.pythonhosted.org/packages/fe/3b/8ec5074bcfc450fe84273713b4b0a0dd47c0249358f5d82eb8104ffe2520/multidict-6.7.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7eee46ccb30ff48a1e35bb818cc90846c6be2b68240e42a78599166722cea709", size = 248483, upload-time = "2026-01-26T02:45:24.368Z" }, + { url = "https://files.pythonhosted.org/packages/48/5a/d5a99e3acbca0e29c5d9cba8f92ceb15dce78bab963b308ae692981e3a5d/multidict-6.7.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fa263a02f4f2dd2d11a7b1bb4362aa7cb1049f84a9235d31adf63f30143469a0", size = 248403, upload-time = "2026-01-26T02:45:25.982Z" }, + { url = "https://files.pythonhosted.org/packages/35/48/e58cd31f6c7d5102f2a4bf89f96b9cf7e00b6c6f3d04ecc44417c00a5a3c/multidict-6.7.1-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2e1425e2f99ec5bd36c15a01b690a1a2456209c5deed58f95469ffb46039ccbb", size = 240315, upload-time = "2026-01-26T02:45:27.487Z" }, + { url = "https://files.pythonhosted.org/packages/94/33/1cd210229559cb90b6786c30676bb0c58249ff42f942765f88793b41fdce/multidict-6.7.1-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:497394b3239fc6f0e13a78a3e1b61296e72bf1c5f94b4c4eb80b265c37a131cd", size = 245528, upload-time = "2026-01-26T02:45:28.991Z" }, + { url = "https://files.pythonhosted.org/packages/64/f2/6e1107d226278c876c783056b7db43d800bb64c6131cec9c8dfb6903698e/multidict-6.7.1-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:233b398c29d3f1b9676b4b6f75c518a06fcb2ea0b925119fb2c1bc35c05e1601", size = 258784, upload-time = "2026-01-26T02:45:30.503Z" }, + { url = "https://files.pythonhosted.org/packages/4d/c1/11f664f14d525e4a1b5327a82d4de61a1db604ab34c6603bb3c2cc63ad34/multidict-6.7.1-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:93b1818e4a6e0930454f0f2af7dfce69307ca03cdcfb3739bf4d91241967b6c1", size = 251980, upload-time = "2026-01-26T02:45:32.603Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9f/75a9ac888121d0c5bbd4ecf4eead45668b1766f6baabfb3b7f66a410e231/multidict-6.7.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:f33dc2a3abe9249ea5d8360f969ec7f4142e7ac45ee7014d8f8d5acddf178b7b", size = 243602, upload-time = "2026-01-26T02:45:34.043Z" }, + { url = "https://files.pythonhosted.org/packages/9a/e7/50bf7b004cc8525d80dbbbedfdc7aed3e4c323810890be4413e589074032/multidict-6.7.1-cp314-cp314-win32.whl", hash = "sha256:3ab8b9d8b75aef9df299595d5388b14530839f6422333357af1339443cff777d", size = 40930, upload-time = "2026-01-26T02:45:36.278Z" }, + { url = "https://files.pythonhosted.org/packages/e0/bf/52f25716bbe93745595800f36fb17b73711f14da59ed0bb2eba141bc9f0f/multidict-6.7.1-cp314-cp314-win_amd64.whl", hash = "sha256:5e01429a929600e7dab7b166062d9bb54a5eed752384c7384c968c2afab8f50f", size = 45074, upload-time = "2026-01-26T02:45:37.546Z" }, + { url = "https://files.pythonhosted.org/packages/97/ab/22803b03285fa3a525f48217963da3a65ae40f6a1b6f6cf2768879e208f9/multidict-6.7.1-cp314-cp314-win_arm64.whl", hash = "sha256:4885cb0e817aef5d00a2e8451d4665c1808378dc27c2705f1bf4ef8505c0d2e5", size = 42471, upload-time = "2026-01-26T02:45:38.889Z" }, + { url = "https://files.pythonhosted.org/packages/e0/6d/f9293baa6146ba9507e360ea0292b6422b016907c393e2f63fc40ab7b7b5/multidict-6.7.1-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:0458c978acd8e6ea53c81eefaddbbee9c6c5e591f41b3f5e8e194780fe026581", size = 82401, upload-time = "2026-01-26T02:45:40.254Z" }, + { url = "https://files.pythonhosted.org/packages/7a/68/53b5494738d83558d87c3c71a486504d8373421c3e0dbb6d0db48ad42ee0/multidict-6.7.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:c0abd12629b0af3cf590982c0b413b1e7395cd4ec026f30986818ab95bfaa94a", size = 48143, upload-time = "2026-01-26T02:45:41.635Z" }, + { url = "https://files.pythonhosted.org/packages/37/e8/5284c53310dcdc99ce5d66563f6e5773531a9b9fe9ec7a615e9bc306b05f/multidict-6.7.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:14525a5f61d7d0c94b368a42cff4c9a4e7ba2d52e2672a7b23d84dc86fb02b0c", size = 46507, upload-time = "2026-01-26T02:45:42.99Z" }, + { url = "https://files.pythonhosted.org/packages/e4/fc/6800d0e5b3875568b4083ecf5f310dcf91d86d52573160834fb4bfcf5e4f/multidict-6.7.1-cp314-cp314t-manylinux1_i686.manylinux_2_28_i686.manylinux_2_5_i686.whl", hash = "sha256:17307b22c217b4cf05033dabefe68255a534d637c6c9b0cc8382718f87be4262", size = 239358, upload-time = "2026-01-26T02:45:44.376Z" }, + { url = "https://files.pythonhosted.org/packages/41/75/4ad0973179361cdf3a113905e6e088173198349131be2b390f9fa4da5fc6/multidict-6.7.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7a7e590ff876a3eaf1c02a4dfe0724b6e69a9e9de6d8f556816f29c496046e59", size = 246884, upload-time = "2026-01-26T02:45:47.167Z" }, + { url = "https://files.pythonhosted.org/packages/c3/9c/095bb28b5da139bd41fb9a5d5caff412584f377914bd8787c2aa98717130/multidict-6.7.1-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:5fa6a95dfee63893d80a34758cd0e0c118a30b8dcb46372bf75106c591b77889", size = 225878, upload-time = "2026-01-26T02:45:48.698Z" }, + { url = "https://files.pythonhosted.org/packages/07/d0/c0a72000243756e8f5a277b6b514fa005f2c73d481b7d9e47cd4568aa2e4/multidict-6.7.1-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:a0543217a6a017692aa6ae5cc39adb75e587af0f3a82288b1492eb73dd6cc2a4", size = 253542, upload-time = "2026-01-26T02:45:50.164Z" }, + { url = "https://files.pythonhosted.org/packages/c0/6b/f69da15289e384ecf2a68837ec8b5ad8c33e973aa18b266f50fe55f24b8c/multidict-6.7.1-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f99fe611c312b3c1c0ace793f92464d8cd263cc3b26b5721950d977b006b6c4d", size = 252403, upload-time = "2026-01-26T02:45:51.779Z" }, + { url = "https://files.pythonhosted.org/packages/a2/76/b9669547afa5a1a25cd93eaca91c0da1c095b06b6d2d8ec25b713588d3a1/multidict-6.7.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9004d8386d133b7e6135679424c91b0b854d2d164af6ea3f289f8f2761064609", size = 244889, upload-time = "2026-01-26T02:45:53.27Z" }, + { url = "https://files.pythonhosted.org/packages/7e/a9/a50d2669e506dad33cfc45b5d574a205587b7b8a5f426f2fbb2e90882588/multidict-6.7.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e628ef0e6859ffd8273c69412a2465c4be4a9517d07261b33334b5ec6f3c7489", size = 241982, upload-time = "2026-01-26T02:45:54.919Z" }, + { url = "https://files.pythonhosted.org/packages/c5/bb/1609558ad8b456b4827d3c5a5b775c93b87878fd3117ed3db3423dfbce1b/multidict-6.7.1-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:841189848ba629c3552035a6a7f5bf3b02eb304e9fea7492ca220a8eda6b0e5c", size = 232415, upload-time = "2026-01-26T02:45:56.981Z" }, + { url = "https://files.pythonhosted.org/packages/d8/59/6f61039d2aa9261871e03ab9dc058a550d240f25859b05b67fd70f80d4b3/multidict-6.7.1-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:ce1bbd7d780bb5a0da032e095c951f7014d6b0a205f8318308140f1a6aba159e", size = 240337, upload-time = "2026-01-26T02:45:58.698Z" }, + { url = "https://files.pythonhosted.org/packages/a1/29/fdc6a43c203890dc2ae9249971ecd0c41deaedfe00d25cb6564b2edd99eb/multidict-6.7.1-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:b26684587228afed0d50cf804cc71062cc9c1cdf55051c4c6345d372947b268c", size = 248788, upload-time = "2026-01-26T02:46:00.862Z" }, + { url = "https://files.pythonhosted.org/packages/a9/14/a153a06101323e4cf086ecee3faadba52ff71633d471f9685c42e3736163/multidict-6.7.1-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9f9af11306994335398293f9958071019e3ab95e9a707dc1383a35613f6abcb9", size = 242842, upload-time = "2026-01-26T02:46:02.824Z" }, + { url = "https://files.pythonhosted.org/packages/41/5f/604ae839e64a4a6efc80db94465348d3b328ee955e37acb24badbcd24d83/multidict-6.7.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:b4938326284c4f1224178a560987b6cf8b4d38458b113d9b8c1db1a836e640a2", size = 240237, upload-time = "2026-01-26T02:46:05.898Z" }, + { url = "https://files.pythonhosted.org/packages/5f/60/c3a5187bf66f6fb546ff4ab8fb5a077cbdd832d7b1908d4365c7f74a1917/multidict-6.7.1-cp314-cp314t-win32.whl", hash = "sha256:98655c737850c064a65e006a3df7c997cd3b220be4ec8fe26215760b9697d4d7", size = 48008, upload-time = "2026-01-26T02:46:07.468Z" }, + { url = "https://files.pythonhosted.org/packages/0c/f7/addf1087b860ac60e6f382240f64fb99f8bfb532bb06f7c542b83c29ca61/multidict-6.7.1-cp314-cp314t-win_amd64.whl", hash = "sha256:497bde6223c212ba11d462853cfa4f0ae6ef97465033e7dc9940cdb3ab5b48e5", size = 53542, upload-time = "2026-01-26T02:46:08.809Z" }, + { url = "https://files.pythonhosted.org/packages/4c/81/4629d0aa32302ef7b2ec65c75a728cc5ff4fa410c50096174c1632e70b3e/multidict-6.7.1-cp314-cp314t-win_arm64.whl", hash = "sha256:2bbd113e0d4af5db41d5ebfe9ccaff89de2120578164f86a5d17d5a576d1e5b2", size = 44719, upload-time = "2026-01-26T02:46:11.146Z" }, + { url = "https://files.pythonhosted.org/packages/81/08/7036c080d7117f28a4af526d794aab6a84463126db031b007717c1a6676e/multidict-6.7.1-py3-none-any.whl", hash = "sha256:55d97cc6dae627efa6a6e548885712d4864b81110ac76fa4e534c03819fa4a56", size = 12319, upload-time = "2026-01-26T02:46:44.004Z" }, +] + +[[package]] +name = "mypy" +version = "1.8.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mypy-extensions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/16/22/25fac51008f0a4b2186da0dba3039128bd75d3fab8c07acd3ea5894f95cc/mypy-1.8.0.tar.gz", hash = "sha256:6ff8b244d7085a0b425b56d327b480c3b29cafbd2eff27316a004f9a7391ae07", size = 2990299, upload-time = "2023-12-21T16:29:33.134Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d6/c4/2ce11ff9ba6c9c9e89df5049ab2325c85e60274194d6816e352926de5684/mypy-1.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:855fe27b80375e5c5878492f0729540db47b186509c98dae341254c8f45f42ae", size = 10795101, upload-time = "2023-12-21T16:29:27.049Z" }, + { url = "https://files.pythonhosted.org/packages/bb/b7/882110d1345847ce660c51fc83b3b590b9512ec2ea44e6cfd629a7d66146/mypy-1.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4c886c6cce2d070bd7df4ec4a05a13ee20c0aa60cb587e8d1265b6c03cf91da3", size = 9849744, upload-time = "2023-12-21T16:28:28.884Z" }, + { url = "https://files.pythonhosted.org/packages/19/c6/256f253cb3fc6b30b93a9836cf3c816a3ec09f934f7b567f693e5666d14f/mypy-1.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d19c413b3c07cbecf1f991e2221746b0d2a9410b59cb3f4fb9557f0365a1a817", size = 12391778, upload-time = "2023-12-21T16:28:17.728Z" }, + { url = "https://files.pythonhosted.org/packages/66/19/e0c9373258f3e84e1e24af357e5663e6b0058bb5c307287e9d1a473a9687/mypy-1.8.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:9261ed810972061388918c83c3f5cd46079d875026ba97380f3e3978a72f503d", size = 12461242, upload-time = "2023-12-21T16:29:07.651Z" }, + { url = "https://files.pythonhosted.org/packages/a9/d7/a7ee8ca5a963b5bf55a6b4bc579df77c887e7fbc0910047b7d0f7750b048/mypy-1.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:51720c776d148bad2372ca21ca29256ed483aa9a4cdefefcef49006dff2a6835", size = 9205536, upload-time = "2023-12-21T16:28:56.76Z" }, + { url = "https://files.pythonhosted.org/packages/08/24/83d9e62ab2031593e94438fdbfd2c32996f4d818be26d2dc33be6870a3a0/mypy-1.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:52825b01f5c4c1c4eb0db253ec09c7aa17e1a7304d247c48b6f3599ef40db8bd", size = 10849520, upload-time = "2023-12-21T16:29:30.482Z" }, + { url = "https://files.pythonhosted.org/packages/74/e8/30c42199bb5aefb37e02a9bece41f6a62a60a1c427cab8643bc0e7886df1/mypy-1.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:f5ac9a4eeb1ec0f1ccdc6f326bcdb464de5f80eb07fb38b5ddd7b0de6bc61e55", size = 9812231, upload-time = "2023-12-21T16:28:06.606Z" }, + { url = "https://files.pythonhosted.org/packages/a6/70/49e9dc3d4ef98c22e09f1d7b0195833ad7eeda19a24fcc42bf1b62c89110/mypy-1.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afe3fe972c645b4632c563d3f3eff1cdca2fa058f730df2b93a35e3b0c538218", size = 12422003, upload-time = "2023-12-21T16:28:01.87Z" }, + { url = "https://files.pythonhosted.org/packages/33/14/902484951fa662ee6e044087a50dab4b16b534920dda2eea9380ce2e7b2d/mypy-1.8.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:42c6680d256ab35637ef88891c6bd02514ccb7e1122133ac96055ff458f93fc3", size = 12497387, upload-time = "2023-12-21T16:29:17.389Z" }, + { url = "https://files.pythonhosted.org/packages/aa/88/c6f214f1beeac9daffa1c3d0a5cbf96ee05617ca3e822c436c83f141ad8f/mypy-1.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:720a5ca70e136b675af3af63db533c1c8c9181314d207568bbe79051f122669e", size = 9302230, upload-time = "2023-12-21T16:29:14.009Z" }, + { url = "https://files.pythonhosted.org/packages/3a/e3/b582bff8e2fc7056a8a00ec06d2ac3509fc9595af9954099ed70e0418ac3/mypy-1.8.0-py3-none-any.whl", hash = "sha256:538fd81bb5e430cc1381a443971c0475582ff9f434c16cd46d2c66763ce85d9d", size = 2553257, upload-time = "2023-12-21T16:28:20.857Z" }, +] + +[[package]] +name = "mypy-extensions" +version = "1.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/6e/371856a3fb9d31ca8dac321cda606860fa4548858c0cc45d9d1d4ca2628b/mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558", size = 6343, upload-time = "2025-04-22T14:54:24.164Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/79/7b/2c79738432f5c924bef5071f933bcc9efd0473bac3b4aa584a6f7c1c8df8/mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505", size = 4963, upload-time = "2025-04-22T14:54:22.983Z" }, +] + +[[package]] +name = "nh3" +version = "0.3.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5e/1b/ef84624f14954d270f74060a19fc550dd4f06656399447569afb584d8c06/nh3-0.3.6.tar.gz", hash = "sha256:f3736c9dd3d1856f80cd031715b84ca75cda2bbb1ac802c3da26bfce590838d7", size = 24684, upload-time = "2026-06-22T00:47:02.008Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/3e/6506aa4f23dc7b7993a2d0a45dca3ce864ec48380adfe15a173e643c63e8/nh3-0.3.6-cp314-cp314t-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:2411e8c3cee81a1ddd62c2a5d50585c28aa5566d373ad1db92536b95ddb24ef2", size = 1421679, upload-time = "2026-06-22T00:46:20.248Z" }, + { url = "https://files.pythonhosted.org/packages/e3/e1/e96e7864a7a53bd6b6fab7e9632467382a2a2c1f3fed951918ad131542fb/nh3-0.3.6-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e196fa70c2ff2eb4de7d3df3108f8f358c1d69dff20d45b11f20a5aa227ffb6d", size = 792570, upload-time = "2026-06-22T00:46:22.179Z" }, + { url = "https://files.pythonhosted.org/packages/59/62/5b6108bedaef2b2637fed04c87bdbcb5967b9961758b41f0e466ef22a022/nh3-0.3.6-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:34d2b0d934156b87ee114f599a3ba9b8b9e17b5d79652ba3a13fa50903de965e", size = 842243, upload-time = "2026-06-22T00:46:23.801Z" }, + { url = "https://files.pythonhosted.org/packages/4b/4a/526f199626bfcb496bc01a268051b44737962005553b158e985ed7e64865/nh3-0.3.6-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:f2f14b7ae1fca99c4a66c981aac3974e7fbc1ca30a12673d223ae1df76680917", size = 1001468, upload-time = "2026-06-22T00:46:25.481Z" }, + { url = "https://files.pythonhosted.org/packages/49/09/0d8e3101636d9ad88cdefb2914e764cb8e876ebdbb4286bfc251277d9c67/nh3-0.3.6-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:889932a97fb4abb6f95fef1914c0d269ebfb60011e67121c1163059b9449dbb4", size = 1082933, upload-time = "2026-06-22T00:46:27.15Z" }, + { url = "https://files.pythonhosted.org/packages/09/a1/ea83abe738a3fbaa203dfdb836ca7cbab0e7e9609faaee4fe1d4652599c0/nh3-0.3.6-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:edb2b4a1a27523e6cc7c417f8d21ce3d005243548b93e56b762b66b0c7f589f9", size = 1043120, upload-time = "2026-06-22T00:46:28.89Z" }, + { url = "https://files.pythonhosted.org/packages/66/69/0654482b8635012fbae67826bd6c381abb05d841ac7388b9b4666300fdad/nh3-0.3.6-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:43bc1ed3fa0716295fabee29ba42b2667e4a51d140b0a68e092170a765474fa6", size = 1023824, upload-time = "2026-06-22T00:46:30.453Z" }, + { url = "https://files.pythonhosted.org/packages/ed/a6/1f7285ffadc8307c4dbeb08d21b920536d5117785056d1079e998c4dfa44/nh3-0.3.6-cp314-cp314t-win32.whl", hash = "sha256:597a8e843bea00b2eb5520658dc24a9bb032e7fc9e7c2c0c4cd29420220c9796", size = 599253, upload-time = "2026-06-22T00:46:32.072Z" }, + { url = "https://files.pythonhosted.org/packages/36/ea/5542f3c45da4c00290d9d67a65e996702e23e613c4b627de3e09cb9fe357/nh3-0.3.6-cp314-cp314t-win_amd64.whl", hash = "sha256:4713502748f564fee0633b37b3403783ce0a3af3a3d148ad91025a5bdadb7bc6", size = 612553, upload-time = "2026-06-22T00:46:33.53Z" }, + { url = "https://files.pythonhosted.org/packages/66/35/26bd47e6af5915a628281dccdac354ddf4e32f7397047894270acd8c9870/nh3-0.3.6-cp314-cp314t-win_arm64.whl", hash = "sha256:69bbb92865a693d909db3a700d3c01537533844d0948c1e9323561ce06ecda41", size = 595151, upload-time = "2026-06-22T00:46:34.878Z" }, + { url = "https://files.pythonhosted.org/packages/f3/ab/a7653bce9a3b204be6a6931767a9e23595807bb84790ce6685e4d7e5bd08/nh3-0.3.6-cp38-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:a43ebd7543555c3ac1bc353023d0794e75cb76f6f18f19c32e95441496c0cc25", size = 1443564, upload-time = "2026-06-22T00:46:36.66Z" }, + { url = "https://files.pythonhosted.org/packages/41/21/e1084ab18eb589506335c7c7576f2d4643e9a0c0e33983ef0e549a256b96/nh3-0.3.6-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e1b160831c9cdb06a6c79c2f9cdb11386602938f9af260d1c457a85add4f6f69", size = 838002, upload-time = "2026-06-22T00:46:38.101Z" }, + { url = "https://files.pythonhosted.org/packages/b0/94/f48d08e6f72a406300fa11d8acd929fea1a80d4bf750fa292cb10785f126/nh3-0.3.6-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d14bf7982e7a77c0c775634c29c07ce08b38a046df73e1c1f139b3e82f18a38e", size = 823045, upload-time = "2026-06-22T00:46:39.495Z" }, + { url = "https://files.pythonhosted.org/packages/25/bb/431615ba1d1d3eb63cde0f974f2114edf863a8a3f6049a12fed23fc241d3/nh3-0.3.6-cp38-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:44673b27010051ab5a5e438a86ec31bbda61d4a77d7e900af6b7be3037c1abae", size = 1093171, upload-time = "2026-06-22T00:46:41.21Z" }, + { url = "https://files.pythonhosted.org/packages/0e/24/a0d80182a18919665fefd19c1c06f1d1df1c9a6455d0252de40c034a0bc3/nh3-0.3.6-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e6b7beece07525dc6e6b0fc2f104442de2ba328360ad00e50cbe2e1fd620447d", size = 1049217, upload-time = "2026-06-22T00:46:42.804Z" }, + { url = "https://files.pythonhosted.org/packages/0a/13/6f1e302ca674ac74362e150848ad56a1be5145391204f74facdb8e94df12/nh3-0.3.6-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:455469a29951edc92bc48b47ac2281c3f2609e6c4f6a047056449f8c2c23facf", size = 917372, upload-time = "2026-06-22T00:46:44.495Z" }, + { url = "https://files.pythonhosted.org/packages/5b/67/314f6151bad77a93d751978a344033e1fc890822f05f0416079338e34231/nh3-0.3.6-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:905f877dc66dd7aea4a76e54bcb26acb5ff8216f720c0017ccf63e0e6035698e", size = 806699, upload-time = "2026-06-22T00:46:45.99Z" }, + { url = "https://files.pythonhosted.org/packages/3c/a6/bfaa00046e58603507dcfc266c4778e3ab7adf68a5dedd73b6274b8d9314/nh3-0.3.6-cp38-abi3-manylinux_2_31_riscv64.whl", hash = "sha256:25c733bee928530556b1db0ea46c52cf5aa686146e38e60a6fc7cb801ef91cec", size = 835165, upload-time = "2026-06-22T00:46:47.617Z" }, + { url = "https://files.pythonhosted.org/packages/30/a8/fb2c38845efb703a9173bffdfc745fc64d2b0e55cfc73a3647d2f028250c/nh3-0.3.6-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2f90d9a0cfdbee218994fdaaeeb5a0fde62d08f35e4eef0378ec1e2200172fd0", size = 858282, upload-time = "2026-06-22T00:46:49.276Z" }, + { url = "https://files.pythonhosted.org/packages/68/17/06e72a18ee9b572914447338237ca7eb164c0df901f141bc10d1282247a2/nh3-0.3.6-cp38-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:82ca5bf427ad1b216b65ede1a2e2d87dc49bec417ceba0f297213107d3cd9d78", size = 1014328, upload-time = "2026-06-22T00:46:51.026Z" }, + { url = "https://files.pythonhosted.org/packages/11/f9/3966c61455668c08853bf5e33b4bed93c421f3194ce4de896dc248d6f6ce/nh3-0.3.6-cp38-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:f5ed5fe84aee7f39db95c214a7421bf0499fbf500fec6d86a4e29bfc37971438", size = 1098207, upload-time = "2026-06-22T00:46:52.674Z" }, + { url = "https://files.pythonhosted.org/packages/19/d3/479cb4ae440424825735d60525b53e3c77fd60fd6e6afc0e984f00eb0178/nh3-0.3.6-cp38-abi3-musllinux_1_2_i686.whl", hash = "sha256:082675ff87b9385ec430ffe6d5847ba7456cc39b73720cd4add472f9f4cffd56", size = 1056961, upload-time = "2026-06-22T00:46:54.335Z" }, + { url = "https://files.pythonhosted.org/packages/17/0c/6cdb5ee1e127be50dc8391e54bddc1f64e87bf4bfad0c55633320e2e02db/nh3-0.3.6-cp38-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:36d06341bd501240d320f5942481ed5e6846136b666e1ba4faf802b78ebc875f", size = 1033829, upload-time = "2026-06-22T00:46:56.258Z" }, + { url = "https://files.pythonhosted.org/packages/e9/55/9de666ad975d6ccd77d799ea0add55ee2347aa81286ce21b2a97c070746b/nh3-0.3.6-cp38-abi3-win32.whl", hash = "sha256:5276ef17bdba9ad8040575c74072008b13aae429436e9d0429e718bb5f90f4da", size = 609081, upload-time = "2026-06-22T00:46:57.665Z" }, + { url = "https://files.pythonhosted.org/packages/82/fa/2b5d684e3edf1e81bfd02d298c78c3e3da77ca1d8a2be3183a79544a7548/nh3-0.3.6-cp38-abi3-win_amd64.whl", hash = "sha256:f338ac7d594c067679f1e99b4f5ec3906842979560f9d8f15d6bdfa39a353b10", size = 624461, upload-time = "2026-06-22T00:46:59.163Z" }, + { url = "https://files.pythonhosted.org/packages/7b/e5/7cafee2f0413ca4cb0ef3bd111e94d408a48810008b283ad8aee00dd1809/nh3-0.3.6-cp38-abi3-win_arm64.whl", hash = "sha256:69f365963f63a1e9bff53bdbb3c542c7c2efed3e163c9d5d83a772a2ac468c21", size = 603060, upload-time = "2026-06-22T00:47:00.596Z" }, +] + +[[package]] +name = "oauthlib" +version = "3.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6d/fa/fbf4001037904031639e6bfbfc02badfc7e12f137a8afa254df6c4c8a670/oauthlib-3.2.2.tar.gz", hash = "sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918", size = 177352, upload-time = "2022-10-17T20:04:27.471Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7e/80/cab10959dc1faead58dc8384a781dfbf93cb4d33d50988f7a69f1b7c9bbe/oauthlib-3.2.2-py3-none-any.whl", hash = "sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca", size = 151688, upload-time = "2022-10-17T20:04:24.037Z" }, +] + +[[package]] +name = "opentelemetry-api" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "deprecated" }, + { name = "importlib-metadata" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e8/56/b485bf0f42ae83a8ff97e861a3869f57415205ab8d1a22dd755319a97701/opentelemetry_api-1.22.0.tar.gz", hash = "sha256:15ae4ca925ecf9cfdfb7a709250846fbb08072260fca08ade78056c502b86bed", size = 56708, upload-time = "2023-12-15T22:59:40.124Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fc/2e/a8509051aa446783e24ee03d74bd268c07d5d25a8d48686cfcf3429d5d32/opentelemetry_api-1.22.0-py3-none-any.whl", hash = "sha256:43621514301a7e9f5d06dd8013a1b450f30c2e9372b8e30aaeb4562abf2ce034", size = 57947, upload-time = "2023-12-15T22:59:11.07Z" }, +] + +[[package]] +name = "opentelemetry-sdk" +version = "1.22.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "opentelemetry-api" }, + { name = "opentelemetry-semantic-conventions" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/2c/e5/8428cffb8905160be1fb9680da4be72394bd313437a559c0954cca68d983/opentelemetry_sdk-1.22.0.tar.gz", hash = "sha256:45267ac1f38a431fc2eb5d6e0c0d83afc0b78de57ac345488aa58c28c17991d0", size = 136651, upload-time = "2023-12-15T22:59:56.775Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/94/588f49e0dd9a62ec46102736d2378330032a55e19c79ff7e4febea7ebed1/opentelemetry_sdk-1.22.0-py3-none-any.whl", hash = "sha256:a730555713d7c8931657612a88a141e3a4fe6eb5523d9e2d5a8b1e673d76efa6", size = 105558, upload-time = "2023-12-15T22:59:35.704Z" }, +] + +[[package]] +name = "opentelemetry-semantic-conventions" +version = "0.43b0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/6c/1a/c73989de59d71c30922fce91edccda75942156e753d25976640dde0ac051/opentelemetry_semantic_conventions-0.43b0.tar.gz", hash = "sha256:b9576fb890df479626fa624e88dde42d3d60b8b6c8ae1152ad157a8b97358635", size = 34344, upload-time = "2023-12-15T22:59:57.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/26/69be0f1a56a362c68fa0c7632d841b1b8f29d809bc6b1b897387c9f46973/opentelemetry_semantic_conventions-0.43b0-py3-none-any.whl", hash = "sha256:291284d7c1bf15fdaddf309b3bd6d3b7ce12a253cec6d27144439819a15d8445", size = 36840, upload-time = "2023-12-15T22:59:37.142Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "paginate" +version = "0.5.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/46/68dde5b6bc00c1296ec6466ab27dddede6aec9af1b99090e1107091b3b84/paginate-0.5.7.tar.gz", hash = "sha256:22bd083ab41e1a8b4f3690544afb2c60c25e5c9a63a30fa2f483f6c60c8e5945", size = 19252, upload-time = "2024-08-25T14:17:24.139Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/90/96/04b8e52da071d28f5e21a805b19cb9390aa17a47462ac87f5e2696b9566d/paginate-0.5.7-py2.py3-none-any.whl", hash = "sha256:b885e2af73abcf01d9559fd5216b57ef722f8c42affbb63942377668e35c7591", size = 13746, upload-time = "2024-08-25T14:17:22.55Z" }, +] + +[[package]] +name = "paho-mqtt" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/39/15/0a6214e76d4d32e7f663b109cf71fb22561c2be0f701d67f93950cd40542/paho_mqtt-2.1.0.tar.gz", hash = "sha256:12d6e7511d4137555a3f6ea167ae846af2c7357b10bc6fa4f7c3968fc1723834", size = 148848, upload-time = "2024-04-29T19:52:55.591Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c4/cb/00451c3cf31790287768bb12c6bec834f5d292eaf3022afc88e14b8afc94/paho_mqtt-2.1.0-py3-none-any.whl", hash = "sha256:6db9ba9b34ed5bc6b6e3812718c7e06e2fd7444540df2455d2c51bd58808feee", size = 67219, upload-time = "2024-04-29T19:52:48.345Z" }, +] + +[[package]] +name = "parso" +version = "0.8.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/4b/90c937815137d43ce71ba043cd3566221e9df6b9c805f24b5d138c9d40a7/parso-0.8.7.tar.gz", hash = "sha256:eaaac4c9fdd5e9e8852dc778d2d7405897ec510f2a298071453e5e3a07914bb1", size = 401824, upload-time = "2026-05-01T23:13:02.138Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/99/5d/8268b644392ee874ee82a635cd0df1773de230bde356c38de28e298392cc/parso-0.8.7-py2.py3-none-any.whl", hash = "sha256:a8926eb2a1b915486941fdbd31e86a4baf88fe8c210f25f2f35ecec5b574ca1c", size = 107025, upload-time = "2026-05-01T23:12:58.867Z" }, +] + +[[package]] +name = "pathspec" +version = "1.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5a/82/42f767fc1c1143d6fd36efb827202a2d997a375e160a71eb2888a925aac1/pathspec-1.1.1.tar.gz", hash = "sha256:17db5ecd524104a120e173814c90367a96a98d07c45b2e10c2f3919fff91bf5a", size = 135180, upload-time = "2026-04-27T01:46:08.907Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/d9/7fb5aa316bc299258e68c73ba3bddbc499654a07f151cba08f6153988714/pathspec-1.1.1-py3-none-any.whl", hash = "sha256:a00ce642f577bf7f473932318056212bc4f8bfdf53128c78bbd5af0b9b20b189", size = 57328, upload-time = "2026-04-27T01:46:07.06Z" }, +] + +[[package]] +name = "pexpect" +version = "4.9.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "ptyprocess" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/42/92/cc564bf6381ff43ce1f4d06852fc19a2f11d180f23dc32d9588bee2f149d/pexpect-4.9.0.tar.gz", hash = "sha256:ee7d41123f3c9911050ea2c2dac107568dc43b2d3b0c7557a33212c398ead30f", size = 166450, upload-time = "2023-11-25T09:07:26.339Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9e/c3/059298687310d527a58bb01f3b1965787ee3b40dce76752eda8b44e9a2c5/pexpect-4.9.0-py2.py3-none-any.whl", hash = "sha256:7236d1e080e4936be2dc3e326cec0af72acf9212a7e1d060210e70a47e253523", size = 63772, upload-time = "2023-11-25T06:56:14.81Z" }, +] + +[[package]] +name = "pillow" +version = "12.3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1c/3d/bb7fca845737cf9d7dbde16ed1843984665ff2e0a518f5db43e77ec540b9/pillow-12.3.0.tar.gz", hash = "sha256:3b8182a766685eaa002637e28b4ec8d6b18819a0c71f579bf0dbaa5830297cce", size = 47025035, upload-time = "2026-07-01T11:56:38.965Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fb/c8/0a78b0e02d7ac54bc03e5321c9220da52f0c2ea83b21f7c40e7f3169c502/pillow-12.3.0-cp311-cp311-macosx_10_10_x86_64.whl", hash = "sha256:00808c5e14ef63ac5161091d242999076604ff74b883423a11e5d7bbb38bf756", size = 5392415, upload-time = "2026-07-01T11:53:47.162Z" }, + { url = "https://files.pythonhosted.org/packages/b2/5b/a02d30018abd97ced9f5a6c63d28597694a00d066516b9c1c6de45859fc9/pillow-12.3.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:37d6d0a00072fd2948eb22bce7e1475f34569d90c87c59f7a2ec59541b77f7a6", size = 4785266, upload-time = "2026-07-01T11:53:49.079Z" }, + { url = "https://files.pythonhosted.org/packages/c8/98/766667a4be768150a202836acd9fad19c06824ca86c4286d3cf6b274964e/pillow-12.3.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bcb46e2f9feff8d06323983bd83ed00c201fdcab3d74973e7072a889b3979fcd", size = 6263814, upload-time = "2026-07-01T11:53:51.32Z" }, + { url = "https://files.pythonhosted.org/packages/3b/2d/ede717bc1144f63886c21fd349bb95860b0d1a21149ff16f2bb362b612b6/pillow-12.3.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:23d27a3e0307ec2244cc51e7287b919aa68d097504ebe19df4e76a98a3eea5bd", size = 6934408, upload-time = "2026-07-01T11:53:53.487Z" }, + { url = "https://files.pythonhosted.org/packages/a3/48/9c58b685e69d49c31af6c8eb9012055fab7e665785165c84796e2c73ce72/pillow-12.3.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4f883547d4b7f0495ebe7056b0cc2aea76094e7a4abc8e933540f3271df27d9c", size = 6337160, upload-time = "2026-07-01T11:53:55.457Z" }, + { url = "https://files.pythonhosted.org/packages/ff/fa/dc2a5c0ba6df93f67c31d34b808b7ce440b40cdbf96f0b81cde1d1e6fa93/pillow-12.3.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:236ff70b9312fb68943c703aa842ca6a758abfa45ac187a5e7c1452e96ef72b5", size = 7045172, upload-time = "2026-07-01T11:53:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/86/a5/444817a4d4c4c2417df00513086ca196f388d8f9ef40c2e4ccd1ad1af54b/pillow-12.3.0-cp311-cp311-win32.whl", hash = "sha256:10e41f0fbf1eec8cfd234b8fe17a4caac7c9d0db4c204d3c173a8f9f6ef3232b", size = 6472232, upload-time = "2026-07-01T11:53:59.767Z" }, + { url = "https://files.pythonhosted.org/packages/63/c6/4bad1b18d132a50b27e1365e1ab163616f7a5bb56d330f66f9d1d9d4f9d4/pillow-12.3.0-cp311-cp311-win_amd64.whl", hash = "sha256:8e95e1385e4998ae9694eeaa4730ba5457ff61185b3a55e2e7bea0880aef452a", size = 7233653, upload-time = "2026-07-01T11:54:02.066Z" }, + { url = "https://files.pythonhosted.org/packages/fd/16/00f91ab7760dc842f5aad55217e80fc4a7067a0604535249bc8a2d6d9870/pillow-12.3.0-cp311-cp311-win_arm64.whl", hash = "sha256:ebaea975e03d3141d9d3a507df75c9b3ec90fa9d2ffd07567b3a978d9d790b26", size = 2568195, upload-time = "2026-07-01T11:54:04.622Z" }, + { url = "https://files.pythonhosted.org/packages/37/bf/fb3ebff8ddcb76aac5a01389251bbbb9519922a9b520d8247c1ca864a25d/pillow-12.3.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ba09209fbe443b4acccebe845d8a138b89a8f4fbaeedd44953490b5315d5e965", size = 5345969, upload-time = "2026-07-01T11:54:06.397Z" }, + { url = "https://files.pythonhosted.org/packages/d8/66/9a386a92561f402389a4fc70c18838bf6d35eb5eb5c6850b4b2dc64f5048/pillow-12.3.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ffd0c5368496f41b0944be820fcb7a838aa6e623d250b01acf2643939c3f99d7", size = 4780323, upload-time = "2026-07-01T11:54:09.351Z" }, + { url = "https://files.pythonhosted.org/packages/25/27/ac8f99618ffd3dde21db0f4d4b1d2ab00c0880595bfd17df103f7f39fd0c/pillow-12.3.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d9c7f76c0673154f044e9d78c8655fb4213f6ca31a836df48b40fe5d187717b9", size = 6266838, upload-time = "2026-07-01T11:54:11.71Z" }, + { url = "https://files.pythonhosted.org/packages/84/21/a35af28dcc61f37ed850a2d64c65c701321dfbf25085e469d5559360cbbf/pillow-12.3.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:78cb2c6865a35ab8ff8b75fd122f6033b92a62c82801110e48ddd6c936a45d91", size = 6940830, upload-time = "2026-07-01T11:54:13.732Z" }, + { url = "https://files.pythonhosted.org/packages/eb/51/8b08617af3ad95e33ce6d7dd2c99ed6c8298f7fb131636303956be022e25/pillow-12.3.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e491916b378fba47242221bb9ead245211b70d504f495d105d17b14a24b4907c", size = 6344383, upload-time = "2026-07-01T11:54:15.756Z" }, + { url = "https://files.pythonhosted.org/packages/1d/72/cf78ac9780bb93c28328f408973845a309d4d145041665f734572ced1b52/pillow-12.3.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:0dd2064cbc55aaec028ef5fbb60fa47bb6c3e7918e07ff17935284b227a9d2df", size = 7052934, upload-time = "2026-07-01T11:54:17.721Z" }, + { url = "https://files.pythonhosted.org/packages/20/20/25e0f4dc178a6bc0696793720055519a0de89e7661dae886992decbd2f81/pillow-12.3.0-cp312-cp312-win32.whl", hash = "sha256:dbce0b29841537a2fa4a214c2bbf14de3587c9680caa9b4e217568472490b28f", size = 6472684, upload-time = "2026-07-01T11:54:19.839Z" }, + { url = "https://files.pythonhosted.org/packages/45/89/da2f7971a317f83d807fdd4065c0af40208e59e692cc43d315a71a0e96d1/pillow-12.3.0-cp312-cp312-win_amd64.whl", hash = "sha256:a2b55dd6b2a4c4b7d87ffa56bdb33fdc5fdb9a462173861a7bc097f17d91cb09", size = 7227137, upload-time = "2026-07-01T11:54:22.025Z" }, + { url = "https://files.pythonhosted.org/packages/de/47/4845a0a6c0dbf1db8456bd9fc791f13c5ced7ced20606d08a0aacfd25b49/pillow-12.3.0-cp312-cp312-win_arm64.whl", hash = "sha256:331b624368d4f1d069149002f25f44bc61c8919ce8ddb3c45bdad8f6e2d89510", size = 2568267, upload-time = "2026-07-01T11:54:24.051Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ac/31fb64e1e7efb5a4b50cd3d92049ba89ac6e4d8d3bb6a74e15048ca3353e/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphoneos.whl", hash = "sha256:21900ce7ba264168cd50defae43cd75d25c833ad4ad6e73ffc5596d12e25ac89", size = 4161684, upload-time = "2026-07-01T11:54:25.934Z" }, + { url = "https://files.pythonhosted.org/packages/87/b4/9805e23d2b4d77842b468513841fda254ee42f0289d25088340e4ff46e2d/pillow-12.3.0-cp313-cp313-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:4e8c2a84d977f50b9daed6eeaf3baef67d00d5d74d932288f02cb94518ee3ace", size = 4255487, upload-time = "2026-07-01T11:54:27.935Z" }, + { url = "https://files.pythonhosted.org/packages/df/39/ecf519435a200c693fe053a6ee4d835b41cf963a4dfc2551c4e637cb2a71/pillow-12.3.0-cp313-cp313-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:ae26d61dfa7a47befdc7572b521024e8745f3d809bd95ca9505a7bba9ef849ec", size = 3696433, upload-time = "2026-07-01T11:54:29.813Z" }, + { url = "https://files.pythonhosted.org/packages/42/92/2fc3ffad878ae8dd5469ec1bc8eb83b71f48e13efdf68f02709003982a32/pillow-12.3.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:7a743ff716f746fc19a9557f60dab1600d4613255f8a7aeb3cdde4db7eb15a66", size = 5345889, upload-time = "2026-07-01T11:54:31.97Z" }, + { url = "https://files.pythonhosted.org/packages/10/76/8803c13605b763d33d156c4678fc77f8443389c0c51c8aef707bb02015f4/pillow-12.3.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:d69141514cc30b774ceea5e3ed3a6635c8d8a96edf664689b890f4089111fb35", size = 4780109, upload-time = "2026-07-01T11:54:34.026Z" }, + { url = "https://files.pythonhosted.org/packages/1f/01/e18aff37cb0b4aac47ac90f016d347a49aca667ef97f190b06ac2aabc928/pillow-12.3.0-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f7401aebd7f581d7f83a439d87d474999317ee099218e5ad25d125290990ba65", size = 6263736, upload-time = "2026-07-01T11:54:36.131Z" }, + { url = "https://files.pythonhosted.org/packages/f7/62/de5bdd77d935331f4f802edc11e4d82950f642caad6cb2f949837b8560e2/pillow-12.3.0-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0847a763afefb695bc912d7c131e7e0632d4edc1d8698f58ddabec8e46b8b6d3", size = 6937129, upload-time = "2026-07-01T11:54:38.216Z" }, + { url = "https://files.pythonhosted.org/packages/70/4d/105627a13300c5e0df1d174230b32fd1273062c96f7745fd552b945d1e1d/pillow-12.3.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:571b9fcb07b97ef3a492028fb3d2dc0993ca23a06138b0315286566d29ef718a", size = 6339562, upload-time = "2026-07-01T11:54:40.354Z" }, + { url = "https://files.pythonhosted.org/packages/6b/1d/f13de01a553988ab895ba1c722e06cf3144d4f57656fd5b81b6d881f1179/pillow-12.3.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:756c768d0c9c2955feb7a56c37ea24aea2e369f8d36a88da270b6a9f19e62b5e", size = 7049439, upload-time = "2026-07-01T11:54:42.489Z" }, + { url = "https://files.pythonhosted.org/packages/c9/f9/066794cca041b969964f779ee5fa66a9498bbf34248ac39c5d7954e4198f/pillow-12.3.0-cp313-cp313-win32.whl", hash = "sha256:a876864214e136f0eb367788dbd7df045f4806801518e2cfe9e13229cfe06d8f", size = 6473287, upload-time = "2026-07-01T11:54:44.9Z" }, + { url = "https://files.pythonhosted.org/packages/a6/9b/7a58e61d62be561da3a356fe2384d4059a6345fc130e23ef1c36a5b81d24/pillow-12.3.0-cp313-cp313-win_amd64.whl", hash = "sha256:1cca606cd25738df4ed873d5ad46bbdb3d83b5cbca291f6b4ff13a4df6b0bbe8", size = 7239691, upload-time = "2026-07-01T11:54:47.141Z" }, + { url = "https://files.pythonhosted.org/packages/aa/b0/c4ed4f0ef8f8fa5ee8351537db6650bb8189f7e118842978dd6589065692/pillow-12.3.0-cp313-cp313-win_arm64.whl", hash = "sha256:b629de27fda84b42cde7edef0d85f13b958b47f6e9bbcbba9b673c562a89bd8b", size = 2568185, upload-time = "2026-07-01T11:54:49.137Z" }, + { url = "https://files.pythonhosted.org/packages/dc/01/001f65b68192f0228cc1dbbc8d2530ab5d58b61037ba0587f946fea607cd/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphoneos.whl", hash = "sha256:9cf95fe4d0f84c82d282745d9bb08ad9f926efa00be4697e767b814ce40d4330", size = 4161736, upload-time = "2026-07-01T11:54:51.156Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d2/0219746d0fd16fc8a84498e79452375be3797d3ce4044596ce565164b84f/pillow-12.3.0-cp314-cp314-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:8728f216dcdb6e6d555cf971cb34076139ad74b31fc2c14da4fafc741c5f6217", size = 4255435, upload-time = "2026-07-01T11:54:53.414Z" }, + { url = "https://files.pythonhosted.org/packages/c8/02/8d0bc62ef0302318c46ff2a512822d2610e81c7aa46c9b3abe6cbaca5ad0/pillow-12.3.0-cp314-cp314-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:a45650e8ce7fafffd731db8550230db6b0d306d181a90b67d3e6bca2f1990930", size = 3696262, upload-time = "2026-07-01T11:54:55.739Z" }, + { url = "https://files.pythonhosted.org/packages/85/e2/73c77d218410b14f5f2d565e8a998d5317b7b9c75368d29985139f7a46f0/pillow-12.3.0-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:ba54cfebe86920a559a7c4d6b9050791c20513650a1952ebe3368c7dc70306f8", size = 5350344, upload-time = "2026-07-01T11:54:57.657Z" }, + { url = "https://files.pythonhosted.org/packages/c7/da/32c752228ae345f489e3a42499d817b6c3996da7e8a3bc7a04fc806b243b/pillow-12.3.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:e158cb00350dc278f3b91551101aa7d12415a66ebf2c91d8d5ac14e56ddd3ad0", size = 4780131, upload-time = "2026-07-01T11:54:59.713Z" }, + { url = "https://files.pythonhosted.org/packages/b1/9d/8b2c807dbef61a5197c047afe99823787eb66f63daf9fb2432f91d6f0462/pillow-12.3.0-cp314-cp314-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e9aeb04d6aef139de265b29683e119b638208f88cf73cdd1658aa07221165321", size = 6263757, upload-time = "2026-07-01T11:55:01.778Z" }, + { url = "https://files.pythonhosted.org/packages/5c/44/c85361f65dbe00eea8576ee467c768d25129989efb76e94f205e9ca9bb46/pillow-12.3.0-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:251bf95b67017e27b13d82f5b326234ca62d70f9cf4c2b9032de2358a3b12c7b", size = 6936962, upload-time = "2026-07-01T11:55:03.93Z" }, + { url = "https://files.pythonhosted.org/packages/18/7e/e483414b35800b86b6f08dbbc7803fb5cd52c4d6f897f47d53ea2c7e6f65/pillow-12.3.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:fe3cca2e4e8a592be0f269a1ca4835c25199d9f3ce815c8491048f785b0a0198", size = 6339171, upload-time = "2026-07-01T11:55:05.989Z" }, + { url = "https://files.pythonhosted.org/packages/f0/f4/68c491844841ede6bed70189546b3ee9731cf9f2cbad396faff5e1ccba45/pillow-12.3.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:23aceaa007d6172b02c277f0cd359c79492bbb14f7072b4ede9fbcaf20648130", size = 7048116, upload-time = "2026-07-01T11:55:08.131Z" }, + { url = "https://files.pythonhosted.org/packages/a3/34/77f3f793fed8efc7d243f21b33c5a3f0d1c97ee70346d3db855587e155ff/pillow-12.3.0-cp314-cp314-win32.whl", hash = "sha256:af8d94b0db561cf68b88a267c5c44b49e134f525d0dc2cb7ed413a66bc23559a", size = 6467209, upload-time = "2026-07-01T11:55:10.408Z" }, + { url = "https://files.pythonhosted.org/packages/f1/e0/492879f69d94f91f60fc8cd05ba03650e9520afebb2fb7aa12777d7c7f38/pillow-12.3.0-cp314-cp314-win_amd64.whl", hash = "sha256:fdafc9cce40277e0f7a0feabce0ee50dd2fa1800f3b38015e51296b5e814048d", size = 7237707, upload-time = "2026-07-01T11:55:12.745Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ac/6b11f2875f1c2ac040d84e1bbf9cf22a88038f901ca1037898b280b38365/pillow-12.3.0-cp314-cp314-win_arm64.whl", hash = "sha256:e91206ee562682b51b98ef4b26a6ef48fd84e15fd4c4bc5ec768eb641d206838", size = 2565995, upload-time = "2026-07-01T11:55:14.736Z" }, + { url = "https://files.pythonhosted.org/packages/52/69/c2208e56af9bfc1913afb24020297a691eb1d4ef688474c8a04913f65e04/pillow-12.3.0-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:164b31cd1a0490ab6efae01aa5df49da7061be0af1b30e035b6e9a1bfe34ee6e", size = 5352503, upload-time = "2026-07-01T11:55:17.076Z" }, + { url = "https://files.pythonhosted.org/packages/07/70/e5686d753e898a45d778ff1718dba8516ead6ab6b95d85fc8c4b70650cf2/pillow-12.3.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5afb51d599ea772b8365ae807ae557f18bccfe46ab261fd1c2a9ed700fc6eb17", size = 4782956, upload-time = "2026-07-01T11:55:19.448Z" }, + { url = "https://files.pythonhosted.org/packages/d5/37/25c6692f06927ee973ff18c8d9ee98ad0b4d84ee67a09610c2dd1447958e/pillow-12.3.0-cp314-cp314t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3edce1d53195db527e0191f84b71d02022de0540bf43a16ed734ed7537b07385", size = 6322855, upload-time = "2026-07-01T11:55:21.613Z" }, + { url = "https://files.pythonhosted.org/packages/cc/91/420637fcb8f1bc11029e403b4538e6694744428d8246118e45719f944556/pillow-12.3.0-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bf16ba1b4d0b6b7c8e534936632270cf70eb00dbe09005bc345b2677b726855c", size = 6989642, upload-time = "2026-07-01T11:55:24.006Z" }, + { url = "https://files.pythonhosted.org/packages/10/08/b94d7811281ccf0d143a1cf768d1c49e1e54af63e7b708ab2ee3eb87face/pillow-12.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:24870b09b224f7ae3c39ed07d10e819d06f8720bc551847b1d623832b5b0e28d", size = 6391281, upload-time = "2026-07-01T11:55:26.252Z" }, + { url = "https://files.pythonhosted.org/packages/d2/87/24233f785f55474dc02ce3e739c5528a77e3a862e9333d1dd7a25cc31f70/pillow-12.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:30f2aa603c41533cc25c05acd0da21636e84a315768feb631c937177db558931", size = 7096716, upload-time = "2026-07-01T11:55:28.318Z" }, + { url = "https://files.pythonhosted.org/packages/23/26/fcb2f6e37175b04f53570b59937867e2b80ee1685e744023153028fc14f9/pillow-12.3.0-cp314-cp314t-win32.whl", hash = "sha256:4b0a7fe987b14c31ebda6083f74f22b561fd3739bc0ac51e019622e3d72668c7", size = 6474125, upload-time = "2026-07-01T11:55:30.956Z" }, + { url = "https://files.pythonhosted.org/packages/90/de/3634abee5f1c9e13c56787b7d5517b0ba8d6de51700b95578cf338349c9f/pillow-12.3.0-cp314-cp314t-win_amd64.whl", hash = "sha256:962864dc93511324d51ddbb5b9f8731bf71675b93ca612a07441896f4688fb8c", size = 7242939, upload-time = "2026-07-01T11:55:34.044Z" }, + { url = "https://files.pythonhosted.org/packages/ce/2a/fd13f8eb24de5714a6eb444a3d67e2842c6c576e159a43793adf23051351/pillow-12.3.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0740a512dc522224c77d9aa5a8d70d8b7d73fb91f2c21125d8d025d3b8990e45", size = 2567506, upload-time = "2026-07-01T11:55:35.988Z" }, + { url = "https://files.pythonhosted.org/packages/5d/dc/8fdce34ec725a33c81c6ba122b904d6b9024e50ea9ac7bede62fab54506c/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphoneos.whl", hash = "sha256:0feb2e9d6ad6c9e3c06effe9d00f3f1e618a6643273576b016f591e9315a7139", size = 4162063, upload-time = "2026-07-01T11:55:37.941Z" }, + { url = "https://files.pythonhosted.org/packages/76/66/2044b9a63d3b84ff048228dfcb7cd9bf0df983e8470971bf7d4c57b693de/pillow-12.3.0-cp315-cp315-ios_13_0_arm64_iphonesimulator.whl", hash = "sha256:9e881fca225083806662a5c43d627d215f258ff43c890f831966c7d7ba9c7402", size = 4255549, upload-time = "2026-07-01T11:55:40.022Z" }, + { url = "https://files.pythonhosted.org/packages/52/7e/1f67e6f4ece6b582ee4b539decbcc9f848dc245a93ed8cd7338bafef72f1/pillow-12.3.0-cp315-cp315-ios_13_0_x86_64_iphonesimulator.whl", hash = "sha256:4998562bf62a445225f22e07c896bb04b35b1b1f2eb6d760584c9c51d7a5f78c", size = 3696331, upload-time = "2026-07-01T11:55:41.98Z" }, + { url = "https://files.pythonhosted.org/packages/12/40/d306fc2c8e4d45d7f175c77edca7063be7b86fe7fe6e68f4353bf71d808c/pillow-12.3.0-cp315-cp315-macosx_10_15_x86_64.whl", hash = "sha256:dc624f6bc473dacdf7ef7eb8678d0d08edf15cd94fad6ae5c7d6cc67a4e4902f", size = 5350370, upload-time = "2026-07-01T11:55:44.028Z" }, + { url = "https://files.pythonhosted.org/packages/dd/44/668fb1437e8ce420f62d6106eb66e44a5971602a4d794615bdf79315d82d/pillow-12.3.0-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:71d6097b330eea8fd15097780c8e89cb1a8ce7838669f48c5bacd6f663dd4701", size = 4780147, upload-time = "2026-07-01T11:55:46.073Z" }, + { url = "https://files.pythonhosted.org/packages/0c/08/93fa2e70e30a2d81547e481b6ee2bb9522117221fb1e0ce4b5df70967677/pillow-12.3.0-cp315-cp315-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:28ce87c5ab450a9dd970b52e5aca5fe63ed432d18a2eaddd1979a00a1ba24ace", size = 6273659, upload-time = "2026-07-01T11:55:48.264Z" }, + { url = "https://files.pythonhosted.org/packages/f8/6d/043e96ff814fc31a33077e4cba86082167db520c93632afdf2042febbb0c/pillow-12.3.0-cp315-cp315-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6b02afb9b97f65fbca5f31db6a2a3ba21aa93030225f150fa3f249717e938fb4", size = 6947439, upload-time = "2026-07-01T11:55:50.503Z" }, + { url = "https://files.pythonhosted.org/packages/af/92/ba71d2ee2ac0edf3fa33bd9d5ee9ee080da70b1766f3ca3934f9938ddac9/pillow-12.3.0-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:1182d52bc2d5e5d7d0949503aa7e36d12f42205dc287e4883f407b1988820d39", size = 6353577, upload-time = "2026-07-01T11:55:52.697Z" }, + { url = "https://files.pythonhosted.org/packages/0f/ce/e63064e2122923ff687c8ad792d0d736a7b3920a56a46982e81a7fdd25d6/pillow-12.3.0-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:e795b7eb908249c4e43c7c99fac7c2c75dab0c43566e37db472a355f63693d71", size = 7060394, upload-time = "2026-07-01T11:55:55.149Z" }, + { url = "https://files.pythonhosted.org/packages/54/76/a09cc3ccc8d773a7283d34c38bec1708f9e3cc932093cbc4c5e71ac4060b/pillow-12.3.0-cp315-cp315-win32.whl", hash = "sha256:57b3d78c95ba9059768b10e28b813002261d3f3dfc55cc48b0c988f625175827", size = 6467375, upload-time = "2026-07-01T11:55:57.769Z" }, + { url = "https://files.pythonhosted.org/packages/3e/03/1846c49ba3b1d5550392a4bbd06d6fb4578e1cd91a803198b5c90f5f7d53/pillow-12.3.0-cp315-cp315-win_amd64.whl", hash = "sha256:fa4ecea169a355be7a3ade2c783e2ed12f0e40d2c5621cda8b3297faf7fbb9f5", size = 7237048, upload-time = "2026-07-01T11:55:59.975Z" }, + { url = "https://files.pythonhosted.org/packages/fb/bb/89f35dcc79610423f9f195504d7def7f0d1416a711541b42867e25fe3412/pillow-12.3.0-cp315-cp315-win_arm64.whl", hash = "sha256:877c3f311ff35410f690861c4409e7ccbf0cd2f878e50628a28e5a0bb689e658", size = 2566006, upload-time = "2026-07-01T11:56:02.143Z" }, + { url = "https://files.pythonhosted.org/packages/30/88/707027ba09942dfa2c28759b5c222d769290a41c6d20ea60ec250801941f/pillow-12.3.0-cp315-cp315t-macosx_10_15_x86_64.whl", hash = "sha256:e9871b1ffbfa9656b60aeee92ed5136a5742696006fa322b29ea3d8da0ecc9cf", size = 5352509, upload-time = "2026-07-01T11:56:04.2Z" }, + { url = "https://files.pythonhosted.org/packages/b0/6d/00352fa25332c2569cd387851f568cc5a4b75a9adbfb37ac4fbce4c02eec/pillow-12.3.0-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:53aa02d20d10c3d814d536aa4e5ac9b84ca0ff5a88377963b085ad6822f93e64", size = 4783167, upload-time = "2026-07-01T11:56:06.631Z" }, + { url = "https://files.pythonhosted.org/packages/13/4f/9e049dfa21af7c22427275720e2490267ba8138120add5c4c574deb69782/pillow-12.3.0-cp315-cp315t-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:446c34dcc4324b084a53b705127dc15717b22c5e140ae0a3c38349d4efec071e", size = 6329237, upload-time = "2026-07-01T11:56:08.868Z" }, + { url = "https://files.pythonhosted.org/packages/36/16/cf6eeaae8d0fce8dd390a33437cf68c5d5bd73834a2bc6e2f14efda0ab45/pillow-12.3.0-cp315-cp315t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cf1845d02ad822a369a49f2bb9345b1614744267682e7a03527dc3bf6eea1777", size = 6997047, upload-time = "2026-07-01T11:56:11.379Z" }, + { url = "https://files.pythonhosted.org/packages/1e/69/dbf769bdd55f48bf5733cac28edc6364ffaa072ec9ba336266e4fe66be55/pillow-12.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:186941b6aef820ad110fb01fb06eb925374dc3a21b17e37ec9a53b250c6fe2d1", size = 6400440, upload-time = "2026-07-01T11:56:13.908Z" }, + { url = "https://files.pythonhosted.org/packages/a0/e1/ffc9cfc2eea0d178da8018e18e959301ad9d6bc9f3edb7181e748a474b97/pillow-12.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:f13c32a3abd6079a66d9526e18dad9b6d280384d49d7c54040cd57b6424041d9", size = 7105895, upload-time = "2026-07-01T11:56:16.575Z" }, + { url = "https://files.pythonhosted.org/packages/18/f0/a5595c1e8c3ae44b9828cb2f0fa8155e5095ef04d6327b8f61cf44a3df85/pillow-12.3.0-cp315-cp315t-win32.whl", hash = "sha256:1657923d2d45afb66526e5b933e5b3052e6bdea196c90d3abb2424e18c77dae8", size = 6474384, upload-time = "2026-07-01T11:56:18.855Z" }, + { url = "https://files.pythonhosted.org/packages/e4/04/62bcd9f844984c5938d3b05264a61d797a29d3e0812341a8204af70bbdee/pillow-12.3.0-cp315-cp315t-win_amd64.whl", hash = "sha256:8cd2f7bdda092d99c9fc2fb7391354f306d01443d22785d0cbfafa2e2c8bb418", size = 7243537, upload-time = "2026-07-01T11:56:21.214Z" }, + { url = "https://files.pythonhosted.org/packages/3d/68/1f3066acedf37673694a7141381d8f811ae97f30d34413d236abe7d489f1/pillow-12.3.0-cp315-cp315t-win_arm64.whl", hash = "sha256:06ff022112bc9cbf83b60f8e028d94ad87b60621706487e65f673de61610ab59", size = 2567491, upload-time = "2026-07-01T11:56:23.506Z" }, + { url = "https://files.pythonhosted.org/packages/75/18/2e8b40223153ccbc60df07f9e8928dc0c76202aa4e55ae9f53962b6510d6/pillow-12.3.0-pp311-pypy311_pp73-macosx_10_15_x86_64.whl", hash = "sha256:b3c777e849237620b022f7f297dd67705f9f5cf1685f09f02e46f93e92725468", size = 5302510, upload-time = "2026-07-01T11:56:25.736Z" }, + { url = "https://files.pythonhosted.org/packages/46/3e/51fabf59d5ab801ceab709453d3ab6b180083496579549de4c45ced6528a/pillow-12.3.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:b343699e8308bdc51978310e1c959c584e7869cc8c40780058c87da7781a1e94", size = 4736058, upload-time = "2026-07-01T11:56:28.041Z" }, + { url = "https://files.pythonhosted.org/packages/bf/20/22fe9384b7949e25fb1293bcfc84fb82590ff4ea6b37c95b24d26d793d86/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fbd139c8447d25dd750ab79ee274cc5e1fe80fc56340ab10b18a195e1b6eca3e", size = 5237776, upload-time = "2026-07-01T11:56:30.263Z" }, + { url = "https://files.pythonhosted.org/packages/08/14/f6ba68107680ffa74b39985f3f30884e41318fbc4250caa423c79b4788bb/pillow-12.3.0-pp311-pypy311_pp73-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e7e480451b9fa137494bccd3a7d69adbe8ac65a87d97be61e11f1b1050a5bac3", size = 5860358, upload-time = "2026-07-01T11:56:32.68Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0169bc772ec491108b62f644f8ecf1fe5d8ae5ebafde2ee2142210166903/pillow-12.3.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:04f01d28a6aaff387bf842a13be313df23ba0597a44f1a976c9feb3c6ff4711a", size = 7231786, upload-time = "2026-07-01T11:56:35.046Z" }, +] + +[[package]] +name = "pkginfo" +version = "1.12.1.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/24/03/e26bf3d6453b7fda5bd2b84029a426553bb373d6277ef6b5ac8863421f87/pkginfo-1.12.1.2.tar.gz", hash = "sha256:5cd957824ac36f140260964eba3c6be6442a8359b8c48f4adf90210f33a04b7b", size = 451828, upload-time = "2025-02-19T15:27:37.188Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/3d/f4f2ba829efb54b6cd2d91349c7463316a9cc55a43fc980447416c88540f/pkginfo-1.12.1.2-py3-none-any.whl", hash = "sha256:c783ac885519cab2c34927ccfa6bf64b5a704d7c69afaea583dd9b7afe969343", size = 32717, upload-time = "2025-02-19T15:27:33.071Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.10.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/47/e4501f49c178ae1d9f4a75073fda4204f52647993f075a9db4d14930e0c5/platformdirs-4.10.0.tar.gz", hash = "sha256:31e761a6a0ca04faf7353ea759bdba55652be214725111e5aac52dfa29d4bef7", size = 31224, upload-time = "2026-05-28T03:32:53.587Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/e6/cd9575ac904136b3cbf7aa7ee819ef86eedb7274e46f230e94ea4342e729/platformdirs-4.10.0-py3-none-any.whl", hash = "sha256:fb516cdb12eb0d857d0cd85a7c57cea4d060bee4578d6cf5a14dfdf8cbf8784a", size = 22743, upload-time = "2026-05-28T03:32:52.175Z" }, +] + +[[package]] +name = "pluggy" +version = "1.6.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f9/e2/3e91f31a7d2b083fe6ef3fa267035b518369d9511ffab804f839851d2779/pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3", size = 69412, upload-time = "2025-05-15T12:30:07.975Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/54/20/4d324d65cc6d9205fabedc306948156824eb9f0ee1633355a8f7ec5c66bf/pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746", size = 20538, upload-time = "2025-05-15T12:30:06.134Z" }, +] + +[[package]] +name = "prometheus-client" +version = "0.19.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/02/a4e12fe70cd57137be321785c9d6a046c7f537d5888226a01d083b4c88f6/prometheus_client-0.19.0.tar.gz", hash = "sha256:4585b0d1223148c27a225b10dbec5ae9bc4c81a99a3fa80774fa6209935324e1", size = 77791, upload-time = "2023-11-21T00:46:15.749Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bb/9f/ad934418c48d01269fc2af02229ff64bcf793fd5d7f8f82dc5e7ea7ef149/prometheus_client-0.19.0-py3-none-any.whl", hash = "sha256:c88b1e6ecf6b41cd8fb5731c7ae919bf66df6ec6fafa555cd6c0e16ca169ae92", size = 54228, upload-time = "2023-11-21T00:46:11.057Z" }, +] + +[[package]] +name = "prompt-toolkit" +version = "3.0.52" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "wcwidth" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/96/06e01a7b38dce6fe1db213e061a4602dd6032a8a97ef6c1a862537732421/prompt_toolkit-3.0.52.tar.gz", hash = "sha256:28cde192929c8e7321de85de1ddbe736f1375148b02f2e17edd840042b1be855", size = 434198, upload-time = "2025-08-27T15:24:02.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/84/03/0d3ce49e2505ae70cf43bc5bb3033955d2fc9f932163e84dc0779cc47f48/prompt_toolkit-3.0.52-py3-none-any.whl", hash = "sha256:9aac639a3bbd33284347de5ad8d68ecc044b91a762dc39b7c21095fcd6a19955", size = 391431, upload-time = "2025-08-27T15:23:59.498Z" }, +] + +[[package]] +name = "propcache" +version = "0.5.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ec/44/c87281c333769159c50594f22610f77398a47ccbfbbf23074e744e86f87c/propcache-0.5.2.tar.gz", hash = "sha256:01c4fc7480cd0598bb4b57022df55b9ca296da7fc5a8760bd8451a7e63a7d427", size = 50208, upload-time = "2026-05-08T21:02:12.199Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e7/f1/8a8cc1c2c7e7934ab77e0163414f736fadbc0f5e8dd9673b952355ac175b/propcache-0.5.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:74b70780220e2dd89175ca24b81b68b67c83db499ae611e7f2313cb329801c78", size = 90744, upload-time = "2026-05-08T20:59:45.799Z" }, + { url = "https://files.pythonhosted.org/packages/c2/f4/651b1225e976bd1a2ba5cfba0c29d096581c2636b437e3a9a7ab6276270a/propcache-0.5.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a4840ab0ae0216d952f4b53dc6d0b992bfc2bedbfe360bdd9b548bc184c08959", size = 52033, upload-time = "2026-05-08T20:59:47.408Z" }, + { url = "https://files.pythonhosted.org/packages/15/a8/8ede85d6aa1f79fc7dc2f8fd2c8d65920b8272c3892903c8a1affde48cfb/propcache-0.5.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c6844ba6364fb12f403928a82cfd295ab103a2b315c77c747b2dbe4a41894ea7", size = 52754, upload-time = "2026-05-08T20:59:49.202Z" }, + { url = "https://files.pythonhosted.org/packages/7d/fe/b3551b41bbc2f5b5bb088fc6920567cd43101253e68fbaa261339eb96fe1/propcache-0.5.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2293949b855ce597f2826452d17c2d545fb5622379c4ea6fdf525e9b8e8a2511", size = 57573, upload-time = "2026-05-08T20:59:50.778Z" }, + { url = "https://files.pythonhosted.org/packages/83/27/ab851ebd1b7172e3e161f5f8d39e315d54a91bea246f01f4d872d3376aef/propcache-0.5.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0fd59b5af35f74da48d905dcbad55449ba13be91823cb05a9bd590bbf5b61660", size = 60645, upload-time = "2026-05-08T20:59:52.227Z" }, + { url = "https://files.pythonhosted.org/packages/95/7d/466b3d18022e9897cbda9c735c493c5bd747d7a4c6f5ea1480b4cec434b6/propcache-0.5.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:29f9309a2e42b0d273be006fdb4be2d6c39a47f6f57d8fb1cf9f81481df81b66", size = 61563, upload-time = "2026-05-08T20:59:53.866Z" }, + { url = "https://files.pythonhosted.org/packages/27/1b/16ab7f2cf2041da2f60d156ba64c2484eadf9168075b4ff43c3ef60045af/propcache-0.5.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5aaa2b923c1944ac8febd6609cb373540a5563e7cbcb0fd770f75dace2eb817b", size = 58888, upload-time = "2026-05-08T20:59:55.457Z" }, + { url = "https://files.pythonhosted.org/packages/0a/67/bb777ffd907633563bf35fd859c4ce97b0512c32f4633cf5d1eb7c33512b/propcache-0.5.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:66ea454f095ddf5b6b14f56c064c0941c4788be11e18d2464cf643bf7203ff67", size = 59253, upload-time = "2026-05-08T20:59:57.075Z" }, + { url = "https://files.pythonhosted.org/packages/b9/42/64f8d90b73fd9cdc1499b48057ff6d9cd2a98a25734c9bb62ecf07e87061/propcache-0.5.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:95f1e3f4760d404b13c9976c0229b2b49a3c8e2c62a9ce92efdd2b11ada75e3f", size = 57558, upload-time = "2026-05-08T20:59:58.602Z" }, + { url = "https://files.pythonhosted.org/packages/eb/02/dba5bc03c9041f2092ea55a449caf5dfe68352c6654511b29ba0654ddb69/propcache-0.5.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:85341b12b9d55bad0bded24cac341bb34289469e03a11f3f583ea1cc1db0326c", size = 55007, upload-time = "2026-05-08T20:59:59.837Z" }, + { url = "https://files.pythonhosted.org/packages/14/c0/43f649c7aa2a77a3b100d84e9dea3a483120ecb608bfe36ce49eaff517fe/propcache-0.5.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:26a4dca084132874e639895c3135dfad5eb20bae209f62d1aeb31b03e601c3c0", size = 60355, upload-time = "2026-05-08T21:00:01.144Z" }, + { url = "https://files.pythonhosted.org/packages/83/c0/435dafd27f1cb4a495381dae60e25883ccfe4020bb72818e8184c1678092/propcache-0.5.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3b199b9b2b3d6a7edf3183ba8a9a137a22b97f7df525feb5ae1eccf026d2a9c6", size = 59057, upload-time = "2026-05-08T21:00:02.401Z" }, + { url = "https://files.pythonhosted.org/packages/53/ae/6e292df9135d659944e96cb3389258e4a663e5b2b5f6c217ef0ddc8d2f73/propcache-0.5.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:e59bc9e66329185b93dab73f210f1a37f81cb40f321501db8017c9aea15dba27", size = 61938, upload-time = "2026-05-08T21:00:03.638Z" }, + { url = "https://files.pythonhosted.org/packages/0b/42/314ebc50d8159055411fd6b0bda322ff510e4b1f7d2e4927940ad0f6af20/propcache-0.5.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:552ffadf6ad409844bc5919c42a0a83d88314cedddaea0e41e80a8b8fffe881f", size = 59731, upload-time = "2026-05-08T21:00:04.881Z" }, + { url = "https://files.pythonhosted.org/packages/b8/9b/2da6dee38871c3c8772fabc2758325a5c9077d6d18c597737dc04dd884cd/propcache-0.5.2-cp311-cp311-win32.whl", hash = "sha256:cd416c1de191973c52ff1a12a57446bfc7642797b282d7caf2162d7d1b8aa9a0", size = 38966, upload-time = "2026-05-08T21:00:06.511Z" }, + { url = "https://files.pythonhosted.org/packages/42/4e/f17363fb58c0afe05b067361cb6d86ed2d29de6506779a27547c4d183075/propcache-0.5.2-cp311-cp311-win_amd64.whl", hash = "sha256:44e488ef40dbb452700b2b1f8188934121f6648f52c295055662d2191959ff82", size = 42135, upload-time = "2026-05-08T21:00:08.088Z" }, + { url = "https://files.pythonhosted.org/packages/c6/eb/6af6685077d22e8b33358d3c548e3282706a0b3cd85044ffba4e5dd08e3b/propcache-0.5.2-cp311-cp311-win_arm64.whl", hash = "sha256:54adaa85a22078d1e306304a40984dc5be99d599bf3dc0a24dc98f7daeab89ab", size = 38381, upload-time = "2026-05-08T21:00:09.692Z" }, + { url = "https://files.pythonhosted.org/packages/4a/cb/e27bc2b2737a0bb49962b275efa051e8f1c35a936df7d5139b6b658b7dc9/propcache-0.5.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:806719138ecd720339a12410fb9614ac9b2b2d3a5fdf8235d56981c36f4039ba", size = 95887, upload-time = "2026-05-08T21:00:11.277Z" }, + { url = "https://files.pythonhosted.org/packages/e6/13/b8ae04c59392f8d11c6cd9fb4011d1dc7c86b81225c770280300e259ffe1/propcache-0.5.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:db2b80ea58eab4f86b2beec3cc8b39e8ff9276ac20e96b7cce43c8ae84cd6b5a", size = 54654, upload-time = "2026-05-08T21:00:12.604Z" }, + { url = "https://files.pythonhosted.org/packages/2c/7d/49777a3e20b55863d4794384a38acd460c04157b0a00f8602b0d508b8431/propcache-0.5.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:e5cbfac9f61484f7e9f3597775500cd3ebe8274e9b050c38f9525c77c97520bf", size = 55190, upload-time = "2026-05-08T21:00:13.935Z" }, + { url = "https://files.pythonhosted.org/packages/44/c7/085d0cd63062e84044e3f05797749c3f8e3938ff3aeb0eb2f69d43fafc91/propcache-0.5.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:5dbc581d2814337da56222fab8dc5f161cd798a434e49bac27930aaef798e144", size = 59995, upload-time = "2026-05-08T21:00:15.526Z" }, + { url = "https://files.pythonhosted.org/packages/9c/42/32cf8e3009e92b2645cf1e944f701e8ea4e924dffde1ee26db860bcbf7e4/propcache-0.5.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:857187f381f88c8e2fa2fe56ab94879d011b883d5a2ee5a1b60a8cd2a06846d9", size = 63422, upload-time = "2026-05-08T21:00:16.824Z" }, + { url = "https://files.pythonhosted.org/packages/9e/1b/f112433f99fc979431b87a39ef169e3f8df070d99a72792c56d6937ac48b/propcache-0.5.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:178b4a2cdaac1818e2bf1c5a99b94383fa73ea5382e032a48dec07dc5668dc42", size = 64342, upload-time = "2026-05-08T21:00:18.362Z" }, + { url = "https://files.pythonhosted.org/packages/14/15/5574111ae50dd6e879456888c0eadd4c5a869959775854e18e18a6b345f3/propcache-0.5.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6f328175a2cde1f0ff2c4ed8ce968b9dcfb55f3a7153f39e2957ed994da13476", size = 61639, upload-time = "2026-05-08T21:00:19.692Z" }, + { url = "https://files.pythonhosted.org/packages/cc/da/4d775080b1490c0ae604acda868bd71aabe3a89ed16f2aa4339eb8a283e7/propcache-0.5.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:5671d09a36b06d0fd4a3da0fccbcae360e9b1570924171a15e9e0997f0249fba", size = 61588, upload-time = "2026-05-08T21:00:21.155Z" }, + { url = "https://files.pythonhosted.org/packages/04/ac/f076982cbe2195ee9cf32de5a1e46951d9fb399fc207f390562dd0fd8fb2/propcache-0.5.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:80168e2ebe4d3ec6599d10ad8f520304ae1cad9b6c5a95372aef1b66b7bfb53a", size = 60029, upload-time = "2026-05-08T21:00:22.713Z" }, + { url = "https://files.pythonhosted.org/packages/70/60/189be62e0dd898dce3b331e1b8c7a543cd3a405ac0c81fe8ee8a9d5d77e1/propcache-0.5.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:45f11346f884bc47444f6e6647131055844134c3175b629f84952e2b5cd62b64", size = 56774, upload-time = "2026-05-08T21:00:24.001Z" }, + { url = "https://files.pythonhosted.org/packages/ea/9e/93377b9c7939c1ffae98f878dee955efadfd638078bc86dbc21f9d52f651/propcache-0.5.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:8e778ebd44ef4f66ed60a0416b06b489687db264a9c0b3620362f26489492913", size = 63532, upload-time = "2026-05-08T21:00:25.545Z" }, + { url = "https://files.pythonhosted.org/packages/14/f9/590ef6cfb9b8028d516d287812ece32bb0bc5f11fbb9c8bf6b2e6313fec8/propcache-0.5.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:c0cb9ed24c8964e172768d455a38254c2dd8a552905729ce006cad3d3dda59b1", size = 61592, upload-time = "2026-05-08T21:00:27.186Z" }, + { url = "https://files.pythonhosted.org/packages/b4/5e/70958b3034c297a630bba2f17ca7abc2d5f39a803ad7e370ab79d1ecd022/propcache-0.5.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:1d1ad32d9d4355e2be65574fd0bfd3677e7066b009cd5b9b2dee8aa6a6393b33", size = 64788, upload-time = "2026-05-08T21:00:28.8Z" }, + { url = "https://files.pythonhosted.org/packages/12/fd/77fe5936d8c3086ca9048f7f415f122ed82e53884a9ec193646b42deef06/propcache-0.5.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:c80f4ba3e8f00189165999a742ee526ebeccedf6c3f7beb0c7df821e9772435a", size = 62514, upload-time = "2026-05-08T21:00:30.098Z" }, + { url = "https://files.pythonhosted.org/packages/cf/74/66bd798b5b3be70aa1b391f5cc9d6a0a5532d7fd3b19ec0b213e72e6ad9d/propcache-0.5.2-cp312-cp312-win32.whl", hash = "sha256:8c7972d8f193740d9175f0998ab38717e6cd322d5935c5b0fef8c0d323fd9031", size = 39018, upload-time = "2026-05-08T21:00:31.622Z" }, + { url = "https://files.pythonhosted.org/packages/61/7c/5c0d34aa3024694d6dcb9271cdbdd08c4e47c1c0ad95ec7e7bc74cdea145/propcache-0.5.2-cp312-cp312-win_amd64.whl", hash = "sha256:d9ee8826a7d47863a08ac44e1a5f611a462eefc3a194b492da242128bec75b42", size = 42322, upload-time = "2026-05-08T21:00:32.918Z" }, + { url = "https://files.pythonhosted.org/packages/4d/91/875812f1a3feb20ceba818ef39fbe4d92f1081e04ac815c822496d0d038b/propcache-0.5.2-cp312-cp312-win_arm64.whl", hash = "sha256:2800a4a8ead6b28cccd1ec54b59346f0def7922ee1c7598e8499c733cfbb7c84", size = 38172, upload-time = "2026-05-08T21:00:35.124Z" }, + { url = "https://files.pythonhosted.org/packages/c5/09/f049e45385503fe67db75a6b6186a7b9f0c3930366dc960522c312a825b1/propcache-0.5.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:099aaf4b4d1a02265b92a977edf00b5c4f63b3b17ac6de39b0d637c9cac0188a", size = 94457, upload-time = "2026-05-08T21:00:36.355Z" }, + { url = "https://files.pythonhosted.org/packages/6b/65/83d1d05655baf63113731bd5a1008435e14f8d1e5a06cbe4ec5b23ad7a31/propcache-0.5.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:68ce1c44c7a813a7f71ea04315a8c7b330b63db99d059a797a4651bb6f69f117", size = 53835, upload-time = "2026-05-08T21:00:38.072Z" }, + { url = "https://files.pythonhosted.org/packages/a9/12/a6ba6482bb5ea3260c000c9b20881c95fa11c6b30173715668259f844ed7/propcache-0.5.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:fc299c129490f55f254cd90be0deca4764e36e9a7c08b4aa588479a3bbed3098", size = 54545, upload-time = "2026-05-08T21:00:39.319Z" }, + { url = "https://files.pythonhosted.org/packages/a9/19/7fa086f5764c59ec8a8e157cd93aa8497acc00aba9dcdec56bfffb32602d/propcache-0.5.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a6ae2198be502c10f09b2516e7b5d019816924bc3183a43ce792a7bd6625e6f4", size = 59886, upload-time = "2026-05-08T21:00:40.621Z" }, + { url = "https://files.pythonhosted.org/packages/a1/e4/5d7663dc8235956c8f5281698a3af1d351d8820341ddd890f59d9a9127f2/propcache-0.5.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:6041d31504dc1779d700e1edcfb08eea334b357620b06681a4eabb57a74e574e", size = 63261, upload-time = "2026-05-08T21:00:41.775Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4a/15a03adee24d6350da4292caeac44c34c033d2afe5e87eb370f38854560f/propcache-0.5.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f7eabc04151c78a9f4d5bbb5f1faf571e4defeb4b585e0fe95b60ff2dbe4d3d7", size = 64184, upload-time = "2026-05-08T21:00:43.018Z" }, + { url = "https://files.pythonhosted.org/packages/8b/c6/979176efdaa3d239e36d503d5af63a0a773b36662ed8f52e5b6a6d9fd40e/propcache-0.5.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4db0ba63d693afd40d249bd93f842b5f144f8fcbb83de05660373bcf30517b1d", size = 61534, upload-time = "2026-05-08T21:00:44.507Z" }, + { url = "https://files.pythonhosted.org/packages/c8/22/63e8cd1bae4c2d2be6493b6b7d10566ddafad88137cfbc99964a1119853c/propcache-0.5.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:1dbcf7675229b35d31abb6547d8ebc8c27a830ac3f9a794edff6254873ec7c0a", size = 61500, upload-time = "2026-05-08T21:00:45.796Z" }, + { url = "https://files.pythonhosted.org/packages/60/5a/28e5d9acbac1cc9ccb67045e8c1b943aa8d79fdf39c93bd73cacd68008ea/propcache-0.5.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d310c013aad2c72f1c3f2f8dd3279d460a858c551f97aeb8c63e4693cca7b4d2", size = 59994, upload-time = "2026-05-08T21:00:47.093Z" }, + { url = "https://files.pythonhosted.org/packages/f3/40/db650677f554a95b9c01a7c9d93d629e93a15562f5deb4573c9ee136fed2/propcache-0.5.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:06187263ddad280d05b4d8a8b3bb7d164cbebd469236544a42e6d9b28ac6a4fa", size = 56884, upload-time = "2026-05-08T21:00:48.376Z" }, + { url = "https://files.pythonhosted.org/packages/80/45/70b39b89516ff8b96bf732fa6fded8cef20f293cb1508690101c3c07ec51/propcache-0.5.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:3115559b8effafd63b142ea5ed53d63a16ea6469cbc63dce4ee194b42db5d853", size = 63464, upload-time = "2026-05-08T21:00:49.954Z" }, + { url = "https://files.pythonhosted.org/packages/f9/e2/fa59d3a89eac5534293124af4f1d0d0ada091ce4a0ab4610ce03fd2bdd8d/propcache-0.5.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:c60462af8e6dc30c35407c7237ea908d777b22862bbee27bc4699c0d8bcdc45a", size = 61588, upload-time = "2026-05-08T21:00:51.281Z" }, + { url = "https://files.pythonhosted.org/packages/0b/97/efb547a55c4bc7381cfb202d6a2239ac621045277bc1ea5dfd3a7f0516c0/propcache-0.5.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:40314bca9ac559716fe374094fc81c11dcc34b64fd6c585360f5775690505704", size = 64667, upload-time = "2026-05-08T21:00:52.602Z" }, + { url = "https://files.pythonhosted.org/packages/92/56/f5c7d9b4b7595d5127da38974d791b2153f3d1eae6c674af3583ace92ad3/propcache-0.5.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:cfa21e036ce1e1db2be04ba3b85d2df1bb1702fa01932d984c5464c665228ff4", size = 62463, upload-time = "2026-05-08T21:00:54.303Z" }, + { url = "https://files.pythonhosted.org/packages/bd/3b/484a3a65fc9f9f60c41dcd17b428bace5389544e2c680994534a20755066/propcache-0.5.2-cp313-cp313-win32.whl", hash = "sha256:f156a3529f38063b6dbaf356e15602a7f95f8055b1295a438433a6386f10463d", size = 38621, upload-time = "2026-05-08T21:00:55.808Z" }, + { url = "https://files.pythonhosted.org/packages/1c/fd/3f0f10dba4dabad3bf53102be007abf55481067952bde0fdddff439e7c61/propcache-0.5.2-cp313-cp313-win_amd64.whl", hash = "sha256:dfed59d0a5aeb01e242e66ff0300bc4a265a7c05f612d30016f0b60b1017d757", size = 41649, upload-time = "2026-05-08T21:00:57.061Z" }, + { url = "https://files.pythonhosted.org/packages/90/ec/6ce619cc32bb500a482f811f9cd509368b4e58e638d13f2c68f370d6b475/propcache-0.5.2-cp313-cp313-win_arm64.whl", hash = "sha256:ba338430e87ceb9c8f0cf754de38a9860560261e56c00376debd628698a7364f", size = 37636, upload-time = "2026-05-08T21:00:58.646Z" }, + { url = "https://files.pythonhosted.org/packages/1b/82/c1d268bbbf2ef981c5bf0fbbe746db617c66e3bcefe431a1aa8943fbe23a/propcache-0.5.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:a592f5f3da71c8691c788c13cb6734b6d17663d2e1cb8caddf0673d01ef8847d", size = 98872, upload-time = "2026-05-08T21:00:59.889Z" }, + { url = "https://files.pythonhosted.org/packages/f4/d4/52c871e73e864e6b34c0e2d58ac1ec5ccd149497ddc7ad2137ae98323a35/propcache-0.5.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6a997d0489e9668a384fcfd5061b857aa5361de73191cac204d04b889cfbbafa", size = 56257, upload-time = "2026-05-08T21:01:01.195Z" }, + { url = "https://files.pythonhosted.org/packages/67/f0/9b90ca2a210b3d09bcfcd96ecd0f55545c091535abce2a45de2775cfd357/propcache-0.5.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:10734b5484ea113152ee25a91dccedf81631791805d2c9ccb054958e51842c94", size = 56696, upload-time = "2026-05-08T21:01:02.941Z" }, + { url = "https://files.pythonhosted.org/packages/9d/0e/6e9d4ba07c8e56e21ddec1e75f12148142b21ca83a51871babce095334f4/propcache-0.5.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:cafca7e56c12bb02ae16d283742bef25a61122e9dab2b5b3f2ccbe589ce32164", size = 62378, upload-time = "2026-05-08T21:01:04.475Z" }, + { url = "https://files.pythonhosted.org/packages/65/19/c10badaa463dde8a27ce884f8ee2ec37e6035b7c9f5ff0c8f74f06f08dac/propcache-0.5.2-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f064f8d2b59177878b7615df1735cd8fe3462ed6be8c7b217d17a276489c2b7f", size = 65283, upload-time = "2026-05-08T21:01:05.959Z" }, + { url = "https://files.pythonhosted.org/packages/b0/b6/93bea99ca80e19cef6512a8580e5b7857bbe09422d9daa7fd4ef5723306c/propcache-0.5.2-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f78abfa8dfc32376fd1aacf597b2f2fbbe0ea751419aee718af5d4f82537ef8c", size = 66616, upload-time = "2026-05-08T21:01:07.228Z" }, + { url = "https://files.pythonhosted.org/packages/83/e4/5c7462e50625f051f37fb38b8224f7639f667184bbd34424ec83819bb1b7/propcache-0.5.2-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7467da8a9822bf1a55336f877340c5bcbd3c482afc43a99771169f74a26dedc", size = 63773, upload-time = "2026-05-08T21:01:08.514Z" }, + { url = "https://files.pythonhosted.org/packages/ca/b6/99238894047b13c823be25027e736626cd414a52a5e30d2c3347c2733529/propcache-0.5.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a6ddc6ac9e25de626c1f129c1b467d7ecd33ce2237d3fd0c4e429feef0a7ee1f", size = 63664, upload-time = "2026-05-08T21:01:09.874Z" }, + { url = "https://files.pythonhosted.org/packages/85/1e/a3a1a63116a2b8edb415a8bb9a6f0c34bd03830b1e18e8ce2904e1dc1cf4/propcache-0.5.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:2f22cbbac9e26a8e864c0985ff1268d5d939d53d9d9411a9824279097e03a2cb", size = 62643, upload-time = "2026-05-08T21:01:11.132Z" }, + { url = "https://files.pythonhosted.org/packages/e4/03/893cf147de2fc6543c5eaa07ad833170e7e2a2385725bbebe8c0503723bb/propcache-0.5.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:fc76378c62a0f04d0cd82fbb1a2cd2d7e28fcb40d5873f28a6c44e388aaa2751", size = 59595, upload-time = "2026-05-08T21:01:12.387Z" }, + { url = "https://files.pythonhosted.org/packages/86/3b/04c1a2e12c57766568ba75ba72b3bf2042818d4c1425fab6fc07155c7cff/propcache-0.5.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:acd2c8edba48e31e58a363b8cf4e5c7db3b04b3f9e371f601df30d9b0d244836", size = 65711, upload-time = "2026-05-08T21:01:13.676Z" }, + { url = "https://files.pythonhosted.org/packages/1c/34/80f8d0099f8d6bacc4de1624c85672681c8cd1149ca2da0e38fd120b817f/propcache-0.5.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:452b5065457eb9991ec5eb38ff41d6cd4c991c9ac7c531c4d5849ae473a9a13f", size = 64247, upload-time = "2026-05-08T21:01:14.936Z" }, + { url = "https://files.pythonhosted.org/packages/f3/1a/8b08f3a5f1037e9e370c55883ceeeee0f6dd0416fb2d2d67b8bfc91f2a79/propcache-0.5.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:3430bb2bfe1331885c427745a751e774ee679fd4344f80b97bf879815fe8fa55", size = 67102, upload-time = "2026-05-08T21:01:16.281Z" }, + { url = "https://files.pythonhosted.org/packages/34/68/8bdb7bb7756d76e005490649d10e4a8369e610c74d619f71e1aedf889e9c/propcache-0.5.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:cef6cea3922890dd6c9654971001fa797b526c16ab5e1e46c05fd6f877be7568", size = 64964, upload-time = "2026-05-08T21:01:17.57Z" }, + { url = "https://files.pythonhosted.org/packages/0a/aa/50fb0b5d3968b61a510926ff8b8465f1d6e976b3ab74496d7a4b9fc42515/propcache-0.5.2-cp313-cp313t-win32.whl", hash = "sha256:72d61e16dd78228b58c5d47be830ff3da7e5f139abdf0aef9d86cde1c5cf2191", size = 42546, upload-time = "2026-05-08T21:01:18.946Z" }, + { url = "https://files.pythonhosted.org/packages/ae/4c/0ddbae64321bd4a95bcbfc19307238016b5b1fee645c84626c8d539e5b74/propcache-0.5.2-cp313-cp313t-win_amd64.whl", hash = "sha256:0958834041a0166d343b8d2cedcd8bcbaeb4fdbe0cf08320c5379f143c3be6e7", size = 46330, upload-time = "2026-05-08T21:01:20.162Z" }, + { url = "https://files.pythonhosted.org/packages/00/d9/9cddc8efb78d8af264c5ec9f6d10b62f57c515feda8d321595f56010fb23/propcache-0.5.2-cp313-cp313t-win_arm64.whl", hash = "sha256:6de8bd93ddde9b992cf2b2e0d796d501a19026b5b9fd87356d7d0779531a8d96", size = 40521, upload-time = "2026-05-08T21:01:21.399Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ea/23ee535d90ce8bcc465a3028eb3cc0ce3bd1005f4bb27710b30587de798d/propcache-0.5.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:46088abff4cba581dea21ae0467a480526cb25aa5f3c269e909f800328bc3999", size = 94662, upload-time = "2026-05-08T21:01:22.683Z" }, + { url = "https://files.pythonhosted.org/packages/b5/06/c5a52f419b5d8972f8d46a7577476090d8e3263ff589ce40b5ca4968d5be/propcache-0.5.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fc88b26f08d634f7bc819a7852e5214f5802641ab8d9fd5326892292eee1993e", size = 53928, upload-time = "2026-05-08T21:01:23.986Z" }, + { url = "https://files.pythonhosted.org/packages/63/b1/4260d67d6bd85e58a66b72d54ce15d5de789b6f3870cc6bedf8ff9667401/propcache-0.5.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:97797ebb098e670a2f92dd66f32897e30d7615b14e7f59711de23e30a9072539", size = 54650, upload-time = "2026-05-08T21:01:25.305Z" }, + { url = "https://files.pythonhosted.org/packages/70/06/2f46c318e3307cd7a6a7481def374ce838c0fe20084b39dd54b0879d0e99/propcache-0.5.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ba57fffe4ac99c5d30076161b5866336d97600769bad35cc68f7774b15298a4e", size = 59912, upload-time = "2026-05-08T21:01:26.545Z" }, + { url = "https://files.pythonhosted.org/packages/4c/29/fe1aebec2ce57ab985a9c382bded1124431f85078113aa222c5d278430d4/propcache-0.5.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:583c19759d9eec1e5b69e2fbef36a7d9c326041be9746cb822d335c8cedc2979", size = 63300, upload-time = "2026-05-08T21:01:27.937Z" }, + { url = "https://files.pythonhosted.org/packages/b4/18/2334b26768b6c82be8c69e83671b767d5ef426aa09b0cba6c2ea47816774/propcache-0.5.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d0326e2e5e1f3163fa306c834e48e8d490e5fae607a097a40c0648109b47ba80", size = 64208, upload-time = "2026-05-08T21:01:29.484Z" }, + { url = "https://files.pythonhosted.org/packages/2b/76/7f1bfd6afff4c5e38e36a3c6d68eb5f4b7311ea80baf693db78d95b603c4/propcache-0.5.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e00820e192c8dbebcafb383ebbf99030895f09905e7a0eb2e0340a0bcc2bc825", size = 61633, upload-time = "2026-05-08T21:01:31.068Z" }, + { url = "https://files.pythonhosted.org/packages/c4/46/b3ff8aba2b4953a3e50de2cf72f1b5748b8eca93b15f3dc2c84339084c09/propcache-0.5.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c66afea89b1e43725731d2004732a046fe6fe955d51f952c3e95a7314a284a39", size = 61724, upload-time = "2026-05-08T21:01:32.374Z" }, + { url = "https://files.pythonhosted.org/packages/c5/01/814cfcafbcff954f94c01cf30e097ddc88a076b5440fbcf4570753437d40/propcache-0.5.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:d4dc37dec6c6cdad0b57881a5658fd14fbf53e333b1a86cf86559f190e1d9ec4", size = 60069, upload-time = "2026-05-08T21:01:33.67Z" }, + { url = "https://files.pythonhosted.org/packages/da/68/5c6f7622d510cc666a300687e06fd060c1a43361c0c9b20d284f06d8096a/propcache-0.5.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:5570dbcc97571c15f68068e529c92715a12f8d54030e272d264b377e22bd17a5", size = 57099, upload-time = "2026-05-08T21:01:34.915Z" }, + { url = "https://files.pythonhosted.org/packages/55/27/9cb0b4c679124085327957d42521c99dba04c88c90c3e55a6f0b633ebccc/propcache-0.5.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:f814362777a9f841adddb200ecdf8f5cb1e5a3c4b7a86378edbd6ccb26edd702", size = 63391, upload-time = "2026-05-08T21:01:36.231Z" }, + { url = "https://files.pythonhosted.org/packages/f0/9d/7258aaa5bdf60fc6f27591eef6fe52768cb0beda7140be477c8b12c9794a/propcache-0.5.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:196913dea116aeb5a2ba95af4ddcb7ea85559ae07d8eee8751688310d09168c3", size = 61626, upload-time = "2026-05-08T21:01:37.545Z" }, + { url = "https://files.pythonhosted.org/packages/8e/0d/41c602003e8a9b16fe1e7eadf62c7bfba9d5474370b24200bf48b315f45f/propcache-0.5.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:6e7b8719005dd1175be4ab1cd25e9b98659a5e0347331506ec6760d2773a7fb5", size = 64781, upload-time = "2026-05-08T21:01:38.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/f3/38e66b1856e9bd079deea015bc4a55f7767c0e4db2f7dcf69e7e680ba4ce/propcache-0.5.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:51f96d685ab16e88cab128cd37a52c5da540809c8b879fa047731bfcb4ad35a4", size = 62570, upload-time = "2026-05-08T21:01:40.415Z" }, + { url = "https://files.pythonhosted.org/packages/95/ca/bbfe9b910ce57dde8bb4876b4520fc02a4e89497c10de26be936758a3aaa/propcache-0.5.2-cp314-cp314-win32.whl", hash = "sha256:cc6fc3cc62e8501d3ed62894425040d2728ecddb1ed072737a5c70bd537aa9f0", size = 39436, upload-time = "2026-05-08T21:01:41.654Z" }, + { url = "https://files.pythonhosted.org/packages/61/d2/45c9defbaa1ea297035d9d4cce9e8f80daafbf19319c6007f157c6256ea9/propcache-0.5.2-cp314-cp314-win_amd64.whl", hash = "sha256:81e3a30b0bb60caa22033dd0f8a3618d1d67356212514f62c57db75cb0ef410c", size = 42373, upload-time = "2026-05-08T21:01:43.041Z" }, + { url = "https://files.pythonhosted.org/packages/44/68/9ea5103f41d5217d7d6ec24db90018e23aebec070c3f9a6e54d12b841fd8/propcache-0.5.2-cp314-cp314-win_arm64.whl", hash = "sha256:0d2c9bf8528f135dbb805ce027567e09164f7efa51a2be07458a2c0420f292d0", size = 38554, upload-time = "2026-05-08T21:01:44.336Z" }, + { url = "https://files.pythonhosted.org/packages/8a/81/fadf555f42d3b762eea8a53950b0489fdc0aa9da5f8ed9e10ce0a4e01b48/propcache-0.5.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:4bc8ff1feffc6a61c7002ffe84634c41b822e104990ae009f44a0834430070bb", size = 99395, upload-time = "2026-05-08T21:01:45.883Z" }, + { url = "https://files.pythonhosted.org/packages/f5/c9/c61e134a686949cf7971af3a390148b1156f7be81c73bc0cd12c873e2d48/propcache-0.5.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:79aa3ff0a9b566633b642fa9caf7e21ed1c13d6feca718187873f199e1514078", size = 56653, upload-time = "2026-05-08T21:01:47.307Z" }, + { url = "https://files.pythonhosted.org/packages/cb/73/daf935ea7048ddd7ec8eec5345b4a40b619d2d178b3c0a0900796bc3c794/propcache-0.5.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1b31822f4474c4036bae62de9402710051d431a606d6a0f907fec79935a071aa", size = 56914, upload-time = "2026-05-08T21:01:48.573Z" }, + { url = "https://files.pythonhosted.org/packages/79/9f/aba959b435ea18617edd7cf0a7ad0b9c574b8fc7e3d2cd55fb59cb255d33/propcache-0.5.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:13fef48778b5a2a756523fdb781326b028ca75e32858b04f2cdd19f394564917", size = 62567, upload-time = "2026-05-08T21:01:49.903Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a1/859942de9a791ff42f6141736f5b37749b8f53e65edfa49638c67dd67e6a/propcache-0.5.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:8b73ab70f1a3351fbc71f663b3e645af6dd0329100c353081cf69c37433fc6fe", size = 65542, upload-time = "2026-05-08T21:01:51.204Z" }, + { url = "https://files.pythonhosted.org/packages/b5/61/315bc0fd6c0fc7f80a528b8afd209e5fc4a875ea79571b91b8f50f442907/propcache-0.5.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5538d2c13d93e4698af7e092b57bc7298fd35d1d58e656ae18f23ee0d0378e03", size = 66845, upload-time = "2026-05-08T21:01:52.539Z" }, + { url = "https://files.pythonhosted.org/packages/47/f7/9f8122e3132e8e354ac41975ef8f1099be7d5a16bc7ae562734e993665c0/propcache-0.5.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd645f03898405cabe694fb8bc35241e3a9c332ec85627584fe3de201452b335", size = 63985, upload-time = "2026-05-08T21:01:53.847Z" }, + { url = "https://files.pythonhosted.org/packages/c8/54/c317819ec157cbf6f35df9df9657a6f82daf34d5faf15948b2f639c2192e/propcache-0.5.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a473b3440261e0c60706e732b2ed2f517857344fc21bf48fdfe211e2d98eb285", size = 63999, upload-time = "2026-05-08T21:01:55.179Z" }, + { url = "https://files.pythonhosted.org/packages/5a/56/387e3f7dfce0a9233df41fb888aa1c30222cb4bbbf09537c02dd9bd85fe2/propcache-0.5.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7afa37062e6650640e932e4cc9297d81f9f42d9944029cc386b8247dea4da837", size = 62779, upload-time = "2026-05-08T21:01:57.489Z" }, + { url = "https://files.pythonhosted.org/packages/a1/9c/596784cb5824ed61ee960d3f8655a3f0993e107c6e98ab6c818b7fb92ccb/propcache-0.5.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:8a90efd5777e996e42d568db9ac740b944d691e565cbfd31b2f7832f9184b2b8", size = 59796, upload-time = "2026-05-08T21:01:58.736Z" }, + { url = "https://files.pythonhosted.org/packages/c2/3d/1a6cfa1726a48542c1e8784a0761421476a5b68e09b7f36bf95eb954aaba/propcache-0.5.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:f19bb891234d72535764d703bfed1153cc34f4214d5bd7150aee1eec9e8f4366", size = 66023, upload-time = "2026-05-08T21:02:00.228Z" }, + { url = "https://files.pythonhosted.org/packages/e4/0e/05fd6990369477076e4e280bcb970de760fddf0161a46e988bc95f7940ec/propcache-0.5.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:32775082acd2d807ee3db715c7770d38767b817870acfa08c29e057f3c4d5b56", size = 64448, upload-time = "2026-05-08T21:02:01.888Z" }, + { url = "https://files.pythonhosted.org/packages/cd/86/5f8da315a4309c62c10c0b2516b17492d5d3bbe1bb862b96604db67e2a37/propcache-0.5.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:9282fb1a3bccd038da9f768b927b24a0c753e466c086b7c4f3c6982851eefb2d", size = 67329, upload-time = "2026-05-08T21:02:03.484Z" }, + { url = "https://files.pythonhosted.org/packages/da/d3/3368efe79ab21f0cdf86ef49895811c9cc933131d4cde1f28a624e22e712/propcache-0.5.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:cc49723e2f60d6b32a0f0b08a3fd6d13203c07f1cd9566cfce0f12a917c967a2", size = 65172, upload-time = "2026-05-08T21:02:04.745Z" }, + { url = "https://files.pythonhosted.org/packages/d5/07/127e8b0bacfb325396196f9d976a22453049b89b9b2b08477cc3145faa44/propcache-0.5.2-cp314-cp314t-win32.whl", hash = "sha256:2d7aa89ebca5acc98cba9d1472d976e394782f587bad6661003602a619fd1821", size = 43813, upload-time = "2026-05-08T21:02:06.025Z" }, + { url = "https://files.pythonhosted.org/packages/88/fb/46dad6c0ae49ed230ab1b16c890c2b6314e2403e6c412976f4a72d64a527/propcache-0.5.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d447bb0b3054be5818458fbb171208b1d9ff11eba14e18ca18b90cbb45767370", size = 47764, upload-time = "2026-05-08T21:02:07.353Z" }, + { url = "https://files.pythonhosted.org/packages/e7/c4/a47d0a63aa309d10d59ede6e9d4cff03a344a79d1f0f4cd0cd74997b53e0/propcache-0.5.2-cp314-cp314t-win_arm64.whl", hash = "sha256:fe67a3d11cd9b4efabfa45c3d00ffba2b26811442a73a581a94b67c2b5faccf6", size = 41140, upload-time = "2026-05-08T21:02:09.065Z" }, + { url = "https://files.pythonhosted.org/packages/3a/ed/1cdcab6ba3d6ab7feca11fc14f0eeea80755bb53ef4e892079f31b10a25f/propcache-0.5.2-py3-none-any.whl", hash = "sha256:be1ddfcbb376e3de5d2e2db1d58d6d67463e6b4f9f040c000de8e300295465fe", size = 14036, upload-time = "2026-05-08T21:02:10.673Z" }, +] + +[[package]] +name = "proto-plus" +version = "1.28.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "protobuf" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c9/56/e647b0c675392d2da368da7b6f158f7368b18542fd6f7d7400a2f39de000/proto_plus-1.28.0.tar.gz", hash = "sha256:38e5696342835b08fc116f30a25665b29531cda9d5d5643e9b81fc312385abd9", size = 57221, upload-time = "2026-05-07T08:04:50.811Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7c/20/b122d4626976acb81132036d2ad1bb35a1a8775fceb837ec30964622516a/proto_plus-1.28.0-py3-none-any.whl", hash = "sha256:a630604310899e73c59ec302e5765c058d412b2f090b9c79c8822589f14955b8", size = 50410, upload-time = "2026-05-07T08:03:31.962Z" }, +] + +[[package]] +name = "protobuf" +version = "7.35.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/da/01/9ef0afd7999eb9badb3a768b4aedd78c86d4c65cfaf1958ab276199e76b4/protobuf-7.35.1.tar.gz", hash = "sha256:ce115a26fe0c39a2c29973d914d327e516a6455464489fe3cd1e51a1b354f81a", size = 458717, upload-time = "2026-06-11T21:55:40.257Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/03/8aeeb7458d22546bf64b5250ca1daeb5ff757d900e8e4a7476c6f0db843e/protobuf-7.35.1-cp310-abi3-macosx_10_9_universal2.whl", hash = "sha256:24f857477359a85c0c235261b8ba905fd51b2562f4a64ca1df5473f29850cbf6", size = 433226, upload-time = "2026-06-11T21:55:31.719Z" }, + { url = "https://files.pythonhosted.org/packages/37/4b/dfb89eb0e652a1ff073c39a59fb5e3a83cfe9b57a2c83fa6d78270101767/protobuf-7.35.1-cp310-abi3-manylinux2014_aarch64.whl", hash = "sha256:11d6b0ec246892d85215b0a13ca6e0233cf5284b68f0ac02646427f4ff88a799", size = 328847, upload-time = "2026-06-11T21:55:34.035Z" }, + { url = "https://files.pythonhosted.org/packages/0f/58/dc12f2cd484951524af6e3382c785869b9b3fb5e52ee95ae23add53ee8f9/protobuf-7.35.1-cp310-abi3-manylinux2014_s390x.whl", hash = "sha256:b73f9489a4b8b1c9cb1f8ed951c736392592edb24b9d6819f36d2e10b171d5b4", size = 344030, upload-time = "2026-06-11T21:55:34.941Z" }, + { url = "https://files.pythonhosted.org/packages/e4/be/5b3cfe508bfab6761414ff944e3366eb13be4fd71efcd69450f89ba39f43/protobuf-7.35.1-cp310-abi3-manylinux2014_x86_64.whl", hash = "sha256:74758715c53d7158fb76caf4f0cfdacc5329a4b1bb994f865d6cf302d413a1c4", size = 327130, upload-time = "2026-06-11T21:55:35.921Z" }, + { url = "https://files.pythonhosted.org/packages/d8/bc/6d6c7ba8709c85f8f2c390b2b118d6fb08a783676a572271851bf45a7d22/protobuf-7.35.1-cp310-abi3-win32.whl", hash = "sha256:353652e4efd0bca5b5fc2656abf8307ef351f0cf938c9eba09f0e09c20a25c30", size = 428945, upload-time = "2026-06-11T21:55:37.034Z" }, + { url = "https://files.pythonhosted.org/packages/0a/19/8d0cb6f20a1ef7b18f1c8986ad5783f22f84cce39c6ce9a6e645ea55192e/protobuf-7.35.1-cp310-abi3-win_amd64.whl", hash = "sha256:230a75ddfc2de4806e56696ce9640c1cdfdb6543b7cfce98d42a4c0a0e7bdb87", size = 439996, upload-time = "2026-06-11T21:55:38.123Z" }, + { url = "https://files.pythonhosted.org/packages/19/c7/5f7c636ec43e0c545e28d1f1db71990108306f7bdcb89f069ba97e428e7f/protobuf-7.35.1-py3-none-any.whl", hash = "sha256:4bc97768d8fe4ad6743c8a19403e314511ed9f6d13205b687e52421c023ac1b9", size = 171659, upload-time = "2026-06-11T21:55:39.155Z" }, +] + +[[package]] +name = "ptyprocess" +version = "0.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/20/e5/16ff212c1e452235a90aeb09066144d0c5a6a8c0834397e03f5224495c4e/ptyprocess-0.7.0.tar.gz", hash = "sha256:5c5d0a3b48ceee0b48485e0c26037c0acd7d29765ca3fbb5cb3831d347423220", size = 70762, upload-time = "2020-12-28T15:15:30.155Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/a6/858897256d0deac81a172289110f31629fc4cee19b6f01283303e18c8db3/ptyprocess-0.7.0-py2.py3-none-any.whl", hash = "sha256:4b41f3967fce3af57cc7e94b888626c18bf37a083e3651ca8feeb66d492fef35", size = 13993, upload-time = "2020-12-28T15:15:28.35Z" }, +] + +[[package]] +name = "pure-eval" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/05/0a34433a064256a578f1783a10da6df098ceaa4a57bbeaa96a6c0352786b/pure_eval-0.2.3.tar.gz", hash = "sha256:5f4e983f40564c576c7c8635ae88db5956bb2229d7e9237d03b3c0b0190eaf42", size = 19752, upload-time = "2024-07-21T12:58:21.801Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/8e/37/efad0257dc6e593a18957422533ff0f87ede7c9c6ea010a2177d738fb82f/pure_eval-0.2.3-py3-none-any.whl", hash = "sha256:1db8e35b67b3d218d818ae653e27f06c3aa420901fa7b081ca98cbedc874e0d0", size = 11842, upload-time = "2024-07-21T12:58:20.04Z" }, +] + +[[package]] +name = "pyasn1" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5c/5f/6583902b6f79b399c9c40674ac384fd9cd77805f9e6205075f828ef11fb2/pyasn1-0.6.3.tar.gz", hash = "sha256:697a8ecd6d98891189184ca1fa05d1bb00e2f84b5977c481452050549c8a72cf", size = 148685, upload-time = "2026-03-17T01:06:53.382Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/a0/7d793dce3fa811fe047d6ae2431c672364b462850c6235ae306c0efd025f/pyasn1-0.6.3-py3-none-any.whl", hash = "sha256:a80184d120f0864a52a073acc6fc642847d0be408e7c7252f31390c0f4eadcde", size = 83997, upload-time = "2026-03-17T01:06:52.036Z" }, +] + +[[package]] +name = "pyasn1-modules" +version = "0.4.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/e6/78ebbb10a8c8e4b61a59249394a4a594c1a7af95593dc933a349c8d00964/pyasn1_modules-0.4.2.tar.gz", hash = "sha256:677091de870a80aae844b1ca6134f54652fa2c8c5a52aa396440ac3106e941e6", size = 307892, upload-time = "2025-03-28T02:41:22.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/47/8d/d529b5d697919ba8c11ad626e835d4039be708a35b0d22de83a269a6682c/pyasn1_modules-0.4.2-py3-none-any.whl", hash = "sha256:29253a9207ce32b64c3ac6600edc75368f98473906e8fd1043bd6b5b1de2c14a", size = 181259, upload-time = "2025-03-28T02:41:19.028Z" }, +] + +[[package]] +name = "pycodestyle" +version = "2.11.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/8f/fa09ae2acc737b9507b5734a9aec9a2b35fa73409982f57db1b42f8c3c65/pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f", size = 38974, upload-time = "2023-10-12T23:39:39.762Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/90/a998c550d0ddd07e38605bb5c455d00fcc177a800ff9cc3dafdcb3dd7b56/pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67", size = 31132, upload-time = "2023-10-12T23:39:38.242Z" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pydantic" +version = "2.5.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "annotated-types" }, + { name = "pydantic-core" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/aa/3f/56142232152145ecbee663d70a19a45d078180633321efb3847d2562b490/pydantic-2.5.3.tar.gz", hash = "sha256:b3ef57c62535b0941697cce638c08900d87fcb67e29cfa99e8a68f747f393f7a", size = 651797, upload-time = "2023-12-22T10:39:46.736Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/dd/b7/9aea7ee6c01fe3f3c03b8ca3c7797c866df5fecece9d6cb27caa138db2e2/pydantic-2.5.3-py3-none-any.whl", hash = "sha256:d0caf5954bee831b6bfe7e338c32b9e30c85dfe080c843680783ac2b631673b4", size = 381926, upload-time = "2023-12-22T10:39:43.758Z" }, +] + +[[package]] +name = "pydantic-core" +version = "2.14.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b2/7d/8304d8471cfe4288f95a3065ebda56f9790d087edc356ad5bd83c89e2d79/pydantic_core-2.14.6.tar.gz", hash = "sha256:1fd0c1d395372843fba13a51c28e3bb9d59bd7aebfeb17358ffaaa1e4dbbe948", size = 360305, upload-time = "2023-12-21T19:56:33.986Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7d/77/cbfa02b5f46c5ec6be131d97ae93eef883e25d61b4f4d0a058c792b7e3a2/pydantic_core-2.14.6-cp311-cp311-macosx_10_7_x86_64.whl", hash = "sha256:dea7fcd62915fb150cdc373212141a30037e11b761fbced340e9db3379b892d4", size = 1861976, upload-time = "2023-12-21T19:52:42.943Z" }, + { url = "https://files.pythonhosted.org/packages/fb/17/3e4908cf8cb5a1d189f9dfa7cb5698d945e9a4db6b9138e3fef3c32c1f68/pydantic_core-2.14.6-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ffff855100bc066ff2cd3aa4a60bc9534661816b110f0243e59503ec2df38421", size = 1744008, upload-time = "2023-12-21T19:52:45.088Z" }, + { url = "https://files.pythonhosted.org/packages/14/53/7844d20be3a334ea46cdcde8a480cf47e31026d4117d7415a0144d7379c9/pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1b027c86c66b8627eb90e57aee1f526df77dc6d8b354ec498be9a757d513b92b", size = 1830087, upload-time = "2023-12-21T19:52:47.868Z" }, + { url = "https://files.pythonhosted.org/packages/f1/7b/0fd3444362f31c5f42b655c1ed734480433aa9f8bde97daa19cee0bc2844/pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:00b1087dabcee0b0ffd104f9f53d7d3eaddfaa314cdd6726143af6bc713aa27e", size = 1852928, upload-time = "2023-12-21T19:52:50.681Z" }, + { url = "https://files.pythonhosted.org/packages/24/1d/601f861c0d76154217ea6b066e39f04159a761b9c3a7ca56b0dd0267ce3a/pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75ec284328b60a4e91010c1acade0c30584f28a1f345bc8f72fe8b9e46ec6a96", size = 2003799, upload-time = "2023-12-21T19:52:52.661Z" }, + { url = "https://files.pythonhosted.org/packages/e8/5e/a30d56bb6b19e84bcde76cba2d6df45779f127ec73fa2e6d91f0ad3d4bc2/pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7e1f4744eea1501404b20b0ac059ff7e3f96a97d3e3f48ce27a139e053bb370b", size = 2985579, upload-time = "2023-12-21T19:52:55.195Z" }, + { url = "https://files.pythonhosted.org/packages/e7/84/2dc88180fc6f0d13aab2a47a53b89c2dbc239e2a87d0a58e31077e111e82/pydantic_core-2.14.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b2602177668f89b38b9f84b7b3435d0a72511ddef45dc14446811759b82235a1", size = 2071737, upload-time = "2023-12-21T19:52:57.548Z" }, + { url = "https://files.pythonhosted.org/packages/0d/18/7c17d33b2c8dea2189b2547bafcb70a69a3e537eec12429cc0abfedab683/pydantic_core-2.14.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6c8edaea3089bf908dd27da8f5d9e395c5b4dc092dbcce9b65e7156099b4b937", size = 1919929, upload-time = "2023-12-21T19:52:59.911Z" }, + { url = "https://files.pythonhosted.org/packages/c1/7b/a1cfe9d3fdedf2b33d41960500c17ccba025b483720c79965b73d607687f/pydantic_core-2.14.6-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:478e9e7b360dfec451daafe286998d4a1eeaecf6d69c427b834ae771cad4b622", size = 2010042, upload-time = "2023-12-21T19:53:02.556Z" }, + { url = "https://files.pythonhosted.org/packages/2a/09/c39be628d6068952f30b381576a4392af2024505747572cd70b19f6d9bde/pydantic_core-2.14.6-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:b6ca36c12a5120bad343eef193cc0122928c5c7466121da7c20f41160ba00ba2", size = 2135569, upload-time = "2023-12-21T19:53:04.926Z" }, + { url = "https://files.pythonhosted.org/packages/8a/07/ea362b25882fb0efbe2818011a572a112416903fbc3205b6c5dab3d9695c/pydantic_core-2.14.6-cp311-none-win32.whl", hash = "sha256:2b8719037e570639e6b665a4050add43134d80b687288ba3ade18b22bbb29dd2", size = 1730779, upload-time = "2023-12-21T19:53:06.842Z" }, + { url = "https://files.pythonhosted.org/packages/72/d2/fcb3bc3d6d2fa35387b57e9925f1ff5469c2da634b85061dadbd8c398545/pydantic_core-2.14.6-cp311-none-win_amd64.whl", hash = "sha256:78ee52ecc088c61cce32b2d30a826f929e1708f7b9247dc3b921aec367dc1b23", size = 1891297, upload-time = "2023-12-21T19:53:09.412Z" }, + { url = "https://files.pythonhosted.org/packages/20/68/41661007a1436f5f3dea7b9f536f083bbf843c8ebd6a207c36c98b01bde1/pydantic_core-2.14.6-cp311-none-win_arm64.whl", hash = "sha256:a19b794f8fe6569472ff77602437ec4430f9b2b9ec7a1105cfd2232f9ba355e6", size = 1849591, upload-time = "2023-12-21T19:53:11.84Z" }, + { url = "https://files.pythonhosted.org/packages/b1/26/4bd7ac215215322a693c178a022993450ebf7b1e91b26941f72407e1e9a1/pydantic_core-2.14.6-cp312-cp312-macosx_10_7_x86_64.whl", hash = "sha256:667aa2eac9cd0700af1ddb38b7b1ef246d8cf94c85637cbb03d7757ca4c3fdec", size = 1855038, upload-time = "2023-12-21T19:53:14.05Z" }, + { url = "https://files.pythonhosted.org/packages/a5/f8/07a2563f40b863ba97f3db648697f3f1d7b7edf1bd679f210064cb556e74/pydantic_core-2.14.6-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cdee837710ef6b56ebd20245b83799fce40b265b3b406e51e8ccc5b85b9099b7", size = 1718829, upload-time = "2023-12-21T19:53:16.61Z" }, + { url = "https://files.pythonhosted.org/packages/ba/98/fb42628ed811643c364e05353d3a015c74859402994420aeba8e3e34a54c/pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2c5bcf3414367e29f83fd66f7de64509a8fd2368b1edf4351e862910727d3e51", size = 1824883, upload-time = "2023-12-21T19:53:18.652Z" }, + { url = "https://files.pythonhosted.org/packages/69/ed/6a318d3846ac45e4e8d7c81a4c4f9cad341f4715521cc2cc7baecd6be9c0/pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:26a92ae76f75d1915806b77cf459811e772d8f71fd1e4339c99750f0e7f6324f", size = 1834955, upload-time = "2023-12-21T19:53:20.879Z" }, + { url = "https://files.pythonhosted.org/packages/0b/d0/adf341fb8ed080bf5abb91c42752ffa099d8439e45d3fa40a21f259f724c/pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a983cca5ed1dd9a35e9e42ebf9f278d344603bfcb174ff99a5815f953925140a", size = 1994990, upload-time = "2023-12-21T19:53:23.309Z" }, + { url = "https://files.pythonhosted.org/packages/5e/58/7cac843607f3b2d0af1768fae90ef219413db163a7cfb7557344edfeed2f/pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cb92f9061657287eded380d7dc455bbf115430b3aa4741bdc662d02977e7d0af", size = 3001843, upload-time = "2023-12-21T19:53:25.501Z" }, + { url = "https://files.pythonhosted.org/packages/f3/62/076e6c43735950e911d80c6edf215314a8cf9b8adefe9613b72b09ccb1ee/pydantic_core-2.14.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4ace1e220b078c8e48e82c081e35002038657e4b37d403ce940fa679e57113b", size = 2067417, upload-time = "2023-12-21T19:53:27.652Z" }, + { url = "https://files.pythonhosted.org/packages/d0/21/7ca5edf46bc6706152d459b560d669cfd72afe0dda24292408f1be8008d6/pydantic_core-2.14.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ef633add81832f4b56d3b4c9408b43d530dfca29e68fb1b797dcb861a2c734cd", size = 1922514, upload-time = "2023-12-21T19:53:30.443Z" }, + { url = "https://files.pythonhosted.org/packages/b7/53/101aac1d63a743284cdae804ceb6f561879c385f355caf20d2d87da6d36d/pydantic_core-2.14.6-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7e90d6cc4aad2cc1f5e16ed56e46cebf4877c62403a311af20459c15da76fd91", size = 2004496, upload-time = "2023-12-21T19:53:32.411Z" }, + { url = "https://files.pythonhosted.org/packages/9f/7a/2e906fc1a5e4ca45e730118f0afb4878a39a1d505d895835d8cc5452446c/pydantic_core-2.14.6-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:e8a5ac97ea521d7bde7621d86c30e86b798cdecd985723c4ed737a2aa9e77d0c", size = 2129106, upload-time = "2023-12-21T19:53:34.501Z" }, + { url = "https://files.pythonhosted.org/packages/d9/3e/28bd56c6aeadaae2eca12e39274b880505dd7fc9fa7b732d11167275c084/pydantic_core-2.14.6-cp312-none-win32.whl", hash = "sha256:f27207e8ca3e5e021e2402ba942e5b4c629718e665c81b8b306f3c8b1ddbb786", size = 1743090, upload-time = "2023-12-21T19:53:36.711Z" }, + { url = "https://files.pythonhosted.org/packages/84/13/afa2b5c336d30a43592f9bc8d5769ccd15b32b4ef243bd792496fe336925/pydantic_core-2.14.6-cp312-none-win_amd64.whl", hash = "sha256:b3e5fe4538001bb82e2295b8d2a39356a84694c97cb73a566dc36328b9f83b40", size = 1866497, upload-time = "2023-12-21T19:53:39.401Z" }, + { url = "https://files.pythonhosted.org/packages/04/33/68e91365ac5ef23fc70fbc4e24ab2f212a6ca39cd23b81589af9807946df/pydantic_core-2.14.6-cp312-none-win_arm64.whl", hash = "sha256:64634ccf9d671c6be242a664a33c4acf12882670b09b3f163cd00a24cffbd74e", size = 1844384, upload-time = "2023-12-21T19:53:41.316Z" }, +] + +[[package]] +name = "pydantic-settings" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pydantic" }, + { name = "python-dotenv" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a5/10/664e41fd884d8cd3fa8bcd75a537bd82f540b19d7c0d1ff17eef69a2ffa8/pydantic_settings-2.1.0.tar.gz", hash = "sha256:26b1492e0a24755626ac5e6d715e9077ab7ad4fb5f19a8b7ed7011d52f36141c", size = 31824, upload-time = "2023-11-14T13:06:31.22Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/c9/8042368e9a1e6e229b5ec5d88449441a3ee8f8afe09988faeb190af30248/pydantic_settings-2.1.0-py3-none-any.whl", hash = "sha256:7621c0cb5d90d1140d2f0ef557bdf03573aac7035948109adf2574770b77605a", size = 11685, upload-time = "2023-11-14T13:06:30.129Z" }, +] + +[[package]] +name = "pyflakes" +version = "3.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/57/f9/669d8c9c86613c9d568757c7f5824bd3197d7b1c6c27553bc5618a27cce2/pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f", size = 63788, upload-time = "2024-01-05T00:28:47.703Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d4/d7/f1b7db88d8e4417c5d47adad627a93547f44bdc9028372dbd2313f34a855/pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a", size = 62725, upload-time = "2024-01-05T00:28:45.903Z" }, +] + +[[package]] +name = "pygments" +version = "2.17.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/59/8bccf4157baf25e4aa5a0bb7fa3ba8600907de105ebc22b0c78cfbf6f565/pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367", size = 4827772, upload-time = "2023-11-21T20:43:53.875Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", size = 1179756, upload-time = "2023-11-21T20:43:49.423Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.8.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/30/72/8259b2bccfe4673330cea843ab23f86858a419d8f1493f66d413a76c7e3b/PyJWT-2.8.0.tar.gz", hash = "sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de", size = 78313, upload-time = "2023-07-18T20:02:22.594Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/4f/e04a8067c7c96c364cef7ef73906504e2f40d690811c021e1a1901473a19/PyJWT-2.8.0-py3-none-any.whl", hash = "sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320", size = 22591, upload-time = "2023-07-18T20:02:21.561Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b0/ec/e3d966cfb286d5a48e7c43a559a297b857ab935209ee9072e5a5492706c9/pymdown_extensions-10.7.1.tar.gz", hash = "sha256:c70e146bdd83c744ffc766b4671999796aba18842b268510a329f7f64700d584", size = 811769, upload-time = "2024-03-05T01:24:11.296Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/4b/4ebb08f36e83e91b31117fe8f67844bac7f5c7d11ed151ae5db807be363f/pymdown_extensions-10.7.1-py3-none-any.whl", hash = "sha256:f5cc7000d7ff0d1ce9395d216017fa4df3dde800afb1fb72d1c7d3fd35e710f4", size = 250794, upload-time = "2024-03-05T01:24:08.433Z" }, +] + +[[package]] +name = "pyparsing" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f3/91/9c6ee907786a473bf81c5f53cf703ba0957b23ab84c264080fb5a450416f/pyparsing-3.3.2.tar.gz", hash = "sha256:c777f4d763f140633dcb6d8a3eda953bf7a214dc4eff598413c070bcdc117cbc", size = 6851574, upload-time = "2026-01-21T03:57:59.36Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/10/bd/c038d7cc38edc1aa5bf91ab8068b63d4308c66c4c8bb3cbba7dfbc049f9c/pyparsing-3.3.2-py3-none-any.whl", hash = "sha256:850ba148bd908d7e2411587e247a1e4f0327839c40e2e5e6d05a007ecc69911d", size = 122781, upload-time = "2026-01-21T03:57:55.912Z" }, +] + +[[package]] +name = "pypdf" +version = "4.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/5f/de/5ee74158c3090ec99eae9f90c9e9c18f207fa5c722b0e95d6fa7faebcdf8/pypdf-4.0.2.tar.gz", hash = "sha256:3316d9ddfcff5df67ae3cdfe8b945c432aa43e7f970bae7c2a4ab4fe129cd937", size = 280173, upload-time = "2024-02-18T15:45:10.729Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d7/87/30f8a2963247fd7b1267e600379c5e3f51c9849a07d042398e4485b7415c/pypdf-4.0.2-py3-none-any.whl", hash = "sha256:a62daa2a24d5a608ba1b6284dde185317ce3644f89b9ebe5314d0c5d1c9f257d", size = 283953, upload-time = "2024-02-18T15:45:07.857Z" }, +] + +[[package]] +name = "pyproject-hooks" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" }, +] + +[[package]] +name = "pytest" +version = "7.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "iniconfig" }, + { name = "packaging" }, + { name = "pluggy" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/80/1f/9d8e98e4133ffb16c90f3b405c43e38d3abb715bb5d7a63a5a684f7e46a3/pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280", size = 1357116, upload-time = "2023-12-31T12:00:18.035Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/51/ff/f6e8b8f39e08547faece4bd80f89d5a8de68a38b2d179cc1c4490ffa3286/pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8", size = 325287, upload-time = "2023-12-31T12:00:13.963Z" }, +] + +[[package]] +name = "pytest-asyncio" +version = "0.21.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ae/53/57663d99acaac2fcdafdc697e52a9b1b7d6fcf36616281ff9768a44e7ff3/pytest_asyncio-0.21.2.tar.gz", hash = "sha256:d67738fc232b94b326b9d060750beb16e0074210b98dd8b58a5239fa2a154f45", size = 30656, upload-time = "2024-04-29T13:23:24.738Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/ce/1e4b53c213dce25d6e8b163697fbce2d43799d76fa08eea6ad270451c370/pytest_asyncio-0.21.2-py3-none-any.whl", hash = "sha256:ab664c88bb7998f711d8039cacd4884da6430886ae8bbd4eded552ed2004f16b", size = 13368, upload-time = "2024-04-29T13:23:23.126Z" }, +] + +[[package]] +name = "pytest-cov" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "coverage", extra = ["toml"] }, + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7a/15/da3df99fd551507694a9b01f512a2f6cf1254f33601605843c3775f39460/pytest-cov-4.1.0.tar.gz", hash = "sha256:3904b13dfbfec47f003b8e77fd5b589cd11904a21ddf1ab38a64f204d6a10ef6", size = 63245, upload-time = "2023-05-24T18:44:56.845Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a7/4b/8b78d126e275efa2379b1c2e09dc52cf70df16fc3b90613ef82531499d73/pytest_cov-4.1.0-py3-none-any.whl", hash = "sha256:6ba70b9e97e69fcc3fb45bfeab2d0a138fb65c4d0d6a41ef33983ad114be8c3a", size = 21949, upload-time = "2023-05-24T18:44:54.079Z" }, +] + +[[package]] +name = "pytest-django" +version = "4.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytest" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e2/7a/025a7b663c06d9d648de533e96bd708ba7a4c6983c5fcac4439d00dfabd2/pytest-django-4.7.0.tar.gz", hash = "sha256:92d6fd46b1d79b54fb6b060bbb39428073396cec717d5f2e122a990d4b6aa5e8", size = 82819, upload-time = "2023-11-08T11:19:20.647Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6b/29/b0e1dbe147a1d198933d5c5ffe7913a4495a54c1100dfc7513fb20ef0cd2/pytest_django-4.7.0-py3-none-any.whl", hash = "sha256:4e1c79d5261ade2dd58d91208017cd8f62cb4710b56e012ecd361d15d5d662a2", size = 23150, upload-time = "2023-11-08T11:19:18.845Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.8.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/4c/c4/13b4776ea2d76c115c1d1b84579f3764ee6d57204f6be27119f13a61d0a9/python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86", size = 357324, upload-time = "2021-07-14T08:19:19.783Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/7a/87837f39d0296e723bb9b62bbb257d0355c7f6128853c78955f57342a56d/python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9", size = 247702, upload-time = "2021-07-14T08:19:18.161Z" }, +] + +[[package]] +name = "python-dotenv" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bc/57/e84d88dfe0aec03b7a2d4327012c1627ab5f03652216c63d49846d7a6c58/python-dotenv-1.0.1.tar.gz", hash = "sha256:e324ee90a023d808f1959c46bcbc04446a10ced277783dc6ee09987c37ec10ca", size = 39115, upload-time = "2024-01-23T06:33:00.505Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6a/3e/b68c118422ec867fa7ab88444e1274aa40681c606d59ac27de5a5588f082/python_dotenv-1.0.1-py3-none-any.whl", hash = "sha256:f7b63ef50f1b690dddf550d03497b66d609393b40b564ed0d674909a68ebf16a", size = 19863, upload-time = "2024-01-23T06:32:58.246Z" }, +] + +[[package]] +name = "python-json-logger" +version = "2.0.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4f/da/95963cebfc578dabd323d7263958dfb68898617912bb09327dd30e9c8d13/python-json-logger-2.0.7.tar.gz", hash = "sha256:23e7ec02d34237c5aa1e29a070193a4ea87583bb4e7f8fd06d3de8264c4b2e1c", size = 10508, upload-time = "2023-02-21T17:40:06.209Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/a6/145655273568ee78a581e734cf35beb9e33a370b29c5d3c8fee3744de29f/python_json_logger-2.0.7-py3-none-any.whl", hash = "sha256:f380b826a991ebbe3de4d897aeec42760035ac760345e57b812938dc8b35e2bd", size = 8067, upload-time = "2023-02-21T17:40:05.117Z" }, +] + +[[package]] +name = "python-slugify" +version = "8.0.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "text-unidecode" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/c7/5e1547c44e31da50a460df93af11a535ace568ef89d7a811069ead340c4a/python-slugify-8.0.4.tar.gz", hash = "sha256:59202371d1d05b54a9e7720c5e038f928f45daaffe41dd10822f3907b937c856", size = 10921, upload-time = "2024-02-08T18:32:45.488Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a4/62/02da182e544a51a5c3ccf4b03ab79df279f9c60c5e82d5e8bec7ca26ac11/python_slugify-8.0.4-py2.py3-none-any.whl", hash = "sha256:276540b79961052b66b7d116620b36518847f52d5fd9e3a70164fc8c50faa6b8", size = 10051, upload-time = "2024-02-08T18:32:43.911Z" }, +] + +[[package]] +name = "pytz" +version = "2023.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ae/fd/c5bafe60236bc2a464452f916b6a1806257109c8954d6a7d19e5d4fb012f/pytz-2023.4.tar.gz", hash = "sha256:31d4583c4ed539cd037956140d695e42c033a19e984bfce9964a3f7d59bc2b40", size = 319467, upload-time = "2024-01-29T03:49:27.068Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/dd/9b84302ba85ac6d3d3042d3e8698374838bde1c386b4adb1223d7a0efd4e/pytz-2023.4-py2.py3-none-any.whl", hash = "sha256:f90ef520d95e7c46951105338d918664ebfd6f1d995bd7d153127ce90efafa6a", size = 506530, upload-time = "2024-01-29T03:41:21.437Z" }, +] + +[[package]] +name = "pywin32-ctypes" +version = "0.2.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/9f/01a1a99704853cb63f253eea009390c88e7131c67e66a0a02099a8c917cb/pywin32-ctypes-0.2.3.tar.gz", hash = "sha256:d162dc04946d704503b2edc4d55f3dba5c1d539ead017afa00142c38b9885755", size = 29471, upload-time = "2024-08-14T10:15:34.626Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/de/3d/8161f7711c017e01ac9f008dfddd9410dff3674334c233bde66e7ba65bbf/pywin32_ctypes-0.2.3-py3-none-any.whl", hash = "sha256:8a1513379d709975552d202d942d9837758905c8d01eb82b8bcc30918929e7b8", size = 30756, upload-time = "2024-08-14T10:15:33.187Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/05/8e/961c0007c59b8dd7729d542c61a4d537767a59645b82a0b521206e1e25c2/pyyaml-6.0.3.tar.gz", hash = "sha256:d76623373421df22fb4cf8817020cbb7ef15c725b9d5e45f17e189bfc384190f", size = 130960, upload-time = "2025-09-25T21:33:16.546Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6d/16/a95b6757765b7b031c9374925bb718d55e0a9ba8a1b6a12d25962ea44347/pyyaml-6.0.3-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:44edc647873928551a01e7a563d7452ccdebee747728c1080d881d68af7b997e", size = 185826, upload-time = "2025-09-25T21:31:58.655Z" }, + { url = "https://files.pythonhosted.org/packages/16/19/13de8e4377ed53079ee996e1ab0a9c33ec2faf808a4647b7b4c0d46dd239/pyyaml-6.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:652cb6edd41e718550aad172851962662ff2681490a8a711af6a4d288dd96824", size = 175577, upload-time = "2025-09-25T21:32:00.088Z" }, + { url = "https://files.pythonhosted.org/packages/0c/62/d2eb46264d4b157dae1275b573017abec435397aa59cbcdab6fc978a8af4/pyyaml-6.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:10892704fc220243f5305762e276552a0395f7beb4dbf9b14ec8fd43b57f126c", size = 775556, upload-time = "2025-09-25T21:32:01.31Z" }, + { url = "https://files.pythonhosted.org/packages/10/cb/16c3f2cf3266edd25aaa00d6c4350381c8b012ed6f5276675b9eba8d9ff4/pyyaml-6.0.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:850774a7879607d3a6f50d36d04f00ee69e7fc816450e5f7e58d7f17f1ae5c00", size = 882114, upload-time = "2025-09-25T21:32:03.376Z" }, + { url = "https://files.pythonhosted.org/packages/71/60/917329f640924b18ff085ab889a11c763e0b573da888e8404ff486657602/pyyaml-6.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b8bb0864c5a28024fac8a632c443c87c5aa6f215c0b126c449ae1a150412f31d", size = 806638, upload-time = "2025-09-25T21:32:04.553Z" }, + { url = "https://files.pythonhosted.org/packages/dd/6f/529b0f316a9fd167281a6c3826b5583e6192dba792dd55e3203d3f8e655a/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1d37d57ad971609cf3c53ba6a7e365e40660e3be0e5175fa9f2365a379d6095a", size = 767463, upload-time = "2025-09-25T21:32:06.152Z" }, + { url = "https://files.pythonhosted.org/packages/f2/6a/b627b4e0c1dd03718543519ffb2f1deea4a1e6d42fbab8021936a4d22589/pyyaml-6.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:37503bfbfc9d2c40b344d06b2199cf0e96e97957ab1c1b546fd4f87e53e5d3e4", size = 794986, upload-time = "2025-09-25T21:32:07.367Z" }, + { url = "https://files.pythonhosted.org/packages/45/91/47a6e1c42d9ee337c4839208f30d9f09caa9f720ec7582917b264defc875/pyyaml-6.0.3-cp311-cp311-win32.whl", hash = "sha256:8098f252adfa6c80ab48096053f512f2321f0b998f98150cea9bd23d83e1467b", size = 142543, upload-time = "2025-09-25T21:32:08.95Z" }, + { url = "https://files.pythonhosted.org/packages/da/e3/ea007450a105ae919a72393cb06f122f288ef60bba2dc64b26e2646fa315/pyyaml-6.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:9f3bfb4965eb874431221a3ff3fdcddc7e74e3b07799e0e84ca4a0f867d449bf", size = 158763, upload-time = "2025-09-25T21:32:09.96Z" }, + { url = "https://files.pythonhosted.org/packages/d1/33/422b98d2195232ca1826284a76852ad5a86fe23e31b009c9886b2d0fb8b2/pyyaml-6.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:7f047e29dcae44602496db43be01ad42fc6f1cc0d8cd6c83d342306c32270196", size = 182063, upload-time = "2025-09-25T21:32:11.445Z" }, + { url = "https://files.pythonhosted.org/packages/89/a0/6cf41a19a1f2f3feab0e9c0b74134aa2ce6849093d5517a0c550fe37a648/pyyaml-6.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:fc09d0aa354569bc501d4e787133afc08552722d3ab34836a80547331bb5d4a0", size = 173973, upload-time = "2025-09-25T21:32:12.492Z" }, + { url = "https://files.pythonhosted.org/packages/ed/23/7a778b6bd0b9a8039df8b1b1d80e2e2ad78aa04171592c8a5c43a56a6af4/pyyaml-6.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9149cad251584d5fb4981be1ecde53a1ca46c891a79788c0df828d2f166bda28", size = 775116, upload-time = "2025-09-25T21:32:13.652Z" }, + { url = "https://files.pythonhosted.org/packages/65/30/d7353c338e12baef4ecc1b09e877c1970bd3382789c159b4f89d6a70dc09/pyyaml-6.0.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5fdec68f91a0c6739b380c83b951e2c72ac0197ace422360e6d5a959d8d97b2c", size = 844011, upload-time = "2025-09-25T21:32:15.21Z" }, + { url = "https://files.pythonhosted.org/packages/8b/9d/b3589d3877982d4f2329302ef98a8026e7f4443c765c46cfecc8858c6b4b/pyyaml-6.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ba1cc08a7ccde2d2ec775841541641e4548226580ab850948cbfda66a1befcdc", size = 807870, upload-time = "2025-09-25T21:32:16.431Z" }, + { url = "https://files.pythonhosted.org/packages/05/c0/b3be26a015601b822b97d9149ff8cb5ead58c66f981e04fedf4e762f4bd4/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8dc52c23056b9ddd46818a57b78404882310fb473d63f17b07d5c40421e47f8e", size = 761089, upload-time = "2025-09-25T21:32:17.56Z" }, + { url = "https://files.pythonhosted.org/packages/be/8e/98435a21d1d4b46590d5459a22d88128103f8da4c2d4cb8f14f2a96504e1/pyyaml-6.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:41715c910c881bc081f1e8872880d3c650acf13dfa8214bad49ed4cede7c34ea", size = 790181, upload-time = "2025-09-25T21:32:18.834Z" }, + { url = "https://files.pythonhosted.org/packages/74/93/7baea19427dcfbe1e5a372d81473250b379f04b1bd3c4c5ff825e2327202/pyyaml-6.0.3-cp312-cp312-win32.whl", hash = "sha256:96b533f0e99f6579b3d4d4995707cf36df9100d67e0c8303a0c55b27b5f99bc5", size = 137658, upload-time = "2025-09-25T21:32:20.209Z" }, + { url = "https://files.pythonhosted.org/packages/86/bf/899e81e4cce32febab4fb42bb97dcdf66bc135272882d1987881a4b519e9/pyyaml-6.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:5fcd34e47f6e0b794d17de1b4ff496c00986e1c83f7ab2fb8fcfe9616ff7477b", size = 154003, upload-time = "2025-09-25T21:32:21.167Z" }, + { url = "https://files.pythonhosted.org/packages/1a/08/67bd04656199bbb51dbed1439b7f27601dfb576fb864099c7ef0c3e55531/pyyaml-6.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:64386e5e707d03a7e172c0701abfb7e10f0fb753ee1d773128192742712a98fd", size = 140344, upload-time = "2025-09-25T21:32:22.617Z" }, + { url = "https://files.pythonhosted.org/packages/d1/11/0fd08f8192109f7169db964b5707a2f1e8b745d4e239b784a5a1dd80d1db/pyyaml-6.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8da9669d359f02c0b91ccc01cac4a67f16afec0dac22c2ad09f46bee0697eba8", size = 181669, upload-time = "2025-09-25T21:32:23.673Z" }, + { url = "https://files.pythonhosted.org/packages/b1/16/95309993f1d3748cd644e02e38b75d50cbc0d9561d21f390a76242ce073f/pyyaml-6.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:2283a07e2c21a2aa78d9c4442724ec1eb15f5e42a723b99cb3d822d48f5f7ad1", size = 173252, upload-time = "2025-09-25T21:32:25.149Z" }, + { url = "https://files.pythonhosted.org/packages/50/31/b20f376d3f810b9b2371e72ef5adb33879b25edb7a6d072cb7ca0c486398/pyyaml-6.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ee2922902c45ae8ccada2c5b501ab86c36525b883eff4255313a253a3160861c", size = 767081, upload-time = "2025-09-25T21:32:26.575Z" }, + { url = "https://files.pythonhosted.org/packages/49/1e/a55ca81e949270d5d4432fbbd19dfea5321eda7c41a849d443dc92fd1ff7/pyyaml-6.0.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a33284e20b78bd4a18c8c2282d549d10bc8408a2a7ff57653c0cf0b9be0afce5", size = 841159, upload-time = "2025-09-25T21:32:27.727Z" }, + { url = "https://files.pythonhosted.org/packages/74/27/e5b8f34d02d9995b80abcef563ea1f8b56d20134d8f4e5e81733b1feceb2/pyyaml-6.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0f29edc409a6392443abf94b9cf89ce99889a1dd5376d94316ae5145dfedd5d6", size = 801626, upload-time = "2025-09-25T21:32:28.878Z" }, + { url = "https://files.pythonhosted.org/packages/f9/11/ba845c23988798f40e52ba45f34849aa8a1f2d4af4b798588010792ebad6/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f7057c9a337546edc7973c0d3ba84ddcdf0daa14533c2065749c9075001090e6", size = 753613, upload-time = "2025-09-25T21:32:30.178Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e0/7966e1a7bfc0a45bf0a7fb6b98ea03fc9b8d84fa7f2229e9659680b69ee3/pyyaml-6.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:eda16858a3cab07b80edaf74336ece1f986ba330fdb8ee0d6c0d68fe82bc96be", size = 794115, upload-time = "2025-09-25T21:32:31.353Z" }, + { url = "https://files.pythonhosted.org/packages/de/94/980b50a6531b3019e45ddeada0626d45fa85cbe22300844a7983285bed3b/pyyaml-6.0.3-cp313-cp313-win32.whl", hash = "sha256:d0eae10f8159e8fdad514efdc92d74fd8d682c933a6dd088030f3834bc8e6b26", size = 137427, upload-time = "2025-09-25T21:32:32.58Z" }, + { url = "https://files.pythonhosted.org/packages/97/c9/39d5b874e8b28845e4ec2202b5da735d0199dbe5b8fb85f91398814a9a46/pyyaml-6.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:79005a0d97d5ddabfeeea4cf676af11e647e41d81c9a7722a193022accdb6b7c", size = 154090, upload-time = "2025-09-25T21:32:33.659Z" }, + { url = "https://files.pythonhosted.org/packages/73/e8/2bdf3ca2090f68bb3d75b44da7bbc71843b19c9f2b9cb9b0f4ab7a5a4329/pyyaml-6.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:5498cd1645aa724a7c71c8f378eb29ebe23da2fc0d7a08071d89469bf1d2defb", size = 140246, upload-time = "2025-09-25T21:32:34.663Z" }, + { url = "https://files.pythonhosted.org/packages/9d/8c/f4bd7f6465179953d3ac9bc44ac1a8a3e6122cf8ada906b4f96c60172d43/pyyaml-6.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:8d1fab6bb153a416f9aeb4b8763bc0f22a5586065f86f7664fc23339fc1c1fac", size = 181814, upload-time = "2025-09-25T21:32:35.712Z" }, + { url = "https://files.pythonhosted.org/packages/bd/9c/4d95bb87eb2063d20db7b60faa3840c1b18025517ae857371c4dd55a6b3a/pyyaml-6.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:34d5fcd24b8445fadc33f9cf348c1047101756fd760b4dacb5c3e99755703310", size = 173809, upload-time = "2025-09-25T21:32:36.789Z" }, + { url = "https://files.pythonhosted.org/packages/92/b5/47e807c2623074914e29dabd16cbbdd4bf5e9b2db9f8090fa64411fc5382/pyyaml-6.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:501a031947e3a9025ed4405a168e6ef5ae3126c59f90ce0cd6f2bfc477be31b7", size = 766454, upload-time = "2025-09-25T21:32:37.966Z" }, + { url = "https://files.pythonhosted.org/packages/02/9e/e5e9b168be58564121efb3de6859c452fccde0ab093d8438905899a3a483/pyyaml-6.0.3-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:b3bc83488de33889877a0f2543ade9f70c67d66d9ebb4ac959502e12de895788", size = 836355, upload-time = "2025-09-25T21:32:39.178Z" }, + { url = "https://files.pythonhosted.org/packages/88/f9/16491d7ed2a919954993e48aa941b200f38040928474c9e85ea9e64222c3/pyyaml-6.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:c458b6d084f9b935061bc36216e8a69a7e293a2f1e68bf956dcd9e6cbcd143f5", size = 794175, upload-time = "2025-09-25T21:32:40.865Z" }, + { url = "https://files.pythonhosted.org/packages/dd/3f/5989debef34dc6397317802b527dbbafb2b4760878a53d4166579111411e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7c6610def4f163542a622a73fb39f534f8c101d690126992300bf3207eab9764", size = 755228, upload-time = "2025-09-25T21:32:42.084Z" }, + { url = "https://files.pythonhosted.org/packages/d7/ce/af88a49043cd2e265be63d083fc75b27b6ed062f5f9fd6cdc223ad62f03e/pyyaml-6.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:5190d403f121660ce8d1d2c1bb2ef1bd05b5f68533fc5c2ea899bd15f4399b35", size = 789194, upload-time = "2025-09-25T21:32:43.362Z" }, + { url = "https://files.pythonhosted.org/packages/23/20/bb6982b26a40bb43951265ba29d4c246ef0ff59c9fdcdf0ed04e0687de4d/pyyaml-6.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:4a2e8cebe2ff6ab7d1050ecd59c25d4c8bd7e6f400f5f82b96557ac0abafd0ac", size = 156429, upload-time = "2025-09-25T21:32:57.844Z" }, + { url = "https://files.pythonhosted.org/packages/f4/f4/a4541072bb9422c8a883ab55255f918fa378ecf083f5b85e87fc2b4eda1b/pyyaml-6.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:93dda82c9c22deb0a405ea4dc5f2d0cda384168e466364dec6255b293923b2f3", size = 143912, upload-time = "2025-09-25T21:32:59.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/f9/07dd09ae774e4616edf6cda684ee78f97777bdd15847253637a6f052a62f/pyyaml-6.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:02893d100e99e03eda1c8fd5c441d8c60103fd175728e23e431db1b589cf5ab3", size = 189108, upload-time = "2025-09-25T21:32:44.377Z" }, + { url = "https://files.pythonhosted.org/packages/4e/78/8d08c9fb7ce09ad8c38ad533c1191cf27f7ae1effe5bb9400a46d9437fcf/pyyaml-6.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c1ff362665ae507275af2853520967820d9124984e0f7466736aea23d8611fba", size = 183641, upload-time = "2025-09-25T21:32:45.407Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5b/3babb19104a46945cf816d047db2788bcaf8c94527a805610b0289a01c6b/pyyaml-6.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6adc77889b628398debc7b65c073bcb99c4a0237b248cacaf3fe8a557563ef6c", size = 831901, upload-time = "2025-09-25T21:32:48.83Z" }, + { url = "https://files.pythonhosted.org/packages/8b/cc/dff0684d8dc44da4d22a13f35f073d558c268780ce3c6ba1b87055bb0b87/pyyaml-6.0.3-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a80cb027f6b349846a3bf6d73b5e95e782175e52f22108cfa17876aaeff93702", size = 861132, upload-time = "2025-09-25T21:32:50.149Z" }, + { url = "https://files.pythonhosted.org/packages/b1/5e/f77dc6b9036943e285ba76b49e118d9ea929885becb0a29ba8a7c75e29fe/pyyaml-6.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:00c4bdeba853cc34e7dd471f16b4114f4162dc03e6b7afcc2128711f0eca823c", size = 839261, upload-time = "2025-09-25T21:32:51.808Z" }, + { url = "https://files.pythonhosted.org/packages/ce/88/a9db1376aa2a228197c58b37302f284b5617f56a5d959fd1763fb1675ce6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:66e1674c3ef6f541c35191caae2d429b967b99e02040f5ba928632d9a7f0f065", size = 805272, upload-time = "2025-09-25T21:32:52.941Z" }, + { url = "https://files.pythonhosted.org/packages/da/92/1446574745d74df0c92e6aa4a7b0b3130706a4142b2d1a5869f2eaa423c6/pyyaml-6.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:16249ee61e95f858e83976573de0f5b2893b3677ba71c9dd36b9cf8be9ac6d65", size = 829923, upload-time = "2025-09-25T21:32:54.537Z" }, + { url = "https://files.pythonhosted.org/packages/f0/7a/1c7270340330e575b92f397352af856a8c06f230aa3e76f86b39d01b416a/pyyaml-6.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4ad1906908f2f5ae4e5a8ddfce73c320c2a1429ec52eafd27138b7f1cbe341c9", size = 174062, upload-time = "2025-09-25T21:32:55.767Z" }, + { url = "https://files.pythonhosted.org/packages/f1/12/de94a39c2ef588c7e6455cfbe7343d3b2dc9d6b6b2f40c4c6565744c873d/pyyaml-6.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:ebc55a14a21cb14062aa4162f906cd962b28e2e9ea38f9b4391244cd8de4ae0b", size = 149341, upload-time = "2025-09-25T21:32:56.828Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "1.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/2e/79c822141bfd05a853236b504869ebc6b70159afc570e1d5a20641782eaa/pyyaml_env_tag-1.1.tar.gz", hash = "sha256:2eb38b75a2d21ee0475d6d97ec19c63287a7e140231e4214969d0eac923cd7ff", size = 5737, upload-time = "2025-05-13T15:24:01.64Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/04/11/432f32f8097b03e3cd5fe57e88efb685d964e2e5178a48ed61e841f7fdce/pyyaml_env_tag-1.1-py3-none-any.whl", hash = "sha256:17109e1a528561e32f026364712fee1264bc2ea6715120891174ed1b980d2e04", size = 4722, upload-time = "2025-05-13T15:23:59.629Z" }, +] + +[[package]] +name = "readme-renderer" +version = "43.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "nh3" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fe/b5/536c775084d239df6345dccf9b043419c7e3308bc31be4c7882196abc62e/readme_renderer-43.0.tar.gz", hash = "sha256:1818dd28140813509eeed8d62687f7cd4f7bad90d4db586001c5dc09d4fde311", size = 31768, upload-time = "2024-02-26T16:10:59.415Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/45/be/3ea20dc38b9db08387cf97997a85a7d51527ea2057d71118feb0aa8afa55/readme_renderer-43.0-py3-none-any.whl", hash = "sha256:19db308d86ecd60e5affa3b2a98f017af384678c63c88e5d4556a380e674f3f9", size = 13301, upload-time = "2024-02-26T16:10:57.945Z" }, +] + +[[package]] +name = "redis" +version = "5.0.8" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "async-timeout", marker = "python_full_version < '3.11.3'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/48/10/defc227d65ea9c2ff5244645870859865cba34da7373477c8376629746ec/redis-5.0.8.tar.gz", hash = "sha256:0c5b10d387568dfe0698c6fad6615750c24170e548ca2deac10c649d463e9870", size = 4595651, upload-time = "2024-07-30T14:11:52.137Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/d1/19a9c76811757684a0f74adc25765c8a901d67f9f6472ac9d57c844a23c8/redis-5.0.8-py3-none-any.whl", hash = "sha256:56134ee08ea909106090934adc36f65c9bcbbaecea5b21ba704ba6fb561f8eb4", size = 255608, upload-time = "2024-07-30T14:11:49.541Z" }, +] + +[[package]] +name = "referencing" +version = "0.37.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "attrs" }, + { name = "rpds-py" }, + { name = "typing-extensions", marker = "python_full_version < '3.13'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/22/f5/df4e9027acead3ecc63e50fe1e36aca1523e1719559c499951bb4b53188f/referencing-0.37.0.tar.gz", hash = "sha256:44aefc3142c5b842538163acb373e24cce6632bd54bdb01b21ad5863489f50d8", size = 78036, upload-time = "2025-10-13T15:30:48.871Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/58/ca301544e1fa93ed4f80d724bf5b194f6e4b945841c5bfd555878eea9fcb/referencing-0.37.0-py3-none-any.whl", hash = "sha256:381329a9f99628c9069361716891d34ad94af76e461dcb0335825aecc7692231", size = 26766, upload-time = "2025-10-13T15:30:47.625Z" }, +] + +[[package]] +name = "regex" +version = "2026.6.28" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f1/05/e4f219230e11e774a6c9987d2ab0d0c6b8573e13a17e143d0015bee710ef/regex-2026.6.28.tar.gz", hash = "sha256:3cb4b6c5cb3060cc31efdc1fbb27c25fb9b29044afd87e40601a1c4d9db54342", size = 416101, upload-time = "2026-06-28T19:56:55.302Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/72/db/9051b36294bdbabaa9c7db57db0fbcdfbd17f7a106c539bb423d0323faea/regex-2026.6.28-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:a71b51dd08b9b62f055fafab3dee8af8bd2ec81b373a44caef18d6c5ca28f43a", size = 489481, upload-time = "2026-06-28T19:53:36.684Z" }, + { url = "https://files.pythonhosted.org/packages/35/3f/24097a3c3ff30f9a639888900faaecabcf5f54a5bc9c851c297e11b349ef/regex-2026.6.28-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:9c26a47770d30a0f85c01e261d2a3ebc342c4af6fd666dbd8c1fe4cbf3adf726", size = 291292, upload-time = "2026-06-28T19:53:38.39Z" }, + { url = "https://files.pythonhosted.org/packages/5e/cc/e0d762a189cfb4e8926d16e691720690d139a977b38fdb80230c259332ab/regex-2026.6.28-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e5efbc1af38f97e300d43028e5a92e752d924bcfb7f465d8669d5d5a6e78c233", size = 289232, upload-time = "2026-06-28T19:53:40.181Z" }, + { url = "https://files.pythonhosted.org/packages/4b/c8/ca0ac7f09cc88ca61e0c61c53f7db29334f660ffba5d0b52378e7c44723c/regex-2026.6.28-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f1758df6fdd8c800620a5638958720e8a635e1da49a2f09df2dd63e94a24ec4a", size = 792332, upload-time = "2026-06-28T19:53:41.782Z" }, + { url = "https://files.pythonhosted.org/packages/8e/92/04ae94cbe0dd1f478b2aef6c46f995bb6946d3e338d4b28605478b66a2b7/regex-2026.6.28-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ad73ecf20c1ef5c975639f8bf845a9370fcf7dada7edc1e3b0bca20e2f8202f6", size = 861743, upload-time = "2026-06-28T19:53:43.261Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ec/024d7638c807679ff8a0e6081d01d66c7762339af1cac71e45911587ff9a/regex-2026.6.28-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:4d80c798b0eec6ea3d45f8816a1e8886c5664615d347d89e8c075b576a1b5a5d", size = 906481, upload-time = "2026-06-28T19:53:44.948Z" }, + { url = "https://files.pythonhosted.org/packages/cd/fd/93bfe5af45f0be4fa8983945455c0e6924e1aeb879cde227958869c1e71c/regex-2026.6.28-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a361feeaf1b6ba1df060f2ff5c5947092edf537a35ce78e76387ac56d3e0f4a4", size = 799867, upload-time = "2026-06-28T19:53:46.997Z" }, + { url = "https://files.pythonhosted.org/packages/ee/fd/e5d965d41f2398c8ce0f37a4652f03bb297fd009bb796d390134225dda12/regex-2026.6.28-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:8b92366d9c8bba9642989534073662abdd9b41faf7603a7ae71597833f3b88f0", size = 773632, upload-time = "2026-06-28T19:53:48.892Z" }, + { url = "https://files.pythonhosted.org/packages/eb/d9/ff39afaec92b9ee2dba0302a4783976005091681069808938c31cf8df3b6/regex-2026.6.28-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:11251768cc23f097dd61b18f67966e70f74da822784d17e12a444eb6b29d4288", size = 781669, upload-time = "2026-06-28T19:53:50.693Z" }, + { url = "https://files.pythonhosted.org/packages/45/4e/e2fd4bb8228e10c24af2d7ff867182372190e498eab9fd29cbe54c403c95/regex-2026.6.28-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:ad5c67786145ec28a71a267d9f9d92bdc8d70d65541eea852c253f520a01f918", size = 854497, upload-time = "2026-06-28T19:53:52.323Z" }, + { url = "https://files.pythonhosted.org/packages/72/7c/f0340384a973082979064156d05f3d2cc1dced7371efcd7a1b45726a1a8a/regex-2026.6.28-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:f1da438e739765c3e85175ede05816cbede3caaacb1e0680568bda6119bfdfca", size = 763335, upload-time = "2026-06-28T19:53:54.024Z" }, + { url = "https://files.pythonhosted.org/packages/e1/32/90ce0d0898e205506cc22b9c81cfb16b722e06ca5f50fad51c053c2a727b/regex-2026.6.28-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d98b639046e51c5de64d9f77351532105e99ca271cb6f7640e1f903d6ab63032", size = 844615, upload-time = "2026-06-28T19:53:56.216Z" }, + { url = "https://files.pythonhosted.org/packages/6a/ef/55abb149599dce1ade687170557129524011eeb3d92afe02429cea7754a2/regex-2026.6.28-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:1e164ace4dbab5c6ad4a4ac7c41a2638fe226d0c770a86f2eb041f594bac6ee7", size = 789193, upload-time = "2026-06-28T19:53:57.791Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ea/cf7f6f6f152e52fdad978b913bf24c14df647eca0f81ef31f3aee0be8982/regex-2026.6.28-cp311-cp311-win32.whl", hash = "sha256:3169a3159e4d99d9ae85ff0ed90ef3b8906cc3152653b6078b842ace6c8f72c3", size = 266731, upload-time = "2026-06-28T19:53:59.938Z" }, + { url = "https://files.pythonhosted.org/packages/c6/cf/a48d8e8d406b22481cad146f48fa0dfca3c5f402b91f26d8e5a0fe4f513d/regex-2026.6.28-cp311-cp311-win_amd64.whl", hash = "sha256:5977295b0a74e8241df8a4b3b27b12412a831f6fa32ee8b755039592cd768c3d", size = 277918, upload-time = "2026-06-28T19:54:01.502Z" }, + { url = "https://files.pythonhosted.org/packages/89/b2/a222392207db7ed86281a732a99f7cf7f2bb35d332799e892b8510be000e/regex-2026.6.28-cp311-cp311-win_arm64.whl", hash = "sha256:f5fbaef40c3e9282ccee4b075f5600a0d858aa0c34147732f1baa69c8188a95d", size = 276876, upload-time = "2026-06-28T19:54:03.411Z" }, + { url = "https://files.pythonhosted.org/packages/da/21/44aa415873032056c43eac21c67285deb2cf66cddb2a964c3cdc8f803efc/regex-2026.6.28-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:81cc5793ad33a10444445e8d29d3c73e752c8fb2e120772d70fcb6d41df40fe1", size = 490480, upload-time = "2026-06-28T19:54:05.392Z" }, + { url = "https://files.pythonhosted.org/packages/8b/5f/30d4116093c2128099f78b6990dfc1698fdbf3ee528f1e1c647378034c79/regex-2026.6.28-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e18225243250a1f7d7e5e5d883f3b96465cd79031acf5c6db902b7025f2125d9", size = 292137, upload-time = "2026-06-28T19:54:07.088Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/ca20a0e0de49837e6337603a91ab77556aa27033ac5b975615d98698cfb3/regex-2026.6.28-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ecd1638b1c2db1f2d01c182a4b0d3e2e88b0e99910320a745c1727ee3638ddab", size = 289623, upload-time = "2026-06-28T19:54:08.762Z" }, + { url = "https://files.pythonhosted.org/packages/50/11/c013422a7e2c59946df8ac93e792a4922c98287f2a2181341603c78a5d98/regex-2026.6.28-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4303ebe16b74eeb3fe2715745023266fea92fd44a23f3e7bb2fb48c7a7bbc195", size = 796756, upload-time = "2026-06-28T19:54:10.616Z" }, + { url = "https://files.pythonhosted.org/packages/b0/95/1309645a0e1ee6fb91d954501da57a0b33d50ad2a9acb313702851a7054e/regex-2026.6.28-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:56b856b70b96c381d837f609eee442a1bd320cd2159f5c294b679552fb1a7eaf", size = 865465, upload-time = "2026-06-28T19:54:12.742Z" }, + { url = "https://files.pythonhosted.org/packages/20/06/491802db47c6f5e2904ffa2518ad3ac27fe6bbf5a66d73210a95cc080d47/regex-2026.6.28-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:f74675ab76ab1d005ffba4dee308e53e89efc22be6e9f9fae5b539a3f81bdff2", size = 912350, upload-time = "2026-06-28T19:54:14.508Z" }, + { url = "https://files.pythonhosted.org/packages/5e/60/3ba57840bcc7e2367090360de0c15a5ba6ad22be89314251105f2e943f43/regex-2026.6.28-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:90581684565a93f7258af1e5d3f41ef20d7d7c61f2a428183a342bcb65485e38", size = 801261, upload-time = "2026-06-28T19:54:16.432Z" }, + { url = "https://files.pythonhosted.org/packages/eb/27/af1eb74e9a78c782b3e450b611a595e44906da8a5107e1227f4a7fd0480b/regex-2026.6.28-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:28f9e6c28f9b90f6f784595a33240a57e181e61b6ee3dc259b25c61e356d1aa3", size = 777072, upload-time = "2026-06-28T19:54:18.128Z" }, + { url = "https://files.pythonhosted.org/packages/20/18/fdd4c883a39e3ed00d669062af1135809bfd3281bf528150849fbd68825b/regex-2026.6.28-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:378a71d861fc7c8806b04ac5b133d53c0e774f92f5d9663a539872d3fa2b0417", size = 785119, upload-time = "2026-06-28T19:54:20.314Z" }, + { url = "https://files.pythonhosted.org/packages/1c/79/0aabe34b8482dcadf64355f70f96e22eba5ec6c1efb33563f89654f4061c/regex-2026.6.28-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:4cc199874ecd6267a49b111052250825bfe19b5101b23b2ba80f54efa3e0994e", size = 860118, upload-time = "2026-06-28T19:54:22.368Z" }, + { url = "https://files.pythonhosted.org/packages/a8/2c/c973323306a27c9db7d160e9584eb7e0ece2a96224ccb0d39060558b31f9/regex-2026.6.28-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:b916a10431494ef4b4d62c6c89cab6426af7873125b8cd6c15811bf5fc58eec8", size = 765786, upload-time = "2026-06-28T19:54:24.265Z" }, + { url = "https://files.pythonhosted.org/packages/e3/df/9ca3e378e352242a4cb45573a5e9162c3ee791507702a23966fa559e36b5/regex-2026.6.28-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2e27727fba075f1e4409416d2f537d4c30fc11f012ea507f7bd74d3e19ecb57a", size = 852120, upload-time = "2026-06-28T19:54:25.972Z" }, + { url = "https://files.pythonhosted.org/packages/a2/3e/3e31e255c4971f53cbce6306b5e3c76cbd3735a54f419bb3b2f194e9f68c/regex-2026.6.28-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:700fc6a7844bb2c4149292ac79d1df8841a00acd4d45cd32c1ebc7bcc1fd0da8", size = 789503, upload-time = "2026-06-28T19:54:27.678Z" }, + { url = "https://files.pythonhosted.org/packages/72/01/d36561c21c3033d7eeb31d51b491916817de7861acefccc5fc9db8a5037c/regex-2026.6.28-cp312-cp312-win32.whl", hash = "sha256:03376d60b6a11aecb88a79fa2be06b40faa01c6693bc31ef69435cd4818b9463", size = 267109, upload-time = "2026-06-28T19:54:29.316Z" }, + { url = "https://files.pythonhosted.org/packages/a0/59/bbbb0591f38b18c65977cd65ce64749eba1c1996c99ac04e900fc30c0dcb/regex-2026.6.28-cp312-cp312-win_amd64.whl", hash = "sha256:fbd2ded482bf99e6651992bbfcde460272724d4bbc49ef3d6b46d9312867ec84", size = 277711, upload-time = "2026-06-28T19:54:31.143Z" }, + { url = "https://files.pythonhosted.org/packages/86/06/be4f6b337d773ae5739a1bc238f97c16926e72017243735853c030f4c628/regex-2026.6.28-cp312-cp312-win_arm64.whl", hash = "sha256:37294d3d7ddb64c7e89184b2894e0f8f0a19c514bc59513d71fe692c3a8d5fc6", size = 277022, upload-time = "2026-06-28T19:54:32.97Z" }, + { url = "https://files.pythonhosted.org/packages/b6/53/d5c1b3cc0b5a0c985563ad6fac93d73ff2b300cb84342d89f044625d6bc7/regex-2026.6.28-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:b295a83426e0e44e9e60fde99789e181bd26788a1890ae7fe2a24c69bb6246ca", size = 490329, upload-time = "2026-06-28T19:54:35.775Z" }, + { url = "https://files.pythonhosted.org/packages/8d/9f/0c3503e819e91ca0e7a901a8e989ebf840ac7c7aea20b1fc7f31b6759f77/regex-2026.6.28-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:0c31665c0deb5c111557a1cac8c27bd5629e2f9e7fd5058900a03576c33b601c", size = 292039, upload-time = "2026-06-28T19:54:37.977Z" }, + { url = "https://files.pythonhosted.org/packages/bb/7f/cd004e13fcad23b3794a82307dfd222e6365eb7f598bd3caab148a830bff/regex-2026.6.28-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:6bf295f2c59de77d1ea7de053607ae4dc9ceb3d57bbb6c7ec51ef4acc4ccff94", size = 289488, upload-time = "2026-06-28T19:54:39.545Z" }, + { url = "https://files.pythonhosted.org/packages/73/4c/293fb34586fbcdc47eac436069e9c11f71fae5dadfd4889b475d7d2e5f7a/regex-2026.6.28-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:17c077586770f67e05bbffeba07fbee6b2b22244f4d4caf8d94e59d574befe04", size = 796772, upload-time = "2026-06-28T19:54:41.347Z" }, + { url = "https://files.pythonhosted.org/packages/92/fa/c0cd1a90b7d12d9dc155cfc8bdea8df9720988ea5b07e8fa1eccbd0ab2dd/regex-2026.6.28-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:0e6cb5a61486f9062397d2e189573b39d38ecfaed698fd9fb6e2756a8ebb8762", size = 865467, upload-time = "2026-06-28T19:54:43.485Z" }, + { url = "https://files.pythonhosted.org/packages/4e/db/0b479973046d005a1eaea299d5d536aeecb9488a16d9cbb8286338102e2d/regex-2026.6.28-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e86e91a2664f44c3a4e363a7d78fb17c27d5046882e30ea5a877f5e89b28d2ba", size = 912345, upload-time = "2026-06-28T19:54:46.091Z" }, + { url = "https://files.pythonhosted.org/packages/5b/5b/d65adfbd02f32212431bca1f06d1e2eb763a20b12978b454bafaf23dacb7/regex-2026.6.28-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4dfd1331c49233998d84fc5f1f4436cf7a435a7655f6cf0f490229bb5c7254e5", size = 801291, upload-time = "2026-06-28T19:54:48.3Z" }, + { url = "https://files.pythonhosted.org/packages/fc/09/2103686defaf9a0a31c1663782359d5b45f42524c64cca681f5481e44a5e/regex-2026.6.28-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cadea12805a1bce0b091c302b814207be26fb60a9c0e7f9ad2f9e21790a429fe", size = 777106, upload-time = "2026-06-28T19:54:50.326Z" }, + { url = "https://files.pythonhosted.org/packages/85/5a/b57593c0aa23ed269ec332fbcf07852abcb6b746e811d9464e0d09b4e25f/regex-2026.6.28-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:5f2c1682b67ad5d2376498f2a5a2a8f782fa2e4a06d0465b5e357799806e8a20", size = 785175, upload-time = "2026-06-28T19:54:52.172Z" }, + { url = "https://files.pythonhosted.org/packages/79/59/c36e756ad29bf14d7b6c6d7138952476b21f6160286cedb98ac13481c993/regex-2026.6.28-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:64e142eb55e84868087da1375d7c36ff97d55010951849f515322a91d5fef1b4", size = 860186, upload-time = "2026-06-28T19:54:54.11Z" }, + { url = "https://files.pythonhosted.org/packages/61/66/49808aea0da9649c300139360708fb91b7144be1f962fcebf96755fde948/regex-2026.6.28-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:abb4daabe7be63273787a62dfd6164dadf8f7a63fbec3d2730e5e5e7126d858c", size = 765754, upload-time = "2026-06-28T19:54:56.04Z" }, + { url = "https://files.pythonhosted.org/packages/be/c5/52bbd436cf2200decdf48825fa38363eaaeebb77011ea9928a1ef9e0b9f2/regex-2026.6.28-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:ec2b2ad00ab8c16a2798cc8db80c53c4d5b8b3a2441f6cbaef06625f5ca25854", size = 852085, upload-time = "2026-06-28T19:54:57.988Z" }, + { url = "https://files.pythonhosted.org/packages/f9/c3/0390b66e3019497143fe768b3ba567b64d8b24f3812d09506deb86f4a0f0/regex-2026.6.28-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:bfc9677982c914d9085b8e1c3b3ae6e88f139fb56531c2416d6c8f338093c22b", size = 789600, upload-time = "2026-06-28T19:54:59.977Z" }, + { url = "https://files.pythonhosted.org/packages/88/fd/ab5b03653a244975069fed93d73f4f5f7484c03a84cedb238292510d7182/regex-2026.6.28-cp313-cp313-win32.whl", hash = "sha256:bf54bc693fc4e0530e666ba5ec4bcba14dbe8f66b7cfc15c27317d1a6e40b9a5", size = 267088, upload-time = "2026-06-28T19:55:02.159Z" }, + { url = "https://files.pythonhosted.org/packages/68/55/21022f7d3143210ae8d4ff905c45306237b657375cc0b97883f49db3d423/regex-2026.6.28-cp313-cp313-win_amd64.whl", hash = "sha256:e128feaf65bf3d9eb91bec92322a8f7e4835e9c798f3e9ea4b69f4def85620e3", size = 277680, upload-time = "2026-06-28T19:55:04.185Z" }, + { url = "https://files.pythonhosted.org/packages/b6/99/7f664804f1aef924542b0b233996b78b3e4d0a52d9951358aac99f129f51/regex-2026.6.28-cp313-cp313-win_arm64.whl", hash = "sha256:695873e0ea8d3815ea9e92e2c68faf039cc450e2c0a62a31afe2049eb11be767", size = 277017, upload-time = "2026-06-28T19:55:06.29Z" }, + { url = "https://files.pythonhosted.org/packages/cb/e1/9eb83518e159d719fd681c4932dc2aaff855ce72451e1d05d69466f25a96/regex-2026.6.28-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:189dbf9fc4252d9f1352bf4bd1bef885edb6cc4b7341df202a65f821aaa3891c", size = 494195, upload-time = "2026-06-28T19:55:08.292Z" }, + { url = "https://files.pythonhosted.org/packages/fd/e2/e259c5f2f7be269d0e2fb54275c1fa6a13fb47019f389c3f3ae457447825/regex-2026.6.28-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:9277a4c6503390aa39cb4483b87ec0384faee0850a23b5cea33d008b5d8d83f1", size = 293976, upload-time = "2026-06-28T19:55:10.014Z" }, + { url = "https://files.pythonhosted.org/packages/8d/4e/9bdf444014d22b045d0c82ca114fac7e07a597b5b5331b7c4ce6328426e2/regex-2026.6.28-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:17eddca4e8ea9af0b5739314776cdf0172a49731ab61f2e1ea66e066ddd46c97", size = 292340, upload-time = "2026-06-28T19:55:11.88Z" }, + { url = "https://files.pythonhosted.org/packages/fd/3a/f49b11e59cbfe187ace0053a460bd72a0169b8cd52e7db9421a074ce7a43/regex-2026.6.28-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e4466b8641e00c697aab5a73150150d2b2ea96b131c595691f42031abafd9f4d", size = 811704, upload-time = "2026-06-28T19:55:13.612Z" }, + { url = "https://files.pythonhosted.org/packages/2f/fb/ad04c39e149bf8b6cf357df5fff78341733ec366780a00c803a36735818c/regex-2026.6.28-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:9cfcd4b0bdcf768c498415c170d1ed2a25a99bf0b65fa253bbd02f68ceba6475", size = 871157, upload-time = "2026-06-28T19:55:15.797Z" }, + { url = "https://files.pythonhosted.org/packages/7f/64/0e5ba31c11eb8ef7aac19a690c1211fc9aa9990caf09565785ebb0081b9a/regex-2026.6.28-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:80c7adf1ef647f6b1e8aa2ca280e517174cd08bdf7a2e412cdfb68bd6a0917cb", size = 917287, upload-time = "2026-06-28T19:55:18.692Z" }, + { url = "https://files.pythonhosted.org/packages/11/75/6b78df2b858c2fcbbc4858fdc3f2975cf2703be374b2842db7d2c32591a7/regex-2026.6.28-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a043f5770e82283a22aed4cefef1a4e0f9dd8fd7184cb6ce0ad2e579e2134a9e", size = 816333, upload-time = "2026-06-28T19:55:20.973Z" }, + { url = "https://files.pythonhosted.org/packages/b4/01/ecfe665a3694d5eda9f3ec686c856438ada0943947b6005e90556a1e2cdf/regex-2026.6.28-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3bd630a8dba06b55254ea5ee862194edab52ec783100d2ef1cd15a9c512fee27", size = 785518, upload-time = "2026-06-28T19:55:23.003Z" }, + { url = "https://files.pythonhosted.org/packages/b4/0a/88f9cd88ff1e82881605c4ffd62d77ee67d051232cfe6f8e9a64b86cf0e8/regex-2026.6.28-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:b77207e3cee13086f1906a6a2a12b41244c577e8ad9370d4b35ae1d548d354f3", size = 801371, upload-time = "2026-06-28T19:55:24.888Z" }, + { url = "https://files.pythonhosted.org/packages/a8/97/601483732f93275482ceb9fed57813dfed7c47d3a019db6ec4a3bb6e23e0/regex-2026.6.28-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:6de82c268e5d101ee9e3ffd869924aa9a371e3a21e752cf4fa17b6ce50d219f7", size = 866517, upload-time = "2026-06-28T19:55:27.232Z" }, + { url = "https://files.pythonhosted.org/packages/81/ed/385c2a0351b994a693453c1d1a6e9af9eb35db3c9460d76b5078acd70c62/regex-2026.6.28-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:b15859e3908544fb99cf47341dcf0bfd089147d258c4c4d8a29e5b087f8085cb", size = 772834, upload-time = "2026-06-28T19:55:29.154Z" }, + { url = "https://files.pythonhosted.org/packages/06/bc/bbf4a5b3b29770d7f307d3c28b5b1bca0105b0cb424be0a4eb1339bc92cf/regex-2026.6.28-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:c91487a917edd48a1ea646fdf60d7936d304f0e686fa7ea8326e47efca51d816", size = 856606, upload-time = "2026-06-28T19:55:32.186Z" }, + { url = "https://files.pythonhosted.org/packages/28/26/51d74fff82f682819979249f8d700267108ba5dc4eb284b0e11b9c85e4b3/regex-2026.6.28-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c4ac65f3e3a99fd8f3a4a74e7a6610acd1ce9dfe9b8a03d346a4922380d68aeb", size = 803475, upload-time = "2026-06-28T19:55:34.328Z" }, + { url = "https://files.pythonhosted.org/packages/7c/3e/6be10cefdc813533fe604dbf5d3c77d2638e7ee658b2749ebadc113b6b2e/regex-2026.6.28-cp313-cp313t-win32.whl", hash = "sha256:3f6316f258bc7e6c9c2acbe9954947bbd397a81be3742a637a555f1855d6618d", size = 269126, upload-time = "2026-06-28T19:55:36.565Z" }, + { url = "https://files.pythonhosted.org/packages/3c/3c/32cda905ea1a6eeeb798291c294d8ec66ee0efe0cdba28b061e248b1d396/regex-2026.6.28-cp313-cp313t-win_amd64.whl", hash = "sha256:1484bdd6fba28422df9b5ebb04055b2e1b680e8e4f08490bb21ff0f3cc50d0ab", size = 279961, upload-time = "2026-06-28T19:55:38.456Z" }, + { url = "https://files.pythonhosted.org/packages/ea/b9/69f4e5cd6fbe0bb420cb2dbae441ca118f2495bdda522a74da75aa9829e7/regex-2026.6.28-cp313-cp313t-win_arm64.whl", hash = "sha256:3f15020f0b69cafe57baa067ff65b29acef68ff6b1670a53bef1ca11d708e02d", size = 279266, upload-time = "2026-06-28T19:55:40.62Z" }, + { url = "https://files.pythonhosted.org/packages/3b/fb/fad3b810a5bb1e09b9e5d6913fc6ba88cab738fdf283196827a3c59a4c10/regex-2026.6.28-cp314-cp314-macosx_10_13_universal2.whl", hash = "sha256:f7c032b0c8a73739ff8ff1aaf30c281fa19c17bf7f1543256c8507390db7807c", size = 490407, upload-time = "2026-06-28T19:55:42.724Z" }, + { url = "https://files.pythonhosted.org/packages/d6/52/b8c79d12276d93e90e707e939b396034c04980caf1235312ef790f8e11fc/regex-2026.6.28-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:f6710f512c57b84f127a23d0f59560a03b64136eff419ae1be5ab557577fe5e3", size = 291988, upload-time = "2026-06-28T19:55:44.549Z" }, + { url = "https://files.pythonhosted.org/packages/23/d2/6a911f18279daa8d7bb8b20d771ddb6ef31fabd35f5921f9d3ba21640e80/regex-2026.6.28-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c0013958f427bd82509a186b9ff206d66cb8d60a81fc797a4c717afd18c5b0ba", size = 289704, upload-time = "2026-06-28T19:55:46.365Z" }, + { url = "https://files.pythonhosted.org/packages/fd/22/ad1955c47c669291a05804d53d7071cc0732dfdf166857be38003cedc2d1/regex-2026.6.28-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94f06cdcd6421f8e194ad312ea608020381250df9b8a57661c1b57e9e5273878", size = 797017, upload-time = "2026-06-28T19:55:48.166Z" }, + { url = "https://files.pythonhosted.org/packages/e5/67/a83159ff8703ab4d0c2cf99e76ebf289b7b4a501623241d09f88f3614f80/regex-2026.6.28-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:ec9689392f7494ff4e3f8e7e8522f9158f11023f337eaaf04a64542fc45bbf26", size = 866112, upload-time = "2026-06-28T19:55:51.047Z" }, + { url = "https://files.pythonhosted.org/packages/b9/09/7bff2d6dbbd77421b3274aa51db1c887381cbc5b6eda93598c3e882ea345/regex-2026.6.28-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:aa084684e6d2078bf6139e374d1fc2af5ddc1ac7122759a2db716d68169f6fd0", size = 911554, upload-time = "2026-06-28T19:55:53.707Z" }, + { url = "https://files.pythonhosted.org/packages/29/44/ae59c3826e7ba492e56795cdf74ea2a7b5b7c5ea116afb79ee4956a5dff1/regex-2026.6.28-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:40455e6840dc4e96a6fe50f4cedc957de2752c954d91e789812be55d49be199a", size = 800665, upload-time = "2026-06-28T19:55:55.875Z" }, + { url = "https://files.pythonhosted.org/packages/d6/19/6fd033d2ab00f35d445aaeaf3307c1e721424dcbfd48f6f65c857cb939cf/regex-2026.6.28-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:530b5c223b9ca5dd8370ac502e080aee0e4ded32be987c6564b425fb5523d581", size = 777243, upload-time = "2026-06-28T19:55:57.909Z" }, + { url = "https://files.pythonhosted.org/packages/4e/9d/99730f26df4938049ab1e652ca75e967b4c6739444e18d9707bfdb8af20c/regex-2026.6.28-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:8e0ed273ecd1a89be84466c1749bfe58609cc2a32b5d5e05006c4625ba96411b", size = 785784, upload-time = "2026-06-28T19:56:00.072Z" }, + { url = "https://files.pythonhosted.org/packages/48/49/105cd57162f5fc5c04cc917a1388a060cf8427e5c14353cd9044660fbf4d/regex-2026.6.28-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:0ab0d5344311fc8e8667078942056c3b9c9b4a4b1cc99f2eb8a5af54554f4acc", size = 860914, upload-time = "2026-06-28T19:56:02.017Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a5/788245a95b69018f58bff2f4fd27d007cacaea088cdb390979743f1b2571/regex-2026.6.28-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:eacb79625323d9f7e7925366b917f492b8356fad58f5dc4fa12ff8c21d8f4ca9", size = 765915, upload-time = "2026-06-28T19:56:05.021Z" }, + { url = "https://files.pythonhosted.org/packages/ca/01/292065a39a004b05e67a337b18213670a7cb919d6856ac2d7df7f1a10dbb/regex-2026.6.28-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:20f4d87702702aa1d572721e146f301660c50eef6fd6cb596e48a22b0ace17db", size = 851404, upload-time = "2026-06-28T19:56:07.251Z" }, + { url = "https://files.pythonhosted.org/packages/98/9e/a93d865db0e13483ae1a01d81e2ce16d4a7fe2f9b9fe4aac4cc08590b136/regex-2026.6.28-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:1e693940a3b9e6d6e4dc2a54ecaa74b74934f77af1ef95f518a74261ef7cc1bc", size = 789373, upload-time = "2026-06-28T19:56:09.894Z" }, + { url = "https://files.pythonhosted.org/packages/82/0c/38b1685ad4017d78efbc8fa7dbbf96d8113b53750c8aa2d3609defd46605/regex-2026.6.28-cp314-cp314-win32.whl", hash = "sha256:234a51e20ebc18ab83b2c0600cf28f2e884560a0e00f743878f0b7d8e7c4cf03", size = 272496, upload-time = "2026-06-28T19:56:11.83Z" }, + { url = "https://files.pythonhosted.org/packages/55/50/e19f261ff9ba9b50722a529e09b1743ecf65eb348be99d0fd2cd7fcede1c/regex-2026.6.28-cp314-cp314-win_amd64.whl", hash = "sha256:7b15c437bc4604f03ceb3f8d37eae2f8930e320e1bc556b259848c639d9eec1a", size = 280754, upload-time = "2026-06-28T19:56:13.758Z" }, + { url = "https://files.pythonhosted.org/packages/36/b8/c9e68f3a9e33be73f20990b2c065b144ff2d0aa242608a950d8c4f3b56e8/regex-2026.6.28-cp314-cp314-win_arm64.whl", hash = "sha256:c6e6f790d01380a74ad564f216c533b86504afb61bf66f2b2e11e7f1a3e287a7", size = 280979, upload-time = "2026-06-28T19:56:15.928Z" }, + { url = "https://files.pythonhosted.org/packages/03/e6/21c425a37880c650d007c4171c6a80325446d830d85f5fbf335e7205b1e7/regex-2026.6.28-cp314-cp314t-macosx_10_13_universal2.whl", hash = "sha256:3527a72adcbe9e3600f1553b497d397c1a371d227580d41d96c3c5964109b65c", size = 494282, upload-time = "2026-06-28T19:56:18.049Z" }, + { url = "https://files.pythonhosted.org/packages/07/50/6647a7ccf5ffff995ba955a0b7d766440f4e58ce1666549c8ee998f2b972/regex-2026.6.28-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:a644f6408692812f5ead82519eed680e08d5d546fddbd9f7d9514e3c73899aa5", size = 293977, upload-time = "2026-06-28T19:56:20.145Z" }, + { url = "https://files.pythonhosted.org/packages/8c/dc/a3e141a4eaf125e50f63105570c01fa477c06ac5259dcfa95e9b90760e84/regex-2026.6.28-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:8e2fae6bb883648346f84db270dc9aafc29d8e895f62b88a75ccc83b09519820", size = 292432, upload-time = "2026-06-28T19:56:22.345Z" }, + { url = "https://files.pythonhosted.org/packages/35/ee/2ac1a6b9f167f8ff69f5a789938cc103b60cff41b24a6990daced8b88e34/regex-2026.6.28-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:debe623e09cee97ef9404575e936c610aac9bb08358c5099aaef14644a6871f2", size = 811877, upload-time = "2026-06-28T19:56:25.056Z" }, + { url = "https://files.pythonhosted.org/packages/df/7b/9a5505ee92180bcae300b1018b9ff3d3c19962436e66f2505f255e9fde35/regex-2026.6.28-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:cc579c91fb4605773483a8d940b136bcc5b854fff44fa14a1572a038f46563f1", size = 871212, upload-time = "2026-06-28T19:56:27.352Z" }, + { url = "https://files.pythonhosted.org/packages/24/4d/d61a702a9f9d1bd29b22cbef1aed6d477baa961232a7eb4d91b7775b0b3e/regex-2026.6.28-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e7c42be203d84ecf7d487ff23f8a61ef0eb0534fa0fc317a2fce8c065d20618f", size = 917507, upload-time = "2026-06-28T19:56:29.762Z" }, + { url = "https://files.pythonhosted.org/packages/d4/60/1308066f5966b65fbb6905b99ba37e9f1cd753dd0ac08485f8257334ee92/regex-2026.6.28-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8184b4e2fdaf9cdfe77e38f15a4d9dc149168c9c29eb0ea17c5481d3bb80546", size = 816389, upload-time = "2026-06-28T19:56:32.043Z" }, + { url = "https://files.pythonhosted.org/packages/bd/5c/57ce2cb8d714ee0b7f11c7ee4cfe2af66df2b90f147feadcb538609a3a02/regex-2026.6.28-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:697f103104f5872d64078d8eeac59979960be8ee76115a2d3f31096312e2a400", size = 785890, upload-time = "2026-06-28T19:56:34.492Z" }, + { url = "https://files.pythonhosted.org/packages/ff/fd/1d5350d3a8a327bff0fccacb911732baf7b5b6f5529c0e3fa602a23e7dad/regex-2026.6.28-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:714d2b1aa29beef0ddfcdc72ad0771c05326551a8bb0680b0ddf74bfaad87387", size = 801451, upload-time = "2026-06-28T19:56:36.749Z" }, + { url = "https://files.pythonhosted.org/packages/f3/79/3c9e4f8a0306e030ad5a43bbbc01625fb28d58a813bc52d42fd1cc63fb2e/regex-2026.6.28-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:0f09f62e450cc2f113018cc8412aeea3a120a04e1ca7e801a0d441583f9a3b06", size = 866504, upload-time = "2026-06-28T19:56:38.994Z" }, + { url = "https://files.pythonhosted.org/packages/65/12/f747de475b54f4709efb24dd0fbc8467c64cec91f5db0d047b079646ee78/regex-2026.6.28-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:731ea12d5aeb2577eaef2393d6428b995f76eb35f68a89e03e15a97719d1de19", size = 773047, upload-time = "2026-06-28T19:56:41.061Z" }, + { url = "https://files.pythonhosted.org/packages/58/3c/f02f860e0500c1b2d61a79dec7e214b37fb9656281dcddc92397edf96678/regex-2026.6.28-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:51e952c8783eabd4706d0f63922f219bcfc1bef9b8cb35941c0d1a0396578858", size = 856665, upload-time = "2026-06-28T19:56:43.466Z" }, + { url = "https://files.pythonhosted.org/packages/4d/6c/28b3fa222513484be9dee26b7222bda109056c43ea28aa2314262ca48816/regex-2026.6.28-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:43248fe4c0ab8fbb223588a0795b11268940072c97bba30ea8f9b49d8cdfde34", size = 803573, upload-time = "2026-06-28T19:56:45.791Z" }, + { url = "https://files.pythonhosted.org/packages/fa/f0/8f86cf1a1fd85c5ab0c503c9fe4607ad4ad48978b2d8b435d94465e134c7/regex-2026.6.28-cp314-cp314t-win32.whl", hash = "sha256:fc1eddc25ad23c0f1344ab280d961ac595ead48292d7c779497975942373f493", size = 274515, upload-time = "2026-06-28T19:56:47.948Z" }, + { url = "https://files.pythonhosted.org/packages/0f/de/f8613c03b36786ddef2c930d28f9bcae861fcd541cc9203a870956cf1e83/regex-2026.6.28-cp314-cp314t-win_amd64.whl", hash = "sha256:ede8d8e53b6dde0a50f7eca902f0af76d87ab02a55aba7542da68ae3e5dfe83d", size = 283650, upload-time = "2026-06-28T19:56:50.614Z" }, + { url = "https://files.pythonhosted.org/packages/4d/f3/f5ec86839bbabe33b6dee649b62ff9a445d43de6b0ad780cf6b83c56f61e/regex-2026.6.28-cp314-cp314t-win_arm64.whl", hash = "sha256:4da6f6a72f8700b97a1a765e837fb7d5750bfd9f13acea7bae498f573e3a70a8", size = 283338, upload-time = "2026-06-28T19:56:52.879Z" }, +] + +[[package]] +name = "reportlab" +version = "4.0.9" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "chardet" }, + { name = "pillow" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ea/ca/06569262064a964fc4c47acfcf10143c2d814cfeb814ccaa8f4228bf6108/reportlab-4.0.9.tar.gz", hash = "sha256:f32bff66a0fda234202e1e33eaf77f25008871a61cb01cd91584a521a04c0047", size = 3684146, upload-time = "2024-01-10T10:22:46.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cc/da/de8af288738de0980a7e982c62853efe9994ee7d07e59ed20fdccc8a658e/reportlab-4.0.9-py3-none-any.whl", hash = "sha256:c9656216321897486e323be138f7aea67851cedc116b8cc35f8ec7f8cc763538", size = 1940765, upload-time = "2024-01-10T10:15:51.047Z" }, +] + +[[package]] +name = "requests" +version = "2.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1", size = 110794, upload-time = "2023-05-22T15:12:44.175Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574, upload-time = "2023-05-22T15:12:42.313Z" }, +] + +[[package]] +name = "requests-oauthlib" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "oauthlib" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/95/52/531ef197b426646f26b53815a7d2a67cb7a331ef098bb276db26a68ac49f/requests-oauthlib-1.3.1.tar.gz", hash = "sha256:75beac4a47881eeb94d5ea5d6ad31ef88856affe2332b9aafb52c6452ccf0d7a", size = 52027, upload-time = "2022-01-29T18:52:24.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6f/bb/5deac77a9af870143c684ab46a7934038a53eb4aa975bc0687ed6ca2c610/requests_oauthlib-1.3.1-py2.py3-none-any.whl", hash = "sha256:2577c501a2fb8d05a304c09d090d6e47c306fef15809d102b327cf8364bddab5", size = 23892, upload-time = "2022-01-29T18:52:22.279Z" }, +] + +[[package]] +name = "requests-toolbelt" +version = "1.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/61/d7545dafb7ac2230c70d38d31cbfe4cc64f7144dc41f6e4e4b78ecd9f5bb/requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6", size = 206888, upload-time = "2023-05-01T04:11:33.229Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06", size = 54481, upload-time = "2023-05-01T04:11:28.427Z" }, +] + +[[package]] +name = "responses" +version = "0.24.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, + { name = "requests" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a0/c5/2f4f243e9b9ddb2fa70d696fb66daafd8fde20c9663a4a22c6a02d61bd97/responses-0.24.1.tar.gz", hash = "sha256:b127c6ca3f8df0eb9cc82fd93109a3007a86acb24871834c47b77765152ecf8c", size = 77530, upload-time = "2023-11-14T22:56:52.355Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3b/70/09ab7d1f559f045513cc5456d33a55a1896914bdcf6e8508070b679d20c5/responses-0.24.1-py3-none-any.whl", hash = "sha256:a2b43f4c08bfb9c9bd242568328c65a34b318741d3fab884ac843c5ceeb543f9", size = 55117, upload-time = "2023-11-14T22:56:52.355Z" }, +] + +[[package]] +name = "rfc3986" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/85/40/1520d68bfa07ab5a6f065a186815fb6610c86fe957bc065754e47f7b0840/rfc3986-2.0.0.tar.gz", hash = "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c", size = 49026, upload-time = "2022-01-10T00:52:30.832Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/9a/9afaade874b2fa6c752c36f1548f718b5b83af81ed9b76628329dab81c1b/rfc3986-2.0.0-py2.py3-none-any.whl", hash = "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd", size = 31326, upload-time = "2022-01-10T00:52:29.594Z" }, +] + +[[package]] +name = "rich" +version = "13.7.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown-it-py" }, + { name = "pygments" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b3/01/c954e134dc440ab5f96952fe52b4fdc64225530320a910473c1fe270d9aa/rich-13.7.1.tar.gz", hash = "sha256:9be308cb1fe2f1f57d67ce99e95af38a1e2bc71ad9813b0e247cf7ffbcc3a432", size = 221248, upload-time = "2024-02-28T14:51:19.472Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/87/67/a37f6214d0e9fe57f6ae54b2956d550ca8365857f42a1ce0392bb21d9410/rich-13.7.1-py3-none-any.whl", hash = "sha256:4edbae314f59eb482f54e9e30bf00d33350aaa94f4bfcd4e9e3110e64d0d7222", size = 240681, upload-time = "2024-02-28T14:51:14.353Z" }, +] + +[[package]] +name = "rpds-py" +version = "2026.6.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/aa/2a/9618a122aeb2a169a28b03889a2995fe297588964333d4a7d67bdf46e147/rpds_py-2026.6.3.tar.gz", hash = "sha256:1cebd1337c242e4ec2293e541f712b2da849b29f48f0c293684b71c0632625d4", size = 64051, upload-time = "2026-06-30T07:17:53.009Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/94/1f/a2dca5ffdbf1d475ffc4e80e4d5d720ff3a00f691795910116960ee12511/rpds_py-2026.6.3-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:7b689145a1485c335569bd056464f3243a29af7ed3871c7be31ad624ba239bc7", size = 342174, upload-time = "2026-06-30T07:14:54.821Z" }, + { url = "https://files.pythonhosted.org/packages/4d/dc/323d08583c0832911768663d1944f0107fcd4088704858d84b5e06d105a0/rpds_py-2026.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:db08f45aecde626498fb3df07bcf6d2ec040af42e859a4f5040d79c200342911", size = 345513, upload-time = "2026-06-30T07:14:56.515Z" }, + { url = "https://files.pythonhosted.org/packages/0b/2a/e31989834d18d2f26ec1d2774c5b1eb3331df4ea8ada525175294c94b48a/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:acc992ab27b15f852c76755eb2ab7dce86585ddadba6fa5946e58556088845b4", size = 373783, upload-time = "2026-06-30T07:14:57.736Z" }, + { url = "https://files.pythonhosted.org/packages/87/fe/e80107ee3639585c9941c17d6a42cd65325022f656c023191fce78c324c8/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7f88d653e7b3b779d71ae7454e20dcc9b6bae903f33c269db9f2be41bda3f261", size = 378316, upload-time = "2026-06-30T07:14:59.077Z" }, + { url = "https://files.pythonhosted.org/packages/22/6f/81e3adf81acfb6fa694de2a6e4e7d8863121e3e0799e0a7725e6cf5679c4/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e52655eaf81e32593abedaa4bfe33170c8cfedf3365ed9be6e11e07f148f0278", size = 499423, upload-time = "2026-06-30T07:15:00.488Z" }, + { url = "https://files.pythonhosted.org/packages/2d/9a/41263969df0ce3d9af2a96d5005a288200af1989aed3354bfceb5fc0b21f/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dfcc8b909769d19db55c7cc9541eb64b9b774b1057ffffb4f1048070475bb9f9", size = 386077, upload-time = "2026-06-30T07:15:01.911Z" }, + { url = "https://files.pythonhosted.org/packages/5e/19/7e98f468bd50346faff5b10e5297374b443bfdddacc8e9fbc65984539597/rpds_py-2026.6.3-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9c1255b302953c86a486b81d330d5ee1d5bd937691ce271b6be0ef0e299eaab7", size = 371315, upload-time = "2026-06-30T07:15:03.317Z" }, + { url = "https://files.pythonhosted.org/packages/99/3c/2b973b4d371906a134b03decfea7f5d9835a2c6d263454392e15b64b5b18/rpds_py-2026.6.3-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:8d2294a31386bfa251d8c8a39472beee17db67d4f1a6eabea665d35c9a4461c3", size = 383502, upload-time = "2026-06-30T07:15:04.627Z" }, + { url = "https://files.pythonhosted.org/packages/98/2a/12e2799500af0a307bca76b63361c51f9fe479223561489c29eea1f2ee41/rpds_py-2026.6.3-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f8f23ead891a3b762f35ab3b04623da7056545b48aa60d59957e6789914545da", size = 402673, upload-time = "2026-06-30T07:15:05.856Z" }, + { url = "https://files.pythonhosted.org/packages/2d/e3/21e5872d165fe08be4f229e3d5ee9d90019c0bf0e5538de60dbd54009450/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:421aba32367055614287a4292b6a17f1939c9452299f7a0209c117e990b646d4", size = 549964, upload-time = "2026-06-30T07:15:07.159Z" }, + { url = "https://files.pythonhosted.org/packages/1a/d0/5ee0fe36844297de8123bee27bc12078c1a7416ad9f1b8a8ca18d6b0c0ac/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1e5822dfc2f0d4ab7e745eaa6d85945069329beeccef965af3f3bb26058fcab6", size = 615446, upload-time = "2026-06-30T07:15:08.531Z" }, + { url = "https://files.pythonhosted.org/packages/b1/80/1ea5873cb683f2fbe5f21b23ea1f6d179ead19f3c5b249b7eb5dca568ef2/rpds_py-2026.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:83e35b57523816c8613fd0776b40cd8bb9f596b37ddd2692eb4a6bb5ab2f8c93", size = 576975, upload-time = "2026-06-30T07:15:09.97Z" }, + { url = "https://files.pythonhosted.org/packages/c9/e1/90ef639217a5ddb15b7f4f61b1c33911fd044ad03c311bafdd2bcab85582/rpds_py-2026.6.3-cp311-cp311-win32.whl", hash = "sha256:de3eceba0b683bcbb1ab93da016d0270df1f9ae7be716b40214c5dafac6ea45a", size = 204453, upload-time = "2026-06-30T07:15:11.324Z" }, + { url = "https://files.pythonhosted.org/packages/f2/b7/b7a1695d7af36f521fb11e80d6d3adbd744f73b921859bd3c2a2c0dc706f/rpds_py-2026.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:2c54a076ca4d370980ab57bc0e31df57bbe8d41340436a90ef8b1219a3cbb127", size = 223219, upload-time = "2026-06-30T07:15:12.476Z" }, + { url = "https://files.pythonhosted.org/packages/d7/a2/145afacf796e4506062825941176ad9445c2dcf2b3b6a1f13d3030a15e19/rpds_py-2026.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:168c733a7112e071bb7a66460e667edfcff06c017a3c523f7a8a8e08d0140804", size = 219137, upload-time = "2026-06-30T07:15:13.631Z" }, + { url = "https://files.pythonhosted.org/packages/5c/be/2e8974163072e7bab7df1a5acd54c4498e75e35d6d18b864d3a9d5dadc92/rpds_py-2026.6.3-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a0811d33247c3d6128a3001d763f2aa056bb3425204335400ac54f89eec3a0d0", size = 343691, upload-time = "2026-06-30T07:15:14.96Z" }, + { url = "https://files.pythonhosted.org/packages/a4/73/319dfa745dd668efe89309141ded489126461fcecd2b8f3a3cda185129b6/rpds_py-2026.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:538949e262e46caa31ac01bdb3c1e8f642622922cacbabbae6a8445d9dc33eaf", size = 338542, upload-time = "2026-06-30T07:15:16.267Z" }, + { url = "https://files.pythonhosted.org/packages/21/63/4239893be1c4d09b709b1a8f6be4188f0870084ff547f46606b8a75f1b03/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55927d532399c2c646100ff7feb48eaa940ad70f42cd68e1328f3ded9f81ca24", size = 368180, upload-time = "2026-06-30T07:15:17.62Z" }, + { url = "https://files.pythonhosted.org/packages/1c/ca/9c5de382225234ceb37b1844ebdb140db12b2a278bb9efe2fcd19f6c82ce/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f56f1695bc5c0871cbc33dc0130fcf503aab0c57dcc5a6700a4f49eba4f2652e", size = 375067, upload-time = "2026-06-30T07:15:18.952Z" }, + { url = "https://files.pythonhosted.org/packages/87/dc/863f69d1bf04ade34b7fe0d59b9fdf6f0135fe2d7cbca74f1d665589559d/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:270b293dae9058fc9fcedab50f13cebf46fb8ed1d1d54e0521a9da5d6b211975", size = 490509, upload-time = "2026-06-30T07:15:20.434Z" }, + { url = "https://files.pythonhosted.org/packages/ce/ef/eac16a12048b45ec7c7fa94f2be3438a5f26bf9cc8580b18a1cfd609b7f6/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:127565fead0a10943b282957bd5447804ff3160ad79f2ad2635e6d249e380680", size = 382754, upload-time = "2026-06-30T07:15:21.831Z" }, + { url = "https://files.pythonhosted.org/packages/04/8f/d2f3f532616be4d06c316ef119683e832bd3d41e112bf3a88f4151c95b17/rpds_py-2026.6.3-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ecabd69db66de867690f9797f2f8fa27ba501bbc24540cbdbdc649cd15888ba6", size = 366189, upload-time = "2026-06-30T07:15:23.371Z" }, + { url = "https://files.pythonhosted.org/packages/e3/29/41a7b0e98a4b44cd676ab7598419623373eb43b20be68c084935c1a8cf88/rpds_py-2026.6.3-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:58eadac9cd119677b60e1cf8ac4052f35949d71b8a9e5556efccbe82533cf22a", size = 377750, upload-time = "2026-06-30T07:15:24.659Z" }, + { url = "https://files.pythonhosted.org/packages/2e/05/ecda0bec46f9a1565090bcdc941d023f6a25aff85fda28f89f8d19878152/rpds_py-2026.6.3-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:7491ee23305ac3eb59e492b6945881f5cd77a6f731061a3f25b77fd40f9e99a4", size = 395576, upload-time = "2026-06-30T07:15:25.987Z" }, + { url = "https://files.pythonhosted.org/packages/68/a8/6ed52f03ee6cb854ce78785cc9a9a672eb880e83fd7224d471f667d151f1/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:2c99f7e8ccb3dd6e3e4bfeac657a7b208c9bac8075f4b078c02d7404c34107fa", size = 543807, upload-time = "2026-06-30T07:15:27.356Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d6/156c0d3eea27ba09b92562ba2364ba124c0a061b199e17eac637cd25a5e2/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:62698275682bf121181861295c9181e789030a2d516071f5b8f3c23c170cd0fc", size = 611187, upload-time = "2026-06-30T07:15:28.931Z" }, + { url = "https://files.pythonhosted.org/packages/f1/31/774212ed989c62f7f310220089f9b0a3fb8f40f5443d1727abd5d9f52bc9/rpds_py-2026.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a214c993455f99a89aaeadc9b21241900037adc9d97203e374d75513c5911822", size = 573030, upload-time = "2026-06-30T07:15:30.553Z" }, + { url = "https://files.pythonhosted.org/packages/c9/50/22f73127a41f1ce4f87fe39aadfb9a126345801c274aa93ae88456249327/rpds_py-2026.6.3-cp312-cp312-win32.whl", hash = "sha256:501f9f04a588d6a09179368c57071301445191767c64e4b52a6aa9871f1ef5ed", size = 202185, upload-time = "2026-06-30T07:15:32.027Z" }, + { url = "https://files.pythonhosted.org/packages/04/3a/f0ee4d4dde9d3b69dedf1b5f74e7a40017046d55052d173e418c6a94f960/rpds_py-2026.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:2c958bf94822e9290a40aaf2a822d4bc5c88099093e3948ad6c571eca9272e5f", size = 220394, upload-time = "2026-06-30T07:15:33.359Z" }, + { url = "https://files.pythonhosted.org/packages/f3/83/3382fe37f809b59f02aac04dbc4e765b480b46ee0227ed516e3bdc4d3dfc/rpds_py-2026.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:22bffe6042b9bcb0822bcd1955ec00e245daf17b4344e4ed8e9551b976b63e96", size = 215753, upload-time = "2026-06-30T07:15:34.778Z" }, + { url = "https://files.pythonhosted.org/packages/a4/9e/b818ee580026ec578138e961027a68820c40afeb1ec8f6819b54fb99e196/rpds_py-2026.6.3-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:3cfe765c1da0072636ca06628261e0ea05688e160d5c8a03e0217c3854037223", size = 343012, upload-time = "2026-06-30T07:15:36.005Z" }, + { url = "https://files.pythonhosted.org/packages/f3/6b/686d9dc4359a8f163cfbbf89ee0b4e586431de22fe8248edb63a8cf50d49/rpds_py-2026.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f4d78253f6996be4901669ad25319f842f740eccf4d58e3c7f3dd39e6dde1d8f", size = 338203, upload-time = "2026-06-30T07:15:37.462Z" }, + { url = "https://files.pythonhosted.org/packages/9e/9b/069aa329940f8207615e091f5eedbbd40e1e15eac68a0790fd05ccdf796c/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:54f45a148e28767bf343d33a684693c70e451c6f4c0e9904709a723fafbdfc1f", size = 367984, upload-time = "2026-06-30T07:15:39.008Z" }, + { url = "https://files.pythonhosted.org/packages/14/db/34c203e4becff3703e4d3bc121842c00b8689197f398161203a880052f4e/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:842e7b070435622248c7a2c44ae53fa1440e073cc3023bc919fed570884097a7", size = 374815, upload-time = "2026-06-30T07:15:40.253Z" }, + { url = "https://files.pythonhosted.org/packages/ee/7d/8071067d2cc453d916ad836e828c943f575e8a44612537759002a1e07381/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8020133a74bd81b4572dd8e4be028a6b1ebcd70e6726edc3918008c08bee6ee6", size = 490545, upload-time = "2026-06-30T07:15:41.729Z" }, + { url = "https://files.pythonhosted.org/packages/a3/42/da06c5aa8f0484ff07f270787434204d9f4535e2f8c3b51ed402267e63c3/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cdc7e35386f3847df728fbcb5e887e2d79c19e2fa1eba9e51b6621d23e3243af", size = 382828, upload-time = "2026-06-30T07:15:43.327Z" }, + { url = "https://files.pythonhosted.org/packages/57/d7/fe978efc2ae50abe48eb7464668ea99f53c010c60aeebb7b35ad27f23661/rpds_py-2026.6.3-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:acac386b453c2516111b50985d60ce46e7fadb5ea71ae7b25f4c946935bf27cf", size = 365678, upload-time = "2026-06-30T07:15:44.992Z" }, + { url = "https://files.pythonhosted.org/packages/69/9d/1d8922e1990b2a6eb532b6ff53d3e73d2b3bbffc84116c75826bee73dfc6/rpds_py-2026.6.3-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:425560c6fa0415f27261727bb20bd097568485e5eb0c121f1949417d1c516885", size = 377811, upload-time = "2026-06-30T07:15:46.523Z" }, + { url = "https://files.pythonhosted.org/packages/b1/3d/198dceafb4fb034a6a47347e1b0735d34e0bd4a50be4e898d408ee66cb14/rpds_py-2026.6.3-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:a550fb4950a06dde3beb4721f5ad4b25bf4513784665b0a8522c792e2bd822a4", size = 395382, upload-time = "2026-06-30T07:15:47.955Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f1/13968e49655d40b6b19d8b9140296bbc6f1d86b3f0f6c346cf9f1adddf4b/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4f4bca01b63096f606e095734dd56e74e175f94cfbf24ff3d63281cec61f7bb7", size = 543832, upload-time = "2026-06-30T07:15:49.33Z" }, + { url = "https://files.pythonhosted.org/packages/ac/ab/289bcb1b90bd3e40a2900c561fa0e2087345ecbb094f0b870f2345142b7c/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:ccffae9a092a00deb7efd545fe5e2c33c33b88e7c054337e9a74c179347d0b7d", size = 611011, upload-time = "2026-06-30T07:15:50.847Z" }, + { url = "https://files.pythonhosted.org/packages/1e/16/5043105e679436ccfbc8e5e0dd2d663ed18a8b8113515fd06a5e5d77c83e/rpds_py-2026.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:1cf01971c4f2c5553b772a542e4aaf191789cd331bc2cd4ff0e6e65ba49e1e97", size = 572431, upload-time = "2026-06-30T07:15:52.394Z" }, + { url = "https://files.pythonhosted.org/packages/85/ed/adab103321c0a6565d5ae1c2998349bc3ee175b82ccc5ae8fc04cc413075/rpds_py-2026.6.3-cp313-cp313-win32.whl", hash = "sha256:8c3d1e9c15b9d51ca0391e13da1a25a0a4df3c58a37c9dc368e0736cf7f69df0", size = 201710, upload-time = "2026-06-30T07:15:53.894Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ed/a03b09668e74e5dabbf2e211f6468e1820c0552f7b0500082da31841bf7b/rpds_py-2026.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:9250a9a0a6fd4648b3f868da8d91a4c52b5811a62df58e753d50ae4454a36f80", size = 219454, upload-time = "2026-06-30T07:15:55.25Z" }, + { url = "https://files.pythonhosted.org/packages/27/17/b8642c12930b71bc2b25831f6708ccf0f75abcd11883932ec9ce54ba3a78/rpds_py-2026.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:900a67df3fd1660b035a4761c4ce73c382ea6b35f90f9863c36c6fd8bf8b09bb", size = 215063, upload-time = "2026-06-30T07:15:56.573Z" }, + { url = "https://files.pythonhosted.org/packages/b6/36/7fbe9dcdaf857fb3f63c2a2284b62492d95f5e8334e947e5fb6e7f68c9be/rpds_py-2026.6.3-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:931908d9fc855d8f74783377822be318edb6dcb19e47169dc038f9a1bf60b06e", size = 344510, upload-time = "2026-06-30T07:15:57.921Z" }, + { url = "https://files.pythonhosted.org/packages/ba/54/f785cc3d3f60839ca57a5af4927a9f347b07b2799c373fc20f7949f87c7e/rpds_py-2026.6.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:d7469697dce35be237db177d42e2a2ee26e6dcc5fc052078a6fefabd288c6edd", size = 339495, upload-time = "2026-06-30T07:15:59.238Z" }, + { url = "https://files.pythonhosted.org/packages/63/ef/d4cdaf309e6b095b43597103cf8c0b951d6cca2acce68c474f75ec12e0c7/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bcfbcf66006befb9fd2aeaa9e01feaf881b4dc330a02ba07d2322b1c11be7b5d", size = 369454, upload-time = "2026-06-30T07:16:01.021Z" }, + { url = "https://files.pythonhosted.org/packages/96/4a/9559a68b7ee15db09d7981212e8c2e219d2a1d6d4faa0391d813c3496a36/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:847927daf4cffbd4e90e42bc890069897101edd015f956cb8721b3473372edda", size = 374583, upload-time = "2026-06-30T07:16:02.287Z" }, + { url = "https://files.pythonhosted.org/packages/ef/75/8964aa7d2c6e8ac43eba8eb6e6b0fdda1f46d39f2fc3e6aa9f2cb17f485d/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aca6c1ef08a82bfe327cc156da694660f599923e2e6665b6d81c9c2d0ac9ffc8", size = 492919, upload-time = "2026-06-30T07:16:03.723Z" }, + { url = "https://files.pythonhosted.org/packages/8f/97/6908094ac804115e65aedfd90f1b5fee4eebebd3f6c4cfc5419939267565/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ae50181a047c871561212bb97f7932a2d45fb53e947bd9b57ebad85b529cbc53", size = 383725, upload-time = "2026-06-30T07:16:05.305Z" }, + { url = "https://files.pythonhosted.org/packages/d1/9c/0d1fdc2e7aba23e290d603bc494e97bd205bae262ce33c6b32a69768ed5e/rpds_py-2026.6.3-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dc319e5a1de4b6913aac94bf6a2f9e847371e0a140a43dd4991db1a09bc2d504", size = 367255, upload-time = "2026-06-30T07:16:07.086Z" }, + { url = "https://files.pythonhosted.org/packages/c4/fe/f0209ca4a9ed074bc8acb44dfd0e81c3122e94c9689f5645b7973a866719/rpds_py-2026.6.3-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:e4316bf32babbed84e691e352faf967ce2f0f024174a8643c37c94a1080374fc", size = 379060, upload-time = "2026-06-30T07:16:08.525Z" }, + { url = "https://files.pythonhosted.org/packages/c6/8d/f1cc54c616b9d8897de8738aac148d20afca93f68187475fe194d09a71b9/rpds_py-2026.6.3-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:8c6e5a2f750cc71c3e3b11d71661f21d6f9bc6cebc6564b1466417a1ec03ec77", size = 395960, upload-time = "2026-06-30T07:16:09.989Z" }, + { url = "https://files.pythonhosted.org/packages/fb/04/aafff00f73aeca2945f734f1d483c64ab8f472d0864ab02377fd8e89c3b2/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4470ce197d4090875cf6affbf1f853338387428df97c4fb7b7106317b8214698", size = 545356, upload-time = "2026-06-30T07:16:11.816Z" }, + { url = "https://files.pythonhosted.org/packages/fd/cc/e229663b9e4ddac5a4acbe9085dd80a71af2a5d356b8b39d6bff233f24b0/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_i686.whl", hash = "sha256:ea964164cc9afa72d4d9b23cc28dafae93693c0a53e0b42acbff15b22c3f9ddd", size = 612319, upload-time = "2026-06-30T07:16:13.586Z" }, + { url = "https://files.pythonhosted.org/packages/e3/7a/8a0e6d3e6cd066af108b71b43122c3fe158dd9eb86acac626593a2582eb1/rpds_py-2026.6.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:639c8929aa0afe81be836b04de888460d6bed38b9c54cfc18da8f6bfabf5af5d", size = 573508, upload-time = "2026-06-30T07:16:15.23Z" }, + { url = "https://files.pythonhosted.org/packages/87/03/2a69ab618a789cf6cf85c86bb844c62d090e700ab1a2aa676b3741b6c516/rpds_py-2026.6.3-cp314-cp314-win32.whl", hash = "sha256:882076c00c0a608b131187055ddc5ae29f2e7eaf870d6168980420d58528a5c8", size = 202504, upload-time = "2026-06-30T07:16:16.893Z" }, + { url = "https://files.pythonhosted.org/packages/85/62/a3892ba945f4e24c78f352e5de3c7620d8479f73f211406a97263d13c7d2/rpds_py-2026.6.3-cp314-cp314-win_amd64.whl", hash = "sha256:0be972be84cfcaf46c8c6edf690ca0f154ac17babf1f6a955a51579b34ad2dc5", size = 220380, upload-time = "2026-06-30T07:16:18.108Z" }, + { url = "https://files.pythonhosted.org/packages/3d/e7/c2bd44dc831931815ad11ebb5f430b5a0a4d3caa9de837107876c30c3432/rpds_py-2026.6.3-cp314-cp314-win_arm64.whl", hash = "sha256:2a9c6f195058cb45335e8cc3802745c603d716eb96bc9625950c1aac71c0c703", size = 215976, upload-time = "2026-06-30T07:16:19.654Z" }, + { url = "https://files.pythonhosted.org/packages/79/9c/fff7b74bce9a091ec9a012a03f9ff5f69364eaf9451060dfc4486da2ffdd/rpds_py-2026.6.3-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:f90938e92afda60266da758ee7d363447f7f0138c9559f9e1811629580582d90", size = 346840, upload-time = "2026-06-30T07:16:21.268Z" }, + { url = "https://files.pythonhosted.org/packages/e9/44/77bcb1168b33704908295533d27f10eb811e9e3e193e8993dc99572211d3/rpds_py-2026.6.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:ec829541c45bca16e61c7ae50c20501f213605beb75d1aba91a6ee37fbbb56a4", size = 340282, upload-time = "2026-06-30T07:16:22.875Z" }, + { url = "https://files.pythonhosted.org/packages/87/3c/7a9081c7c9e645b39efe19e4ffbeccd80add246327cd9b888aecffd72317/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:afd70d95892096cdb26f15a00c45907b17817577aa8d1c76b2dcc2788391f9e9", size = 370403, upload-time = "2026-06-30T07:16:24.415Z" }, + { url = "https://files.pythonhosted.org/packages/f7/69/af47021eb7dad6ff3396cb001c08f0f3c4d06c20253f75be6421a59fe6b7/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:29dfa0533a5d4c94d4dfa1b694fcb56c9c63aad8330ffdd816fd225d0a7a162f", size = 376055, upload-time = "2026-06-30T07:16:26.111Z" }, + { url = "https://files.pythonhosted.org/packages/81/fc/a3bcf517084396a6dd258c592567a3c011ba4557f2fde23dceaf26e74f2e/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:af05d726809bff6b141be124d4c7ce998f9c9c7f30edb1f46c07aa103d540b41", size = 494419, upload-time = "2026-06-30T07:16:27.596Z" }, + { url = "https://files.pythonhosted.org/packages/c9/eb/13d529d1788135425c7bf207f8463458ca5d92e43f3f701365b83e9dffc1/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9826217f048f620d9a712672818bf231442c1b35d96b227a07eabd11b4bb6945", size = 384848, upload-time = "2026-06-30T07:16:29.183Z" }, + { url = "https://files.pythonhosted.org/packages/8e/f4/b7ac49f30013aba8f7b9566b1dd07e81de95e708c1374b7bacc5b9bc5c9c/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:536bceea4fa4acf7e1c61da2b5786304367c816c8895be71b8f537c480b0ea1f", size = 371369, upload-time = "2026-06-30T07:16:30.912Z" }, + { url = "https://files.pythonhosted.org/packages/31/86/6260bafa622f788b07ddec0e52d810305c8b9b0b8c27f58a2ab04bf62b4f/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:bc0011654b91cc4fb2ae701bec0a0ba1e552c0714247fa7af6c59e0ccfa3a4e1", size = 379673, upload-time = "2026-06-30T07:16:32.486Z" }, + { url = "https://files.pythonhosted.org/packages/19/c3/03f1ee79a047b48daeca157c89a18509cde22b6b951d642b9b0af1be660a/rpds_py-2026.6.3-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:539d75de9e0d536c84ff18dfeb805398e58227001ce09231a26a08b9aed1ee0e", size = 397500, upload-time = "2026-06-30T07:16:34.471Z" }, + { url = "https://files.pythonhosted.org/packages/f0/95/8ed0cd8c377dca12aea498f119fe639fc474d1461545c39d2b5872eb1c0f/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:166cf54d9f44fc6ceb53c7860258dde44a81406646de79f8ed3234fca3b6e538", size = 545978, upload-time = "2026-06-30T07:16:36.45Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f2/0eb57f0eaa83f8fc152a7e03de968ab77e1f00732bebc892b190c6eebde7/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_i686.whl", hash = "sha256:d34c20167764fbcf927194d532dd7e0c56772f0a5f943fa5ef9e9afbba8fb9db", size = 613350, upload-time = "2026-06-30T07:16:38.213Z" }, + { url = "https://files.pythonhosted.org/packages/5b/de/e0674bdbc3ef7634989b3f854c3f34bc1f587d36e5bfdc5c378d57034619/rpds_py-2026.6.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:ea7bb13b7c9a29791f87a0387ba7d3ad3a6d783d827e4d3f27b40a0ff44495e2", size = 576486, upload-time = "2026-06-30T07:16:39.797Z" }, + { url = "https://files.pythonhosted.org/packages/f2/f6/21101359743cd136ada781e8210a85769578422ba460672eea0e29739200/rpds_py-2026.6.3-cp314-cp314t-win32.whl", hash = "sha256:6de4744d05bd1aa1be4ed7ea1189e3979196808008113bbbf899a460966b925e", size = 201068, upload-time = "2026-06-30T07:16:41.316Z" }, + { url = "https://files.pythonhosted.org/packages/a6/b2/9574d4d44f7760c2aa32d92a0a4f41698e33f5b204a0bf5c9758f52c79d5/rpds_py-2026.6.3-cp314-cp314t-win_amd64.whl", hash = "sha256:c7b9a2f8f4d8e90af72571d3d495deebdd7e3c75451f5b41719aee166e940fc2", size = 220600, upload-time = "2026-06-30T07:16:43.091Z" }, + { url = "https://files.pythonhosted.org/packages/08/ae/f23a2697e6ee6340a578b0f136be6483657bef0c6f9497b752bb5c0964bb/rpds_py-2026.6.3-cp315-cp315-macosx_10_12_x86_64.whl", hash = "sha256:e059c5dde6452b44424bd1834557556c226b57781dee1227af23518459722b13", size = 344726, upload-time = "2026-06-30T07:16:44.5Z" }, + { url = "https://files.pythonhosted.org/packages/c3/63/e7b3a1a5358dd32c930a1062d8e15b67fd6e8922e81df9e91706d66ee5c8/rpds_py-2026.6.3-cp315-cp315-macosx_11_0_arm64.whl", hash = "sha256:2f7c26fbc5acd2522b95d4177fe4710ffd8e9b20529e703ffbf8db4d93903f05", size = 339587, upload-time = "2026-06-30T07:16:46.255Z" }, + { url = "https://files.pythonhosted.org/packages/ec/64/10a85681916ca55fffb91b0a211f84e34297c109243484dd6394660a8a7c/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a3086b538543802f84c843911242db20447de00d8752dd0efc936dbcf02218ba", size = 369585, upload-time = "2026-06-30T07:16:48.101Z" }, + { url = "https://files.pythonhosted.org/packages/76/c2/baf95c7c38823e12ba34407c5f5767a89e5cf2233895e56f608167ae9493/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8f2e5c5ee828d42cb11760761c0af6507927bec42d0ad5458f97c9203b054617", size = 375479, upload-time = "2026-06-30T07:16:49.93Z" }, + { url = "https://files.pythonhosted.org/packages/6a/94/0aad06c72d65101e11d33528d438cda99a39ce0da99466e156158f2541d3/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ed0c1e5d10cdc7135537988c74a0188da68e2f3c30813ba3744ab1e42e0480f9", size = 492418, upload-time = "2026-06-30T07:16:51.641Z" }, + { url = "https://files.pythonhosted.org/packages/b5/17/de3f5a479a1f056535d7489819639d8cd591ea6281d700390b43b1abd745/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c2642a7603ec0b16ed77da4555db3b4b472341904873788327c0b0d7b95f1bb", size = 384123, upload-time = "2026-06-30T07:16:53.622Z" }, + { url = "https://files.pythonhosted.org/packages/46/7d/bf09bd1b145bb2671c03e1e6d1ab8651858d90d8c7dfeadd85a37a934fd8/rpds_py-2026.6.3-cp315-cp315-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8e4320744c1ffdd95a603def63344bfab2d33edeab301c5007e7de9f9f5b3885", size = 367351, upload-time = "2026-06-30T07:16:55.241Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ea/1bb734f314b8be319149ddee80b18bd41372bdcfbdf88d28131c0cd37719/rpds_py-2026.6.3-cp315-cp315-manylinux_2_31_riscv64.whl", hash = "sha256:a9f4645593036b81bbdb36b9c8e0ea0d1c3fee968c4d59db0344c14087ef143a", size = 378827, upload-time = "2026-06-30T07:16:56.841Z" }, + { url = "https://files.pythonhosted.org/packages/4b/93/d9611e5b25e26df9a3649813ed66193ace9347a7c7fc4ab7cf70e94851c0/rpds_py-2026.6.3-cp315-cp315-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e55d236be29255554da47abe5c577637db7c24a02b8b46f0ca9524c855801868", size = 395966, upload-time = "2026-06-30T07:16:58.557Z" }, + { url = "https://files.pythonhosted.org/packages/c3/cb/99d77e16e5534ae1d90629bbe419ba6ee170833a6a85e3aa1cc41726fbbc/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_aarch64.whl", hash = "sha256:24e9c5386e16669b674a69c156c8eeefcb578f3b3397b713b08e6d60f3c7b187", size = 545680, upload-time = "2026-06-30T07:17:00.164Z" }, + { url = "https://files.pythonhosted.org/packages/59/15/11a29755f790cef7a2f755e8e14f4f0c33f39489e1893a632a2eee59672b/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_i686.whl", hash = "sha256:c60924535c75f1566b6eb75b5c31a48a43fef04fa2d0d201acbad8a9969c6107", size = 611853, upload-time = "2026-06-30T07:17:01.962Z" }, + { url = "https://files.pythonhosted.org/packages/68/86/0c27547e21644da938fb530f7e1a8148dd24d02db07e7a5f2567a17ce710/rpds_py-2026.6.3-cp315-cp315-musllinux_1_2_x86_64.whl", hash = "sha256:38a2fea2787428f811719ceb9114cb78964a3138838320c29ac39526c79c16ba", size = 573715, upload-time = "2026-06-30T07:17:03.693Z" }, + { url = "https://files.pythonhosted.org/packages/29/71/4d8fcf700931815594bce892255bbd973b94efaf0fc1932b0590df18d886/rpds_py-2026.6.3-cp315-cp315-win32.whl", hash = "sha256:d483fe17f01ad64b7bf7cc38fcefff1ca9fb83f8c2b2542b68f97ffe0611b369", size = 202864, upload-time = "2026-06-30T07:17:05.746Z" }, + { url = "https://files.pythonhosted.org/packages/eb/62/b577562de0edbb55b2be85ce5fd09c33e386b9b13eee09833af4240fd5c4/rpds_py-2026.6.3-cp315-cp315-win_amd64.whl", hash = "sha256:67e3a721ffc5d8d2210d3671872298c4a84e4b8035cfe42ffd7cde35d772b146", size = 220430, upload-time = "2026-06-30T07:17:07.471Z" }, + { url = "https://files.pythonhosted.org/packages/c8/95/d6d0b2509825141eef60669a5739eec88dbc6a48053d6c92993a5704defe/rpds_py-2026.6.3-cp315-cp315-win_arm64.whl", hash = "sha256:6e84adbcf4bf841aed8116a8264b9f50b4cb3e7bd89b516122e616ac56ca269e", size = 215877, upload-time = "2026-06-30T07:17:09.008Z" }, + { url = "https://files.pythonhosted.org/packages/b7/bf/f3ea278f0afd615c1d0f19cb69043a41526e2bb600c2b536eb192218eb27/rpds_py-2026.6.3-cp315-cp315t-macosx_10_12_x86_64.whl", hash = "sha256:ae6dd8f10bd17aad820876d24caec9efdafd80a318d16c0a48edb5e136902c6b", size = 346933, upload-time = "2026-06-30T07:17:10.762Z" }, + { url = "https://files.pythonhosted.org/packages/9d/29/9907bdf1c5346763cf10b7f6852aad86652168c259def904cbe0082c5864/rpds_py-2026.6.3-cp315-cp315t-macosx_11_0_arm64.whl", hash = "sha256:bdbd97738551fca3917c1bd7188bec1920bb520104f28e7e1007f9ceb17b7690", size = 340274, upload-time = "2026-06-30T07:17:12.266Z" }, + { url = "https://files.pythonhosted.org/packages/6f/2c/8e03767b5778ef25cebf74a7a91a2c3806f8eced4c92cb7406bbe060756d/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8b95977e7211527ab0ba576e286d023389fbeeb32a6b7b771665d333c60e5342", size = 370763, upload-time = "2026-06-30T07:17:14.107Z" }, + { url = "https://files.pythonhosted.org/packages/2e/e1/df2a7e1ba2efd796af26194250b8d42c821b46592311595162af9ef0528d/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d15fde0e6fb0d88a60d221204873743e5d9f0b7d29165e62cd86d0413ad74ba6", size = 376467, upload-time = "2026-06-30T07:17:15.76Z" }, + { url = "https://files.pythonhosted.org/packages/6b/de/8a0814d1946af29cb068fb259aa8622f856df1d0bab58429448726b537f5/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a136d453475ac0fcbda502ef1e6504bd28d6d904700915d278deeab0d00fe140", size = 496689, upload-time = "2026-06-30T07:17:17.308Z" }, + { url = "https://files.pythonhosted.org/packages/df/f3/f19e0c852ba13694f5a79f3b719331051573cb5693feacf8a88ffffc3a71/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f826877d462181e5eb1c26a0026b8d0cab05d99844ecb6d8bf3627a2ca0c0442", size = 385340, upload-time = "2026-06-30T07:17:18.928Z" }, + { url = "https://files.pythonhosted.org/packages/e2/ae/7ec3a9d2d4351f99e37bcb06b6b6f954512646bfdbf9742e1de727865daf/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:79486287de1730dbaff3dbd124d0ca4d2ef7f9d29bf2544f1f93c09b5bcbbd12", size = 372179, upload-time = "2026-06-30T07:17:20.539Z" }, + { url = "https://files.pythonhosted.org/packages/d3/ac/9cee911dff2aaa9a5a8354f6610bf2e6a616de9197c5fff4f54f82585f1e/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_31_riscv64.whl", hash = "sha256:808345f53cb952433ca2816f1604ff3515608a81784954f38d4452acfe8e61d5", size = 379993, upload-time = "2026-06-30T07:17:22.212Z" }, + { url = "https://files.pythonhosted.org/packages/83/6b/7c2a07ba88d1e9a936612f7a5d067467ed03d971d5a06f7d309dff044a7e/rpds_py-2026.6.3-cp315-cp315t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1967debc37f64f2c4dc90a7f563aec558b471966e12adcac4e1c4240496b6ebf", size = 398909, upload-time = "2026-06-30T07:17:23.66Z" }, + { url = "https://files.pythonhosted.org/packages/97/0b/776ffcb66783637b0031f6d58d6fb55913c8b5abf00aeecd46bf933fb477/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_aarch64.whl", hash = "sha256:f0840b5b17057f7fd918b76183a4b5a0635f43e14eb2ce60dce1d4ee4707ea00", size = 546584, upload-time = "2026-06-30T07:17:25.264Z" }, + { url = "https://files.pythonhosted.org/packages/55/33/ba3bc04d7092bd553c9b2b195624992d2cc4f3de1f380b7b93cbee67bd79/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_i686.whl", hash = "sha256:faa679d19a6696fd54259ad321251ad77a13e70e03dd834daa762a44fb6196ef", size = 614357, upload-time = "2026-06-30T07:17:26.888Z" }, + { url = "https://files.pythonhosted.org/packages/8b/71/14edf065f04630b1a8472f7653cad03f6c478bcf95ea0e6aed55451e33ea/rpds_py-2026.6.3-cp315-cp315t-musllinux_1_2_x86_64.whl", hash = "sha256:23a439f31ccbeff1574e24889128821d1f7917470e830cf6544dced1c662262a", size = 576533, upload-time = "2026-06-30T07:17:28.546Z" }, + { url = "https://files.pythonhosted.org/packages/ba/76/65002b08596c389105720a8c0d22298b8dc25a4baf89b2ce431343c8b1de/rpds_py-2026.6.3-cp315-cp315t-win32.whl", hash = "sha256:913ca42ccad3f8cc6e292b587ae8ae49c8c823e5dce51a736252fc7c7cdfa577", size = 201204, upload-time = "2026-06-30T07:17:30.193Z" }, + { url = "https://files.pythonhosted.org/packages/8c/97/d855d6b3c322d1f27e26f5241c42016b56cf01377ea8ed348285f54652f0/rpds_py-2026.6.3-cp315-cp315t-win_amd64.whl", hash = "sha256:ae3d4fe8c0b9213624fdce7279d70e3b148b682ca20719ebd193a23ebfa47324", size = 220719, upload-time = "2026-06-30T07:17:31.788Z" }, + { url = "https://files.pythonhosted.org/packages/b4/9c/f0d19ac587fd0e4ab6b72cda355e9c5a6166b01ef7e064e437aef8eb9fef/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:4cf2d36a2357e4d07bb5a4f98801265327b48256867816cfd2ceb001e9754a8f", size = 349791, upload-time = "2026-06-30T07:17:33.315Z" }, + { url = "https://files.pythonhosted.org/packages/38/c7/1d49d204c9fd2ee6c537601dc4c1ba921e03363ca576bfab94a00254ac9a/rpds_py-2026.6.3-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:30c6dc199b24a5e3e81d50da0f00858c5bbdb2617a750395687f4339c5818171", size = 352842, upload-time = "2026-06-30T07:17:34.897Z" }, + { url = "https://files.pythonhosted.org/packages/ac/e5/c0b5dc93cd0d4c06ce1f438907649514e2ea077bcd911e3154a51e96c38e/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9891e594296ab9dada6551c8e7b387b2721f27a67eecd528412e8906247a7b90", size = 382094, upload-time = "2026-06-30T07:17:36.514Z" }, + { url = "https://files.pythonhosted.org/packages/0d/54/ec0e907b4ca8d541112db352409bd15f871c9b243e0c92c9b5a46ae96f01/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:b5c2dc92304aa48a4a60443b548bb12f12e119d4b72f314015e67b9e1be97fca", size = 388662, upload-time = "2026-06-30T07:17:38.235Z" }, + { url = "https://files.pythonhosted.org/packages/d3/f4/921c22a4fd0f1c1ac13a3996ffbf0aa67951e2c8ad0d1d9574938a2932e8/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:127e08c0642d880cf32ca47ec2a4a77b901f7e2dd1ad9762adb13955d72ffcc9", size = 504896, upload-time = "2026-06-30T07:17:39.689Z" }, + { url = "https://files.pythonhosted.org/packages/0b/1b/a114b972cefa1ab1cdb3c7bb177cd3844a12826c507c722d3a73516dbbaf/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8bb68f03f395eb793220b45c097bd4d8c32944393da0fad8b999efac0868fc8c", size = 391545, upload-time = "2026-06-30T07:17:41.336Z" }, + { url = "https://files.pythonhosted.org/packages/4e/98/af9b3db77d47fcbe6c8c1f36e2c2147ec70292819e99c325f871584a1c11/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a3450b693fde92133e9f51060568a4c31fcca76d5e53bbd611e689ca446517e9", size = 380059, upload-time = "2026-06-30T07:17:42.857Z" }, + { url = "https://files.pythonhosted.org/packages/c9/ba/0efd8668b97c1d26a61566386c636a7a7a09829e474fdf807caa15a2c844/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_31_riscv64.whl", hash = "sha256:5e8d07bddee435a2ff6f1920e18feff28d0bc4533e42f4bf6927fbd073312c41", size = 393235, upload-time = "2026-06-30T07:17:44.637Z" }, + { url = "https://files.pythonhosted.org/packages/62/90/8c139ee9690f73b0829f32647de6f40d826f8f443af6fa72644f96351aac/rpds_py-2026.6.3-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3a83ae6c67b7676b9878378547ca8e93ed77a580037bcbcd1d32f739e1e6089c", size = 413008, upload-time = "2026-06-30T07:17:46.225Z" }, + { url = "https://files.pythonhosted.org/packages/9c/97/0043896fdd7828ce09a1d9a8b06433714d0960fc4ff3fc4aa72b666b764e/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl", hash = "sha256:2bfd04c19ddbd6640de0b51894d764bd2758854d5b75bd102d2ef10cb9c293a9", size = 558118, upload-time = "2026-06-30T07:17:47.759Z" }, + { url = "https://files.pythonhosted.org/packages/f6/40/02355f0e134f783a8f9814c4680a1bd311d37671577a5964ea838573ff37/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_i686.whl", hash = "sha256:ca6546b66be9dc4738b1b043d5ebd5488c66c578c5ff0fd0e8065313fe3afb76", size = 623138, upload-time = "2026-06-30T07:17:49.355Z" }, + { url = "https://files.pythonhosted.org/packages/10/85/48f0abdcef5cce4e034c7a5b0ceeceba0b01bf0d942824f4bb720afe2dec/rpds_py-2026.6.3-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl", hash = "sha256:8e65860d238379ed982fd9ba690579b5e95af2f4840f99c772816dbe573cb826", size = 586486, upload-time = "2026-06-30T07:17:51.141Z" }, +] + +[[package]] +name = "rsa" +version = "4.9.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyasn1" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/da/8a/22b7beea3ee0d44b1916c0c1cb0ee3af23b700b6da9f04991899d0c555d4/rsa-4.9.1.tar.gz", hash = "sha256:e7bdbfdb5497da4c07dfd35530e1a902659db6ff241e39d9953cad06ebd0ae75", size = 29034, upload-time = "2025-04-16T09:51:18.218Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/64/8d/0133e4eb4beed9e425d9a98ed6e081a55d195481b7632472be1af08d2f6b/rsa-4.9.1-py3-none-any.whl", hash = "sha256:68635866661c6836b8d39430f97a996acbd61bfa49406748ea243539fe239762", size = 34696, upload-time = "2025-04-16T09:51:17.142Z" }, +] + +[[package]] +name = "s3transfer" +version = "0.10.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "botocore" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c0/0a/1cdbabf9edd0ea7747efdf6c9ab4e7061b085aa7f9bfc36bb1601563b069/s3transfer-0.10.4.tar.gz", hash = "sha256:29edc09801743c21eb5ecbc617a152df41d3c287f67b615f73e5f750583666a7", size = 145287, upload-time = "2024-11-20T21:06:05.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/66/05/7957af15543b8c9799209506df4660cba7afc4cf94bfb60513827e96bed6/s3transfer-0.10.4-py3-none-any.whl", hash = "sha256:244a76a24355363a68164241438de1b72f8781664920260c48465896b712a41e", size = 83175, upload-time = "2024-11-20T21:06:03.961Z" }, +] + +[[package]] +name = "secretstorage" +version = "3.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, + { name = "jeepney" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1c/03/e834bcd866f2f8a49a85eaff47340affa3bfa391ee9912a952a1faa68c7b/secretstorage-3.5.0.tar.gz", hash = "sha256:f04b8e4689cbce351744d5537bf6b1329c6fc68f91fa666f60a380edddcd11be", size = 19884, upload-time = "2025-11-23T19:02:53.191Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/46/f5af3402b579fd5e11573ce652019a67074317e18c1935cc0b4ba9b35552/secretstorage-3.5.0-py3-none-any.whl", hash = "sha256:0ce65888c0725fcb2c5bc0fdb8e5438eece02c523557ea40ce0703c266248137", size = 15554, upload-time = "2025-11-23T19:02:51.545Z" }, +] + +[[package]] +name = "sentry-sdk" +version = "1.40.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/c3/5c08a35ef0d5b279bb09493becb8f2ab5b59902d5015ed7e69cce17421b7/sentry-sdk-1.40.6.tar.gz", hash = "sha256:f143f3fb4bb57c90abef6e2ad06b5f6f02b2ca13e4060ec5c0549c7a9ccce3fa", size = 237735, upload-time = "2024-02-27T10:56:54.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/42/1c/6919b23b9d1b58363525e8e40c4cb10132588abd070b54507231e3082f38/sentry_sdk-1.40.6-py2.py3-none-any.whl", hash = "sha256:becda09660df63e55f307570e9817c664392655a7328bbc414b507e9cb874c67", size = 258451, upload-time = "2024-02-27T10:56:54.487Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/94/e7/b2c673351809dca68a0e064b6af791aa332cf192da575fd474ed7d6f16a2/six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81", size = 34031, upload-time = "2024-12-04T17:35:28.174Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b7/ce/149a00dd41f10bc29e5921b496af8b574d8413afcd5e30dfa0ed46c2cc5e/six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274", size = 11050, upload-time = "2024-12-04T17:35:26.475Z" }, +] + +[[package]] +name = "sniffio" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a2/87/a6771e1546d97e7e041b6ae58d80074f81b7d5121207425c964ddf5cfdbd/sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc", size = 20372, upload-time = "2024-02-25T23:20:04.057Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e9/44/75a9c9421471a6c4805dbf2356f7c181a29c1879239abab1ea2cc8f38b40/sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2", size = 10235, upload-time = "2024-02-25T23:20:01.196Z" }, +] + +[[package]] +name = "snowballstemmer" +version = "3.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/f8/0a71edf031f03c40db17503cb8ca78a69a171254e568e7db241b0ab57ea1/snowballstemmer-3.1.1.tar.gz", hash = "sha256:e07bbc54a0d798fe6010a12398422e62a8bfbba95c394fd0956ef58cb4d3e260", size = 123314, upload-time = "2026-06-03T00:56:40.194Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/4c/07/2ebca9b11fb9be7340a818d8d6f63feaebb146be2c4afbd6061701d6df6e/snowballstemmer-3.1.1-py3-none-any.whl", hash = "sha256:7e207fa178741da09cdee59d3ecec3827ad5f92b1fc5c9ff3755b639f71f5752", size = 104164, upload-time = "2026-06-03T00:56:38.614Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/2c/0a5f6f8ee0d5589e48c7640213ed5175d52cf540a06725b628cc1a45d6ce/soupsieve-2.8.4.tar.gz", hash = "sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e", size = 121110, upload-time = "2026-05-24T13:55:57.154Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/f5/0c41cb68dcae6b7de4fac4188a3a9589e21fb31df21ea3a2e888db95e6c9/soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65", size = 37304, upload-time = "2026-05-24T13:55:55.406Z" }, +] + +[[package]] +name = "sphinx" +version = "7.2.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "alabaster" }, + { name = "babel" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "docutils" }, + { name = "imagesize" }, + { name = "jinja2" }, + { name = "packaging" }, + { name = "pygments" }, + { name = "requests" }, + { name = "snowballstemmer" }, + { name = "sphinxcontrib-applehelp" }, + { name = "sphinxcontrib-devhelp" }, + { name = "sphinxcontrib-htmlhelp" }, + { name = "sphinxcontrib-jsmath" }, + { name = "sphinxcontrib-qthelp" }, + { name = "sphinxcontrib-serializinghtml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/73/8e/6e51da4b26665b4b92b1944ea18b2d9c825e753e19180cc5bdc818d0ed3b/sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5", size = 7015183, upload-time = "2023-09-13T23:13:25.589Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b2/b6/8ed35256aa530a9d3da15d20bdc0ba888d5364441bb50a5a83ee7827affe/sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560", size = 3207959, upload-time = "2023-09-13T23:13:23.467Z" }, +] + +[[package]] +name = "sphinx-autodoc-typehints" +version = "1.25.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a1/19/1131e37f815864efbdb6498cc41f5ce3da82b7e952456900968132c7dcba/sphinx_autodoc_typehints-1.25.3.tar.gz", hash = "sha256:70db10b391acf4e772019765991d2de0ff30ec0899b9ba137706dc0b3c4835e0", size = 37709, upload-time = "2024-01-26T14:57:07.564Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ba/d3/8c375e2a6ce21c29021d413e5ebb4d285431acd209f82b89101f157d4b9b/sphinx_autodoc_typehints-1.25.3-py3-none-any.whl", hash = "sha256:d3da7fa9a9761eff6ff09f8b1956ae3090a2d4f4ad54aebcade8e458d6340835", size = 19239, upload-time = "2024-01-26T14:57:05.542Z" }, +] + +[[package]] +name = "sphinx-rtd-theme" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "docutils" }, + { name = "sphinx" }, + { name = "sphinxcontrib-jquery" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fe/33/2a35a9cdbfda9086bda11457bcc872173ab3565b16b6d7f6b3efaa6dc3d6/sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b", size = 2785005, upload-time = "2023-11-28T04:14:03.104Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ea/46/00fda84467815c29951a9c91e3ae7503c409ddad04373e7cfc78daad4300/sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586", size = 2824721, upload-time = "2023-11-28T04:13:59.589Z" }, +] + +[[package]] +name = "sphinxcontrib-applehelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/6e/b837e84a1a704953c62ef8776d45c3e8d759876b4a84fe14eba2859106fe/sphinxcontrib_applehelp-2.0.0.tar.gz", hash = "sha256:2f29ef331735ce958efa4734873f084941970894c6090408b079c61b2e1c06d1", size = 20053, upload-time = "2024-07-29T01:09:00.465Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/85/9ebeae2f76e9e77b952f4b274c27238156eae7979c5421fba91a28f4970d/sphinxcontrib_applehelp-2.0.0-py3-none-any.whl", hash = "sha256:4cd3f0ec4ac5dd9c17ec65e9ab272c9b867ea77425228e68ecf08d6b28ddbdb5", size = 119300, upload-time = "2024-07-29T01:08:58.99Z" }, +] + +[[package]] +name = "sphinxcontrib-devhelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/d2/5beee64d3e4e747f316bae86b55943f51e82bb86ecd325883ef65741e7da/sphinxcontrib_devhelp-2.0.0.tar.gz", hash = "sha256:411f5d96d445d1d73bb5d52133377b4248ec79db5c793ce7dbe59e074b4dd1ad", size = 12967, upload-time = "2024-07-29T01:09:23.417Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/35/7a/987e583882f985fe4d7323774889ec58049171828b58c2217e7f79cdf44e/sphinxcontrib_devhelp-2.0.0-py3-none-any.whl", hash = "sha256:aefb8b83854e4b0998877524d1029fd3e6879210422ee3780459e28a1f03a8a2", size = 82530, upload-time = "2024-07-29T01:09:21.945Z" }, +] + +[[package]] +name = "sphinxcontrib-htmlhelp" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/43/93/983afd9aa001e5201eab16b5a444ed5b9b0a7a010541e0ddfbbfd0b2470c/sphinxcontrib_htmlhelp-2.1.0.tar.gz", hash = "sha256:c9e2916ace8aad64cc13a0d233ee22317f2b9025b9cf3295249fa985cc7082e9", size = 22617, upload-time = "2024-07-29T01:09:37.889Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0a/7b/18a8c0bcec9182c05a0b3ec2a776bba4ead82750a55ff798e8d406dae604/sphinxcontrib_htmlhelp-2.1.0-py3-none-any.whl", hash = "sha256:166759820b47002d22914d64a075ce08f4c46818e17cfc9470a9786b759b19f8", size = 98705, upload-time = "2024-07-29T01:09:36.407Z" }, +] + +[[package]] +name = "sphinxcontrib-jquery" +version = "4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "sphinx" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/de/f3/aa67467e051df70a6330fe7770894b3e4f09436dea6881ae0b4f3d87cad8/sphinxcontrib-jquery-4.1.tar.gz", hash = "sha256:1620739f04e36a2c779f1a131a2dfd49b2fd07351bf1968ced074365933abc7a", size = 122331, upload-time = "2023-03-14T15:01:01.944Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/76/85/749bd22d1a68db7291c89e2ebca53f4306c3f205853cf31e9de279034c3c/sphinxcontrib_jquery-4.1-py2.py3-none-any.whl", hash = "sha256:f936030d7d0147dd026a4f2b5a57343d233f1fc7b363f68b3d4f1cb0993878ae", size = 121104, upload-time = "2023-03-14T15:01:00.356Z" }, +] + +[[package]] +name = "sphinxcontrib-jsmath" +version = "1.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b2/e8/9ed3830aeed71f17c026a07a5097edcf44b692850ef215b161b8ad875729/sphinxcontrib-jsmath-1.0.1.tar.gz", hash = "sha256:a9925e4a4587247ed2191a22df5f6970656cb8ca2bd6284309578f2153e0c4b8", size = 5787, upload-time = "2019-01-21T16:10:16.347Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c2/42/4c8646762ee83602e3fb3fbe774c2fac12f317deb0b5dbeeedd2d3ba4b77/sphinxcontrib_jsmath-1.0.1-py2.py3-none-any.whl", hash = "sha256:2ec2eaebfb78f3f2078e73666b1415417a116cc848b72e5172e596c871103178", size = 5071, upload-time = "2019-01-21T16:10:14.333Z" }, +] + +[[package]] +name = "sphinxcontrib-qthelp" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/68/bc/9104308fc285eb3e0b31b67688235db556cd5b0ef31d96f30e45f2e51cae/sphinxcontrib_qthelp-2.0.0.tar.gz", hash = "sha256:4fe7d0ac8fc171045be623aba3e2a8f613f8682731f9153bb2e40ece16b9bbab", size = 17165, upload-time = "2024-07-29T01:09:56.435Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/83/859ecdd180cacc13b1f7e857abf8582a64552ea7a061057a6c716e790fce/sphinxcontrib_qthelp-2.0.0-py3-none-any.whl", hash = "sha256:b18a828cdba941ccd6ee8445dbe72ffa3ef8cbe7505d8cd1fa0d42d3f2d5f3eb", size = 88743, upload-time = "2024-07-29T01:09:54.885Z" }, +] + +[[package]] +name = "sphinxcontrib-serializinghtml" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/44/6716b257b0aa6bfd51a1b31665d1c205fb12cb5ad56de752dfa15657de2f/sphinxcontrib_serializinghtml-2.0.0.tar.gz", hash = "sha256:e9d912827f872c029017a53f0ef2180b327c3f7fd23c87229f7a8e8b70031d4d", size = 16080, upload-time = "2024-07-29T01:10:09.332Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/52/a7/d2782e4e3f77c8450f727ba74a8f12756d5ba823d81b941f1b04da9d033a/sphinxcontrib_serializinghtml-2.0.0-py3-none-any.whl", hash = "sha256:6e2cb0eef194e10c27ec0023bfeb25badbbb5868244cf5bc5bdc04e4464bf331", size = 92072, upload-time = "2024-07-29T01:10:08.203Z" }, +] + +[[package]] +name = "sqlalchemy" +version = "2.0.51" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "greenlet", marker = "platform_machine == 'AMD64' or platform_machine == 'WIN32' or platform_machine == 'aarch64' or platform_machine == 'amd64' or platform_machine == 'ppc64le' or platform_machine == 'win32' or platform_machine == 'x86_64'" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/f1/a7a892f18d4d224e6b26f706531eafccc41e37594d37d304786969ee13cb/sqlalchemy-2.0.51.tar.gz", hash = "sha256:804dccd8a4a6242c4e30ad961e540e18a588f6527202f2d6791b01845d59fdc9", size = 9912201, upload-time = "2026-06-15T15:41:20.012Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/69/a67c69e5f28fc9c99d6f7bd60bd50e91f2fed2423e3b30fb228fa00e51f3/sqlalchemy-2.0.51-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1aa10c0daee6705294d181daadaa793221e1a59ed55000a3fab1d42b088ce4ba", size = 2161838, upload-time = "2026-06-15T16:05:17.144Z" }, + { url = "https://files.pythonhosted.org/packages/9a/a4/c8c22b8438bddc0a030157c6ec0f6ef97b3c38effa444bdab2a27af04090/sqlalchemy-2.0.51-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a5b2ed6d828f1f09bd812861f4f59ca3bc3803f9df871f4555187f0faf018604", size = 3319402, upload-time = "2026-06-15T16:10:40.002Z" }, + { url = "https://files.pythonhosted.org/packages/90/54/44012d32fd77d991256d2ff793ba3807c51d40cb27a85b4796224f6744df/sqlalchemy-2.0.51-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:436728ce18a80f6951a1e11cc6112c2ede9faf20766f1a26195a7c441ca12dbd", size = 3319675, upload-time = "2026-06-15T16:12:25.658Z" }, + { url = "https://files.pythonhosted.org/packages/29/a5/de0592acaf5906cd7430874392d6f7e8b4a7c8437610953ee2d1501c0b44/sqlalchemy-2.0.51-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:dc261707bf5739aea8a541593f3cc1d463c2701fb05fbcbba0ce031b69a21260", size = 3270777, upload-time = "2026-06-15T16:10:42.125Z" }, + { url = "https://files.pythonhosted.org/packages/cb/14/a44c90739c780b362238e4ac3cb19dd0ca40d13e6ddc5daa112166ddab4f/sqlalchemy-2.0.51-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:a6d26094615306d116dd5e4a51b0304c99dd2356fc569eed6922a80a6bd3b265", size = 3293940, upload-time = "2026-06-15T16:12:27.156Z" }, + { url = "https://files.pythonhosted.org/packages/65/eb/fbd0f206a330e66f8c602a99c37c4e731f107faed62954b41b01f16dd9d9/sqlalchemy-2.0.51-cp311-cp311-win32.whl", hash = "sha256:ca8435d13829b92f4a97362d91975154a4015db3a2634154e1754e9a915e6b86", size = 2121183, upload-time = "2026-06-15T16:13:29.905Z" }, + { url = "https://files.pythonhosted.org/packages/ad/fd/005bf80f3cf6e5c62b5dd68616280f51cd012c60840fa74781b3ed7b1623/sqlalchemy-2.0.51-cp311-cp311-win_amd64.whl", hash = "sha256:4a011ea4510683319ce4ed274b56ee05194b39b6da9d09ca7a39388f0fa84dcc", size = 2145796, upload-time = "2026-06-15T16:13:31.283Z" }, + { url = "https://files.pythonhosted.org/packages/d5/70/e868bc5412acd101a8280f25c95f10eeae0771c4eb806b02491142810ee8/sqlalchemy-2.0.51-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7d78702b26ba1c18b2d0fb2ea940ba7f17a9581b42e8361ff93920ebbee1235a", size = 2160291, upload-time = "2026-06-15T16:08:48.918Z" }, + { url = "https://files.pythonhosted.org/packages/e5/1c/71ee0f8a6b9d7316a1ccd30430b4c62b6c2e36adc96017a4e3a72dce49d6/sqlalchemy-2.0.51-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:581921d849d6e6f994d560389192955e80e2950e18fcdfe2ccea863e01158e6e", size = 3343835, upload-time = "2026-06-15T16:19:42.613Z" }, + { url = "https://files.pythonhosted.org/packages/2b/7c/7ab9f9aadc5944fdd06612484ed7918fe376ad871a5f50404dc1536e0194/sqlalchemy-2.0.51-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1d21ce524ab86c23046e992a5b81cb54c21079c6df6e78b8fc77d77cac70a6b9", size = 3358470, upload-time = "2026-06-15T16:26:38.011Z" }, + { url = "https://files.pythonhosted.org/packages/d0/7d/ff77169fee6186de145a7f2b87006c39638391130abbab2b1f63ac6ea583/sqlalchemy-2.0.51-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:c5d98a2709840027f5a347c3af0a7c3d5f6c1ff93af2ca1c54494e23cba8f389", size = 3289874, upload-time = "2026-06-15T16:19:45.212Z" }, + { url = "https://files.pythonhosted.org/packages/6f/3b/6c505903710d781b55bc3141ee34a062bf9745a6b5bc7333305b9ed63b33/sqlalchemy-2.0.51-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:1181256e0f16479691b5616d36375dc2620ad8332b25978763c3d206ad3f3f1d", size = 3321692, upload-time = "2026-06-15T16:26:39.747Z" }, + { url = "https://files.pythonhosted.org/packages/3c/b7/c5ffe50aa2f4d947c9250e1519d939260329a07fe6272edfccd784b3d007/sqlalchemy-2.0.51-cp312-cp312-win32.whl", hash = "sha256:9f380393be5abeb6815f68fd39271b95127173511b6706b0a630a9995d53f8f5", size = 2119674, upload-time = "2026-06-15T16:23:09.543Z" }, + { url = "https://files.pythonhosted.org/packages/25/dc/46a65916af68a06ef6b972c6050ba4c8f97070fe3fb33097d34229d9bef6/sqlalchemy-2.0.51-cp312-cp312-win_amd64.whl", hash = "sha256:2cf39aabdf48e87c1c2c2ed6d20d33ffa0733b3071ce9c5f66357947dd009080", size = 2146670, upload-time = "2026-06-15T16:23:11.048Z" }, + { url = "https://files.pythonhosted.org/packages/54/fe/a210d52fd1a90ecfae8a78e9d8b27e18d733d60818a8bf250ff690b75120/sqlalchemy-2.0.51-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7c2056838b6685b72fdb36c99996cf862753461a62f2e84f4196371d3b2d6a07", size = 2157184, upload-time = "2026-06-15T16:08:50.374Z" }, + { url = "https://files.pythonhosted.org/packages/17/6b/2dce8369b199cb855110e056032f94a9f66dacc2237d3d39c115a86eac56/sqlalchemy-2.0.51-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:483b11bd46bf35fc14c52faf338b04300c9e6ce554bce9b11be85bfec3bc3195", size = 3284735, upload-time = "2026-06-15T16:19:46.934Z" }, + { url = "https://files.pythonhosted.org/packages/53/ff/dbc495b8a14da840faffb353857a72d4190113cac33727906fb997047f0f/sqlalchemy-2.0.51-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1bed1ee8b01da6088210aa9412023326fb98a599ba502e6118308601dcbef77f", size = 3302756, upload-time = "2026-06-15T16:26:41.336Z" }, + { url = "https://files.pythonhosted.org/packages/cf/d5/fde8f4dddcf518ee15ab35a7c6a28acc32c8ba548d1d2aa451f96e6dbb0b/sqlalchemy-2.0.51-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:72ca54c952107ba5cd58854b67a5a6268631289d21651a1235396f3b98b47400", size = 3232055, upload-time = "2026-06-15T16:19:49.286Z" }, + { url = "https://files.pythonhosted.org/packages/67/d1/43d3a0ac955a58601c24fa23038b1c55ee3a1ec02c0f96ebb1eae2bcf614/sqlalchemy-2.0.51-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:b3e693d15533a45cd5906f0589f9c35090bef6ef45bf1e8195c424aa0ae06a8d", size = 3269850, upload-time = "2026-06-15T16:26:43.017Z" }, + { url = "https://files.pythonhosted.org/packages/94/df/de669c7054cd47c4439ac34b1b2ee8b804a794791fbb10720e997a2c87c7/sqlalchemy-2.0.51-cp313-cp313-win32.whl", hash = "sha256:b93ab07b5292dbe7e6b8da89475275e7042744283921344b56105f3eeb0f828b", size = 2117721, upload-time = "2026-06-15T16:23:12.36Z" }, + { url = "https://files.pythonhosted.org/packages/d0/8a/403c51d064196bae20a0bc2476577f83a3f8dd299719a97417086b7f2ec5/sqlalchemy-2.0.51-cp313-cp313-win_amd64.whl", hash = "sha256:0f053118c30e53161857a953e4de667d90e274980dccbe5dd3829bbbeece72a5", size = 2143615, upload-time = "2026-06-15T16:23:13.906Z" }, + { url = "https://files.pythonhosted.org/packages/b1/49/a739be2e1d02a96a658eb71ab45d921c874249252358ad24a5bffdd02525/sqlalchemy-2.0.51-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6ea306caaae6bd5afd0a46050003c88f6bf33227377a49298c498c3cb88ff491", size = 2158999, upload-time = "2026-06-15T16:08:51.759Z" }, + { url = "https://files.pythonhosted.org/packages/23/6b/2e0e38cf75c8780eca78d9b2e78164f8bcfd70125e5caa588ff5cbb9c9f4/sqlalchemy-2.0.51-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c45a496d6bc05dec41dcd4c3a2b183723f47473255c159cd80b503c8f246424d", size = 3282539, upload-time = "2026-06-15T16:19:51.065Z" }, + { url = "https://files.pythonhosted.org/packages/dd/a1/e77854cb5336fd37dc3c6ae3b71de242c98caac5725120be0b526b31cbd0/sqlalchemy-2.0.51-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4004ada0aafe8ae1991b2cd1d99c6d9146126e123bd6f883c260d974aa012e54", size = 3287545, upload-time = "2026-06-15T16:26:44.735Z" }, + { url = "https://files.pythonhosted.org/packages/f6/ab/9e17272fd4dac8df3b83c4fbe52b998a1c9d89a843c8c35ff29b74ff7364/sqlalchemy-2.0.51-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:0f6bcad487aee1c638d707235682fc96f741de00663619881ab235400d03289e", size = 3230929, upload-time = "2026-06-15T16:19:52.625Z" }, + { url = "https://files.pythonhosted.org/packages/02/3c/52f408ea701781caee975606beccc48845f2aee8711ac29843d612c0306c/sqlalchemy-2.0.51-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:39a76529db6305693d8d4affa58ad5b5e2e18edd62daea628b29b97930b3513d", size = 3252888, upload-time = "2026-06-15T16:26:46.454Z" }, + { url = "https://files.pythonhosted.org/packages/24/16/3efd2ee6bc4ca4693a30a1dd17a91b606cae15d517d2a4746611d9b73ce8/sqlalchemy-2.0.51-cp314-cp314-win32.whl", hash = "sha256:08a204d8b5638717c26a24df18fcf40af45a6b22e35b70b1d62f0113c2e278e8", size = 2120551, upload-time = "2026-06-15T16:23:15.629Z" }, + { url = "https://files.pythonhosted.org/packages/7b/78/55b12e70f45bccc40d9e483925c065027b3b98ea4cbbdf6f8c2546feaf6c/sqlalchemy-2.0.51-cp314-cp314-win_amd64.whl", hash = "sha256:96747bfbadb055466e5b46d572618170046b45ce5a4879167f50d70a5319a499", size = 2146318, upload-time = "2026-06-15T16:23:17.108Z" }, + { url = "https://files.pythonhosted.org/packages/21/db/a9574ed40fed418924b1b1a3e54f47ee3963053b3d3d325a0d36b41f2c08/sqlalchemy-2.0.51-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:e5ea1a213be1fcd5e49d9904c3b9939211ded90bc2a64e93f4c01963474285de", size = 2178920, upload-time = "2026-06-15T15:59:56.285Z" }, + { url = "https://files.pythonhosted.org/packages/bf/90/a1bb5c7cbba76b7bc1fbd586d0a5479a7bc9c27b4a8298f22ec9423b2bb3/sqlalchemy-2.0.51-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:7c6b36ed71f41942bdcd2ad2522be46bfce09d5705be5640ecf19bbc7660e4b7", size = 3566534, upload-time = "2026-06-15T15:58:35.024Z" }, + { url = "https://files.pythonhosted.org/packages/15/4b/481f1fed30e0e9e8dd24aecbb49f29eb57fe7657ece5cf06ee9b84bb97d8/sqlalchemy-2.0.51-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0c2c62877097e1a0db401fba5cb4debee33265e5b2a55c4ccb489c02c53b4f72", size = 3535844, upload-time = "2026-06-15T16:02:43.973Z" }, + { url = "https://files.pythonhosted.org/packages/02/71/0aa64aeda645510af0a43f7d9ee70932f0d1dc4263aed34c50ee891d9df3/sqlalchemy-2.0.51-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:0378d055e9e8cd6ce4d8dff683bdd3d7d413533c4ee51d67a2b1e0f9eacc0f23", size = 3475355, upload-time = "2026-06-15T15:58:36.592Z" }, + { url = "https://files.pythonhosted.org/packages/05/db/6061db32316446135a3abae5f308d144ab988a34234726042da3e58b1c63/sqlalchemy-2.0.51-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6e46fc36029eff666391e0531e5387b62ce6c4f1d8e50b3fb3099eaca1b42522", size = 3486591, upload-time = "2026-06-15T16:02:45.346Z" }, + { url = "https://files.pythonhosted.org/packages/0d/c9/f14fdf71bb8957e0c7e39db69bbdf12b5c80f4ef775fdfa127bf4e0d6760/sqlalchemy-2.0.51-cp314-cp314t-win32.whl", hash = "sha256:9161cfc9efce70d1715f47d6ff40f79c6778c00d53be4fbc09d70301e4b83ba7", size = 2151313, upload-time = "2026-06-15T16:03:39.127Z" }, + { url = "https://files.pythonhosted.org/packages/6a/c6/673e618e6f4f297e126d9b56ea2f6478708f6c1af4e3223835c22e2c3697/sqlalchemy-2.0.51-cp314-cp314t-win_amd64.whl", hash = "sha256:159bb6ba32059f57ad7375a8f50d844dd2f19d14954ecf820cd33e20debd46b2", size = 2186280, upload-time = "2026-06-15T16:03:40.569Z" }, + { url = "https://files.pythonhosted.org/packages/e2/22/dbf013a12ec759e54a34a119e9e217435b3f71b2dd5c61a7ade0a25dae87/sqlalchemy-2.0.51-py3-none-any.whl", hash = "sha256:bb024d8b621d0be75f4f44ecc7c950450026e76d66dc8f791bb5331d7fed59d5", size = 1944334, upload-time = "2026-06-15T16:09:22.418Z" }, +] + +[[package]] +name = "sqlparse" +version = "0.5.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/76/437d71068094df0726366574cf3432a4ed754217b436eb7429415cf2d480/sqlparse-0.5.5.tar.gz", hash = "sha256:e20d4a9b0b8585fdf63b10d30066c7c94c5d7a7ec47c889a2d83a3caa93ff28e", size = 120815, upload-time = "2025-12-19T07:17:45.073Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/4b/359f28a903c13438ef59ebeee215fb25da53066db67b305c125f1c6d2a25/sqlparse-0.5.5-py3-none-any.whl", hash = "sha256:12a08b3bf3eec877c519589833aed092e2444e68240a3577e8e26148acc7b1ba", size = 46138, upload-time = "2025-12-19T07:17:46.573Z" }, +] + +[[package]] +name = "stack-data" +version = "0.6.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "asttokens" }, + { name = "executing" }, + { name = "pure-eval" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/28/e3/55dcc2cfbc3ca9c29519eb6884dd1415ecb53b0e934862d3559ddcb7e20b/stack_data-0.6.3.tar.gz", hash = "sha256:836a778de4fec4dcd1dcd89ed8abff8a221f58308462e1c4aa2a3cf30148f0b9", size = 44707, upload-time = "2023-09-30T13:58:05.479Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/7b/ce1eafaf1a76852e2ec9b22edecf1daa58175c090266e9f6c64afcd81d91/stack_data-0.6.3-py3-none-any.whl", hash = "sha256:d5558e0c25a4cb0853cddad3d77da9891a08cb85dd9f9f91b9f8cd66e511e695", size = 24521, upload-time = "2023-09-30T13:58:03.53Z" }, +] + +[[package]] +name = "starlette" +version = "0.35.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "anyio" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/5e/8a/80e0343c8051e522752eaae54e96c814946ac97ae0c08b441620e3a22755/starlette-0.35.1.tar.gz", hash = "sha256:3e2639dac3520e4f58734ed22553f950d3f3cb1001cd2eaac4d57e8cdc5f66bc", size = 2840584, upload-time = "2024-01-11T19:59:00.652Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/13/c60c738da2fb69d60ee1dc5631e8d152352003cc0bc4ce39582bdd90e293/starlette-0.35.1-py3-none-any.whl", hash = "sha256:50bbbda9baa098e361f398fda0928062abbaf1f54f4fadcbe17c092a01eb9a25", size = 71076, upload-time = "2024-01-11T19:58:58.451Z" }, +] + +[[package]] +name = "structlog" +version = "24.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d1/ac/87aedb7a9ba52f645b9d29a7f48bb12a5c6b7e204b8137549fbe4754b563/structlog-24.1.0.tar.gz", hash = "sha256:41a09886e4d55df25bdcb9b5c9674bccfab723ff43e0a86a1b7b236be8e57b16", size = 1340948, upload-time = "2024-01-08T09:52:54.24Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ae/5c/c22ca8b8715dd625bbdd6bc7ec87395e29940642d8dff213fad1aa8ce84d/structlog-24.1.0-py3-none-any.whl", hash = "sha256:3f6efe7d25fab6e86f277713c218044669906537bb717c1807a09d46bca0714d", size = 65692, upload-time = "2024-01-08T09:52:50.99Z" }, +] + +[[package]] +name = "text-unidecode" +version = "1.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ab/e2/e9a00f0ccb71718418230718b3d900e71a5d16e701a3dae079a21e9cd8f8/text-unidecode-1.3.tar.gz", hash = "sha256:bad6603bb14d279193107714b288be206cac565dfa49aa5b105294dd5c4aab93", size = 76885, upload-time = "2019-08-30T21:36:45.405Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a6/a5/c0b6468d3824fe3fde30dbb5e1f687b291608f9473681bbf7dabbf5a87d7/text_unidecode-1.3-py2.py3-none-any.whl", hash = "sha256:1311f10e8b895935241623731c2ba64f4c455287888b18189350b67134a822e8", size = 78154, upload-time = "2019-08-30T21:37:03.543Z" }, +] + +[[package]] +name = "tomli" +version = "2.0.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/35/b9/de2a5c0144d7d75a57ff355c0c24054f965b2dc3036456ae03a51ea6264b/tomli-2.0.2.tar.gz", hash = "sha256:d46d457a85337051c36524bc5349dd91b1877838e2979ac5ced3e710ed8a60ed", size = 16096, upload-time = "2024-10-02T10:46:13.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/db/ce8eda256fa131af12e0a76d481711abe4681b6923c27efb9a255c9e4594/tomli-2.0.2-py3-none-any.whl", hash = "sha256:2ebe24485c53d303f690b0ec092806a085f07af5a5aa1464f3931eec36caaa38", size = 13237, upload-time = "2024-10-02T10:46:11.806Z" }, +] + +[[package]] +name = "traitlets" +version = "5.14.3" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/eb/79/72064e6a701c2183016abbbfedaba506d81e30e232a68c9f0d6f6fcd1574/traitlets-5.14.3.tar.gz", hash = "sha256:9ed0579d3502c94b4b3732ac120375cda96f923114522847de4b3bb98b96b6b7", size = 161621, upload-time = "2024-04-19T11:11:49.746Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/c0/8f5d070730d7836adc9c9b6408dec68c6ced86b304a9b26a14df072a6e8c/traitlets-5.14.3-py3-none-any.whl", hash = "sha256:b74e89e397b1ed28cc831db7aea759ba6640cb3de13090ca145426688ff1ac4f", size = 85359, upload-time = "2024-04-19T11:11:46.763Z" }, +] + +[[package]] +name = "twine" +version = "5.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata" }, + { name = "keyring" }, + { name = "pkginfo" }, + { name = "readme-renderer" }, + { name = "requests" }, + { name = "requests-toolbelt" }, + { name = "rfc3986" }, + { name = "rich" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d3/cc/8025ad5102a5c754023092143b8b511e184ec087dfbfb357d7d88fb82bff/twine-5.0.0.tar.gz", hash = "sha256:89b0cc7d370a4b66421cc6102f269aa910fe0f1861c124f573cf2ddedbc10cf4", size = 222119, upload-time = "2024-02-11T19:59:40.377Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9a/d4/4db90c4a2b8c1006ea3e6291f36b50b66e45887cf17b3b958b5d646fb837/twine-5.0.0-py3-none-any.whl", hash = "sha256:a262933de0b484c53408f9edae2e7821c1c45a3314ff2df9bdd343aa7ab8edc0", size = 37138, upload-time = "2024-02-11T19:59:38.163Z" }, +] + +[[package]] +name = "typer" +version = "0.9.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e9/7d/b1e0399aa5e27071f0042784681d28417f3e526c61f62c8e3635ee5ad334/typer-0.9.4.tar.gz", hash = "sha256:f714c2d90afae3a7929fcd72a3abb08df305e1ff61719381384211c4070af57f", size = 276061, upload-time = "2024-03-23T17:07:55.568Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/62/39/82c9d3e10979851847361d922a373bdfef4091020da7f893acfaf07c0225/typer-0.9.4-py3-none-any.whl", hash = "sha256:aa6c4a4e2329d868b80ecbaf16f807f2b54e192209d7ac9dd42691d63f7a54eb", size = 45973, upload-time = "2024-03-23T17:07:53.985Z" }, +] + +[[package]] +name = "types-python-dateutil" +version = "2.9.0.20260518" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/8d/e8/c01bdf0d7c3659428c091fbd693177093639565bcbc86bc20098e6d37cc6/types_python_dateutil-2.9.0.20260518.tar.gz", hash = "sha256:51f02dc03b61c7f6a07df45797d4dfe8a1aa47f0b7db9ad89f6fd3a1a70e1b51", size = 17082, upload-time = "2026-05-18T06:05:24.508Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/36/22/169273273ca34e9ab0ae2f387ba72ed7e09faaaf834da01d6b89c2bea71a/types_python_dateutil-2.9.0.20260518-py3-none-any.whl", hash = "sha256:d6a9c5bd0de61460c8fdef8ab2b400f956a1a1075cce08d4e2b4434e478c50b8", size = 18431, upload-time = "2026-05-18T06:05:23.641Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/f6/cc/6253133b5bb138fc3306cebfbda2c520f545d36b5be2c7255cc528bb45d6/typing_extensions-4.16.0.tar.gz", hash = "sha256:dc983d19a509c94dba722ee6abd33940f7c05a89e243c47e907eb4db6f1a43e5", size = 113555, upload-time = "2026-07-02T08:40:05.92Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/d3/b8441a820a491ddfc024b0b0cf0393375b75ea13866d9c66727e54c2fc80/typing_extensions-4.16.0-py3-none-any.whl", hash = "sha256:481caa481374e813c1b176ada14e97f1f67a4539ce9cfeb3f350d78d6370c2e8", size = 45571, upload-time = "2026-07-02T08:40:04.659Z" }, +] + +[[package]] +name = "tzdata" +version = "2026.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/19/1b9b0e29f30c6d35cb345486df41110984ea67ae69dddbc0e8a100999493/tzdata-2026.2.tar.gz", hash = "sha256:9173fde7d80d9018e02a662e168e5a2d04f87c41ea174b139fbef642eda62d10", size = 198254, upload-time = "2026-04-24T15:22:08.651Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ce/e4/dccd7f47c4b64213ac01ef921a1337ee6e30e8c6466046018326977efd95/tzdata-2026.2-py2.py3-none-any.whl", hash = "sha256:bbe9af844f658da81a5f95019480da3a89415801f6cc966806612cc7169bffe7", size = 349321, upload-time = "2026-04-24T15:22:05.876Z" }, +] + +[[package]] +name = "uritemplate" +version = "4.1.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d2/5a/4742fdba39cd02a56226815abfa72fe0aa81c33bed16ed045647d6000eba/uritemplate-4.1.1.tar.gz", hash = "sha256:4346edfc5c3b79f694bccd6d6099a322bbeb628dbf2cd86eea55a456ce5124f0", size = 273898, upload-time = "2021-10-13T11:15:14.84Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/81/c0/7461b49cd25aeece13766f02ee576d1db528f1c37ce69aee300e075b485b/uritemplate-4.1.1-py2.py3-none-any.whl", hash = "sha256:830c08b8d99bdd312ea4ead05994a38e8936266f84b9a7878232db50b044e02e", size = 10356, upload-time = "2021-10-13T11:15:12.316Z" }, +] + +[[package]] +name = "urllib3" +version = "2.7.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/53/0c/06f8b233b8fd13b9e5ee11424ef85419ba0d8ba0b3138bf360be2ff56953/urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c", size = 433602, upload-time = "2026-05-07T16:13:18.596Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/7f/3e/5db95bcf282c52709639744ca2a8b149baccf648e39c8cc87553df9eae0c/urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897", size = 131087, upload-time = "2026-05-07T16:13:17.151Z" }, +] + +[[package]] +name = "uvicorn" +version = "0.27.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "h11" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/09/d8/8aa69c76585035ca81851d99c3b00fd6be050aefd478a5376ff9fc5feb69/uvicorn-0.27.1.tar.gz", hash = "sha256:3d9a267296243532db80c83a959a3400502165ade2c1338dea4e67915fd4745a", size = 41151, upload-time = "2024-02-10T12:09:11.325Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/fd/bac111726b6c651f1fa5563145ecba5ff70d36fb140a55e0d79b60b9d65e/uvicorn-0.27.1-py3-none-any.whl", hash = "sha256:5c89da2f3895767472a35556e539fd59f7edbe9b1e9c0e1c99eebeadc61838e4", size = 60809, upload-time = "2024-02-10T12:09:08.934Z" }, +] + +[[package]] +name = "vine" +version = "5.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/bd/e4/d07b5f29d283596b9727dd5275ccbceb63c44a1a82aa9e4bfd20426762ac/vine-5.1.0.tar.gz", hash = "sha256:8b62e981d35c41049211cf62a0a1242d8c1ee9bd15bb196ce38aefd6799e61e0", size = 48980, upload-time = "2023-11-05T08:46:53.857Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/03/ff/7c0c86c43b3cbb927e0ccc0255cb4057ceba4799cd44ae95174ce8e8b5b2/vine-5.1.0-py3-none-any.whl", hash = "sha256:40fdf3c48b2cfe1c38a49e9ae2da6fda88e4794c810050a728bd7413811fb1dc", size = 9636, upload-time = "2023-11-05T08:46:51.205Z" }, +] + +[[package]] +name = "watchdog" +version = "6.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/db/7d/7f3d619e951c88ed75c6037b246ddcf2d322812ee8ea189be89511721d54/watchdog-6.0.0.tar.gz", hash = "sha256:9ddf7c82fda3ae8e24decda1338ede66e1c99883db93711d8fb941eaa2d8c282", size = 131220, upload-time = "2024-11-01T14:07:13.037Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e0/24/d9be5cd6642a6aa68352ded4b4b10fb0d7889cb7f45814fb92cecd35f101/watchdog-6.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:6eb11feb5a0d452ee41f824e271ca311a09e250441c262ca2fd7ebcf2461a06c", size = 96393, upload-time = "2024-11-01T14:06:31.756Z" }, + { url = "https://files.pythonhosted.org/packages/63/7a/6013b0d8dbc56adca7fdd4f0beed381c59f6752341b12fa0886fa7afc78b/watchdog-6.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef810fbf7b781a5a593894e4f439773830bdecb885e6880d957d5b9382a960d2", size = 88392, upload-time = "2024-11-01T14:06:32.99Z" }, + { url = "https://files.pythonhosted.org/packages/d1/40/b75381494851556de56281e053700e46bff5b37bf4c7267e858640af5a7f/watchdog-6.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:afd0fe1b2270917c5e23c2a65ce50c2a4abb63daafb0d419fde368e272a76b7c", size = 89019, upload-time = "2024-11-01T14:06:34.963Z" }, + { url = "https://files.pythonhosted.org/packages/39/ea/3930d07dafc9e286ed356a679aa02d777c06e9bfd1164fa7c19c288a5483/watchdog-6.0.0-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdd4e6f14b8b18c334febb9c4425a878a2ac20efd1e0b231978e7b150f92a948", size = 96471, upload-time = "2024-11-01T14:06:37.745Z" }, + { url = "https://files.pythonhosted.org/packages/12/87/48361531f70b1f87928b045df868a9fd4e253d9ae087fa4cf3f7113be363/watchdog-6.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c7c15dda13c4eb00d6fb6fc508b3c0ed88b9d5d374056b239c4ad1611125c860", size = 88449, upload-time = "2024-11-01T14:06:39.748Z" }, + { url = "https://files.pythonhosted.org/packages/5b/7e/8f322f5e600812e6f9a31b75d242631068ca8f4ef0582dd3ae6e72daecc8/watchdog-6.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6f10cb2d5902447c7d0da897e2c6768bca89174d0c6e1e30abec5421af97a5b0", size = 89054, upload-time = "2024-11-01T14:06:41.009Z" }, + { url = "https://files.pythonhosted.org/packages/68/98/b0345cabdce2041a01293ba483333582891a3bd5769b08eceb0d406056ef/watchdog-6.0.0-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:490ab2ef84f11129844c23fb14ecf30ef3d8a6abafd3754a6f75ca1e6654136c", size = 96480, upload-time = "2024-11-01T14:06:42.952Z" }, + { url = "https://files.pythonhosted.org/packages/85/83/cdf13902c626b28eedef7ec4f10745c52aad8a8fe7eb04ed7b1f111ca20e/watchdog-6.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:76aae96b00ae814b181bb25b1b98076d5fc84e8a53cd8885a318b42b6d3a5134", size = 88451, upload-time = "2024-11-01T14:06:45.084Z" }, + { url = "https://files.pythonhosted.org/packages/fe/c4/225c87bae08c8b9ec99030cd48ae9c4eca050a59bf5c2255853e18c87b50/watchdog-6.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a175f755fc2279e0b7312c0035d52e27211a5bc39719dd529625b1930917345b", size = 89057, upload-time = "2024-11-01T14:06:47.324Z" }, + { url = "https://files.pythonhosted.org/packages/a9/c7/ca4bf3e518cb57a686b2feb4f55a1892fd9a3dd13f470fca14e00f80ea36/watchdog-6.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:7607498efa04a3542ae3e05e64da8202e58159aa1fa4acddf7678d34a35d4f13", size = 79079, upload-time = "2024-11-01T14:06:59.472Z" }, + { url = "https://files.pythonhosted.org/packages/5c/51/d46dc9332f9a647593c947b4b88e2381c8dfc0942d15b8edc0310fa4abb1/watchdog-6.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:9041567ee8953024c83343288ccc458fd0a2d811d6a0fd68c4c22609e3490379", size = 79078, upload-time = "2024-11-01T14:07:01.431Z" }, + { url = "https://files.pythonhosted.org/packages/d4/57/04edbf5e169cd318d5f07b4766fee38e825d64b6913ca157ca32d1a42267/watchdog-6.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:82dc3e3143c7e38ec49d61af98d6558288c415eac98486a5c581726e0737c00e", size = 79076, upload-time = "2024-11-01T14:07:02.568Z" }, + { url = "https://files.pythonhosted.org/packages/ab/cc/da8422b300e13cb187d2203f20b9253e91058aaf7db65b74142013478e66/watchdog-6.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:212ac9b8bf1161dc91bd09c048048a95ca3a4c4f5e5d4a7d1b1a7d5752a7f96f", size = 79077, upload-time = "2024-11-01T14:07:03.893Z" }, + { url = "https://files.pythonhosted.org/packages/2c/3b/b8964e04ae1a025c44ba8e4291f86e97fac443bca31de8bd98d3263d2fcf/watchdog-6.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:e3df4cbb9a450c6d49318f6d14f4bbc80d763fa587ba46ec86f99f9e6876bb26", size = 79078, upload-time = "2024-11-01T14:07:05.189Z" }, + { url = "https://files.pythonhosted.org/packages/62/ae/a696eb424bedff7407801c257d4b1afda455fe40821a2be430e173660e81/watchdog-6.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:2cce7cfc2008eb51feb6aab51251fd79b85d9894e98ba847408f662b3395ca3c", size = 79077, upload-time = "2024-11-01T14:07:06.376Z" }, + { url = "https://files.pythonhosted.org/packages/b5/e8/dbf020b4d98251a9860752a094d09a65e1b436ad181faf929983f697048f/watchdog-6.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:20ffe5b202af80ab4266dcd3e91aae72bf2da48c0d33bdb15c66658e685e94e2", size = 79078, upload-time = "2024-11-01T14:07:07.547Z" }, + { url = "https://files.pythonhosted.org/packages/07/f6/d0e5b343768e8bcb4cda79f0f2f55051bf26177ecd5651f84c07567461cf/watchdog-6.0.0-py3-none-win32.whl", hash = "sha256:07df1fdd701c5d4c8e55ef6cf55b8f0120fe1aef7ef39a1c6fc6bc2e606d517a", size = 79065, upload-time = "2024-11-01T14:07:09.525Z" }, + { url = "https://files.pythonhosted.org/packages/db/d9/c495884c6e548fce18a8f40568ff120bc3a4b7b99813081c8ac0c936fa64/watchdog-6.0.0-py3-none-win_amd64.whl", hash = "sha256:cbafb470cf848d93b5d013e2ecb245d4aa1c8fd0504e863ccefa32445359d680", size = 79070, upload-time = "2024-11-01T14:07:10.686Z" }, + { url = "https://files.pythonhosted.org/packages/33/e8/e40370e6d74ddba47f002a32919d91310d6074130fe4e17dabcafc15cbf1/watchdog-6.0.0-py3-none-win_ia64.whl", hash = "sha256:a1914259fa9e1454315171103c6a30961236f508b9b623eae470268bbcc6a22f", size = 79067, upload-time = "2024-11-01T14:07:11.845Z" }, +] + +[[package]] +name = "wcwidth" +version = "0.8.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/74/c6428f875774288bec1396f5bfcbc2d925700a4dad61727fd5f2b12f249d/wcwidth-0.8.2.tar.gz", hash = "sha256:91fbef97204b96a3d4d421609b80340b760cf33e26da123ff243d76b1fda8dda", size = 1466253, upload-time = "2026-06-29T18:11:11.601Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/42/3e5985a0a7e57de470b320c6d6a1a67c844f6737a587f3d44dd13d1819e7/wcwidth-0.8.2-py3-none-any.whl", hash = "sha256:d63947694a0539a1d51e01eda7caf800c291020e6cdd7e28ad7b14dd33ad4f85", size = 323166, upload-time = "2026-06-29T18:11:09.888Z" }, +] + +[[package]] +name = "webargs" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "marshmallow" }, + { name = "packaging" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/c3/68/ef9359442cf2d5479fb4ea711fdea739de18ca0601e49bc43e5dba06dbe0/webargs-8.4.0.tar.gz", hash = "sha256:ea99368214a4ce613924be99d71db58c269631e95eff4fa09b7354e52dc006a5", size = 67555, upload-time = "2024-01-07T22:59:27.611Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ad/52/9de0e7cc7dfa1352f5923549c06b8126fede748e6c07ecb37bc7c53331d3/webargs-8.4.0-py3-none-any.whl", hash = "sha256:22324305fbca6a2c4cce1235280e8b56372fb3211a8dac2ac8ed1948315a6f53", size = 31597, upload-time = "2024-01-07T22:59:24.801Z" }, +] + +[[package]] +name = "webencodings" +version = "0.5.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/0b/02/ae6ceac1baeda530866a85075641cec12989bd8d31af6d5ab4a3e8c92f47/webencodings-0.5.1.tar.gz", hash = "sha256:b36a1c245f2d304965eb4e0a82848379241dc04b865afcc4aab16748587e1923", size = 9721, upload-time = "2017-04-05T20:21:34.189Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/24/2a3e3df732393fed8b3ebf2ec078f05546de641fe1b667ee316ec1dcf3b7/webencodings-0.5.1-py2.py3-none-any.whl", hash = "sha256:a0af1213f3c2226497a97e2b3aa01a7e4bee4f403f95be16fc9acd2947514a78", size = 11774, upload-time = "2017-04-05T20:21:32.581Z" }, +] + +[[package]] +name = "werkzeug" +version = "3.0.6" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d4/f9/0ba83eaa0df9b9e9d1efeb2ea351d0677c37d41ee5d0f91e98423c7281c9/werkzeug-3.0.6.tar.gz", hash = "sha256:a8dd59d4de28ca70471a34cba79bed5f7ef2e036a76b3ab0835474246eb41f8d", size = 805170, upload-time = "2024-10-25T18:52:31.688Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/6c/69/05837f91dfe42109203ffa3e488214ff86a6d68b2ed6c167da6cdc42349b/werkzeug-3.0.6-py3-none-any.whl", hash = "sha256:1bc0c2310d2fbb07b1dd1105eba2f7af72f322e1e455f2f93c993bee8c8a5f17", size = 227979, upload-time = "2024-10-25T18:52:30.129Z" }, +] + +[[package]] +name = "wrapt" +version = "2.2.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/fe/a4/282c8e64300a59fc834518a54bf0afabb4ff9218b5fa76958b450459a844/wrapt-2.2.2.tar.gz", hash = "sha256:0788e321027c999bf221b667bd4a54aaefd1a36283749a860ac3eb77daed0302", size = 129068, upload-time = "2026-06-20T23:49:44.49Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/27/15/0c2d55168707465abfc41f33c0b23d792a5fa9b65c26983606940900a120/wrapt-2.2.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f1a2ff355ece6a111ca7a20dc86df6659c9205d3fcee674ca34f2a2854fd4e73", size = 80782, upload-time = "2026-06-20T23:47:44.367Z" }, + { url = "https://files.pythonhosted.org/packages/7d/b5/5c0b093eb48f8a062ef6267d3cb36e9bb1b88440181f6545a383c60efdf8/wrapt-2.2.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:55b9a899e6fff5444f229d30aa6e9ac92d2216d9d60f33c771b5d76a760d5f8e", size = 81678, upload-time = "2026-06-20T23:47:45.857Z" }, + { url = "https://files.pythonhosted.org/packages/34/f3/de70937472dd3e8a4e6811192f9c6075efdffd4a2cd9b4596bf160f89668/wrapt-2.2.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:a2d78c363f97d8bd718ee40432c66395685e9e98528ccaa423c3355d1715a26d", size = 159671, upload-time = "2026-06-20T23:47:47.345Z" }, + { url = "https://files.pythonhosted.org/packages/a5/ec/40aed2330e7f02ecf74386ffcfef9ccb7108c6a430f15b6a252b663b1bed/wrapt-2.2.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:d619e1eed9bd4f6ed9f24cd61971aa086fa86505289628d464bcf8a2c2e3f328", size = 160785, upload-time = "2026-06-20T23:47:48.759Z" }, + { url = "https://files.pythonhosted.org/packages/45/04/aa5309beed5344b00220ae6b3b24055852192656194c27947bee1736306a/wrapt-2.2.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:518b0c5e323511ec56a38894802ddd5e1222626484e68efe63f201854ad788e5", size = 153699, upload-time = "2026-06-20T23:47:50.177Z" }, + { url = "https://files.pythonhosted.org/packages/01/df/2def7e99d1fe87eea413f95f671924cdddcb08823b1ffd212748dfa6d062/wrapt-2.2.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:4bccea5cdecffa9dd70e343741f0e41e0a16619313d04b72f78bb525162ebcd0", size = 159695, upload-time = "2026-06-20T23:47:51.602Z" }, + { url = "https://files.pythonhosted.org/packages/c7/f6/a906d01a2ce12157bad2404957b3e2140da354b8a70b2fa48bbf282871c0/wrapt-2.2.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:209112cafd963710a05d199aae431d79a28bc76eb8e6d1bbbb8ad24340722cae", size = 152813, upload-time = "2026-06-20T23:47:53.03Z" }, + { url = "https://files.pythonhosted.org/packages/02/49/bc0086292d239575b4c08f4cf8a4079fa58abbad58ec23abf84833a283ed/wrapt-2.2.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e5a5290e4bf2f332fc29ce72ffb9a2fff678aaac047e2e9f5f7165cd7792e099", size = 158809, upload-time = "2026-06-20T23:47:54.391Z" }, + { url = "https://files.pythonhosted.org/packages/55/83/8fbd034de1f3e907edaa18786d5dd8f6932874edee0826c7cecb5cab03a1/wrapt-2.2.2-cp311-cp311-win32.whl", hash = "sha256:5499236ad1dc116012e2a5dd943f3f31af12fce452128e2bbcbd55a7d3d4d14c", size = 77414, upload-time = "2026-06-20T23:47:55.882Z" }, + { url = "https://files.pythonhosted.org/packages/7e/9c/23695baa331c6de4e874c3d78b8e0bed92e1d2a274e665b29858f6841672/wrapt-2.2.2-cp311-cp311-win_amd64.whl", hash = "sha256:8636809939152be6ae20a6cef0fed9fe60f411b47847d0426a826884b469e971", size = 80368, upload-time = "2026-06-20T23:47:57.237Z" }, + { url = "https://files.pythonhosted.org/packages/08/49/40cefc342bf89b234a4490d741290fce781774b831aefb39c25471da96c9/wrapt-2.2.2-cp311-cp311-win_arm64.whl", hash = "sha256:5d0a142f7af07caeb5e5da87493162a7b8efa19ba919e550a746f7446e13fb30", size = 79489, upload-time = "2026-06-20T23:47:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/2a/85/180b40628b23772692a0c76e8030114e1c0ae068470ed531919f0a5f2a4a/wrapt-2.2.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:8417fd3c674d3c8023d080292d29301531a12daf8bd938dd419710dd2f464f2b", size = 81484, upload-time = "2026-06-20T23:47:59.924Z" }, + { url = "https://files.pythonhosted.org/packages/94/f2/21c90f2a16689702e2aaff45795b11018dff2c9b1242bac10d225483f676/wrapt-2.2.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0e7070c7472582e31af3dfc2622b2381a0df7435110a9388ed8db5ffbce67efb", size = 82151, upload-time = "2026-06-20T23:48:01.303Z" }, + { url = "https://files.pythonhosted.org/packages/5f/b3/7e6e9fcf4fe7e1b69a49fe6cc5a44e8224bab6283c5233c97e132f14908e/wrapt-2.2.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2e096c9d39a59b35b63c9aacfbbbec2088ff51ff1fc31051acc60a07f42f273a", size = 169828, upload-time = "2026-06-20T23:48:02.719Z" }, + { url = "https://files.pythonhosted.org/packages/0b/43/894f132d857ed5a9904d937baf368badcbe5ea9e436e2f1930fe21c9f1f0/wrapt-2.2.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6d1a6050405bf334be33bf66296f113563622972a34900ae6fa60fd283a1a900", size = 171544, upload-time = "2026-06-20T23:48:04.266Z" }, + { url = "https://files.pythonhosted.org/packages/29/de/3c833e03725b477e9ea34028224dd21a48781830101e4e036f77e8b6b102/wrapt-2.2.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:10adb01371408c6de504a6658b9886480f1a4919a83752748a387a504a21df79", size = 160663, upload-time = "2026-06-20T23:48:05.708Z" }, + { url = "https://files.pythonhosted.org/packages/33/be/27edce350b24e3054d9d047f65f16d4c4d4c1f3f31c4278a1f8a95c723c8/wrapt-2.2.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3442eee2a5798f9b451f1b2cd7518ce8b7e28a2a364696c414460a0e295c012a", size = 169387, upload-time = "2026-06-20T23:48:07.243Z" }, + { url = "https://files.pythonhosted.org/packages/e2/c4/9fd9679af8bf38e146652c7f47b6b352c3e5795b4ad1c0b7f94e15ac2aa7/wrapt-2.2.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6c99012a22f735a85eed7c4b86a3e99c30fdd57d9e115b2b45f796264b58d0bf", size = 158849, upload-time = "2026-06-20T23:48:08.91Z" }, + { url = "https://files.pythonhosted.org/packages/bc/c2/aa6c0c2206803068c6859dabe01f8c84c43744da93d4c67b8946d21655ee/wrapt-2.2.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:3b686cfc008776a3952d6213cb296ed7f45d782a8453936406faa89eac0835ab", size = 168147, upload-time = "2026-06-20T23:48:10.374Z" }, + { url = "https://files.pythonhosted.org/packages/42/63/3eb25da41049d20ae18fcab2dd8b056e02387c4bfa626cbdfb7c3b872e4f/wrapt-2.2.2-cp312-cp312-win32.whl", hash = "sha256:ef2cce266b5b0b07e19fa82e59673b81142b7a3607c8ed1254113d048ed668da", size = 77734, upload-time = "2026-06-20T23:48:11.769Z" }, + { url = "https://files.pythonhosted.org/packages/da/09/0390e008a305360948fa9ce69507d041ac12cb2ee5d28e34467e2ee79391/wrapt-2.2.2-cp312-cp312-win_amd64.whl", hash = "sha256:abf8c20a2d72ee69e16328b3c91342c446e723bfe48bfcc4dded3b9722ac027f", size = 80585, upload-time = "2026-06-20T23:48:13.117Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b3/84c445c66969f2d3457276b183a48c91097d59bbef9af6c075366b0f8c36/wrapt-2.2.2-cp312-cp312-win_arm64.whl", hash = "sha256:c6c64c5d02578bc4c4bca4f0aef1504de933c1d5b4ac2710b9131111459506c8", size = 79553, upload-time = "2026-06-20T23:48:14.5Z" }, + { url = "https://files.pythonhosted.org/packages/43/fc/f32f4b22c6511173c11d9e541ab4e7d8467a0f1b3455acaf784115d31ff8/wrapt-2.2.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9e8b648270c613720a202d9a45ebabc33261b22c3a839b115ac5bce8c0bb0d69", size = 81296, upload-time = "2026-06-20T23:48:15.881Z" }, + { url = "https://files.pythonhosted.org/packages/72/06/4d117d5d77a9344776c0248b24dae3d3dd2f58e5f765fa08cf887072e719/wrapt-2.2.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:e6fb7e94e8fe3e4c3067bb1653a91cce7c5e83acc119fdd41501b1bf74654617", size = 81841, upload-time = "2026-06-20T23:48:17.262Z" }, + { url = "https://files.pythonhosted.org/packages/15/ff/63ad96f98eb58a742b1a20d80f21da88924405910149950b912368150468/wrapt-2.2.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:fb18fc51e813df0d9c98049e3bf2298a5495a648602040e21fa3c7329371159e", size = 167882, upload-time = "2026-06-20T23:48:18.764Z" }, + { url = "https://files.pythonhosted.org/packages/20/1f/8bb62d8933df7acf3247194e6e9fc68edf9d2fa203252c89c94b319dd472/wrapt-2.2.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:94b00b00f806eb3ef2abe9049ed45994a81ee9284884d96e6b8314927c6cea3d", size = 167411, upload-time = "2026-06-20T23:48:20.315Z" }, + { url = "https://files.pythonhosted.org/packages/17/09/8789dcb09ee1de715727db7521aabbb68ffa68dfade3a49468440cfced49/wrapt-2.2.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:62415fd095bc590b842b6d092f2b5d9ccbaeb7e0b28535c03dcea2718b48636b", size = 158607, upload-time = "2026-06-20T23:48:21.728Z" }, + { url = "https://files.pythonhosted.org/packages/9c/20/66e02562d53ee67d841f175e38e3c993c2d78a3e104c576cad61c028b43c/wrapt-2.2.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a41e758d80dc0ab8c210f641ac892009d356cf1f955d97db544c8dd317b4d14c", size = 166367, upload-time = "2026-06-20T23:48:23.177Z" }, + { url = "https://files.pythonhosted.org/packages/bd/a3/832ac4e41222fb263b3042d42c2f08d305db7d0f0c9b1d3a271a9eede8f6/wrapt-2.2.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:b84cd4058001c9727b0e9980b7a9e66325b5ca748b1b578e822cade1bc6b304f", size = 157176, upload-time = "2026-06-20T23:48:24.711Z" }, + { url = "https://files.pythonhosted.org/packages/b7/01/1bd5e4d2df9c0178989ac8da9186543465388588ee2ef153e2591accebef/wrapt-2.2.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:26fc73a1b15e0946d2942b9a4426d162b51676338327dc067ccd8d2d76385f94", size = 167025, upload-time = "2026-06-20T23:48:26.118Z" }, + { url = "https://files.pythonhosted.org/packages/1c/69/583ed25291ab53e1ec117135fb1c33425e2f46d2bc8f29c17f7a94cf4274/wrapt-2.2.2-cp313-cp313-win32.whl", hash = "sha256:3c4095803491f6ef72128914c28ec05bbad9758433bb35f6715a3e9c8e46fb2d", size = 77605, upload-time = "2026-06-20T23:48:27.643Z" }, + { url = "https://files.pythonhosted.org/packages/29/68/e69fc6d06e1523c68e0d00f95c9aed1158ce9908ee41603f7f2eae3d5db6/wrapt-2.2.2-cp313-cp313-win_amd64.whl", hash = "sha256:2cb07f414fab25dbe6b5c7398e1491423a5c81a6209533639969a6c928d474a4", size = 80508, upload-time = "2026-06-20T23:48:29.013Z" }, + { url = "https://files.pythonhosted.org/packages/55/21/fe7a393d9e5dc0923bed8f5d857e9dcff210f1fa0888c02cc8f3ffaa55aa/wrapt-2.2.2-cp313-cp313-win_arm64.whl", hash = "sha256:1fc7691f070220215cccb2a20836b9adbaecb8ff22ad47abe63de5f110994fac", size = 79565, upload-time = "2026-06-20T23:48:30.429Z" }, + { url = "https://files.pythonhosted.org/packages/b6/e5/c120d13bf5091164f68c3c1657e84f16f57e71d978421b626393ac5bd7eb/wrapt-2.2.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:ec8f83949028366531383603139403cac7a826e4011955813cdd640017845ce5", size = 83264, upload-time = "2026-06-20T23:48:31.807Z" }, + { url = "https://files.pythonhosted.org/packages/d3/b0/d4a1eb97e0e286625bdf21bc7f702637f9607787ffbbdb5ec14d50c79dbf/wrapt-2.2.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:4b481fb0c40d9fd90a5809911208da700987d373a20a4709dc9e3944af7a6bec", size = 83791, upload-time = "2026-06-20T23:48:33.482Z" }, + { url = "https://files.pythonhosted.org/packages/18/1e/f060df47755e87b57684cee7bfc1362b204df55fac96ffebc0631b697b79/wrapt-2.2.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0065a3b657cec06813b4241d2462ccec287f6863103d7445b725fb3a889736f9", size = 203399, upload-time = "2026-06-20T23:48:34.97Z" }, + { url = "https://files.pythonhosted.org/packages/c4/de/2316a757a1abb6453700b79d83e532146dcef2611348282d4d8889792161/wrapt-2.2.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:30f7424af5c5c345b7f26490e097f74a2ef45b3d08b664dc33571aee3bd3b56c", size = 210461, upload-time = "2026-06-20T23:48:36.569Z" }, + { url = "https://files.pythonhosted.org/packages/ed/29/d1160785ae18ca2495a6d82a21154103d74f656c9fd457fb35f6b11b965a/wrapt-2.2.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:07fdcb012821859168641acf68afad61ef9783cf37100af85f152550e9677194", size = 195313, upload-time = "2026-06-20T23:48:38.175Z" }, + { url = "https://files.pythonhosted.org/packages/f5/2d/7caa9598ae61a9cf0989cc501739cbeeb7d650ab3193cca1407b9af0c6ab/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:f90038ab58fafb584801ca62d72384d7d5225d93c76f7b773c22fae545bd8066", size = 206116, upload-time = "2026-06-20T23:48:39.804Z" }, + { url = "https://files.pythonhosted.org/packages/ac/02/281ea1088b8650d865f311b35cf86fd21df89128e2909714f1161e01c9d0/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:c5d7825491bfa2d08b97e9557768987952c7b9ae687d06c3320b40a37ccb7f20", size = 192668, upload-time = "2026-06-20T23:48:41.346Z" }, + { url = "https://files.pythonhosted.org/packages/be/7d/976e2d5b4b5c5babda40974edd54d0a5585cb60132ed86b46f4b80239b16/wrapt-2.2.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:0ad520e6daa9bbf136f14de735474dbec7dcc0891f718e1d274ce8dc92e645af", size = 198891, upload-time = "2026-06-20T23:48:43.056Z" }, + { url = "https://files.pythonhosted.org/packages/59/b7/e47651797c097f75a37e2ce86dcf04048ff576f3a674f7c558df7b5e9622/wrapt-2.2.2-cp313-cp313t-win32.whl", hash = "sha256:25904acb9475f46c24fe0423dbc8fda8cc5fbc282ab3dc6e72e919748c53f4e9", size = 78537, upload-time = "2026-06-20T23:48:44.509Z" }, + { url = "https://files.pythonhosted.org/packages/d1/6f/9fa5d59fb06d890defb5a8f727ce6a14d2932c8760153f96956628559fee/wrapt-2.2.2-cp313-cp313t-win_amd64.whl", hash = "sha256:305d4c247d61c4115794a169141823c62f719525ddb90b23aa332741c77d2c28", size = 82005, upload-time = "2026-06-20T23:48:46.391Z" }, + { url = "https://files.pythonhosted.org/packages/15/80/4c7bd9873d1f9f7d138d93556b500469dbe24f42710b877519c2b9eb380d/wrapt-2.2.2-cp313-cp313t-win_arm64.whl", hash = "sha256:c20279cd1a29800815d7b2d6338b60a6c6e78263f9d6e62e0eda251ba9cae2d0", size = 80762, upload-time = "2026-06-20T23:48:47.964Z" }, + { url = "https://files.pythonhosted.org/packages/24/05/7fd9c3f83b2c74cbfc572a0b88aa37431e04bd8aed70d2c0efd3464206de/wrapt-2.2.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:0e64826f920c42d9d9f87e8cc09ffae66c51ede12d59061a5a426deb9aa71745", size = 81341, upload-time = "2026-06-20T23:48:49.39Z" }, + { url = "https://files.pythonhosted.org/packages/4b/68/1bfa43100dd90d4ef74a05897b86275cf57e1313ca14aae2545bc9f872c9/wrapt-2.2.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:dcaa5e1451bd8751d7bd1568dfa3321c78092a52a7ecb5d1a0f18a5791e1fd00", size = 81921, upload-time = "2026-06-20T23:48:50.986Z" }, + { url = "https://files.pythonhosted.org/packages/74/eb/df7b7f0b631dbbc750f39be27d8b55f65777d8ac86da80e12be41a644c4b/wrapt-2.2.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:0abfd648dac9ac9c5b3aa9b523d27f1789046640b58dcd5652a720ddb325e1fc", size = 167713, upload-time = "2026-06-20T23:48:52.598Z" }, + { url = "https://files.pythonhosted.org/packages/4d/9a/d1bd36f6d088c8e652a9383cabbd49af30b8c576302a7eccddbab6963e3f/wrapt-2.2.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f4bfd8d1eb438153eff8b8cfe87f032ba65731e1ce06138b5090f745a33f6f95", size = 166779, upload-time = "2026-06-20T23:48:54.33Z" }, + { url = "https://files.pythonhosted.org/packages/4c/ae/24ffacd4187fac2740a1972093929e836dea092d42c87d728cd98fee11a6/wrapt-2.2.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c427c9d06d859848a69f0d928fe28b5c33a941b2265d10a0e1f15cd244f1ee33", size = 158407, upload-time = "2026-06-20T23:48:55.944Z" }, + { url = "https://files.pythonhosted.org/packages/a3/ed/974427668249a356051e8d67d47fa54ef6c777f0fcf3bae9d292c047d4b6/wrapt-2.2.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:4250b43d1a129d947e083c4dc6baf333c9bb34edd26f912d5b0457841fc858ab", size = 166594, upload-time = "2026-06-20T23:48:57.617Z" }, + { url = "https://files.pythonhosted.org/packages/fb/5f/e1d7c6e4523f78db2fbd7826babd0348da1d5e0834c4f918b9ab5757dfae/wrapt-2.2.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:173e5bb5ca350a6e0abab60b7ec7cdd7992a814cb14b4de670a28f067f105663", size = 157068, upload-time = "2026-06-20T23:48:59.171Z" }, + { url = "https://files.pythonhosted.org/packages/1e/c1/7ebd1027f00700c0b0233b20aceef2b4784294ed64971424c4a78e069e34/wrapt-2.2.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:aa14b01804bce36c6d63d7b6a4f55df390f29f8648cc13a1f40b166f4d54680d", size = 166470, upload-time = "2026-06-20T23:49:00.737Z" }, + { url = "https://files.pythonhosted.org/packages/99/eb/974e471a6a978b8180186b8a9dc5ae3361ce269a967190b709b8ce17abfb/wrapt-2.2.2-cp314-cp314-win32.whl", hash = "sha256:58f9f8d637c9a6e245c6ef5b109b67ec187d2faed23d1405656b51d96e0a5b56", size = 78062, upload-time = "2026-06-20T23:49:02.327Z" }, + { url = "https://files.pythonhosted.org/packages/49/ec/e1281156cdc7a66693838ad7a0865ad641c74abd337a957d668b575aaffb/wrapt-2.2.2-cp314-cp314-win_amd64.whl", hash = "sha256:385cb1866f20479e83299af585375bfa0a4b0c6c9907a981483ea782ea8ae406", size = 80832, upload-time = "2026-06-20T23:49:03.837Z" }, + { url = "https://files.pythonhosted.org/packages/45/7d/1b6b5ddd94005a2dac97a4490c9838f3154977850d633abcb65b30089437/wrapt-2.2.2-cp314-cp314-win_arm64.whl", hash = "sha256:8ffbeaea6771a6eba6e6eeb09767864995726bc8240bb54baf88a9bb1db34d5c", size = 80029, upload-time = "2026-06-20T23:49:05.237Z" }, + { url = "https://files.pythonhosted.org/packages/b0/33/9ebcf8aafe91c601127cbd93708c16aa8f688f34a10bf004046803ecdc4f/wrapt-2.2.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:09f811d43f6f33ec7515f0be76b159569f4057ab54d3e079c3204dddb90afa2a", size = 83357, upload-time = "2026-06-20T23:49:06.632Z" }, + { url = "https://files.pythonhosted.org/packages/39/38/ec45b635153327b52e52732a0ea980e5f00b7efba65f9e018828f1e69daa/wrapt-2.2.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:a795d3c06e5fbf9ea2f13196180b77aeab1b4685917256ee0d014cc163d90063", size = 83794, upload-time = "2026-06-20T23:49:08.098Z" }, + { url = "https://files.pythonhosted.org/packages/4e/ea/1a89e6d3b7a83c3affe5c09cde77792c947e63e4bc85ad84cd5bb9abb0d8/wrapt-2.2.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:45c2f2768e790c9f8db90f239ef23a2af8e7570f25a35619ef902df4a738447f", size = 203362, upload-time = "2026-06-20T23:49:09.811Z" }, + { url = "https://files.pythonhosted.org/packages/19/d8/3b58763d9863b5a73771c0d97110f9595d248db454009e07e1535ee905a4/wrapt-2.2.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:bbf00ee0cb55ec24e2b0995a71942b85b21a066db8f3f46e1dbfdb9433ffba81", size = 210449, upload-time = "2026-06-20T23:49:11.521Z" }, + { url = "https://files.pythonhosted.org/packages/2d/6f/17fd9e053103d8be148d20d5d7505facc72d5fe1f9127973904ceaed79cf/wrapt-2.2.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:2252f77663651b89255895f58cc6ac08fcb206d4371813e5af61bb62d4f7689c", size = 195349, upload-time = "2026-06-20T23:49:13.346Z" }, + { url = "https://files.pythonhosted.org/packages/ef/04/d0d1ccaaa12cb7dccf28a23f0279a608ba498f71e81d949d5ed54bcfd5c1/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:2cd7181ab1c31192ff5219269830744b5a62020b3a6d433588c4f1c95b8f8bff", size = 206099, upload-time = "2026-06-20T23:49:15.051Z" }, + { url = "https://files.pythonhosted.org/packages/44/b3/e8aa07b619890a2aa6cde1931b1887abb08820721b564a5f80b7ca3f3aa0/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:6fe35fd51b74867d8b80174c277bd6bbf6a73e443f908129dc531c4b688a20d5", size = 192728, upload-time = "2026-06-20T23:49:16.854Z" }, + { url = "https://files.pythonhosted.org/packages/b7/f0/1819fb50f0d3c9bd758d8a83b56f1b470dee8b5b8eac8702b7c137cea9d4/wrapt-2.2.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:11d95fc2fbad3163596c39d440e6f21ca9fccece74b56e30a37ac2fca786a07c", size = 198842, upload-time = "2026-06-20T23:49:18.504Z" }, + { url = "https://files.pythonhosted.org/packages/67/7c/e88313f16a99930b899ef970d91c281544a470749a359decad994483bbda/wrapt-2.2.2-cp314-cp314t-win32.whl", hash = "sha256:d8a15813215f33fa83667bfc978b300e35669ea8bb424e970a1426bcb7bc6cca", size = 79059, upload-time = "2026-06-20T23:49:20.107Z" }, + { url = "https://files.pythonhosted.org/packages/a0/4f/ac12fda57a55068a094ec42851fb0a40e8489d8941863d517452de62e507/wrapt-2.2.2-cp314-cp314t-win_amd64.whl", hash = "sha256:d09db0f7e8357060d3c38fc22a018aba683a796bf184360fd1a58f6fc180dc77", size = 82462, upload-time = "2026-06-20T23:49:21.631Z" }, + { url = "https://files.pythonhosted.org/packages/48/a7/df732dac86d9b2027c56bd163dbc883e037b16c3469614752e148d219c61/wrapt-2.2.2-cp314-cp314t-win_arm64.whl", hash = "sha256:f32fe639c39561ccc187bcae17e9271be0eb45f1c2952510d2f29b33ab577347", size = 81182, upload-time = "2026-06-20T23:49:23.199Z" }, + { url = "https://files.pythonhosted.org/packages/6e/d2/6317eb6d4554855bbf12d61857774af34747bf88a42c19bf306de67e2fa3/wrapt-2.2.2-py3-none-any.whl", hash = "sha256:5bad217350f19ce99ca5b5e71d406765ea86fe541628426772b657375ee1c048", size = 61460, upload-time = "2026-06-20T23:49:42.966Z" }, +] + +[[package]] +name = "wtforms" +version = "3.1.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/6a/c7/96d10183c3470f1836846f7b9527d6cb0b6c2226ebca40f36fa29f23de60/wtforms-3.1.2.tar.gz", hash = "sha256:f8d76180d7239c94c6322f7990ae1216dae3659b7aa1cee94b6318bdffb474b9", size = 134705, upload-time = "2024-01-06T07:52:41.075Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/19/c3232f35e24dccfad372e9f341c4f3a1166ae7c66e4e1351a9467c921cc1/wtforms-3.1.2-py3-none-any.whl", hash = "sha256:bf831c042829c8cdbad74c27575098d541d039b1faa74c771545ecac916f2c07", size = 145961, upload-time = "2024-01-06T07:52:43.023Z" }, +] + +[[package]] +name = "yarl" +version = "1.24.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "idna" }, + { name = "multidict" }, + { name = "propcache" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/79/12/1e8f37460ea0f7eb59c221fdaf0ed75e7ac43e97f8093b9c6f411df50a78/yarl-1.24.2.tar.gz", hash = "sha256:9ac374123c6fd7abf64d1fec93962b0bd4ee2c19751755a762a72dd96c0378f8", size = 210798, upload-time = "2026-05-19T21:31:05.599Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/c5/c5/1ce244152ff2839645e7cae92f90e7bafcb2c52bea7ff586ac714f14f5df/yarl-1.24.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:36348bebb147b83818b9d7e673ea4debc75970afc6ffdc7e3975ad05ce5a58c1", size = 128971, upload-time = "2026-05-19T21:28:20.543Z" }, + { url = "https://files.pythonhosted.org/packages/87/5a/00f36967203ed89cb3acd2c8ed526cc3fed9418eb70ce128160a911c8499/yarl-1.24.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1a97e42c8a2233f2f279ecadd9e4a037bcb5d813b78435e8eedd4db5a9e9708c", size = 91507, upload-time = "2026-05-19T21:28:22.556Z" }, + { url = "https://files.pythonhosted.org/packages/31/d0/1fb0c1cd27288f39f6974da4318c32768d72c9890984541fdf1e2e32a51d/yarl-1.24.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:8d027d56f1035e339d1001ac33eceab5b2ec8e42e449787bb75e289fb9a5cd1d", size = 91343, upload-time = "2026-05-19T21:28:24.092Z" }, + { url = "https://files.pythonhosted.org/packages/03/ce/d4a646508bed2f8dec6435b40166fe9308dd191262033d3f307b2bbcaecd/yarl-1.24.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0a6377060e7927187a42b7eb202090cbe2b34933a4eeaf90e3bd9e33432e5cae", size = 105704, upload-time = "2026-05-19T21:28:25.872Z" }, + { url = "https://files.pythonhosted.org/packages/4b/07/b3278e82d8bc41485bcf6d856cd0433262593de615b1d3dc43bd3f5bead4/yarl-1.24.2-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:17076578bce0049a5ce57d14ad1bded391b68a3b213e9b81b0097b090244999a", size = 97281, upload-time = "2026-05-19T21:28:27.352Z" }, + { url = "https://files.pythonhosted.org/packages/17/5b/4cee6e7c92e487bebe7afc797da0aa54a248ab4e776a68fe369ec29665a5/yarl-1.24.2-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:50713f1d4d6be6375bb178bb43d140ee1acb8abe589cd723320b7925a275be1e", size = 114020, upload-time = "2026-05-19T21:28:29.458Z" }, + { url = "https://files.pythonhosted.org/packages/5c/82/111076571545a7d4f9cca3fbd5c6f40615af58642be09f12328f48022468/yarl-1.24.2-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:34263e2fa8fb5bb63a0d97706cda38edbad62fddb58c7f12d6acbc092812aa50", size = 111450, upload-time = "2026-05-19T21:28:31.262Z" }, + { url = "https://files.pythonhosted.org/packages/b6/ec/08f671f69a444d704aeecebf92af659b67b97a869942411d0a578b08c334/yarl-1.24.2-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:49016d82f032b1bd1e10b01078a7d29ae71bf468eeae0ea22df8bab691e60003", size = 106384, upload-time = "2026-05-19T21:28:32.856Z" }, + { url = "https://files.pythonhosted.org/packages/e5/86/ce41e7a7a199340b2330d52b60f25c4074b6636dd0e60b1a80d31a9db042/yarl-1.24.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3f6d2c216318f8f32038ca3f72501ba08536f0fd18a36e858836b121b2deed9f", size = 106153, upload-time = "2026-05-19T21:28:35.222Z" }, + { url = "https://files.pythonhosted.org/packages/c4/5d/31be8a729531ab3e55ac3e7e5c800be8c89ea98947f418b2f6ea259fb6ee/yarl-1.24.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:08d3a33218e0c64393e7610284e770409a9c31c429b078bcb24096ed0a783b8f", size = 105322, upload-time = "2026-05-19T21:28:36.642Z" }, + { url = "https://files.pythonhosted.org/packages/47/9b/b57afb22b386ae87ac9940f09878b98d8c333f89113e6fc96fcf4ca9eb64/yarl-1.24.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5d699376c4ca3cba49bbfae3a05b5b70ded572937171ce1e0b8d87118e2ba294", size = 99057, upload-time = "2026-05-19T21:28:38.386Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4f/06348c27c8389256c313e8a57d796808fc0264c915dd5e7cfd3c0e314dc7/yarl-1.24.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:a1cab588b4fa14bea2e55ebea27478adfb05372f47573738e1acc4a36c0b05d2", size = 113502, upload-time = "2026-05-19T21:28:40.091Z" }, + { url = "https://files.pythonhosted.org/packages/5f/1c/284f307b298e4a17b7943b07d9d7ecc4151537f8d137ba51f3bb6c31ca20/yarl-1.24.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:ec87ccc31bd21db7ad009d8572c127c1000f268517618a4cc09adba3c2a7f21c", size = 105253, upload-time = "2026-05-19T21:28:41.987Z" }, + { url = "https://files.pythonhosted.org/packages/c8/bf/0de123bec8619e45c80cbded9085f61b5b4a9eddb8abe6d25d28ee1ec866/yarl-1.24.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:d1dd47a22843b212baa8d74f37796815d43bd046b42a0f41e9da433386c3136b", size = 111345, upload-time = "2026-05-19T21:28:43.93Z" }, + { url = "https://files.pythonhosted.org/packages/90/af/0248eb065e51129d2a9b2436cd1b5c772c19a6b04e5b6a186955671e3319/yarl-1.24.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:7b54b9c67c2b06bd7b9a77253d242124b9c95d2c02def5a1144001ee547dd9d5", size = 106558, upload-time = "2026-05-19T21:28:45.806Z" }, + { url = "https://files.pythonhosted.org/packages/21/3c/f960d7a65ef97d8ba9b424fb5128796a4bc710fc6df2ddbbd7dfdc3bbd20/yarl-1.24.2-cp311-cp311-win_amd64.whl", hash = "sha256:f8fdbcff8b2c7c9284e60c196f693588598ddcee31e11c18e14949ce44519d45", size = 92808, upload-time = "2026-05-19T21:28:48.465Z" }, + { url = "https://files.pythonhosted.org/packages/03/1a/49fb03750e4de4d2284cd5b885a383133c34eef45bd59631b2bb8b7e81e8/yarl-1.24.2-cp311-cp311-win_arm64.whl", hash = "sha256:b32c37a7a337e90822c45797bf3d79d60875cfcccd3ecc80e9f453d87026c122", size = 87610, upload-time = "2026-05-19T21:28:50.07Z" }, + { url = "https://files.pythonhosted.org/packages/f0/da/866bcb01076ba49d2b42b309867bed3826421f1c479655eb7a607b44f20b/yarl-1.24.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:b975866c184564c827e0877380f0dae57dcca7e52782128381b72feff6dfceb8", size = 129957, upload-time = "2026-05-19T21:28:51.695Z" }, + { url = "https://files.pythonhosted.org/packages/bf/1d/fcefb70922ea2268a8971d8e5874d9a8218644200fb8465f1dcad55e6851/yarl-1.24.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3b075301a2836a0e297b1b658cb6d6135df535d62efefdd60366bd589c2c82f2", size = 92164, upload-time = "2026-05-19T21:28:53.242Z" }, + { url = "https://files.pythonhosted.org/packages/29/b6/170e2b8d4e3bc30e6bfdcca53556537f5bf595e938632dfcb059311f3ff6/yarl-1.24.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8ae44649b00947634ab0dab2a374a638f52923a6e67083f2c156cd5cbd1a881d", size = 91688, upload-time = "2026-05-19T21:28:54.865Z" }, + { url = "https://files.pythonhosted.org/packages/fe/a5/c9f655d5553ea0b99fdac9d6a99ad3f9b3e73b8e5758bb46f58c9831f74c/yarl-1.24.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:507cc19f0b45454e2d6dcd62ff7d062b9f77a2812404e62dbdaec05b50faa035", size = 102902, upload-time = "2026-05-19T21:28:56.963Z" }, + { url = "https://files.pythonhosted.org/packages/5d/bc/6b9664d815d79af4ee553337f9d606c56bbf269186ada9172de45f1b5f60/yarl-1.24.2-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:c4c17bad5a530912d2111825d3f05e89bab2dd376aaa8cbc77e449e6db63e576", size = 97931, upload-time = "2026-05-19T21:28:58.56Z" }, + { url = "https://files.pythonhosted.org/packages/98/ec/32ba48acae30fecd60928f5791188b80a9d6ee3840507ffda29fecd37b71/yarl-1.24.2-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:f5f0cbb112838a4a293985b6ed73948a547dadcc1ba6d2089938e7abdedceef8", size = 111030, upload-time = "2026-05-19T21:29:00.148Z" }, + { url = "https://files.pythonhosted.org/packages/82/5a/6f4cd081e5f4934d2ae3a8ef4abe3afacc010d26f0035ee91b35cd7d7c37/yarl-1.24.2-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:5ec8356b8a6afcf81fc7aeeef13b1ff7a49dec00f313394bbb9e83830d32ccd7", size = 110392, upload-time = "2026-05-19T21:29:02.155Z" }, + { url = "https://files.pythonhosted.org/packages/7a/da/323a01c349bd5fb01bb6652e314d9bb218cee630a736bdb810ad50e4013f/yarl-1.24.2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7e7ebcdef69dec6c6451e616f32b622a6d4a2e92b445c992f7c8e5274a6bbc4c", size = 105612, upload-time = "2026-05-19T21:29:04.247Z" }, + { url = "https://files.pythonhosted.org/packages/7c/80/264ab684f181e1a876389374519ff05d10248725535ae2ac4e8ac4e563d6/yarl-1.24.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:47a55d6cf6db2f401017a9e96e5288844e5051911fb4e0c8311a3980f5e59a7d", size = 104487, upload-time = "2026-05-19T21:29:06.491Z" }, + { url = "https://files.pythonhosted.org/packages/41/07/efabe5df87e96d7ad5959760b888344be48cd6884db127b407c6b5503adc/yarl-1.24.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3065657c80a2321225e804048597ad55658a7e76b32d6f5ee4074d04c50401db", size = 102333, upload-time = "2026-05-19T21:29:08.267Z" }, + { url = "https://files.pythonhosted.org/packages/44/0c/bcf7c42603e1009295f586d8890f2ba032c8b53310e815adf0a202c73d9f/yarl-1.24.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:cb84b80d88e19ede158619b80813968713d8d008b0e2497a576e6a0557d50712", size = 99025, upload-time = "2026-05-19T21:29:10.682Z" }, + { url = "https://files.pythonhosted.org/packages/4f/82/84482ab1a57a0f21a08afe6a7004c61d741f8f2ecc3b05c321577c612164/yarl-1.24.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:990de4f680b1c217e77ff0d6aa0029f9eb79889c11fb3e9a3942c7eba29c1996", size = 110507, upload-time = "2026-05-19T21:29:12.954Z" }, + { url = "https://files.pythonhosted.org/packages/c4/8d/a546ba1dfe1b0f290e05fef145cd07614c0f15df1a707195e512d1e39d1d/yarl-1.24.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:abb8ec0323b80161e3802da3150ef660b41d0e9be2048b76a363d93eee992c2b", size = 103719, upload-time = "2026-05-19T21:29:14.893Z" }, + { url = "https://files.pythonhosted.org/packages/1a/b6/267f2a09213138473adfce6b8a6e17791d7fee70bd4d9003218e4dec58b0/yarl-1.24.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:e7977781f83638a4c73e0f88425563d70173e0dfd90ac006a45c65036293ee3c", size = 110438, upload-time = "2026-05-19T21:29:16.485Z" }, + { url = "https://files.pythonhosted.org/packages/48/2d/1c8d89c7c5f9cad9fb2902445d94e2ab1d7aa35de029afbb8ae95c42d00f/yarl-1.24.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e30dd55825dc554ec5b66a94953b8eda8745926514c5089dfcacecb9c99b5bd1", size = 105719, upload-time = "2026-05-19T21:29:18.367Z" }, + { url = "https://files.pythonhosted.org/packages/a7/25/722e3b93bd687009afb2d59a35e13d30ddd8f80571445bb0c4e4ce26ec66/yarl-1.24.2-cp312-cp312-win_amd64.whl", hash = "sha256:7dafe10c12ddd4d120d528c4b5599c953bd7b12845347d507b95451195bb6cad", size = 92901, upload-time = "2026-05-19T21:29:20.014Z" }, + { url = "https://files.pythonhosted.org/packages/39/47/4486ccfb674c04854a1ef8aa77868b6a6f765feaf69633409d7ca4f02cb8/yarl-1.24.2-cp312-cp312-win_arm64.whl", hash = "sha256:044a09d8401fcf8681977faef6d286b8ade1e2d2e9dceda175d1cfa5ca496f30", size = 87229, upload-time = "2026-05-19T21:29:22.1Z" }, + { url = "https://files.pythonhosted.org/packages/82/62/fcf0ce677f17e5c471c06311dd25964be38a4c586993632910d2e75278bc/yarl-1.24.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:491ac9141decf49ee8030199e1ee251cdff0e131f25678817ff6aa5f837a3536", size = 128978, upload-time = "2026-05-19T21:29:23.83Z" }, + { url = "https://files.pythonhosted.org/packages/d3/58/8e63299bb71ed61a834121d9d3fe6c9fcf2a6a5d09754ff4f20f2d20baf5/yarl-1.24.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e89418f65eda18f99030386305bd44d7d504e328a7945db1ead514fbe03a0607", size = 91733, upload-time = "2026-05-19T21:29:25.375Z" }, + { url = "https://files.pythonhosted.org/packages/c1/24/16748d5dab6daec8b0ed81ccec639a1cded0f18dcc62a4f696b4fe366c37/yarl-1.24.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cdfcce633b4a4bb8281913c57fcafd4b5933fbc19111a5e3930bbd299d6102f1", size = 91113, upload-time = "2026-05-19T21:29:26.928Z" }, + { url = "https://files.pythonhosted.org/packages/1b/66/b63fff7b71211e866624b21432d5943cbb633eb0c2872d9ee3070648f22c/yarl-1.24.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:863297ddede92ee49024e9a9b11ecb59f310ca85b60d8537f56bed9bbb5b1986", size = 103899, upload-time = "2026-05-19T21:29:28.842Z" }, + { url = "https://files.pythonhosted.org/packages/9d/ac/ba1974b8533909636f7733fe86cf677e3619527c3c2fa913e0ea89c48757/yarl-1.24.2-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:374423f70754a2c96942ede36a29d37dc6b0cb8f92f8d009ddf3ed78d3da5488", size = 97862, upload-time = "2026-05-19T21:29:31.086Z" }, + { url = "https://files.pythonhosted.org/packages/1b/a5/123ac993b5c2ba6f554a140305620cb8f150fa543711bbc49be3ec0a65a4/yarl-1.24.2-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:33a29b5d00ccbf3219bb3e351d7875739c19481e030779f48cc46a7a71681a9b", size = 111060, upload-time = "2026-05-19T21:29:32.657Z" }, + { url = "https://files.pythonhosted.org/packages/23/37/c472d3af3509688392134a88a825276770a187f1daa4de3f6dc0a327a751/yarl-1.24.2-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a9532c57211730c515341af11fef6e9b61d157487272a096d0c04da445642592", size = 110613, upload-time = "2026-05-19T21:29:34.379Z" }, + { url = "https://files.pythonhosted.org/packages/df/88/09c28dad91e662ccfaa1b78f1c57badde74fc9d0b23e74aef644750ecd73/yarl-1.24.2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:91e72cf093fd833483a97ee648e0c053c7c629f51ff4a0e7edd84f806b0c5617", size = 107012, upload-time = "2026-05-19T21:29:36.216Z" }, + { url = "https://files.pythonhosted.org/packages/07/ab/9d4f69d571a94f4d112fa7e2e007200f5a54d319f58c82ac7b7baa61f5c6/yarl-1.24.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b3177bc0a768ef3bacceb4f272632990b7bea352f1b2f1eee9d6d6ff16516f92", size = 105887, upload-time = "2026-05-19T21:29:38.746Z" }, + { url = "https://files.pythonhosted.org/packages/8e/9a/000b2b66c0d772a499fc531d21dab92dfeb73b640a12eed6ba89f49bb2d0/yarl-1.24.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:e196952aacaf3b232e265ff02980b64d483dc0972bd49bcb061171ff22ac203a", size = 103620, upload-time = "2026-05-19T21:29:40.368Z" }, + { url = "https://files.pythonhosted.org/packages/41/7c/7c1050f73450fbdaa3f0c72017059f00ce5e13366692f3dba25275a1083d/yarl-1.24.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:204e7a61ce99919c0de1bf904ab5d7aa188a129ea8f690a8f76cfb6e2844dc44", size = 100599, upload-time = "2026-05-19T21:29:42.66Z" }, + { url = "https://files.pythonhosted.org/packages/ec/b1/29e5756b3926705f5f6089bd5b9f50a56eaac550da6e260bf713ead44d04/yarl-1.24.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4b156914620f0b9d78dc1adb3751141daee561cfec796088abb89ed49d220f1a", size = 110604, upload-time = "2026-05-19T21:29:44.632Z" }, + { url = "https://files.pythonhosted.org/packages/a3/4b/8415bc96e9b150cde942fbac9a8182985e58f40ce5c54c34ed015407d3ee/yarl-1.24.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:8372a2b976cf70654b2be6619ab6068acabb35f724c0fda7b277fbf53d66a5cf", size = 105161, upload-time = "2026-05-19T21:29:46.755Z" }, + { url = "https://files.pythonhosted.org/packages/8b/d4/cde059abfa229553b7298a2eadde2752e723d50aeedaef86ce59da2718ee/yarl-1.24.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:f9a1e9b622ca284143aab5d885848686dcd85453bb1ca9abcdb7503e64dc0056", size = 110619, upload-time = "2026-05-19T21:29:48.972Z" }, + { url = "https://files.pythonhosted.org/packages/e7/2c/d6a6c9a61549f7b6c7e6dc6937d195bcf069582b47b7200dcd0e7b256acf/yarl-1.24.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:810e19b685c8c3c5862f6a38160a1f4e4c0916c9390024ec347b6157a45a0992", size = 107362, upload-time = "2026-05-19T21:29:51Z" }, + { url = "https://files.pythonhosted.org/packages/92/dd/3ae5fe417e9d1c353a548553326eb9935e76b6b727161563b424cc296df3/yarl-1.24.2-cp313-cp313-win_amd64.whl", hash = "sha256:7d37fb7c38f2b6edab0f845c4f85148d4c44204f52bc127021bd2bc9fdbf1656", size = 92667, upload-time = "2026-05-19T21:29:52.743Z" }, + { url = "https://files.pythonhosted.org/packages/10/cc/a7beb239f78f27fca1b053c8e8595e4179c02e62249b4687ec218c370c50/yarl-1.24.2-cp313-cp313-win_arm64.whl", hash = "sha256:1e831894be7c2954240e49791fa4b50c05a0dc881de2552cfe3ffd8631c7f461", size = 87069, upload-time = "2026-05-19T21:29:54.442Z" }, + { url = "https://files.pythonhosted.org/packages/40/0e/e08087695fc12789263821c5dc0f8dc52b5b17efd0887cacf419f8a43ba3/yarl-1.24.2-cp314-cp314-macosx_10_15_universal2.whl", hash = "sha256:f9312b3c02d9b3d23840f67952913c9c8721d7f1b7db305289faefa878f364c2", size = 129670, upload-time = "2026-05-19T21:29:56.631Z" }, + { url = "https://files.pythonhosted.org/packages/3a/98/ab4b5ed1b1b5cd973c8a3eb994c3a6aefb6ce6d399e21bb5f0316c33815c/yarl-1.24.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:a4f4d6cd615823bfc7fb7e9b5987c3f41666371d870d51058f77e2680fbe9630", size = 91916, upload-time = "2026-05-19T21:29:58.645Z" }, + { url = "https://files.pythonhosted.org/packages/ba/b1/5297bb6a7df4782f7605bffc43b31f5044070935fbbcaa6c705a07e6ac65/yarl-1.24.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:0c3063e5c0a8e8e62fae6c2596fa01da1561e4cd1da6fec5789f5cf99a8aefd8", size = 91625, upload-time = "2026-05-19T21:30:00.412Z" }, + { url = "https://files.pythonhosted.org/packages/02/a7/45baabfff76829264e623b185cff0c340d7e11bf3e1cd9ea37e7d17934bd/yarl-1.24.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:fecd17873a096036c1c87ab3486f1aef7f269ada7f23f7f856f93b1cc7744f14", size = 104574, upload-time = "2026-05-19T21:30:02.544Z" }, + { url = "https://files.pythonhosted.org/packages/f3/40/3a5ab144d3d650ca37d4f4b57e56169be8af3ca34c448793e064b30baaed/yarl-1.24.2-cp314-cp314-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:a46d1ab4ba4d32e6dc80daf8a28ce0bd83d08df52fbc32f3e288663427734535", size = 97534, upload-time = "2026-05-19T21:30:04.319Z" }, + { url = "https://files.pythonhosted.org/packages/9c/b5/5658fef3681fb5776b4513b052bec750009f47b3a592251c705d75375798/yarl-1.24.2-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:73e68edf6dfd5f73f9ca127d84e2a6f9213c65bdffb736bda19524c0564fcd14", size = 111481, upload-time = "2026-05-19T21:30:05.988Z" }, + { url = "https://files.pythonhosted.org/packages/4c/06/fdcd7dde037f00866dce123ed4ba23dba94beb56fc4cf561668d27be37f2/yarl-1.24.2-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:a296ca617f2d25fbceafb962b88750d627e5984e75732c712154d058ae8d79a3", size = 111529, upload-time = "2026-05-19T21:30:07.738Z" }, + { url = "https://files.pythonhosted.org/packages/c2/53/d81269aaafccea0d33396c03035de997b743f11e648e6e27a0df99c72980/yarl-1.24.2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e51b2cf5ec89a8b8470177641ed62a3ba22d74e1e898e06ad53aa77972487208", size = 107338, upload-time = "2026-05-19T21:30:09.713Z" }, + { url = "https://files.pythonhosted.org/packages/ae/04/23049463f729bd899df203a7960505a75333edd499cda8aa1d5a82b64df5/yarl-1.24.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:310fc687f7b2044ec54e372c8cbe923bb88f5c37bded0d3079e5791c2fc3cf50", size = 106147, upload-time = "2026-05-19T21:30:11.365Z" }, + { url = "https://files.pythonhosted.org/packages/14/18/04a4b5830b43ed5e4c5015b40e9f6241ad91487d71611061b4e111d6ac80/yarl-1.24.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:297a2fe352ecf858b30a98f87948746ec16f001d279f84aebdbd3bd965e2f1bd", size = 104272, upload-time = "2026-05-19T21:30:12.978Z" }, + { url = "https://files.pythonhosted.org/packages/5a/f7/8cffdf319aee7a7c1dbd07b61d91c3e3fda460c7a93b5f93e445f3806c4c/yarl-1.24.2-cp314-cp314-musllinux_1_2_armv7l.whl", hash = "sha256:2a263e76b97bc42bdcd7c5f4953dec1f7cd62a1112fa7f869e57255229390d67", size = 99962, upload-time = "2026-05-19T21:30:15.001Z" }, + { url = "https://files.pythonhosted.org/packages/d7/39/b3cce3b7dbef64ac700ad4cea156a207d01bede0f507587616c364b5468e/yarl-1.24.2-cp314-cp314-musllinux_1_2_ppc64le.whl", hash = "sha256:822519b64cf0b474f1a0aaef1dc621438ea46bb77c94df97a5b4d213a7d8a8b1", size = 111063, upload-time = "2026-05-19T21:30:16.683Z" }, + { url = "https://files.pythonhosted.org/packages/a1/ea/100818505e7ebf165c7242ff17fdf7d9fee79e27234aeca871c1082920d7/yarl-1.24.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:b6067060d9dc594899ba83e6db6c48c68d1e494a6dab158156ed86977ca7bcb1", size = 105438, upload-time = "2026-05-19T21:30:18.769Z" }, + { url = "https://files.pythonhosted.org/packages/8f/d2/e075a0b32aa6625087de9e653087df0759fed5de4a435fef594181102a77/yarl-1.24.2-cp314-cp314-musllinux_1_2_s390x.whl", hash = "sha256:0063adad533e57171b79db3943b229d40dfafeeee579767f96541f106bac5f1b", size = 111458, upload-time = "2026-05-19T21:30:21.024Z" }, + { url = "https://files.pythonhosted.org/packages/e6/5c/ceea7ba98b65c8eb8d947fdc52f9bedfcd43c6a57c9e3c90c17be8f324a3/yarl-1.24.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ee8e3fb34513e8dc082b586ef4910c98335d43a6fab688cd44d4851bacfce3e8", size = 107589, upload-time = "2026-05-19T21:30:23.412Z" }, + { url = "https://files.pythonhosted.org/packages/fa/d9/5582d57e2b2db9b85eb6663a22efdd78e08805f3f5389566e9fcad254d1b/yarl-1.24.2-cp314-cp314-win_amd64.whl", hash = "sha256:afb00d7fd8e0f285ca29a44cc50df2d622ff2f7a6d933fa641577b5f9d5f3db0", size = 94424, upload-time = "2026-05-19T21:30:25.425Z" }, + { url = "https://files.pythonhosted.org/packages/92/10/7dc07a0e22806a9280f42a57361395506e800c64e22737cd7b0886feab42/yarl-1.24.2-cp314-cp314-win_arm64.whl", hash = "sha256:68cf6eacd6028ef1142bc4b48376b81566385ca6f9e7dde3b0fa91be08ffcb57", size = 88690, upload-time = "2026-05-19T21:30:27.623Z" }, + { url = "https://files.pythonhosted.org/packages/9e/13/d5b8e2c8667db955bcb3de233f18798fefe7edf1d7429c2c9d4f9c401114/yarl-1.24.2-cp314-cp314t-macosx_10_15_universal2.whl", hash = "sha256:221ce1dd921ac4f603957f17d7c18c5cc0797fbb52f156941f92e04605d1d67b", size = 136248, upload-time = "2026-05-19T21:30:29.297Z" }, + { url = "https://files.pythonhosted.org/packages/de/46/a4a97c05c9c9b8fd266bb2a0df12992c7fbd02391eb9640583411b6dab32/yarl-1.24.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:5f3224db28173a00d7afacdee07045cc4673dfab2b15492c7ae10deddbece761", size = 95084, upload-time = "2026-05-19T21:30:31.031Z" }, + { url = "https://files.pythonhosted.org/packages/95/b2/845cf2074a015e6fe0d0808cf1a2d9e868386c4220d657ebd8302b199043/yarl-1.24.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c557165320d6244ebe3a02431b2a201a20080e02f41f0cfa0ccc47a183765da8", size = 95272, upload-time = "2026-05-19T21:30:33.062Z" }, + { url = "https://files.pythonhosted.org/packages/fe/16/e69d4aa244aef45235ddfebc0e04036a6829842bc5a6a795aedc6c998d23/yarl-1.24.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:904065e6e85b1fa54d0d87438bd58c14c0bad97aad654ad1077fd9d87e8478ed", size = 101497, upload-time = "2026-05-19T21:30:34.842Z" }, + { url = "https://files.pythonhosted.org/packages/15/94/c07107715d621076863ee88b3ddf183fa5e9d4aba5769623c9979828410a/yarl-1.24.2-cp314-cp314t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8cec2a38d70edc10e0e856ceda886af5327a017ccbde8e1de1bd44d300357543", size = 94002, upload-time = "2026-05-19T21:30:37.724Z" }, + { url = "https://files.pythonhosted.org/packages/a9/35/fc1bbdd895b5e4010b8fdd037f7ed3aa289d3863e08231b30231ca9a0815/yarl-1.24.2-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e7484b9361ed222ee1ca5b4337aa4cbdcc4618ce5aff57d9ef1582fd95893fc0", size = 106524, upload-time = "2026-05-19T21:30:40.196Z" }, + { url = "https://files.pythonhosted.org/packages/1f/f2/32b66d0a4ba47c296cf86d03e2c67bff58399fe6d6d84d5205c04c66cc6d/yarl-1.24.2-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:84f9670b89f34db07f81e53aee83e0b938a3412329d51c8f922488be7fcc4024", size = 106165, upload-time = "2026-05-19T21:30:41.888Z" }, + { url = "https://files.pythonhosted.org/packages/95/47/37cb5ff50c5e825d4d38e81bb04d1b7e96bf960f7ab89f9850b162f3f114/yarl-1.24.2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:abb2759733d63a28b4956500a5dd57140f26486c92b2caedfb964ab7d9b79dbf", size = 103010, upload-time = "2026-05-19T21:30:43.985Z" }, + { url = "https://files.pythonhosted.org/packages/6f/d2/4597912315096f7bb359e46e13bf8b60994fcbb2db29b804c0902ef4eff5/yarl-1.24.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:081c2bf54efe03774d0311172bc04fedf9ca01e644d4cd8c805688e527209bdc", size = 101128, upload-time = "2026-05-19T21:30:46.291Z" }, + { url = "https://files.pythonhosted.org/packages/b9/d5/c8e86e120521e646013d02a8e3b8884392e28494be8f392366e50d208efc/yarl-1.24.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:86746bef442aa479107fe28132e1277237f9c24c2f00b0b0cf22b3ee0904f2bb", size = 101382, upload-time = "2026-05-19T21:30:48.085Z" }, + { url = "https://files.pythonhosted.org/packages/fa/98/70b229236118f89dbeb739b76f10225bbf53b5497725502594c9a01d699a/yarl-1.24.2-cp314-cp314t-musllinux_1_2_armv7l.whl", hash = "sha256:2d07d21d0bc4b17558e8de0b02fbfdf1e347d3bb3699edd00bb92e7c57925420", size = 95964, upload-time = "2026-05-19T21:30:49.785Z" }, + { url = "https://files.pythonhosted.org/packages/87/f8/56c386981e3c8648d279fdef2397ffec577e8320fd5649745e34d54faeb7/yarl-1.24.2-cp314-cp314t-musllinux_1_2_ppc64le.whl", hash = "sha256:4fb1ac3fc5fecd8ae7453ea237e4d22b49befa70266dfe1629924245c21a0c7f", size = 106204, upload-time = "2026-05-19T21:30:51.862Z" }, + { url = "https://files.pythonhosted.org/packages/1a/1e/765afe97811ca35933e2a7de70ac57b1997ea2e4ee895719ee7a231fb7e5/yarl-1.24.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:4da31a5512ed1729ca8d8aacde3f7faeb8843cde3165d6bcf7f88f74f17bb8aa", size = 101510, upload-time = "2026-05-19T21:30:53.62Z" }, + { url = "https://files.pythonhosted.org/packages/ee/78/393913f4b9039e1edd09ae8a9bbb9d539be909a8abf6d8a2084585bed4b7/yarl-1.24.2-cp314-cp314t-musllinux_1_2_s390x.whl", hash = "sha256:533ded4dceb5f1f3da7906244f4e82cf46cfd40d84c69a1faf5ac506aa65ecbe", size = 105584, upload-time = "2026-05-19T21:30:55.962Z" }, + { url = "https://files.pythonhosted.org/packages/78/87/deb17b7049bbe74ea11a713b86f8f27800cc1c8648b0b797243ebb4830ba/yarl-1.24.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:7b3a85525f6e7eeabcfdd372862b21ee1915db1b498a04e8bf0e389b607ff0bd", size = 103410, upload-time = "2026-05-19T21:30:57.962Z" }, + { url = "https://files.pythonhosted.org/packages/8f/be/f9f7594e23b5b93affff0318e4593c1920331bcaefda326cabcad94296a1/yarl-1.24.2-cp314-cp314t-win_amd64.whl", hash = "sha256:a7624b1ca46ca5d7b864ef0d2f8efe3091454085ee1855b4e992314529972215", size = 102980, upload-time = "2026-05-19T21:30:59.735Z" }, + { url = "https://files.pythonhosted.org/packages/65/a4/ba80dccd3593ff1f01051a818694d07b58cb8232677ee9a22a5a1f93a9fc/yarl-1.24.2-cp314-cp314t-win_arm64.whl", hash = "sha256:e434a45ce2e7a947f951fc5a8944c8cc080b7e59f9c50ae80fd39107cf88126d", size = 91219, upload-time = "2026-05-19T21:31:01.934Z" }, + { url = "https://files.pythonhosted.org/packages/fd/4d/4b880086bd0d3e034d25647be1d830afc3e3f610e98c4ab3490af6b1b6d5/yarl-1.24.2-py3-none-any.whl", hash = "sha256:2783d9226db8797636cd6896e4de81feed252d1db72265686c9558d97a4d94b9", size = 53576, upload-time = "2026-05-19T21:31:03.909Z" }, +] + +[[package]] +name = "zipp" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b9/d8/eab98a517c14134c0b2eb4e2387bc5f457334293ec5d2dd3857ec2966802/zipp-4.1.0.tar.gz", hash = "sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602", size = 26214, upload-time = "2026-05-18T20:08:57.967Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl", hash = "sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f", size = 10238, upload-time = "2026-05-18T20:08:57.045Z" }, +] diff --git a/benchmark/startup/MODULE.bazel b/benchmark/startup/MODULE.bazel deleted file mode 100644 index 323fc3fb9..000000000 --- a/benchmark/startup/MODULE.bazel +++ /dev/null @@ -1,30 +0,0 @@ -"Benchmark workspace for py_binary startup performance" - -module(name = "startup_benchmark") - -bazel_dep(name = "aspect_rules_py") -local_path_override( - module_name = "aspect_rules_py", - path = "/Users/abel/code/rules_py", -) - -bazel_dep(name = "bazel_features", version = "1.38.0") -bazel_dep(name = "bazel_skylib", version = "1.4.2") -bazel_dep(name = "bazel_lib", version = "3.0.0") -bazel_dep(name = "platforms", version = "1.0.0") -bazel_dep(name = "rules_python", version = "1.9.0") - -# Python interpreters provisioned from python-build-standalone via aspect_rules_py -interpreters = use_extension("@aspect_rules_py//py:extensions.bzl", "python_interpreters") -interpreters.toolchain( - python_version = "3.11", -) - -# Pip dependencies for the benchmark target -pip = use_extension("@rules_python//python/extensions:pip.bzl", "pip") -pip.parse( - hub_name = "pypi", - python_version = "3.11", - requirements_lock = "//:requirements.txt", -) -use_repo(pip, "pypi") diff --git a/benchmark/startup/compare.py b/benchmark/startup/compare.py index 36fddbde0..59fd2fde3 100644 --- a/benchmark/startup/compare.py +++ b/benchmark/startup/compare.py @@ -8,6 +8,7 @@ from __future__ import annotations +import argparse import json import os import sys @@ -110,13 +111,17 @@ def warn(delta: float) -> str: def main() -> None: - if len(sys.argv) != 4: - msg = f"Usage: {sys.argv[0]} " - print(msg, file=sys.stderr) - write_gh_output(f"❌ {msg}") - sys.exit(2) + parser = argparse.ArgumentParser(description="Compare startup benchmark results") + parser.add_argument("bcr", help="BCR hyperfine JSON") + parser.add_argument("main", help="HEAD main hyperfine JSON") + parser.add_argument("pr", help="PR hyperfine JSON") + parser.add_argument( + "--output-table", + help="Write only the markdown table to this file instead of stdout", + ) + args = parser.parse_args() - bcr_path, main_path, pr_path = sys.argv[1], sys.argv[2], sys.argv[3] + bcr_path, main_path, pr_path = args.bcr, args.main, args.pr bcr = load_runtime(bcr_path) main = load_runtime(main_path) @@ -206,7 +211,11 @@ def syspath_row(label: str, sp: dict[str, int] | None) -> str: ) write_gh_output(table) - print(table) + + if args.output_table: + Path(args.output_table).write_text(table) + else: + print(table) if pr_vs_main > THRESHOLD_REGRESSION_PCT: print( diff --git a/docs/uv.md b/docs/uv.md index 3b8bd0ce5..f89b00d05 100644 --- a/docs/uv.md +++ b/docs/uv.md @@ -101,8 +101,6 @@ uv.override_package( # This one hub now has two configurations ("dependency groups") available use_repo(uv, "pypi") - -register_toolchains("@uv//:all") ``` We can configure a default dependency group by setting the `dep_group` flag on our hub as part of the `.bazelrc`. @@ -170,14 +168,13 @@ use the group-specific helpers above when the consuming target sets in the rules_py native `defs.bzl` rather than the `rules_python`-compatible `requirements.bzl`. -## The `uv` toolchain +## The `uv` binary `uv_bin.toolchain()` fetches the UV binary for the required platform(s) and publishes `@uv`: - `@uv//:uv` — host-platform alias for ad-hoc use (`bazel run @uv`, `genrule(tools=…)`, `sh_binary(data=…)`). -- `@uv//:all` — per-platform toolchains for `register_toolchains`. Optional attributes: @@ -310,9 +307,10 @@ py_library( ## A mental model ``` -@pypi # Your UV built hub repository -@pypi//requests:requests # The library for a requirement -@pypi//jinja2-cli/entrypoints:jinja2-cli # A requirement's declared entrypoint +@pypi # Your UV built hub repository +@pypi//requests:requests # The library for a requirement +@pypi//jinja2-cli/entrypoints:jinja2-cli # A requirement's declared entrypoint +@pypi//project/my_project:requests # Project-qualified label (see below) ``` This central hub wraps "spoke" internal dependency group repos. For instance if you have two @@ -322,6 +320,24 @@ over the dependency group targets in which that requirement is defined. Hub requirement targets are _incompatible_ with dependency group configurations in which the requirement in question is not defined. +### Project-qualified labels + +In a multi-project hub where two projects both provide the same package, the unqualified label +can produce a Bazel "multiple keys match" error when the active dep_group name is shared across +projects. The project-qualified form scopes the `select()` to a single project, eliminating +the ambiguity: + +```python +# Unqualified — works unless two projects have the same package + same dep_group name +deps = ["@pypi//requests"] + +# Project-qualified — always routes to exactly one project's resolution +deps = ["@pypi//project/my_project:requests"] +``` + +The `` in `//project/` is the [PEP 503-normalised](https://peps.python.org/pep-0503/#normalized-names) +form of the `[project].name` declared in that project's `pyproject.toml`. + ### Conditional dependencies and the empty target When a package is gated entirely behind an environment marker (e.g. diff --git a/e2e/cases/.bazelrc b/e2e/cases/.bazelrc index 3ca5316eb..ed0a1c48e 100644 --- a/e2e/cases/.bazelrc +++ b/e2e/cases/.bazelrc @@ -1,4 +1,3 @@ -common --incompatible_enable_cc_toolchain_resolution common --@llvm//config:experimental_stub_libgcc_s common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=false @@ -36,7 +35,3 @@ build --experimental_output_paths=strip # Build without the bytes common:ci --remote_download_outputs=minimal common:ci --nobuild_runfile_links - -# Override the preset's `--lockfile_mode=error` on CI since we don't -# yet commit MODULE.bazel.lock — see .gitignore. -common:ci --lockfile_mode=off diff --git a/e2e/cases/MODULE.bazel b/e2e/cases/MODULE.bazel index 835a752f9..7ad38d7a9 100644 --- a/e2e/cases/MODULE.bazel +++ b/e2e/cases/MODULE.bazel @@ -96,8 +96,10 @@ include("//cross-repo-610:setup.MODULE.bazel") include("//current-py-toolchain-bazel-env-896:setup.MODULE.bazel") include("//firebase-admin-import:setup.MODULE.bazel") include("//freethreaded-805:setup.MODULE.bazel") +include("//google-native-overlay:setup.MODULE.bazel") include("//inactive-marker:setup.MODULE.bazel") include("//interpreter-local-pyvenv-home:setup.MODULE.bazel") +include("//jwt-regular-collision:setup.MODULE.bazel") include("//multi-project-hub:setup.MODULE.bazel") include("//oci:setup.MODULE.bazel") include("//pbs-cc-toolchain:setup.MODULE.bazel") @@ -122,6 +124,8 @@ include("//uv-dep-hashes:setup.MODULE.bazel") include("//uv-deps-650:setup.MODULE.bazel") include("//uv-data-purelib:setup.MODULE.bazel") include("//uv-dup-lock-records:setup.MODULE.bazel") +include("//uv-duplicate-whl-labels:setup.MODULE.bazel") +include("//uv-git-source:setup.MODULE.bazel") include("//uv-include-group:setup.MODULE.bazel") include("//uv-incompatible-wheel-source:setup.MODULE.bazel") include("//uv-invalid-build-overrides:setup.MODULE.bazel") @@ -143,5 +147,3 @@ include("//uv-workspace-789:setup.MODULE.bazel") include("//venv-bin-scripts-423:setup.MODULE.bazel") include("//venv-internal-symlinks:setup.MODULE.bazel") include("//xds-otel-namespace-1118:setup.MODULE.bazel") - -register_toolchains("@uv//:all") diff --git a/e2e/cases/MODULE.bazel.lock b/e2e/cases/MODULE.bazel.lock new file mode 100644 index 000000000..b73d24fcd --- /dev/null +++ b/e2e/cases/MODULE.bazel.lock @@ -0,0 +1,1761 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/ape/1.0.1/MODULE.bazel": "37411cfd13bfc28cd264674d660a3ecb3b5b35b9dbe4c0b2be098683641b3fee", + "https://bcr.bazel.build/modules/ape/1.0.1/source.json": "96bc5909d1e3ccc4203272815ef874dbfd99651e240c05049f12193d16c1110b", + "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442", + "https://bcr.bazel.build/modules/apple_support/1.24.1/MODULE.bazel": "f46e8ddad60aef170ee92b2f3d00ef66c147ceafea68b6877cb45bd91737f5f8", + "https://bcr.bazel.build/modules/apple_support/1.24.1/source.json": "cf725267cbacc5f028ef13bb77e7f2c2e0066923a4dab1025e4a0511b1ed258a", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/MODULE.bazel": "004ba890363d05372a97248c37205ae64b6fa31047629cd2c0895a9d0c7779e8", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.22.5/source.json": "ac2c3213df8f985785f1d0aeb7f0f73d5324e6e67d593d9b9470fb74a25d4a9b", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_env.bzl/0.7.2/MODULE.bazel": "ad518f992152602832f8c44d4acc5bf28a9ba9ac66eb10386720877f3471dc1f", + "https://bcr.bazel.build/modules/bazel_env.bzl/0.7.2/source.json": "acebd9723821cda2b44f1e4c0fe1bffebf2630580bb743b56610e821165ca11e", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.13.0/MODULE.bazel": "c14c33c7c3c730612bdbe14ebbb5e61936b6f11322ea95a6e91cd1ba962f94df", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.31.0/MODULE.bazel": "eca40770b202b2161c1e20be7f1c323c8836dc959ae48dcf02ee7a051ffe4e8e", + "https://bcr.bazel.build/modules/bazel_features/1.32.0/MODULE.bazel": "095d67022a58cb20f7e20e1aefecfa65257a222c18a938e2914fd257b5f1ccdc", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.0/MODULE.bazel": "e8ca15cb2639c5f12183db6dcb678735555d0cdd739b32a0418b6532b5e565f8", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/MODULE.bazel": "e2c890c8a515d6bca9c66d47718aa9e44b458fde64ec7204b8030bf2d349058c", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/source.json": "9e84e115c20e14652c5c21401ae85ff4daa8702e265b5c0b3bf89353f17aa212", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/container_structure_test/1.22.1/MODULE.bazel": "da58a98f9f6d47e702532fdfec0431bd60e417d3f004471f409a4543cae0e61e", + "https://bcr.bazel.build/modules/container_structure_test/1.22.1/source.json": "75873f230014ff7a6f30e9f81b9e31ee4593c71353ffa8d5f8fe4ad4aba21160", + "https://bcr.bazel.build/modules/download_utils/1.0.1/MODULE.bazel": "f1d0afade59e37de978506d6bbf08d7fe5f94964e86944aaf58efcead827b41b", + "https://bcr.bazel.build/modules/download_utils/1.0.1/source.json": "05ddc5a3b1f7d8f3e5e0fd1617479e1cf72d63d59ab2b1f0463557a14fc6be0a", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/llvm/0.8.3/MODULE.bazel": "dbc1bc13171f8f9980a75524883abef1c491613e8d8d805cd4ffa3767ba9708e", + "https://bcr.bazel.build/modules/llvm/0.8.3/source.json": "4b11874c26a9de53c03a25a517ebc36dee6b458c920fe9ed65e3ca279ff19775", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_cc/0.2.8/MODULE.bazel": "f1df20f0bf22c28192a794f29b501ee2018fa37a3862a1a2132ae2940a23a642", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.1/MODULE.bazel": "2cf97290414a2bd94f742f2cb5c46a624b3eaaebd0d2a8a5f5008cb49bf9e435", + "https://bcr.bazel.build/modules/rules_coreutils/1.0.1/source.json": "a5c4fb5ac41b687b21e336bc541156ba01a91f25990743ccb768de682305fc26", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_oci/2.2.7/MODULE.bazel": "f6150e4b224d459f7f6523ef65967464ca4efdd266c7fbf2f5a2a51011957e0c", + "https://bcr.bazel.build/modules/rules_oci/2.2.7/source.json": "b099f02af330f47f19dc67fc9300ef6e1937a8c86882690db0e7a2fcea8c7f6b", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_rust/0.68.1/MODULE.bazel": "8d3332ef4079673385eb81f8bd68b012decc04ac00c9d5a01a40eff90301732c", + "https://bcr.bazel.build/modules/rules_rust/0.68.1/source.json": "3378e746f81b62457fdfd37391244fa8ff075ba85c05931ee4f3a20ac1efe963", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.4/MODULE.bazel": "e8f9ff79199e8d9eaad7f1b0a77ad74b30bb82d794b87d8ca942bead5de83ae9", + "https://bcr.bazel.build/modules/tar.bzl/0.10.4/source.json": "20143442376c03426f6135292ba02d825cb75308aa47e6bf42dd4cc5a435c2ff", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.2/MODULE.bazel": "9b8be503a4fcfd3b8b952525bff0869177a5234d5c35dc3e566b9f5ca2f755a1", + "https://bcr.bazel.build/modules/toolchain_utils/1.0.2/source.json": "88769ec576dddacafd8cca4631812cf8eead89f10a29d9405d9f7a553de6bf87", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "//repository-rule-deps-299/rules:import.bzl%importer": { + "general": { + "bzlTransitiveDigest": "VatGB804caEL0nKbc0ngOHLtBkg8bk/fIFTyVqay+j8=", + "usagesDigest": "CaCAPypN+y0bSg5uznXmx9zukIEY107qBMg23q9+9yI=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "myrepo": { + "repoRuleId": "@@//repository-rule-deps-299/rules:import.bzl%myrepo", + "attributes": { + "path": "repository-rule-deps-299/imported" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@container_structure_test+//:repositories.bzl%extension": { + "general": { + "bzlTransitiveDigest": "jyF1qaqe3SV7GOwa1PtIiJk04CPKLgKbWZoD1aX28NU=", + "usagesDigest": "uXk1ym4ketE3OMAHoR5fUuuv8pOmi0aSyCe28koTwfA=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "jq_darwin_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_amd64", + "version": "1.7" + } + }, + "jq_darwin_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "darwin_arm64", + "version": "1.7" + } + }, + "jq_linux_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_amd64", + "version": "1.7" + } + }, + "jq_linux_arm64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "linux_arm64", + "version": "1.7" + } + }, + "jq_windows_amd64": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_platform_repo", + "attributes": { + "platform": "windows_amd64", + "version": "1.7" + } + }, + "jq": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_host_alias_repo", + "attributes": {} + }, + "jq_toolchains": { + "repoRuleId": "@@aspect_bazel_lib+//lib/private:jq_toolchain.bzl%jq_toolchains_repo", + "attributes": { + "user_repository_name": "jq" + } + }, + "structure_test_st_darwin_amd64": { + "repoRuleId": "@@container_structure_test+//:repositories.bzl%structure_test_repositories", + "attributes": { + "platform": "darwin_amd64" + } + }, + "structure_test_st_darwin_arm64": { + "repoRuleId": "@@container_structure_test+//:repositories.bzl%structure_test_repositories", + "attributes": { + "platform": "darwin_arm64" + } + }, + "structure_test_st_linux_arm64": { + "repoRuleId": "@@container_structure_test+//:repositories.bzl%structure_test_repositories", + "attributes": { + "platform": "linux_arm64" + } + }, + "structure_test_st_linux_s390x": { + "repoRuleId": "@@container_structure_test+//:repositories.bzl%structure_test_repositories", + "attributes": { + "platform": "linux_s390x" + } + }, + "structure_test_st_linux_amd64": { + "repoRuleId": "@@container_structure_test+//:repositories.bzl%structure_test_repositories", + "attributes": { + "platform": "linux_amd64" + } + }, + "structure_test_st_windows_amd64": { + "repoRuleId": "@@container_structure_test+//:repositories.bzl%structure_test_repositories", + "attributes": { + "platform": "windows_amd64" + } + }, + "structure_test_toolchains": { + "repoRuleId": "@@container_structure_test+//bazel:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "toolchain_type": "@container_structure_test//bazel:structure_test_toolchain_type", + "toolchain": "@structure_test_st_{platform}//:structure_test_toolchain" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "container_structure_test+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_oci+//oci:extensions.bzl%oci": { + "general": { + "bzlTransitiveDigest": "btafL5urts9jH0gR3UVdsG7OprxGfLk14aFXX/G5FdU=", + "usagesDigest": "9ABtbohz+3s6dpNBjutox5VF5aRBXAiiB40cBGEQvYM=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "ubuntu_linux_arm64_v8": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", + "attributes": { + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "public.ecr.aws", + "repository": "docker/library/ubuntu", + "identifier": "sha256:c35e29c9450151419d9448b0fd75374fec4fff364a27f176fb458d472dfc9e54", + "platform": "linux/arm64/v8", + "target_name": "ubuntu_linux_arm64_v8", + "bazel_tags": [] + } + }, + "ubuntu_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_pull", + "attributes": { + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "public.ecr.aws", + "repository": "docker/library/ubuntu", + "identifier": "sha256:c35e29c9450151419d9448b0fd75374fec4fff364a27f176fb458d472dfc9e54", + "platform": "linux/amd64", + "target_name": "ubuntu_linux_amd64", + "bazel_tags": [] + } + }, + "ubuntu": { + "repoRuleId": "@@rules_oci+//oci/private:pull.bzl%oci_alias", + "attributes": { + "target_name": "ubuntu", + "www_authenticate_challenges": {}, + "scheme": "https", + "registry": "public.ecr.aws", + "repository": "docker/library/ubuntu", + "identifier": "sha256:c35e29c9450151419d9448b0fd75374fec4fff364a27f176fb458d472dfc9e54", + "platforms": { + "@@platforms//cpu:arm64": "@ubuntu_linux_arm64_v8", + "@@platforms//cpu:x86_64": "@ubuntu_linux_amd64" + }, + "bzlmod_repository": "ubuntu", + "reproducible": true + } + }, + "oci_crane_darwin_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "darwin_amd64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_darwin_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "darwin_arm64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_arm64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_armv6": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_armv6", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_i386": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_i386", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_s390x": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_s390x", + "crane_version": "v0.18.0" + } + }, + "oci_crane_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "linux_amd64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_windows_armv6": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "windows_armv6", + "crane_version": "v0.18.0" + } + }, + "oci_crane_windows_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%crane_repositories", + "attributes": { + "platform": "windows_amd64", + "crane_version": "v0.18.0" + } + }, + "oci_crane_toolchains": { + "repoRuleId": "@@rules_oci+//oci/private:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "toolchain_type": "@rules_oci//oci:crane_toolchain_type", + "toolchain": "@oci_crane_{platform}//:crane_toolchain" + } + }, + "oci_regctl_darwin_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "darwin_amd64" + } + }, + "oci_regctl_darwin_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "darwin_arm64" + } + }, + "oci_regctl_linux_arm64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "linux_arm64" + } + }, + "oci_regctl_linux_s390x": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "linux_s390x" + } + }, + "oci_regctl_linux_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "linux_amd64" + } + }, + "oci_regctl_windows_amd64": { + "repoRuleId": "@@rules_oci+//oci:repositories.bzl%regctl_repositories", + "attributes": { + "platform": "windows_amd64" + } + }, + "oci_regctl_toolchains": { + "repoRuleId": "@@rules_oci+//oci/private:toolchains_repo.bzl%toolchains_repo", + "attributes": { + "toolchain_type": "@rules_oci//oci:regctl_toolchain_type", + "toolchain": "@oci_regctl_{platform}//:regctl_toolchain" + } + } + }, + "moduleExtensionMetadata": { + "explicitRootModuleDirectDeps": [ + "ubuntu", + "ubuntu_linux_arm64_v8", + "ubuntu_linux_amd64" + ], + "explicitRootModuleDirectDevDeps": [], + "useAllRepos": "NO", + "reproducible": false + }, + "recordedRepoMappingEntries": [ + [ + "aspect_bazel_lib+", + "bazel_tools", + "bazel_tools" + ], + [ + "bazel_features+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_oci+", + "aspect_bazel_lib", + "aspect_bazel_lib+" + ], + [ + "rules_oci+", + "bazel_features", + "bazel_features+" + ], + [ + "rules_oci+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/e2e/cases/freethreaded-805/test.py b/e2e/cases/freethreaded-805/test.py index 1bb789797..6b25b2655 100644 --- a/e2e/cases/freethreaded-805/test.py +++ b/e2e/cases/freethreaded-805/test.py @@ -1,6 +1,7 @@ """Test that a freethreaded interpreter can import native extensions built for the 't' ABI.""" import os +import subprocess import sys import sysconfig import unittest @@ -32,6 +33,31 @@ def test_regex_import_and_use(self): self.assertEqual(m.group(1), "Hello") self.assertEqual(m.group(2), "World") + def test_venv_site_packages_uses_t_suffix(self): + """The venv must place site-packages under lib/python3.t, the only + location a freethreaded interpreter searches.""" + self.assertTrue(sys.prefix.endswith(".venv"), sys.prefix) + minor = sys.version_info.minor + t_dir = os.path.join(sys.prefix, "lib", f"python3.{minor}t", "site-packages") + self.assertTrue(os.path.isdir(t_dir), f"missing {t_dir}") + plain_dir = os.path.join(sys.prefix, "lib", f"python3.{minor}", "site-packages") + self.assertFalse(os.path.isdir(plain_dir), f"unexpected non-t dir {plain_dir}") + # The interpreter's own purelib lookup must land on the t dir. + purelib = sysconfig.get_path("purelib") + self.assertEqual(os.path.realpath(purelib), os.path.realpath(t_dir)) + + def test_venv_bin_has_t_symlink(self): + """bin/python3.t is the name the interpreter looks itself up under.""" + minor = sys.version_info.minor + t_python = os.path.join(sys.prefix, "bin", f"python3.{minor}t") + self.assertTrue(os.path.lexists(t_python), f"missing {t_python}") + out = subprocess.run( + [t_python, "-c", "import sysconfig; print(sysconfig.get_config_var('Py_GIL_DISABLED'))"], + capture_output=True, + text=True, + ) + self.assertEqual(out.stdout.strip(), "1", out.stderr) + def test_regex_native_extension_is_freethreaded(self): """The regex C extension .so must be the freethreaded variant.""" import regex diff --git a/e2e/cases/google-native-overlay/BUILD.bazel b/e2e/cases/google-native-overlay/BUILD.bazel new file mode 100644 index 000000000..519742117 --- /dev/null +++ b/e2e/cases/google-native-overlay/BUILD.bazel @@ -0,0 +1,31 @@ +load("@aspect_rules_py//py:defs.bzl", "py_test") + +# Regression test: a regular top-level package followed by a namespace-only +# native graft. google 1.9.3 owns google/__init__.py; protobuf 6.33.5 +# contributes google/_upb/_message without a top-level __init__.py. +# +# The venv projection keeps google as the direct regular owner and leaves +# protobuf on its whole-wheel fallback. google 1.9.3 does not extend __path__, +# so the graft stays hidden here, but its native origin remains available to +# regular packages that do extend their path. +py_test( + name = "test", + srcs = ["test.py"], + dep_group = "google-native-overlay", + expose_venv = True, + isolated = False, + main = "test.py", + package_collisions = "warning", + # Protobuf publishes native CPython 3.9 wheels for glibc Linux, macOS, + # and Windows. It has no musllinux wheel, so do not let this native-root + # regression silently select protobuf's pure-Python fallback there. + python_version = "3.9", + target_compatible_with = select({ + "@aspect_rules_py//uv/private/constraints/platform:is_musl": ["@platforms//:incompatible"], + "//conditions:default": [], + }), + deps = [ + "@pypi_google_native_overlay//google", + "@pypi_google_native_overlay//protobuf", + ], +) diff --git a/e2e/cases/google-native-overlay/pyproject.toml b/e2e/cases/google-native-overlay/pyproject.toml new file mode 100644 index 000000000..a3ba8dace --- /dev/null +++ b/e2e/cases/google-native-overlay/pyproject.toml @@ -0,0 +1,17 @@ +[project] +name = "google-native-overlay" +version = "0.0.0" +# google 1.9.3 ships a regular google/__init__.py, while protobuf 6.33.5 +# ships a namespace-only google/ tree containing _upb/_message native code. +# Keep google first in BUILD.bazel so the test exercises regular-first +# collision precedence. +requires-python = ">=3.9" +dependencies = [ + # build + setuptools match the hub's default_build_dependencies declared + # in //MODULE.bazel. The uv extension expects every project lockfile to + # be able to resolve them. + "build", + "setuptools", + "google==1.9.3", + "protobuf==6.33.5", +] diff --git a/e2e/cases/google-native-overlay/setup.MODULE.bazel b/e2e/cases/google-native-overlay/setup.MODULE.bazel new file mode 100644 index 000000000..f22e925ea --- /dev/null +++ b/e2e/cases/google-native-overlay/setup.MODULE.bazel @@ -0,0 +1,10 @@ +"""Regression: regular google package before namespace-native protobuf.""" + +uv = use_extension("@aspect_rules_py//uv:extensions.bzl", "uv") +uv.declare_hub(hub_name = "pypi_google_native_overlay") +uv.project( + hub_name = "pypi_google_native_overlay", + lock = "//google-native-overlay:uv.lock", + pyproject = "//google-native-overlay:pyproject.toml", +) +use_repo(uv, "pypi_google_native_overlay") diff --git a/e2e/cases/google-native-overlay/test.py b/e2e/cases/google-native-overlay/test.py new file mode 100644 index 000000000..b72d80994 --- /dev/null +++ b/e2e/cases/google-native-overlay/test.py @@ -0,0 +1,32 @@ +"""Regression for regular-first top-level native namespace collisions.""" + +from importlib.util import find_spec +from pathlib import Path +import sys +import sysconfig + +import google + + +site_packages = Path(sysconfig.get_paths()["purelib"]) +projected_init = site_packages / "google" / "__init__.py" +runtime_init = Path(google.__file__) + +assert projected_init.is_file(), projected_init +assert runtime_init.name == "__init__.py", runtime_init +assert projected_init.samefile(runtime_init), ( + projected_init.resolve(), + runtime_init.resolve(), +) +assert find_spec("google.protobuf") is None + +protobuf_fallbacks = [ + Path(entry) + for entry in sys.path + if Path(entry).name == "site-packages" + and any( + candidate.suffix in (".so", ".pyd") + for candidate in (Path(entry) / "google" / "_upb").glob("_message.*") + ) +] +assert protobuf_fallbacks, sys.path diff --git a/e2e/cases/google-native-overlay/uv.lock b/e2e/cases/google-native-overlay/uv.lock new file mode 100644 index 000000000..7f0fe10d4 --- /dev/null +++ b/e2e/cases/google-native-overlay/uv.lock @@ -0,0 +1,269 @@ +version = 1 +revision = 3 +requires-python = ">=3.9" +resolution-markers = [ + "python_full_version >= '3.10'", + "python_full_version < '3.10'", +] + +[[package]] +name = "beautifulsoup4" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "soupsieve" }, + { name = "typing-extensions" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/43/65/318323f98dbee45d42dff61d8f047181bc6f2268a9068cfad035a46be5af/beautifulsoup4-4.15.0.tar.gz", hash = "sha256:288e3ca7d54b06f2ac191970bc275c1939cb46d450b255bf6718b04aa37ab4f7", size = 632571, upload-time = "2026-06-07T16:44:20.453Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/88/c6/92fcd42f1ba33e1184263f25bfabf3d27c383410470f169e4b8163bf9c17/beautifulsoup4-4.15.0-py3-none-any.whl", hash = "sha256:d6f88de62e1d4e38ecb1077eb9724cd0eff29d2a08ca16a401e9b9e93f117cf9", size = 109924, upload-time = "2026-06-07T16:44:21.566Z" }, +] + +[[package]] +name = "build" +version = "1.4.4" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version < '3.10' and os_name == 'nt'" }, + { name = "importlib-metadata", version = "8.7.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "packaging", marker = "python_full_version < '3.10'" }, + { name = "pyproject-hooks", marker = "python_full_version < '3.10'" }, + { name = "tomli", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/02/ec/bf5ae0a7e5ab57abe8aabdd0759c971883895d1a20c49ae99f8146840c3c/build-1.4.4.tar.gz", hash = "sha256:f832ae053061f3fb524af812dc94b8b84bac6880cd587630e3b5d91a6a9c1703", size = 89220, upload-time = "2026-04-22T20:53:44.807Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/88/6764e7a109dd84294850741501145da90d13cdeac9d4e614929464a37420/build-1.4.4-py3-none-any.whl", hash = "sha256:8c3f48a6090b39edec1a273d2d57949aaf13723b01e02f9d518396887519f64d", size = 25921, upload-time = "2026-04-22T20:53:43.251Z" }, +] + +[[package]] +name = "build" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "colorama", marker = "python_full_version >= '3.10' and os_name == 'nt'" }, + { name = "importlib-metadata", version = "9.0.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10' and python_full_version < '3.10.2'" }, + { name = "packaging", marker = "python_full_version >= '3.10'" }, + { name = "pyproject-hooks", marker = "python_full_version >= '3.10'" }, + { name = "tomli", marker = "python_full_version == '3.10.*'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/e0/df5e171f685f82f37b12e1f208064e24244911079d7b767447d1af7e0d70/build-1.5.0.tar.gz", hash = "sha256:302c22c3ba2a0fd5f3911918651341ebb3896176cbdec15bd421f80b1afc7647", size = 89796, upload-time = "2026-04-30T03:18:25.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/fe/6bea5c9162869c5beba5d9c8abbed835ec85bf1ec1fba05a3822325c45f3/build-1.5.0-py3-none-any.whl", hash = "sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f", size = 26018, upload-time = "2026-04-30T03:18:23.644Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "google" +version = "1.9.3" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "beautifulsoup4" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/0d/c3/5e0dd8b9e1b6af70c50394e6b777b8bfccfd895d2e4c70c171e060680a8f/google-1.9.3.tar.gz", hash = "sha256:7c312681eafff0156a23b430eff320734da2430ac76973ffff1e396c096b8ebe", size = 6668, upload-time = "2016-07-26T11:33:06.152Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1e/11/1e45e67164b25f98c7ccb8f00779c373791e870e98ca9d50e5b410bcb5d4/google-1.9.3-py2.py3-none-any.whl", hash = "sha256:31cc5a7f39b9d864c3b17367f803e4e02853ac37bf2071cf5443506914fef602", size = 16926, upload-time = "2016-07-26T11:33:03.557Z" }, +] + +[[package]] +name = "google-native-overlay" +version = "0.0.0" +source = { virtual = "." } +dependencies = [ + { name = "build", version = "1.4.4", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, + { name = "build", version = "1.5.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, + { name = "google" }, + { name = "protobuf" }, + { name = "setuptools" }, +] + +[package.metadata] +requires-dist = [ + { name = "build" }, + { name = "google", specifier = "==1.9.3" }, + { name = "protobuf", specifier = "==6.33.5" }, + { name = "setuptools" }, +] + +[[package]] +name = "importlib-metadata" +version = "8.7.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +dependencies = [ + { name = "zipp", version = "3.23.1", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/f3/49/3b30cad09e7771a4982d9975a8cbf64f00d4a1ececb53297f1d9a7be1b10/importlib_metadata-8.7.1.tar.gz", hash = "sha256:49fef1ae6440c182052f407c8d34a68f72efc36db9ca90dc0113398f2fdde8bb", size = 57107, upload-time = "2025-12-21T10:00:19.278Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/fa/5e/f8e9a1d23b9c20a551a8a02ea3637b4642e22c2626e3a13a9a29cdea99eb/importlib_metadata-8.7.1-py3-none-any.whl", hash = "sha256:5a1f80bf1daa489495071efbb095d75a634cf28a8bc299581244063b53176151", size = 27865, upload-time = "2025-12-21T10:00:18.329Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "9.0.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +dependencies = [ + { name = "zipp", version = "4.1.0", source = { registry = "https://pypi.org/simple" }, marker = "python_full_version >= '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a9/01/15bb152d77b21318514a96f43af312635eb2500c96b55398d020c93d86ea/importlib_metadata-9.0.0.tar.gz", hash = "sha256:a4f57ab599e6a2e3016d7595cfd72eb4661a5106e787a95bcc90c7105b831efc", size = 56405, upload-time = "2026-03-20T06:42:56.999Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/38/3d/2d244233ac4f76e38533cfcb2991c9eb4c7bf688ae0a036d30725b8faafe/importlib_metadata-9.0.0-py3-none-any.whl", hash = "sha256:2d21d1cc5a017bd0559e36150c21c830ab1dc304dedd1b7ea85d20f45ef3edd7", size = 27789, upload-time = "2026-03-20T06:42:55.665Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "protobuf" +version = "6.33.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ba/25/7c72c307aafc96fa87062aa6291d9f7c94836e43214d43722e86037aac02/protobuf-6.33.5.tar.gz", hash = "sha256:6ddcac2a081f8b7b9642c09406bc6a4290128fce5f471cddd165960bb9119e5c", size = 444465, upload-time = "2026-01-29T21:51:33.494Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b1/79/af92d0a8369732b027e6d6084251dd8e782c685c72da161bd4a2e00fbabb/protobuf-6.33.5-cp310-abi3-win32.whl", hash = "sha256:d71b040839446bac0f4d162e758bea99c8251161dae9d0983a3b88dee345153b", size = 425769, upload-time = "2026-01-29T21:51:21.751Z" }, + { url = "https://files.pythonhosted.org/packages/55/75/bb9bc917d10e9ee13dee8607eb9ab963b7cf8be607c46e7862c748aa2af7/protobuf-6.33.5-cp310-abi3-win_amd64.whl", hash = "sha256:3093804752167bcab3998bec9f1048baae6e29505adaf1afd14a37bddede533c", size = 437118, upload-time = "2026-01-29T21:51:24.022Z" }, + { url = "https://files.pythonhosted.org/packages/a2/6b/e48dfc1191bc5b52950246275bf4089773e91cb5ba3592621723cdddca62/protobuf-6.33.5-cp39-abi3-macosx_10_9_universal2.whl", hash = "sha256:a5cb85982d95d906df1e2210e58f8e4f1e3cdc088e52c921a041f9c9a0386de5", size = 427766, upload-time = "2026-01-29T21:51:25.413Z" }, + { url = "https://files.pythonhosted.org/packages/4e/b1/c79468184310de09d75095ed1314b839eb2f72df71097db9d1404a1b2717/protobuf-6.33.5-cp39-abi3-manylinux2014_aarch64.whl", hash = "sha256:9b71e0281f36f179d00cbcb119cb19dec4d14a81393e5ea220f64b286173e190", size = 324638, upload-time = "2026-01-29T21:51:26.423Z" }, + { url = "https://files.pythonhosted.org/packages/c5/f5/65d838092fd01c44d16037953fd4c2cc851e783de9b8f02b27ec4ffd906f/protobuf-6.33.5-cp39-abi3-manylinux2014_s390x.whl", hash = "sha256:8afa18e1d6d20af15b417e728e9f60f3aa108ee76f23c3b2c07a2c3b546d3afd", size = 339411, upload-time = "2026-01-29T21:51:27.446Z" }, + { url = "https://files.pythonhosted.org/packages/9b/53/a9443aa3ca9ba8724fdfa02dd1887c1bcd8e89556b715cfbacca6b63dbec/protobuf-6.33.5-cp39-abi3-manylinux2014_x86_64.whl", hash = "sha256:cbf16ba3350fb7b889fca858fb215967792dc125b35c7976ca4818bee3521cf0", size = 323465, upload-time = "2026-01-29T21:51:28.925Z" }, + { url = "https://files.pythonhosted.org/packages/08/60/84d5f6dcda9165e4d6a56ac8433c9f40a8906bf2966150b8a0cfde097d78/protobuf-6.33.5-cp39-cp39-win32.whl", hash = "sha256:a3157e62729aafb8df6da2c03aa5c0937c7266c626ce11a278b6eb7963c4e37c", size = 425892, upload-time = "2026-01-29T21:51:30.382Z" }, + { url = "https://files.pythonhosted.org/packages/68/19/33d7dc2dc84439587fa1e21e1c0026c01ad2af0a62f58fd54002a7546307/protobuf-6.33.5-cp39-cp39-win_amd64.whl", hash = "sha256:8f04fa32763dcdb4973d537d6b54e615cc61108c7cb38fe59310c3192d29510a", size = 437137, upload-time = "2026-01-29T21:51:31.456Z" }, + { url = "https://files.pythonhosted.org/packages/57/bf/2086963c69bdac3d7cff1cc7ff79b8ce5ea0bec6797a017e1be338a46248/protobuf-6.33.5-py3-none-any.whl", hash = "sha256:69915a973dd0f60f31a08b8318b73eab2bd6a392c79184b3612226b0a3f8ec02", size = 170687, upload-time = "2026-01-29T21:51:32.557Z" }, +] + +[[package]] +name = "pyproject-hooks" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" }, +] + +[[package]] +name = "setuptools" +version = "82.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/4f/db/cfac1baf10650ab4d1c111714410d2fbb77ac5a616db26775db562c8fab2/setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9", size = 1152316, upload-time = "2026-03-09T12:47:17.221Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9d/76/f789f7a86709c6b087c5a2f52f911838cad707cc613162401badc665acfe/setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb", size = 1006223, upload-time = "2026-03-09T12:47:15.026Z" }, +] + +[[package]] +name = "soupsieve" +version = "2.8.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/47/2c/0a5f6f8ee0d5589e48c7640213ed5175d52cf540a06725b628cc1a45d6ce/soupsieve-2.8.4.tar.gz", hash = "sha256:e121fd02e975c695e4e9e8774a5ee35d74714b59307868dcc5319ad2d9e3328e", size = 121110, upload-time = "2026-05-24T13:55:57.154Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5e/f5/0c41cb68dcae6b7de4fac4188a3a9589e21fb31df21ea3a2e888db95e6c9/soupsieve-2.8.4-py3-none-any.whl", hash = "sha256:e7e6b0769c8f51ed59acab6e994b00621096cfb1c640a7509295987388fbaf65", size = 37304, upload-time = "2026-05-24T13:55:55.406Z" }, +] + +[[package]] +name = "tomli" +version = "2.4.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/22/de/48c59722572767841493b26183a0d1cc411d54fd759c5607c4590b6563a6/tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f", size = 17543, upload-time = "2026-03-25T20:22:03.828Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f4/11/db3d5885d8528263d8adc260bb2d28ebf1270b96e98f0e0268d32b8d9900/tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30", size = 154704, upload-time = "2026-03-25T20:21:10.473Z" }, + { url = "https://files.pythonhosted.org/packages/6d/f7/675db52c7e46064a9aa928885a9b20f4124ecb9bc2e1ce74c9106648d202/tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a", size = 149454, upload-time = "2026-03-25T20:21:12.036Z" }, + { url = "https://files.pythonhosted.org/packages/61/71/81c50943cf953efa35bce7646caab3cf457a7d8c030b27cfb40d7235f9ee/tomli-2.4.1-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:96481a5786729fd470164b47cdb3e0e58062a496f455ee41b4403be77cb5a076", size = 237561, upload-time = "2026-03-25T20:21:13.098Z" }, + { url = "https://files.pythonhosted.org/packages/48/c1/f41d9cb618acccca7df82aaf682f9b49013c9397212cb9f53219e3abac37/tomli-2.4.1-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5a881ab208c0baf688221f8cecc5401bd291d67e38a1ac884d6736cbcd8247e9", size = 243824, upload-time = "2026-03-25T20:21:14.569Z" }, + { url = "https://files.pythonhosted.org/packages/22/e4/5a816ecdd1f8ca51fb756ef684b90f2780afc52fc67f987e3c61d800a46d/tomli-2.4.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:47149d5bd38761ac8be13a84864bf0b7b70bc051806bc3669ab1cbc56216b23c", size = 242227, upload-time = "2026-03-25T20:21:15.712Z" }, + { url = "https://files.pythonhosted.org/packages/6b/49/2b2a0ef529aa6eec245d25f0c703e020a73955ad7edf73e7f54ddc608aa5/tomli-2.4.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:ec9bfaf3ad2df51ace80688143a6a4ebc09a248f6ff781a9945e51937008fcbc", size = 247859, upload-time = "2026-03-25T20:21:17.001Z" }, + { url = "https://files.pythonhosted.org/packages/83/bd/6c1a630eaca337e1e78c5903104f831bda934c426f9231429396ce3c3467/tomli-2.4.1-cp311-cp311-win32.whl", hash = "sha256:ff2983983d34813c1aeb0fa89091e76c3a22889ee83ab27c5eeb45100560c049", size = 97204, upload-time = "2026-03-25T20:21:18.079Z" }, + { url = "https://files.pythonhosted.org/packages/42/59/71461df1a885647e10b6bb7802d0b8e66480c61f3f43079e0dcd315b3954/tomli-2.4.1-cp311-cp311-win_amd64.whl", hash = "sha256:5ee18d9ebdb417e384b58fe414e8d6af9f4e7a0ae761519fb50f721de398dd4e", size = 108084, upload-time = "2026-03-25T20:21:18.978Z" }, + { url = "https://files.pythonhosted.org/packages/b8/83/dceca96142499c069475b790e7913b1044c1a4337e700751f48ed723f883/tomli-2.4.1-cp311-cp311-win_arm64.whl", hash = "sha256:c2541745709bad0264b7d4705ad453b76ccd191e64aa6f0fc66b69a293a45ece", size = 95285, upload-time = "2026-03-25T20:21:20.309Z" }, + { url = "https://files.pythonhosted.org/packages/c1/ba/42f134a3fe2b370f555f44b1d72feebb94debcab01676bf918d0cb70e9aa/tomli-2.4.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:c742f741d58a28940ce01d58f0ab2ea3ced8b12402f162f4d534dfe18ba1cd6a", size = 155924, upload-time = "2026-03-25T20:21:21.626Z" }, + { url = "https://files.pythonhosted.org/packages/dc/c7/62d7a17c26487ade21c5422b646110f2162f1fcc95980ef7f63e73c68f14/tomli-2.4.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7f86fd587c4ed9dd76f318225e7d9b29cfc5a9d43de44e5754db8d1128487085", size = 150018, upload-time = "2026-03-25T20:21:23.002Z" }, + { url = "https://files.pythonhosted.org/packages/5c/05/79d13d7c15f13bdef410bdd49a6485b1c37d28968314eabee452c22a7fda/tomli-2.4.1-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:ff18e6a727ee0ab0388507b89d1bc6a22b138d1e2fa56d1ad494586d61d2eae9", size = 244948, upload-time = "2026-03-25T20:21:24.04Z" }, + { url = "https://files.pythonhosted.org/packages/10/90/d62ce007a1c80d0b2c93e02cab211224756240884751b94ca72df8a875ca/tomli-2.4.1-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:136443dbd7e1dee43c68ac2694fde36b2849865fa258d39bf822c10e8068eac5", size = 253341, upload-time = "2026-03-25T20:21:25.177Z" }, + { url = "https://files.pythonhosted.org/packages/1a/7e/caf6496d60152ad4ed09282c1885cca4eea150bfd007da84aea07bcc0a3e/tomli-2.4.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:5e262d41726bc187e69af7825504c933b6794dc3fbd5945e41a79bb14c31f585", size = 248159, upload-time = "2026-03-25T20:21:26.364Z" }, + { url = "https://files.pythonhosted.org/packages/99/e7/c6f69c3120de34bbd882c6fba7975f3d7a746e9218e56ab46a1bc4b42552/tomli-2.4.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:5cb41aa38891e073ee49d55fbc7839cfdb2bc0e600add13874d048c94aadddd1", size = 253290, upload-time = "2026-03-25T20:21:27.46Z" }, + { url = "https://files.pythonhosted.org/packages/d6/2f/4a3c322f22c5c66c4b836ec58211641a4067364f5dcdd7b974b4c5da300c/tomli-2.4.1-cp312-cp312-win32.whl", hash = "sha256:da25dc3563bff5965356133435b757a795a17b17d01dbc0f42fb32447ddfd917", size = 98141, upload-time = "2026-03-25T20:21:28.492Z" }, + { url = "https://files.pythonhosted.org/packages/24/22/4daacd05391b92c55759d55eaee21e1dfaea86ce5c571f10083360adf534/tomli-2.4.1-cp312-cp312-win_amd64.whl", hash = "sha256:52c8ef851d9a240f11a88c003eacb03c31fc1c9c4ec64a99a0f922b93874fda9", size = 108847, upload-time = "2026-03-25T20:21:29.386Z" }, + { url = "https://files.pythonhosted.org/packages/68/fd/70e768887666ddd9e9f5d85129e84910f2db2796f9096aa02b721a53098d/tomli-2.4.1-cp312-cp312-win_arm64.whl", hash = "sha256:f758f1b9299d059cc3f6546ae2af89670cb1c4d48ea29c3cacc4fe7de3058257", size = 95088, upload-time = "2026-03-25T20:21:30.677Z" }, + { url = "https://files.pythonhosted.org/packages/07/06/b823a7e818c756d9a7123ba2cda7d07bc2dd32835648d1a7b7b7a05d848d/tomli-2.4.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:36d2bd2ad5fb9eaddba5226aa02c8ec3fa4f192631e347b3ed28186d43be6b54", size = 155866, upload-time = "2026-03-25T20:21:31.65Z" }, + { url = "https://files.pythonhosted.org/packages/14/6f/12645cf7f08e1a20c7eb8c297c6f11d31c1b50f316a7e7e1e1de6e2e7b7e/tomli-2.4.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:eb0dc4e38e6a1fd579e5d50369aa2e10acfc9cace504579b2faabb478e76941a", size = 149887, upload-time = "2026-03-25T20:21:33.028Z" }, + { url = "https://files.pythonhosted.org/packages/5c/e0/90637574e5e7212c09099c67ad349b04ec4d6020324539297b634a0192b0/tomli-2.4.1-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:c7f2c7f2b9ca6bdeef8f0fa897f8e05085923eb091721675170254cbc5b02897", size = 243704, upload-time = "2026-03-25T20:21:34.51Z" }, + { url = "https://files.pythonhosted.org/packages/10/8f/d3ddb16c5a4befdf31a23307f72828686ab2096f068eaf56631e136c1fdd/tomli-2.4.1-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f3c6818a1a86dd6dca7ddcaaf76947d5ba31aecc28cb1b67009a5877c9a64f3f", size = 251628, upload-time = "2026-03-25T20:21:36.012Z" }, + { url = "https://files.pythonhosted.org/packages/e3/f1/dbeeb9116715abee2485bf0a12d07a8f31af94d71608c171c45f64c0469d/tomli-2.4.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d312ef37c91508b0ab2cee7da26ec0b3ed2f03ce12bd87a588d771ae15dcf82d", size = 247180, upload-time = "2026-03-25T20:21:37.136Z" }, + { url = "https://files.pythonhosted.org/packages/d3/74/16336ffd19ed4da28a70959f92f506233bd7cfc2332b20bdb01591e8b1d1/tomli-2.4.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:51529d40e3ca50046d7606fa99ce3956a617f9b36380da3b7f0dd3dd28e68cb5", size = 251674, upload-time = "2026-03-25T20:21:38.298Z" }, + { url = "https://files.pythonhosted.org/packages/16/f9/229fa3434c590ddf6c0aa9af64d3af4b752540686cace29e6281e3458469/tomli-2.4.1-cp313-cp313-win32.whl", hash = "sha256:2190f2e9dd7508d2a90ded5ed369255980a1bcdd58e52f7fe24b8162bf9fedbd", size = 97976, upload-time = "2026-03-25T20:21:39.316Z" }, + { url = "https://files.pythonhosted.org/packages/6a/1e/71dfd96bcc1c775420cb8befe7a9d35f2e5b1309798f009dca17b7708c1e/tomli-2.4.1-cp313-cp313-win_amd64.whl", hash = "sha256:8d65a2fbf9d2f8352685bc1364177ee3923d6baf5e7f43ea4959d7d8bc326a36", size = 108755, upload-time = "2026-03-25T20:21:40.248Z" }, + { url = "https://files.pythonhosted.org/packages/83/7a/d34f422a021d62420b78f5c538e5b102f62bea616d1d75a13f0a88acb04a/tomli-2.4.1-cp313-cp313-win_arm64.whl", hash = "sha256:4b605484e43cdc43f0954ddae319fb75f04cc10dd80d830540060ee7cd0243cd", size = 95265, upload-time = "2026-03-25T20:21:41.219Z" }, + { url = "https://files.pythonhosted.org/packages/3c/fb/9a5c8d27dbab540869f7c1f8eb0abb3244189ce780ba9cd73f3770662072/tomli-2.4.1-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:fd0409a3653af6c147209d267a0e4243f0ae46b011aa978b1080359fddc9b6cf", size = 155726, upload-time = "2026-03-25T20:21:42.23Z" }, + { url = "https://files.pythonhosted.org/packages/62/05/d2f816630cc771ad836af54f5001f47a6f611d2d39535364f148b6a92d6b/tomli-2.4.1-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:a120733b01c45e9a0c34aeef92bf0cf1d56cfe81ed9d47d562f9ed591a9828ac", size = 149859, upload-time = "2026-03-25T20:21:43.386Z" }, + { url = "https://files.pythonhosted.org/packages/ce/48/66341bdb858ad9bd0ceab5a86f90eddab127cf8b046418009f2125630ecb/tomli-2.4.1-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:559db847dc486944896521f68d8190be1c9e719fced785720d2216fe7022b662", size = 244713, upload-time = "2026-03-25T20:21:44.474Z" }, + { url = "https://files.pythonhosted.org/packages/df/6d/c5fad00d82b3c7a3ab6189bd4b10e60466f22cfe8a08a9394185c8a8111c/tomli-2.4.1-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:01f520d4f53ef97964a240a035ec2a869fe1a37dde002b57ebc4417a27ccd853", size = 252084, upload-time = "2026-03-25T20:21:45.62Z" }, + { url = "https://files.pythonhosted.org/packages/00/71/3a69e86f3eafe8c7a59d008d245888051005bd657760e96d5fbfb0b740c2/tomli-2.4.1-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:7f94b27a62cfad8496c8d2513e1a222dd446f095fca8987fceef261225538a15", size = 247973, upload-time = "2026-03-25T20:21:46.937Z" }, + { url = "https://files.pythonhosted.org/packages/67/50/361e986652847fec4bd5e4a0208752fbe64689c603c7ae5ea7cb16b1c0ca/tomli-2.4.1-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:ede3e6487c5ef5d28634ba3f31f989030ad6af71edfb0055cbbd14189ff240ba", size = 256223, upload-time = "2026-03-25T20:21:48.467Z" }, + { url = "https://files.pythonhosted.org/packages/8c/9a/b4173689a9203472e5467217e0154b00e260621caa227b6fa01feab16998/tomli-2.4.1-cp314-cp314-win32.whl", hash = "sha256:3d48a93ee1c9b79c04bb38772ee1b64dcf18ff43085896ea460ca8dec96f35f6", size = 98973, upload-time = "2026-03-25T20:21:49.526Z" }, + { url = "https://files.pythonhosted.org/packages/14/58/640ac93bf230cd27d002462c9af0d837779f8773bc03dee06b5835208214/tomli-2.4.1-cp314-cp314-win_amd64.whl", hash = "sha256:88dceee75c2c63af144e456745e10101eb67361050196b0b6af5d717254dddf7", size = 109082, upload-time = "2026-03-25T20:21:50.506Z" }, + { url = "https://files.pythonhosted.org/packages/d5/2f/702d5e05b227401c1068f0d386d79a589bb12bf64c3d2c72ce0631e3bc49/tomli-2.4.1-cp314-cp314-win_arm64.whl", hash = "sha256:b8c198f8c1805dc42708689ed6864951fd2494f924149d3e4bce7710f8eb5232", size = 96490, upload-time = "2026-03-25T20:21:51.474Z" }, + { url = "https://files.pythonhosted.org/packages/45/4b/b877b05c8ba62927d9865dd980e34a755de541eb65fffba52b4cc495d4d2/tomli-2.4.1-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:d4d8fe59808a54658fcc0160ecfb1b30f9089906c50b23bcb4c69eddc19ec2b4", size = 164263, upload-time = "2026-03-25T20:21:52.543Z" }, + { url = "https://files.pythonhosted.org/packages/24/79/6ab420d37a270b89f7195dec5448f79400d9e9c1826df982f3f8e97b24fd/tomli-2.4.1-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7008df2e7655c495dd12d2a4ad038ff878d4ca4b81fccaf82b714e07eae4402c", size = 160736, upload-time = "2026-03-25T20:21:53.674Z" }, + { url = "https://files.pythonhosted.org/packages/02/e0/3630057d8eb170310785723ed5adcdfb7d50cb7e6455f85ba8a3deed642b/tomli-2.4.1-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1d8591993e228b0c930c4bb0db464bdad97b3289fb981255d6c9a41aedc84b2d", size = 270717, upload-time = "2026-03-25T20:21:55.129Z" }, + { url = "https://files.pythonhosted.org/packages/7a/b4/1613716072e544d1a7891f548d8f9ec6ce2faf42ca65acae01d76ea06bb0/tomli-2.4.1-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:734e20b57ba95624ecf1841e72b53f6e186355e216e5412de414e3c51e5e3c41", size = 278461, upload-time = "2026-03-25T20:21:56.228Z" }, + { url = "https://files.pythonhosted.org/packages/05/38/30f541baf6a3f6df77b3df16b01ba319221389e2da59427e221ef417ac0c/tomli-2.4.1-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:8a650c2dbafa08d42e51ba0b62740dae4ecb9338eefa093aa5c78ceb546fcd5c", size = 274855, upload-time = "2026-03-25T20:21:57.653Z" }, + { url = "https://files.pythonhosted.org/packages/77/a3/ec9dd4fd2c38e98de34223b995a3b34813e6bdadf86c75314c928350ed14/tomli-2.4.1-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:504aa796fe0569bb43171066009ead363de03675276d2d121ac1a4572397870f", size = 283144, upload-time = "2026-03-25T20:21:59.089Z" }, + { url = "https://files.pythonhosted.org/packages/ef/be/605a6261cac79fba2ec0c9827e986e00323a1945700969b8ee0b30d85453/tomli-2.4.1-cp314-cp314t-win32.whl", hash = "sha256:b1d22e6e9387bf4739fbe23bfa80e93f6b0373a7f1b96c6227c32bef95a4d7a8", size = 108683, upload-time = "2026-03-25T20:22:00.214Z" }, + { url = "https://files.pythonhosted.org/packages/12/64/da524626d3b9cc40c168a13da8335fe1c51be12c0a63685cc6db7308daae/tomli-2.4.1-cp314-cp314t-win_amd64.whl", hash = "sha256:2c1c351919aca02858f740c6d33adea0c5deea37f9ecca1cc1ef9e884a619d26", size = 121196, upload-time = "2026-03-25T20:22:01.169Z" }, + { url = "https://files.pythonhosted.org/packages/5a/cd/e80b62269fc78fc36c9af5a6b89c835baa8af28ff5ad28c7028d60860320/tomli-2.4.1-cp314-cp314t-win_arm64.whl", hash = "sha256:eab21f45c7f66c13f2a9e0e1535309cee140182a9cdae1e041d02e47291e8396", size = 100393, upload-time = "2026-03-25T20:22:02.137Z" }, + { url = "https://files.pythonhosted.org/packages/7b/61/cceae43728b7de99d9b847560c262873a1f6c98202171fd5ed62640b494b/tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe", size = 14583, upload-time = "2026-03-25T20:22:03.012Z" }, +] + +[[package]] +name = "typing-extensions" +version = "4.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/72/94/1a15dd82efb362ac84269196e94cf00f187f7ed21c242792a923cdb1c61f/typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466", size = 109391, upload-time = "2025-08-25T13:49:26.313Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/18/67/36e9267722cc04a6b9f15c7f3441c2363321a3ea07da7ae0c0707beb2a9c/typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548", size = 44614, upload-time = "2025-08-25T13:49:24.86Z" }, +] + +[[package]] +name = "zipp" +version = "3.23.1" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version < '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/30/21/093488dfc7cc8964ded15ab726fad40f25fd3d788fd741cc1c5a17d78ee8/zipp-3.23.1.tar.gz", hash = "sha256:32120e378d32cd9714ad503c1d024619063ec28aad2248dc6672ad13edfa5110", size = 25965, upload-time = "2026-04-13T23:21:46.6Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/08/8a/0861bec20485572fbddf3dfba2910e38fe249796cb73ecdeb74e07eeb8d3/zipp-3.23.1-py3-none-any.whl", hash = "sha256:0b3596c50a5c700c9cb40ba8d86d9f2cc4807e9bedb06bcdf7fac85633e444dc", size = 10378, upload-time = "2026-04-13T23:21:45.386Z" }, +] + +[[package]] +name = "zipp" +version = "4.1.0" +source = { registry = "https://pypi.org/simple" } +resolution-markers = [ + "python_full_version >= '3.10'", +] +sdist = { url = "https://files.pythonhosted.org/packages/b9/d8/eab98a517c14134c0b2eb4e2387bc5f457334293ec5d2dd3857ec2966802/zipp-4.1.0.tar.gz", hash = "sha256:4cb57381f544315db7688e976e922a2b18cdb513d21cc194eb42232ba2a3e602", size = 26214, upload-time = "2026-05-18T20:08:57.967Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/3a/13/547360d81e6d88d58492968ffda9f9542854f11310ee556fef14260cc886/zipp-4.1.0-py3-none-any.whl", hash = "sha256:25ad4e16390cd314347dd8f1de67a2ac538ae658ed4ab9db16029c07c188e97f", size = 10238, upload-time = "2026-05-18T20:08:57.045Z" }, +] diff --git a/e2e/cases/interpreter-features-tkinter/BUILD.bazel b/e2e/cases/interpreter-features-tkinter/BUILD.bazel new file mode 100644 index 000000000..650187da6 --- /dev/null +++ b/e2e/cases/interpreter-features-tkinter/BUILD.bazel @@ -0,0 +1,72 @@ +load("@aspect_rules_py//py:defs.bzl", "py_binary", "py_image_layer", "py_test", "py_venv") +load("@bazel_lib//lib:transitions.bzl", "platform_transition_filegroup") +load("@container_structure_test//:defs.bzl", "container_structure_test") +load("@rules_oci//oci:defs.bzl", "oci_image") +load("//tools:asserts.bzl", "assert_tar_listing") + +platform( + name = "exclude_tkinter_linux_amd64", + constraint_values = [ + "@platforms//os:linux", + "@platforms//cpu:x86_64", + "@llvm//constraints/libc:gnu.2.28", + ], + flags = [ + "--@aspect_rules_py//uv/private/constraints/platform:platform_libc=glibc", + "--@aspect_rules_py//py/private/interpreter:exclude_feature=tkinter", + ], +) + +py_binary( + name = "check_no_tkinter", + srcs = ["__main__.py"], + main = "__main__.py", + python_version = "3.11", + tags = ["manual"], + deps = ["//tools/verify_venv"], +) + +py_image_layer( + name = "layers", + binary = ":check_no_tkinter", +) + +platform_transition_filegroup( + name = "amd64_layers", + srcs = [":layers"], + target_platform = ":exclude_tkinter_linux_amd64", +) + +assert_tar_listing( + name = "amd64_layers_listing", + actual = [":amd64_layers"], + expected = "amd64_layers_listing.yaml", +) + +oci_image( + name = "image", + base = "@ubuntu", + entrypoint = ["/app"], + tars = [":layers"], +) + +platform_transition_filegroup( + name = "amd64_image", + srcs = [":image"], + target_platform = ":exclude_tkinter_linux_amd64", +) + +container_structure_test( + name = "test", + args = ["--verbosity=debug"], + configs = ["test.yaml"], + image = ":amd64_image", + platform = "linux/amd64", + tags = [ + "requires-docker", + "skip-on-bazel9", + ], + target_compatible_with = [ + "@platforms//cpu:x86_64", + ], +) diff --git a/e2e/cases/interpreter-features-tkinter/__main__.py b/e2e/cases/interpreter-features-tkinter/__main__.py new file mode 100644 index 000000000..34f897c2e --- /dev/null +++ b/e2e/cases/interpreter-features-tkinter/__main__.py @@ -0,0 +1,21 @@ +import importlib.util +import sys + +from verify_venv import verify_all + +if __name__ == "__main__": + verify_all() + + tkinter_spec = importlib.util.find_spec("tkinter") + if tkinter_spec is not None: + print(f"FAIL: tkinter found at {tkinter_spec.origin}") + sys.exit(1) + + try: + import _tkinter # noqa: F401 + print("FAIL: _tkinter is importable") + sys.exit(1) + except ImportError: + pass + + print("OK: tkinter and _tkinter are not importable") diff --git a/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml b/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml new file mode 100644 index 000000000..56d08d6b8 --- /dev/null +++ b/e2e/cases/interpreter-features-tkinter/snapshots/amd64_layers_listing.yaml @@ -0,0 +1,1880 @@ +--- +layer: 0 +files: + - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app + - -rwxr-xr-x 0 0 0 2124 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/bin/activate + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/bin/python -> ../../../../aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/bin/python3 -> python + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/bin/python3.11 -> python + - -rwxr-xr-x 0 0 0 84 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_check_no_tkinter.venv.pth + - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_virtualenv.pth + - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/lib/python3.11/site-packages/_virtualenv.py + - -rwxr-xr-x 0 0 0 153 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/._check_no_tkinter.venv/pyvenv.cfg + - -rwxr-xr-x 0 0 0 495 Jan 1 2023 ./app.runfiles/_main/interpreter-features-tkinter/__main__.py + - -rwxr-xr-x 0 0 0 6570 Jan 1 2023 ./app.runfiles/_main/tools/verify_venv/verify_venv.py + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/2to3 -> 2to3-3.11 + - -rwxr-xr-x 0 0 0 158 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/2to3-3.11 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/idle3 -> idle3.11 + - -rwxr-xr-x 0 0 0 156 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/idle3.11 + - -rwxr-xr-x 0 0 0 234 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/pip + - -rwxr-xr-x 0 0 0 234 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/pip3 + - -rwxr-xr-x 0 0 0 234 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/pip3.11 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/pydoc3 -> pydoc3.11 + - -rwxr-xr-x 0 0 0 141 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/pydoc3.11 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python -> python3.11 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 -> python3.11 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3-config -> python3.11-config + - -rwxr-xr-x 0 0 0 52332240 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3.11 + - -rwxr-xr-x 0 0 0 3069 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3.11-config + - -rwxr-xr-x 0 0 0 2854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/Python.h + - -rwxr-xr-x 0 0 0 31404 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/abstract.h + - -rwxr-xr-x 0 0 0 264 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/bltinmodule.h + - -rwxr-xr-x 0 0 0 1212 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/boolobject.h + - -rwxr-xr-x 0 0 0 1462 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/bytearrayobject.h + - -rwxr-xr-x 0 0 0 2617 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/bytesobject.h + - -rwxr-xr-x 0 0 0 6255 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/ceval.h + - -rwxr-xr-x 0 0 0 7071 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/codecs.h + - -rwxr-xr-x 0 0 0 520 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/compile.h + - -rwxr-xr-x 0 0 0 724 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/complexobject.h + - -rwxr-xr-x 0 0 0 8229 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/abstract.h + - -rwxr-xr-x 0 0 0 1305 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/bytearrayobject.h + - -rwxr-xr-x 0 0 0 4802 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/bytesobject.h + - -rwxr-xr-x 0 0 0 723 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/cellobject.h + - -rwxr-xr-x 0 0 0 1239 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/ceval.h + - -rwxr-xr-x 0 0 0 1656 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/classobject.h + - -rwxr-xr-x 0 0 0 11484 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/code.h + - -rwxr-xr-x 0 0 0 2218 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/compile.h + - -rwxr-xr-x 0 0 0 1248 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/complexobject.h + - -rwxr-xr-x 0 0 0 1959 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/context.h + - -rwxr-xr-x 0 0 0 1642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/descrobject.h + - -rwxr-xr-x 0 0 0 3324 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/dictobject.h + - -rwxr-xr-x 0 0 0 818 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/fileobject.h + - -rwxr-xr-x 0 0 0 232 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/fileutils.h + - -rwxr-xr-x 0 0 0 702 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/floatobject.h + - -rwxr-xr-x 0 0 0 1108 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/frameobject.h + - -rwxr-xr-x 0 0 0 4424 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/funcobject.h + - -rwxr-xr-x 0 0 0 3279 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/genobject.h + - -rwxr-xr-x 0 0 0 1526 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/import.h + - -rwxr-xr-x 0 0 0 7817 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/initconfig.h + - -rwxr-xr-x 0 0 0 1769 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/listobject.h + - -rwxr-xr-x 0 0 0 3817 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/longintrepr.h + - -rwxr-xr-x 0 0 0 4532 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/longobject.h + - -rwxr-xr-x 0 0 0 2556 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/methodobject.h + - -rwxr-xr-x 0 0 0 4303 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/modsupport.h + - -rwxr-xr-x 0 0 0 18305 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/object.h + - -rwxr-xr-x 0 0 0 2998 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/objimpl.h + - -rwxr-xr-x 0 0 0 1299 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/odictobject.h + - -rwxr-xr-x 0 0 0 846 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/picklebufobject.h + - -rwxr-xr-x 0 0 0 3505 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pthread_stubs.h + - -rwxr-xr-x 0 0 0 1387 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pyctype.h + - -rwxr-xr-x 0 0 0 1073 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pydebug.h + - -rwxr-xr-x 0 0 0 4522 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pyerrors.h + - -rwxr-xr-x 0 0 0 444 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pyfpe.h + - -rwxr-xr-x 0 0 0 582 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pyframe.h + - -rwxr-xr-x 0 0 0 2099 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pylifecycle.h + - -rwxr-xr-x 0 0 0 3379 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pymem.h + - -rwxr-xr-x 0 0 0 14351 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pystate.h + - -rwxr-xr-x 0 0 0 4811 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pythonrun.h + - -rwxr-xr-x 0 0 0 1426 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pythread.h + - -rwxr-xr-x 0 0 0 12158 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/pytime.h + - -rwxr-xr-x 0 0 0 1997 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/setobject.h + - -rwxr-xr-x 0 0 0 489 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/sysmodule.h + - -rwxr-xr-x 0 0 0 444 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/traceback.h + - -rwxr-xr-x 0 0 0 1513 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/tupleobject.h + - -rwxr-xr-x 0 0 0 42739 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/unicodeobject.h + - -rwxr-xr-x 0 0 0 560 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/warnings.h + - -rwxr-xr-x 0 0 0 2103 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/cpython/weakrefobject.h + - -rwxr-xr-x 0 0 0 9635 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/datetime.h + - -rwxr-xr-x 0 0 0 1256 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/descrobject.h + - -rwxr-xr-x 0 0 0 3852 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/dictobject.h + - -rwxr-xr-x 0 0 0 22471 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/dynamic_annotations.h + - -rwxr-xr-x 0 0 0 253 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/enumobject.h + - -rwxr-xr-x 0 0 0 1780 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/errcode.h + - -rwxr-xr-x 0 0 0 1098 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/exports.h + - -rwxr-xr-x 0 0 0 1570 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/fileobject.h + - -rwxr-xr-x 0 0 0 507 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/fileutils.h + - -rwxr-xr-x 0 0 0 1530 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/floatobject.h + - -rwxr-xr-x 0 0 0 336 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/frameobject.h + - -rwxr-xr-x 0 0 0 334 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/genericaliasobject.h + - -rwxr-xr-x 0 0 0 3025 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/import.h + - -rwxr-xr-x 0 0 0 611 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_abstract.h + - -rwxr-xr-x 0 0 0 1126 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_accu.h + - -rwxr-xr-x 0 0 0 3031 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_asdl.h + - -rwxr-xr-x 0 0 0 29315 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_ast.h + - -rwxr-xr-x 0 0 0 6549 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_ast_state.h + - -rwxr-xr-x 0 0 0 16979 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_atomic.h + - -rwxr-xr-x 0 0 0 2438 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_atomic_funcs.h + - -rwxr-xr-x 0 0 0 6062 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_bitutils.h + - -rwxr-xr-x 0 0 0 8688 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_blocks_output_buffer.h + - -rwxr-xr-x 0 0 0 3384 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_bytes_methods.h + - -rwxr-xr-x 0 0 0 1424 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_bytesobject.h + - -rwxr-xr-x 0 0 0 3475 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_call.h + - -rwxr-xr-x 0 0 0 4409 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_ceval.h + - -rwxr-xr-x 0 0 0 15930 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_code.h + - -rwxr-xr-x 0 0 0 1045 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_compile.h + - -rwxr-xr-x 0 0 0 2839 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_condvar.h + - -rwxr-xr-x 0 0 0 1239 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_context.h + - -rwxr-xr-x 0 0 0 5684 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_dict.h + - -rwxr-xr-x 0 0 0 704 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_dtoa.h + - -rwxr-xr-x 0 0 0 562 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_emscripten_signal.h + - -rwxr-xr-x 0 0 0 842 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_exceptions.h + - -rwxr-xr-x 0 0 0 7403 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_fileutils.h + - -rwxr-xr-x 0 0 0 1307 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_floatobject.h + - -rwxr-xr-x 0 0 0 480 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_format.h + - -rwxr-xr-x 0 0 0 7567 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_frame.h + - -rwxr-xr-x 0 0 0 413 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_function.h + - -rwxr-xr-x 0 0 0 6895 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_gc.h + - -rwxr-xr-x 0 0 0 1164 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_genobject.h + - -rwxr-xr-x 0 0 0 490 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_getopt.h + - -rwxr-xr-x 0 0 0 1565 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_gil.h + - -rwxr-xr-x 0 0 0 1436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_global_objects.h + - -rwxr-xr-x 0 0 0 12980 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_global_strings.h + - -rwxr-xr-x 0 0 0 3696 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_hamt.h + - -rwxr-xr-x 0 0 0 4197 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_hashtable.h + - -rwxr-xr-x 0 0 0 743 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_import.h + - -rwxr-xr-x 0 0 0 5800 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_initconfig.h + - -rwxr-xr-x 0 0 0 6671 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_interp.h + - -rwxr-xr-x 0 0 0 562 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_interpreteridobject.h + - -rwxr-xr-x 0 0 0 1352 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_list.h + - -rwxr-xr-x 0 0 0 3516 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_long.h + - -rwxr-xr-x 0 0 0 1040 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_moduleobject.h + - -rwxr-xr-x 0 0 0 392 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_namespace.h + - -rwxr-xr-x 0 0 0 10037 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_object.h + - -rwxr-xr-x 0 0 0 18986 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_opcode.h + - -rwxr-xr-x 0 0 0 626 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_parser.h + - -rwxr-xr-x 0 0 0 606 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pathconfig.h + - -rwxr-xr-x 0 0 0 2733 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pyarena.h + - -rwxr-xr-x 0 0 0 2494 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pyerrors.h + - -rwxr-xr-x 0 0 0 206 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pyhash.h + - -rwxr-xr-x 0 0 0 3507 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pylifecycle.h + - -rwxr-xr-x 0 0 0 9435 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pymath.h + - -rwxr-xr-x 0 0 0 3708 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pymem.h + - -rwxr-xr-x 0 0 0 4250 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_pystate.h + - -rwxr-xr-x 0 0 0 5988 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_runtime.h + - -rwxr-xr-x 0 0 0 49092 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_runtime_init.h + - -rwxr-xr-x 0 0 0 937 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_signal.h + - -rwxr-xr-x 0 0 0 336 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_sliceobject.h + - -rwxr-xr-x 0 0 0 937 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_strhex.h + - -rwxr-xr-x 0 0 0 580 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_structseq.h + - -rwxr-xr-x 0 0 0 5638 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_symtable.h + - -rwxr-xr-x 0 0 0 605 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_sysmodule.h + - -rwxr-xr-x 0 0 0 3501 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_traceback.h + - -rwxr-xr-x 0 0 0 2089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_tuple.h + - -rwxr-xr-x 0 0 0 1158 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_typeobject.h + - -rwxr-xr-x 0 0 0 898 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_ucnhash.h + - -rwxr-xr-x 0 0 0 1716 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_unicodeobject.h + - -rwxr-xr-x 0 0 0 678 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_unionobject.h + - -rwxr-xr-x 0 0 0 740 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/internal/pycore_warnings.h + - -rwxr-xr-x 0 0 0 772 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/intrcheck.h + - -rwxr-xr-x 0 0 0 593 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/iterobject.h + - -rwxr-xr-x 0 0 0 1780 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/listobject.h + - -rwxr-xr-x 0 0 0 3736 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/longobject.h + - -rwxr-xr-x 0 0 0 827 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/marshal.h + - -rwxr-xr-x 0 0 0 2810 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/memoryobject.h + - -rwxr-xr-x 0 0 0 5072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/methodobject.h + - -rwxr-xr-x 0 0 0 6541 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/modsupport.h + - -rwxr-xr-x 0 0 0 2374 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/moduleobject.h + - -rwxr-xr-x 0 0 0 29800 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/object.h + - -rwxr-xr-x 0 0 0 8428 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/objimpl.h + - -rwxr-xr-x 0 0 0 11187 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/opcode.h + - -rwxr-xr-x 0 0 0 737 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/osdefs.h + - -rwxr-xr-x 0 0 0 291 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/osmodule.h + - -rwxr-xr-x 0 0 0 1301 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/patchlevel.h + - -rwxr-xr-x 0 0 0 2471 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/py_curses.h + - -rwxr-xr-x 0 0 0 5115 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pybuffer.h + - -rwxr-xr-x 0 0 0 1725 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pycapsule.h + - -rwxr-xr-x 0 0 0 53348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pyconfig.h + - -rwxr-xr-x 0 0 0 2413 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pydtrace.h + - -rwxr-xr-x 0 0 0 12782 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pyerrors.h + - -rwxr-xr-x 0 0 0 2850 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pyexpat.h + - -rwxr-xr-x 0 0 0 551 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pyframe.h + - -rwxr-xr-x 0 0 0 4154 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pyhash.h + - -rwxr-xr-x 0 0 0 2249 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pylifecycle.h + - -rwxr-xr-x 0 0 0 2989 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pymacconfig.h + - -rwxr-xr-x 0 0 0 6064 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pymacro.h + - -rwxr-xr-x 0 0 0 1979 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pymath.h + - -rwxr-xr-x 0 0 0 3890 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pymem.h + - -rwxr-xr-x 0 0 0 24452 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pyport.h + - -rwxr-xr-x 0 0 0 4635 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pystate.h + - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pystrcmp.h + - -rwxr-xr-x 0 0 0 1557 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pystrtod.h + - -rwxr-xr-x 0 0 0 1189 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pythonrun.h + - -rwxr-xr-x 0 0 0 4833 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pythread.h + - -rwxr-xr-x 0 0 0 851 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/pytypedefs.h + - -rwxr-xr-x 0 0 0 628 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/rangeobject.h + - -rwxr-xr-x 0 0 0 1543 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/setobject.h + - -rwxr-xr-x 0 0 0 2516 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/sliceobject.h + - -rwxr-xr-x 0 0 0 2040 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/structmember.h + - -rwxr-xr-x 0 0 0 1388 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/structseq.h + - -rwxr-xr-x 0 0 0 1381 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/sysmodule.h + - -rwxr-xr-x 0 0 0 2669 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/token.h + - -rwxr-xr-x 0 0 0 583 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/traceback.h + - -rwxr-xr-x 0 0 0 1114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/tracemalloc.h + - -rwxr-xr-x 0 0 0 1613 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/tupleobject.h + - -rwxr-xr-x 0 0 0 2342 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/typeslots.h + - -rwxr-xr-x 0 0 0 36032 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/unicodeobject.h + - -rwxr-xr-x 0 0 0 1129 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/warnings.h + - -rwxr-xr-x 0 0 0 1226 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/include/python3.11/weakrefobject.h + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.11.so -> libpython3.11.so.1.0 + - -rwxr-xr-x 0 0 0 52680520 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.11.so.1.0 + - -rwxr-xr-x 0 0 0 16800 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.so + - -rwxr-xr-x 0 0 0 312 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/pkgconfig/python-3.11-embed.pc + - -rwxr-xr-x 0 0 0 285 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/pkgconfig/python-3.11.pc + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/pkgconfig/python3-embed.pc -> python-3.11-embed.pc + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/pkgconfig/python3.pc -> python-3.11.pc + - -rwxr-xr-x 0 0 0 13936 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/LICENSE.txt + - -rwxr-xr-x 0 0 0 5218 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/__future__.py + - -rwxr-xr-x 0 0 0 227 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/__hello__.py + - -rwxr-xr-x 0 0 0 97 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/__phello__/__init__.py + - -rwxr-xr-x 0 0 0 97 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/__phello__/spam.py + - -rwxr-xr-x 0 0 0 3389 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_aix_support.py + - -rwxr-xr-x 0 0 0 2675 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_bootsubprocess.py + - -rwxr-xr-x 0 0 0 30193 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_collections_abc.py + - -rwxr-xr-x 0 0 0 8761 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_compat_pickle.py + - -rwxr-xr-x 0 0 0 5681 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_compression.py + - -rwxr-xr-x 0 0 0 14653 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_markupbase.py + - -rwxr-xr-x 0 0 0 22023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_osx_support.py + - -rwxr-xr-x 0 0 0 6189 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_py_abc.py + - -rwxr-xr-x 0 0 0 229202 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_pydecimal.py + - -rwxr-xr-x 0 0 0 94193 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_pyio.py + - -rwxr-xr-x 0 0 0 3128 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_sitebuiltins.py + - -rwxr-xr-x 0 0 0 25175 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_strptime.py + - -rwxr-xr-x 0 0 0 39698 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_sysconfigdata__linux_x86_64-linux-gnu.py + - -rwxr-xr-x 0 0 0 7220 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_threading_local.py + - -rwxr-xr-x 0 0 0 5893 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/_weakrefset.py + - -rwxr-xr-x 0 0 0 6538 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/abc.py + - -rwxr-xr-x 0 0 0 34211 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/aifc.py + - -rwxr-xr-x 0 0 0 500 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/antigravity.py + - -rwxr-xr-x 0 0 0 100283 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/argparse.py + - -rwxr-xr-x 0 0 0 61444 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ast.py + - -rwxr-xr-x 0 0 0 11570 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asynchat.py + - -rwxr-xr-x 0 0 0 1188 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/__init__.py + - -rwxr-xr-x 0 0 0 3379 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/__main__.py + - -rwxr-xr-x 0 0 0 75384 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/base_events.py + - -rwxr-xr-x 0 0 0 2004 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/base_futures.py + - -rwxr-xr-x 0 0 0 8869 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/base_subprocess.py + - -rwxr-xr-x 0 0 0 2644 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/base_tasks.py + - -rwxr-xr-x 0 0 0 1326 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/constants.py + - -rwxr-xr-x 0 0 0 3400 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/coroutines.py + - -rwxr-xr-x 0 0 0 28641 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/events.py + - -rwxr-xr-x 0 0 0 1752 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/exceptions.py + - -rwxr-xr-x 0 0 0 2404 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/format_helpers.py + - -rwxr-xr-x 0 0 0 14212 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/futures.py + - -rwxr-xr-x 0 0 0 19014 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/locks.py + - -rwxr-xr-x 0 0 0 124 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/log.py + - -rwxr-xr-x 0 0 0 481 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/mixins.py + - -rwxr-xr-x 0 0 0 33264 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/proactor_events.py + - -rwxr-xr-x 0 0 0 6957 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/protocols.py + - -rwxr-xr-x 0 0 0 7974 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/queues.py + - -rwxr-xr-x 0 0 0 6842 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/runners.py + - -rwxr-xr-x 0 0 0 45400 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/selector_events.py + - -rwxr-xr-x 0 0 0 31739 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/sslproto.py + - -rwxr-xr-x 0 0 0 5992 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/staggered.py + - -rwxr-xr-x 0 0 0 27503 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/streams.py + - -rwxr-xr-x 0 0 0 7682 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/subprocess.py + - -rwxr-xr-x 0 0 0 8471 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/taskgroups.py + - -rwxr-xr-x 0 0 0 34433 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/tasks.py + - -rwxr-xr-x 0 0 0 790 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/threads.py + - -rwxr-xr-x 0 0 0 5321 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/timeouts.py + - -rwxr-xr-x 0 0 0 10722 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/transports.py + - -rwxr-xr-x 0 0 0 2475 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/trsock.py + - -rwxr-xr-x 0 0 0 51915 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/unix_events.py + - -rwxr-xr-x 0 0 0 34691 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/windows_events.py + - -rwxr-xr-x 0 0 0 5060 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncio/windows_utils.py + - -rwxr-xr-x 0 0 0 20310 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/asyncore.py + - -rwxr-xr-x 0 0 0 21028 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/base64.py + - -rwxr-xr-x 0 0 0 32463 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/bdb.py + - -rwxr-xr-x 0 0 0 3135 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/bisect.py + - -rwxr-xr-x 0 0 0 11847 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/bz2.py + - -rwxr-xr-x 0 0 0 6346 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/cProfile.py + - -rwxr-xr-x 0 0 0 24731 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/calendar.py + - -rwxr-xr-x 0 0 0 34479 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/cgi.py + - -rwxr-xr-x 0 0 0 12421 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/cgitb.py + - -rwxr-xr-x 0 0 0 5500 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/chunk.py + - -rwxr-xr-x 0 0 0 14873 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/cmd.py + - -rwxr-xr-x 0 0 0 10622 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/code.py + - -rwxr-xr-x 0 0 0 37150 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/codecs.py + - -rwxr-xr-x 0 0 0 5907 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/codeop.py + - -rwxr-xr-x 0 0 0 52018 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/collections/__init__.py + - -rwxr-xr-x 0 0 0 119 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/collections/abc.py + - -rwxr-xr-x 0 0 0 4062 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/colorsys.py + - -rwxr-xr-x 0 0 0 20252 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/compileall.py + - -rwxr-xr-x 0 0 0 38 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/concurrent/__init__.py + - -rwxr-xr-x 0 0 0 1558 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/concurrent/futures/__init__.py + - -rwxr-xr-x 0 0 0 22833 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/concurrent/futures/_base.py + - -rwxr-xr-x 0 0 0 35479 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/concurrent/futures/process.py + - -rwxr-xr-x 0 0 0 8771 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/concurrent/futures/thread.py + - -rwxr-xr-x 0 0 0 155142 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/Makefile + - -rwxr-xr-x 0 0 0 11182 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/Setup + - -rwxr-xr-x 0 0 0 878 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/Setup.bootstrap + - -rwxr-xr-x 0 0 0 3075 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/Setup.local + - -rwxr-xr-x 0 0 0 5449 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/Setup.stdlib + - -rwxr-xr-x 0 0 0 8593 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/config.c + - -rwxr-xr-x 0 0 0 1752 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/config.c.in + - -rwxr-xr-x 0 0 0 15358 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/install-sh + - -rwxr-xr-x 0 0 0 9262 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/makesetup + - -rwxr-xr-x 0 0 0 2100 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/python-config.py + - -rwxr-xr-x 0 0 0 4092 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/config-3.11-x86_64-linux-gnu/python.o + - -rwxr-xr-x 0 0 0 55660 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/configparser.py + - -rwxr-xr-x 0 0 0 27414 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/contextlib.py + - -rwxr-xr-x 0 0 0 129 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/contextvars.py + - -rwxr-xr-x 0 0 0 8681 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/copy.py + - -rwxr-xr-x 0 0 0 7677 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/copyreg.py + - -rwxr-xr-x 0 0 0 3913 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/crypt.py + - -rwxr-xr-x 0 0 0 16030 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/csv.py + - -rwxr-xr-x 0 0 0 17902 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/__init__.py + - -rwxr-xr-x 0 0 0 12575 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/_aix.py + - -rwxr-xr-x 0 0 0 2536 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/_endian.py + - -rwxr-xr-x 0 0 0 296 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/README.ctypes + - -rwxr-xr-x 0 0 0 154 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/__init__.py + - -rwxr-xr-x 0 0 0 5024 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/dyld.py + - -rwxr-xr-x 0 0 0 960 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/dylib.py + - -rwxr-xr-x 0 0 0 84 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/fetch_macholib + - -rwxr-xr-x 0 0 0 75 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/fetch_macholib.bat + - -rwxr-xr-x 0 0 0 1105 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/macholib/framework.py + - -rwxr-xr-x 0 0 0 13959 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/util.py + - -rwxr-xr-x 0 0 0 5628 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ctypes/wintypes.py + - -rwxr-xr-x 0 0 0 3369 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/curses/__init__.py + - -rwxr-xr-x 0 0 0 2547 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/curses/ascii.py + - -rwxr-xr-x 0 0 0 5634 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/curses/has_key.py + - -rwxr-xr-x 0 0 0 87 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/curses/panel.py + - -rwxr-xr-x 0 0 0 7657 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/curses/textpad.py + - -rwxr-xr-x 0 0 0 58472 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/dataclasses.py + - -rwxr-xr-x 0 0 0 91832 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/datetime.py + - -rwxr-xr-x 0 0 0 5882 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/dbm/__init__.py + - -rwxr-xr-x 0 0 0 11594 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/dbm/dumb.py + - -rwxr-xr-x 0 0 0 72 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/dbm/gnu.py + - -rwxr-xr-x 0 0 0 70 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/dbm/ndbm.py + - -rwxr-xr-x 0 0 0 320 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/decimal.py + - -rwxr-xr-x 0 0 0 83308 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/difflib.py + - -rwxr-xr-x 0 0 0 28906 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/dis.py + - -rwxr-xr-x 0 0 0 244 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/README + - -rwxr-xr-x 0 0 0 541 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/__init__.py + - -rwxr-xr-x 0 0 0 20007 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/_msvccompiler.py + - -rwxr-xr-x 0 0 0 8572 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/archive_util.py + - -rwxr-xr-x 0 0 0 14894 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/bcppcompiler.py + - -rwxr-xr-x 0 0 0 47418 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/ccompiler.py + - -rwxr-xr-x 0 0 0 18079 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/cmd.py + - -rwxr-xr-x 0 0 0 771 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/__init__.py + - -rwxr-xr-x 0 0 0 5333 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/bdist.py + - -rwxr-xr-x 0 0 0 4913 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/bdist_dumb.py + - -rwxr-xr-x 0 0 0 21537 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/bdist_rpm.py + - -rwxr-xr-x 0 0 0 5767 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/build.py + - -rwxr-xr-x 0 0 0 8022 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/build_clib.py + - -rwxr-xr-x 0 0 0 31627 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/build_ext.py + - -rwxr-xr-x 0 0 0 17190 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/build_py.py + - -rwxr-xr-x 0 0 0 6232 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/build_scripts.py + - -rwxr-xr-x 0 0 0 5890 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/check.py + - -rwxr-xr-x 0 0 0 2776 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/clean.py + - -rwxr-xr-x 0 0 0 633 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/command_template + - -rwxr-xr-x 0 0 0 13117 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/config.py + - -rwxr-xr-x 0 0 0 28242 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/install.py + - -rwxr-xr-x 0 0 0 2822 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/install_data.py + - -rwxr-xr-x 0 0 0 2603 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/install_egg_info.py + - -rwxr-xr-x 0 0 0 1298 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/install_headers.py + - -rwxr-xr-x 0 0 0 8397 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/install_lib.py + - -rwxr-xr-x 0 0 0 2017 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/install_scripts.py + - -rwxr-xr-x 0 0 0 11712 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/register.py + - -rwxr-xr-x 0 0 0 19005 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/sdist.py + - -rwxr-xr-x 0 0 0 7621 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/command/upload.py + - -rwxr-xr-x 0 0 0 4951 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/config.py + - -rwxr-xr-x 0 0 0 8876 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/core.py + - -rwxr-xr-x 0 0 0 16380 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/cygwinccompiler.py + - -rwxr-xr-x 0 0 0 139 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/debug.py + - -rwxr-xr-x 0 0 0 3491 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/dep_util.py + - -rwxr-xr-x 0 0 0 7778 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/dir_util.py + - -rwxr-xr-x 0 0 0 50385 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/dist.py + - -rwxr-xr-x 0 0 0 3577 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/errors.py + - -rwxr-xr-x 0 0 0 10529 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/extension.py + - -rwxr-xr-x 0 0 0 17784 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/fancy_getopt.py + - -rwxr-xr-x 0 0 0 8148 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/file_util.py + - -rwxr-xr-x 0 0 0 12832 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/filelist.py + - -rwxr-xr-x 0 0 0 1969 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/log.py + - -rwxr-xr-x 0 0 0 30453 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/msvc9compiler.py + - -rwxr-xr-x 0 0 0 23527 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/msvccompiler.py + - -rwxr-xr-x 0 0 0 4660 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/spawn.py + - -rwxr-xr-x 0 0 0 12435 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/sysconfig.py + - -rwxr-xr-x 0 0 0 12483 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/text_file.py + - -rwxr-xr-x 0 0 0 14818 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/unixccompiler.py + - -rwxr-xr-x 0 0 0 21032 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/util.py + - -rwxr-xr-x 0 0 0 12514 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/version.py + - -rwxr-xr-x 0 0 0 5133 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/distutils/versionpredicate.py + - -rwxr-xr-x 0 0 0 106297 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/doctest.py + - -rwxr-xr-x 0 0 0 1764 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/__init__.py + - -rwxr-xr-x 0 0 0 8541 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/_encoded_words.py + - -rwxr-xr-x 0 0 0 109186 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/_header_value_parser.py + - -rwxr-xr-x 0 0 0 17821 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/_parseaddr.py + - -rwxr-xr-x 0 0 0 15534 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/_policybase.py + - -rwxr-xr-x 0 0 0 9561 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/architecture.rst + - -rwxr-xr-x 0 0 0 3551 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/base64mime.py + - -rwxr-xr-x 0 0 0 17118 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/charset.py + - -rwxr-xr-x 0 0 0 10588 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/contentmanager.py + - -rwxr-xr-x 0 0 0 1778 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/encoders.py + - -rwxr-xr-x 0 0 0 3814 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/errors.py + - -rwxr-xr-x 0 0 0 22802 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/feedparser.py + - -rwxr-xr-x 0 0 0 21402 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/generator.py + - -rwxr-xr-x 0 0 0 24092 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/header.py + - -rwxr-xr-x 0 0 0 20819 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/headerregistry.py + - -rwxr-xr-x 0 0 0 2129 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/iterators.py + - -rwxr-xr-x 0 0 0 48210 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/message.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/__init__.py + - -rwxr-xr-x 0 0 0 1321 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/application.py + - -rwxr-xr-x 0 0 0 3094 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/audio.py + - -rwxr-xr-x 0 0 0 914 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/base.py + - -rwxr-xr-x 0 0 0 3726 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/image.py + - -rwxr-xr-x 0 0 0 1315 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/message.py + - -rwxr-xr-x 0 0 0 1619 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/multipart.py + - -rwxr-xr-x 0 0 0 689 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/nonmultipart.py + - -rwxr-xr-x 0 0 0 1435 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/mime/text.py + - -rwxr-xr-x 0 0 0 5038 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/parser.py + - -rwxr-xr-x 0 0 0 10519 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/policy.py + - -rwxr-xr-x 0 0 0 9864 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/quoprimime.py + - -rwxr-xr-x 0 0 0 17222 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/email/utils.py + - -rwxr-xr-x 0 0 0 5884 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/__init__.py + - -rwxr-xr-x 0 0 0 15677 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/aliases.py + - -rwxr-xr-x 0 0 0 1248 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/ascii.py + - -rwxr-xr-x 0 0 0 1533 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/base64_codec.py + - -rwxr-xr-x 0 0 0 1019 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/big5.py + - -rwxr-xr-x 0 0 0 1039 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/big5hkscs.py + - -rwxr-xr-x 0 0 0 2249 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/bz2_codec.py + - -rwxr-xr-x 0 0 0 2084 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/charmap.py + - -rwxr-xr-x 0 0 0 13121 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp037.py + - -rwxr-xr-x 0 0 0 13568 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1006.py + - -rwxr-xr-x 0 0 0 13113 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1026.py + - -rwxr-xr-x 0 0 0 34597 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1125.py + - -rwxr-xr-x 0 0 0 13105 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1140.py + - -rwxr-xr-x 0 0 0 13686 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1250.py + - -rwxr-xr-x 0 0 0 13361 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1251.py + - -rwxr-xr-x 0 0 0 13511 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1252.py + - -rwxr-xr-x 0 0 0 13094 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1253.py + - -rwxr-xr-x 0 0 0 13502 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1254.py + - -rwxr-xr-x 0 0 0 12466 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1255.py + - -rwxr-xr-x 0 0 0 12814 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1256.py + - -rwxr-xr-x 0 0 0 13374 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1257.py + - -rwxr-xr-x 0 0 0 13364 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp1258.py + - -rwxr-xr-x 0 0 0 14132 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp273.py + - -rwxr-xr-x 0 0 0 12055 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp424.py + - -rwxr-xr-x 0 0 0 34564 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp437.py + - -rwxr-xr-x 0 0 0 13121 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp500.py + - -rwxr-xr-x 0 0 0 13686 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp720.py + - -rwxr-xr-x 0 0 0 34681 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp737.py + - -rwxr-xr-x 0 0 0 34476 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp775.py + - -rwxr-xr-x 0 0 0 34105 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp850.py + - -rwxr-xr-x 0 0 0 35002 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp852.py + - -rwxr-xr-x 0 0 0 33850 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp855.py + - -rwxr-xr-x 0 0 0 12423 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp856.py + - -rwxr-xr-x 0 0 0 33908 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp857.py + - -rwxr-xr-x 0 0 0 34015 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp858.py + - -rwxr-xr-x 0 0 0 34681 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp860.py + - -rwxr-xr-x 0 0 0 34633 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp861.py + - -rwxr-xr-x 0 0 0 33370 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp862.py + - -rwxr-xr-x 0 0 0 34252 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp863.py + - -rwxr-xr-x 0 0 0 33663 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp864.py + - -rwxr-xr-x 0 0 0 34618 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp865.py + - -rwxr-xr-x 0 0 0 34396 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp866.py + - -rwxr-xr-x 0 0 0 32965 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp869.py + - -rwxr-xr-x 0 0 0 12595 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp874.py + - -rwxr-xr-x 0 0 0 12854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp875.py + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp932.py + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp949.py + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/cp950.py + - -rwxr-xr-x 0 0 0 1051 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/euc_jis_2004.py + - -rwxr-xr-x 0 0 0 1051 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/euc_jisx0213.py + - -rwxr-xr-x 0 0 0 1027 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/euc_jp.py + - -rwxr-xr-x 0 0 0 1027 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/euc_kr.py + - -rwxr-xr-x 0 0 0 1031 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/gb18030.py + - -rwxr-xr-x 0 0 0 1027 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/gb2312.py + - -rwxr-xr-x 0 0 0 1015 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/gbk.py + - -rwxr-xr-x 0 0 0 1508 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/hex_codec.py + - -rwxr-xr-x 0 0 0 13475 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/hp_roman8.py + - -rwxr-xr-x 0 0 0 1011 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/hz.py + - -rwxr-xr-x 0 0 0 9098 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/idna.py + - -rwxr-xr-x 0 0 0 1053 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_jp.py + - -rwxr-xr-x 0 0 0 1061 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_jp_1.py + - -rwxr-xr-x 0 0 0 1061 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_jp_2.py + - -rwxr-xr-x 0 0 0 1073 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_jp_2004.py + - -rwxr-xr-x 0 0 0 1061 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_jp_3.py + - -rwxr-xr-x 0 0 0 1069 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_jp_ext.py + - -rwxr-xr-x 0 0 0 1053 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso2022_kr.py + - -rwxr-xr-x 0 0 0 13176 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_1.py + - -rwxr-xr-x 0 0 0 13589 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_10.py + - -rwxr-xr-x 0 0 0 12335 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_11.py + - -rwxr-xr-x 0 0 0 13271 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_13.py + - -rwxr-xr-x 0 0 0 13652 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_14.py + - -rwxr-xr-x 0 0 0 13212 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_15.py + - -rwxr-xr-x 0 0 0 13557 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_16.py + - -rwxr-xr-x 0 0 0 13404 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_2.py + - -rwxr-xr-x 0 0 0 13089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_3.py + - -rwxr-xr-x 0 0 0 13376 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_4.py + - -rwxr-xr-x 0 0 0 13015 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_5.py + - -rwxr-xr-x 0 0 0 10833 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_6.py + - -rwxr-xr-x 0 0 0 12844 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_7.py + - -rwxr-xr-x 0 0 0 11036 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_8.py + - -rwxr-xr-x 0 0 0 13156 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/iso8859_9.py + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/johab.py + - -rwxr-xr-x 0 0 0 13779 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/koi8_r.py + - -rwxr-xr-x 0 0 0 13193 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/koi8_t.py + - -rwxr-xr-x 0 0 0 13762 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/koi8_u.py + - -rwxr-xr-x 0 0 0 13723 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/kz1048.py + - -rwxr-xr-x 0 0 0 1264 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/latin_1.py + - -rwxr-xr-x 0 0 0 36467 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_arabic.py + - -rwxr-xr-x 0 0 0 13633 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_croatian.py + - -rwxr-xr-x 0 0 0 13454 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_cyrillic.py + - -rwxr-xr-x 0 0 0 15170 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_farsi.py + - -rwxr-xr-x 0 0 0 13721 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_greek.py + - -rwxr-xr-x 0 0 0 13498 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_iceland.py + - -rwxr-xr-x 0 0 0 14118 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_latin2.py + - -rwxr-xr-x 0 0 0 13480 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_roman.py + - -rwxr-xr-x 0 0 0 13661 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_romanian.py + - -rwxr-xr-x 0 0 0 13513 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mac_turkish.py + - -rwxr-xr-x 0 0 0 1211 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/mbcs.py + - -rwxr-xr-x 0 0 0 1019 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/oem.py + - -rwxr-xr-x 0 0 0 13519 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/palmos.py + - -rwxr-xr-x 0 0 0 14015 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/ptcp154.py + - -rwxr-xr-x 0 0 0 6883 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/punycode.py + - -rwxr-xr-x 0 0 0 1525 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/quopri_codec.py + - -rwxr-xr-x 0 0 0 1332 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/raw_unicode_escape.py + - -rwxr-xr-x 0 0 0 2448 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/rot_13.py + - -rwxr-xr-x 0 0 0 1039 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/shift_jis.py + - -rwxr-xr-x 0 0 0 1059 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/shift_jis_2004.py + - -rwxr-xr-x 0 0 0 1059 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/shift_jisx0213.py + - -rwxr-xr-x 0 0 0 12300 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/tis_620.py + - -rwxr-xr-x 0 0 0 1299 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/undefined.py + - -rwxr-xr-x 0 0 0 1304 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/unicode_escape.py + - -rwxr-xr-x 0 0 0 5236 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_16.py + - -rwxr-xr-x 0 0 0 1037 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_16_be.py + - -rwxr-xr-x 0 0 0 1037 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_16_le.py + - -rwxr-xr-x 0 0 0 5129 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_32.py + - -rwxr-xr-x 0 0 0 930 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_32_be.py + - -rwxr-xr-x 0 0 0 930 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_32_le.py + - -rwxr-xr-x 0 0 0 946 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_7.py + - -rwxr-xr-x 0 0 0 1005 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_8.py + - -rwxr-xr-x 0 0 0 4133 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/utf_8_sig.py + - -rwxr-xr-x 0 0 0 2851 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/uu_codec.py + - -rwxr-xr-x 0 0 0 2204 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/encodings/zlib_codec.py + - -rwxr-xr-x 0 0 0 9651 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ensurepip/__init__.py + - -rwxr-xr-x 0 0 0 88 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ensurepip/__main__.py + - -rwxr-xr-x 0 0 0 2110226 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ensurepip/_bundled/pip-24.0-py3-none-any.whl + - -rwxr-xr-x 0 0 0 1256281 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ensurepip/_bundled/setuptools-79.0.1-py3-none-any.whl + - -rwxr-xr-x 0 0 0 808 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ensurepip/_uninstall.py + - -rwxr-xr-x 0 0 0 79583 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/enum.py + - -rwxr-xr-x 0 0 0 10178 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/filecmp.py + - -rwxr-xr-x 0 0 0 15714 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/fileinput.py + - -rwxr-xr-x 0 0 0 5999 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/fnmatch.py + - -rwxr-xr-x 0 0 0 28677 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/fractions.py + - -rwxr-xr-x 0 0 0 35815 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ftplib.py + - -rwxr-xr-x 0 0 0 38413 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/functools.py + - -rwxr-xr-x 0 0 0 5246 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/genericpath.py + - -rwxr-xr-x 0 0 0 7489 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/getopt.py + - -rwxr-xr-x 0 0 0 5990 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/getpass.py + - -rwxr-xr-x 0 0 0 21320 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/gettext.py + - -rwxr-xr-x 0 0 0 8732 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/glob.py + - -rwxr-xr-x 0 0 0 9656 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/graphlib.py + - -rwxr-xr-x 0 0 0 24074 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/gzip.py + - -rwxr-xr-x 0 0 0 11765 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/hashlib.py + - -rwxr-xr-x 0 0 0 23024 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/heapq.py + - -rwxr-xr-x 0 0 0 7716 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/hmac.py + - -rwxr-xr-x 0 0 0 4775 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/html/__init__.py + - -rwxr-xr-x 0 0 0 75383 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/html/entities.py + - -rwxr-xr-x 0 0 0 20850 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/html/parser.py + - -rwxr-xr-x 0 0 0 7913 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/http/__init__.py + - -rwxr-xr-x 0 0 0 58284 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/http/client.py + - -rwxr-xr-x 0 0 0 77517 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/http/cookiejar.py + - -rwxr-xr-x 0 0 0 20743 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/http/cookies.py + - -rwxr-xr-x 0 0 0 49150 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/http/server.py + - -rwxr-xr-x 0 0 0 2152 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/CREDITS.txt + - -rwxr-xr-x 0 0 0 56360 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/ChangeLog + - -rwxr-xr-x 0 0 0 10312 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/HISTORY.txt + - -rwxr-xr-x 0 0 0 443 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/README.txt + - -rwxr-xr-x 0 0 0 120 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/folder.gif + - -rwxr-xr-x 0 0 0 57746 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle.ico + - -rwxr-xr-x 0 0 0 634 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_16.gif + - -rwxr-xr-x 0 0 0 1031 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_16.png + - -rwxr-xr-x 0 0 0 39205 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_256.png + - -rwxr-xr-x 0 0 0 1019 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_32.gif + - -rwxr-xr-x 0 0 0 2036 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_32.png + - -rwxr-xr-x 0 0 0 1388 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_48.gif + - -rwxr-xr-x 0 0 0 3977 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/idle_48.png + - -rwxr-xr-x 0 0 0 75 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/minusnode.gif + - -rwxr-xr-x 0 0 0 125 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/openfolder.gif + - -rwxr-xr-x 0 0 0 78 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/plusnode.gif + - -rwxr-xr-x 0 0 0 380 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/python.gif + - -rwxr-xr-x 0 0 0 72 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/Icons/tk.gif + - -rwxr-xr-x 0 0 0 27172 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/NEWS2x.txt + - -rwxr-xr-x 0 0 0 55422 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/News3.txt + - -rwxr-xr-x 0 0 0 11653 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/README.txt + - -rwxr-xr-x 0 0 0 8478 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/TODO.txt + - -rwxr-xr-x 0 0 0 396 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/__init__.py + - -rwxr-xr-x 0 0 0 159 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/__main__.py + - -rwxr-xr-x 0 0 0 9354 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/autocomplete.py + - -rwxr-xr-x 0 0 0 20863 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/autocomplete_w.py + - -rwxr-xr-x 0 0 0 3216 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/autoexpand.py + - -rwxr-xr-x 0 0 0 8588 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/browser.py + - -rwxr-xr-x 0 0 0 7267 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/calltip.py + - -rwxr-xr-x 0 0 0 7083 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/calltip_w.py + - -rwxr-xr-x 0 0 0 11420 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/codecontext.py + - -rwxr-xr-x 0 0 0 14783 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/colorizer.py + - -rwxr-xr-x 0 0 0 2266 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/config-extensions.def + - -rwxr-xr-x 0 0 0 2864 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/config-highlight.def + - -rwxr-xr-x 0 0 0 10910 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/config-keys.def + - -rwxr-xr-x 0 0 0 3168 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/config-main.def + - -rwxr-xr-x 0 0 0 38387 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/config.py + - -rwxr-xr-x 0 0 0 15230 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/config_key.py + - -rwxr-xr-x 0 0 0 105314 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/configdialog.py + - -rwxr-xr-x 0 0 0 20991 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/debugger.py + - -rwxr-xr-x 0 0 0 12115 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/debugger_r.py + - -rwxr-xr-x 0 0 0 4177 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/debugobj.py + - -rwxr-xr-x 0 0 0 1082 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/debugobj_r.py + - -rwxr-xr-x 0 0 0 1044 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/delegator.py + - -rwxr-xr-x 0 0 0 1993 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/dynoption.py + - -rwxr-xr-x 0 0 0 69561 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/editor.py + - -rwxr-xr-x 0 0 0 3631 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/extend.txt + - -rwxr-xr-x 0 0 0 3871 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/filelist.py + - -rwxr-xr-x 0 0 0 15777 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/format.py + - -rwxr-xr-x 0 0 0 7526 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/grep.py + - -rwxr-xr-x 0 0 0 78525 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/help.html + - -rwxr-xr-x 0 0 0 11902 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/help.py + - -rwxr-xr-x 0 0 0 8910 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/help_about.py + - -rwxr-xr-x 0 0 0 4065 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/history.py + - -rwxr-xr-x 0 0 0 12889 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/hyperparser.py + - -rwxr-xr-x 0 0 0 177 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/idle.bat + - -rwxr-xr-x 0 0 0 454 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/idle.py + - -rwxr-xr-x 0 0 0 570 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/idle.pyw + - -rwxr-xr-x 0 0 0 16159 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/iomenu.py + - -rwxr-xr-x 0 0 0 9401 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/macosx.py + - -rwxr-xr-x 0 0 0 3938 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/mainmenu.py + - -rwxr-xr-x 0 0 0 18652 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/multicall.py + - -rwxr-xr-x 0 0 0 5715 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/outwin.py + - -rwxr-xr-x 0 0 0 7204 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/parenmatch.py + - -rwxr-xr-x 0 0 0 3093 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/pathbrowser.py + - -rwxr-xr-x 0 0 0 3568 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/percolator.py + - -rwxr-xr-x 0 0 0 19864 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/pyparse.py + - -rwxr-xr-x 0 0 0 62537 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/pyshell.py + - -rwxr-xr-x 0 0 0 15067 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/query.py + - -rwxr-xr-x 0 0 0 6777 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/redirector.py + - -rwxr-xr-x 0 0 0 9841 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/replace.py + - -rwxr-xr-x 0 0 0 21078 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/rpc.py + - -rwxr-xr-x 0 0 0 21439 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/run.py + - -rwxr-xr-x 0 0 0 8273 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/runscript.py + - -rwxr-xr-x 0 0 0 4478 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/scrolledlist.py + - -rwxr-xr-x 0 0 0 5567 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/search.py + - -rwxr-xr-x 0 0 0 7856 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/searchbase.py + - -rwxr-xr-x 0 0 0 7415 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/searchengine.py + - -rwxr-xr-x 0 0 0 20338 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/sidebar.py + - -rwxr-xr-x 0 0 0 12834 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/squeezer.py + - -rwxr-xr-x 0 0 0 4016 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/stackviewer.py + - -rwxr-xr-x 0 0 0 1474 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/statusbar.py + - -rwxr-xr-x 0 0 0 6808 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/textview.py + - -rwxr-xr-x 0 0 0 6471 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/tooltip.py + - -rwxr-xr-x 0 0 0 16483 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/tree.py + - -rwxr-xr-x 0 0 0 11016 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/undo.py + - -rwxr-xr-x 0 0 0 731 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/util.py + - -rwxr-xr-x 0 0 0 2616 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/window.py + - -rwxr-xr-x 0 0 0 4203 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/zoomheight.py + - -rwxr-xr-x 0 0 0 2005 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/idlelib/zzdummy.py + - -rwxr-xr-x 0 0 0 55217 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/imaplib.py + - -rwxr-xr-x 0 0 0 3952 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/imghdr.py + - -rwxr-xr-x 0 0 0 10606 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/imp.py + - -rwxr-xr-x 0 0 0 6089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/__init__.py + - -rwxr-xr-x 0 0 0 1852 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/_abc.py + - -rwxr-xr-x 0 0 0 48223 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/_bootstrap.py + - -rwxr-xr-x 0 0 0 68962 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/_bootstrap_external.py + - -rwxr-xr-x 0 0 0 10969 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/abc.py + - -rwxr-xr-x 0 0 0 880 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/machinery.py + - -rwxr-xr-x 0 0 0 31109 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/__init__.py + - -rwxr-xr-x 0 0 0 1862 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/_adapters.py + - -rwxr-xr-x 0 0 0 743 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/_collections.py + - -rwxr-xr-x 0 0 0 2895 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/_functools.py + - -rwxr-xr-x 0 0 0 2068 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/_itertools.py + - -rwxr-xr-x 0 0 0 1134 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/_meta.py + - -rwxr-xr-x 0 0 0 2166 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/metadata/_text.py + - -rwxr-xr-x 0 0 0 327 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/readers.py + - -rwxr-xr-x 0 0 0 506 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/__init__.py + - -rwxr-xr-x 0 0 0 4504 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/_adapters.py + - -rwxr-xr-x 0 0 0 2891 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/_common.py + - -rwxr-xr-x 0 0 0 884 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/_itertools.py + - -rwxr-xr-x 0 0 0 3494 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/_legacy.py + - -rwxr-xr-x 0 0 0 4571 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/abc.py + - -rwxr-xr-x 0 0 0 3557 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/readers.py + - -rwxr-xr-x 0 0 0 3123 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/resources/simple.py + - -rwxr-xr-x 0 0 0 354 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/simple.py + - -rwxr-xr-x 0 0 0 12717 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/importlib/util.py + - -rwxr-xr-x 0 0 0 123419 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/inspect.py + - -rwxr-xr-x 0 0 0 4320 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/io.py + - -rwxr-xr-x 0 0 0 81414 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ipaddress.py + - -rwxr-xr-x 0 0 0 14020 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/json/__init__.py + - -rwxr-xr-x 0 0 0 12473 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/json/decoder.py + - -rwxr-xr-x 0 0 0 16070 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/json/encoder.py + - -rwxr-xr-x 0 0 0 2425 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/json/scanner.py + - -rwxr-xr-x 0 0 0 3339 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/json/tool.py + - -rwxr-xr-x 0 0 0 1061 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/keyword.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib-dynload/.empty + - -rwxr-xr-x 0 0 0 25928 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib-dynload/_crypt.cpython-311-x86_64-linux-gnu.so + - -rwxr-xr-x 0 0 0 69112 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib-dynload/_ctypes_test.cpython-311-x86_64-linux-gnu.so + - -rwxr-xr-x 0 0 0 1754328 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib-dynload/_dbm.cpython-311-x86_64-linux-gnu.so + - -rwxr-xr-x 0 0 0 200072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib-dynload/_testclinic.cpython-311-x86_64-linux-gnu.so + - -rwxr-xr-x 0 0 0 8696 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/Grammar.txt + - -rwxr-xr-x 0 0 0 15313 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/Grammar3.11.15.final.0.pickle + - -rwxr-xr-x 0 0 0 793 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/PatternGrammar.txt + - -rwxr-xr-x 0 0 0 1225 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/PatternGrammar3.11.15.final.0.pickle + - -rwxr-xr-x 0 0 0 156 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/__init__.py + - -rwxr-xr-x 0 0 0 67 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/__main__.py + - -rwxr-xr-x 0 0 0 6623 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/btm_matcher.py + - -rwxr-xr-x 0 0 0 9945 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/btm_utils.py + - -rwxr-xr-x 0 0 0 6690 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixer_base.py + - -rwxr-xr-x 0 0 0 15206 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixer_util.py + - -rwxr-xr-x 0 0 0 47 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/__init__.py + - -rwxr-xr-x 0 0 0 2346 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_apply.py + - -rwxr-xr-x 0 0 0 984 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_asserts.py + - -rwxr-xr-x 0 0 0 320 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_basestring.py + - -rwxr-xr-x 0 0 0 590 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_buffer.py + - -rwxr-xr-x 0 0 0 3760 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_dict.py + - -rwxr-xr-x 0 0 0 3344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_except.py + - -rwxr-xr-x 0 0 0 979 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_exec.py + - -rwxr-xr-x 0 0 0 2048 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_execfile.py + - -rwxr-xr-x 0 0 0 2495 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_exitfunc.py + - -rwxr-xr-x 0 0 0 2765 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_filter.py + - -rwxr-xr-x 0 0 0 644 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_funcattrs.py + - -rwxr-xr-x 0 0 0 547 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_future.py + - -rwxr-xr-x 0 0 0 451 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_getcwdu.py + - -rwxr-xr-x 0 0 0 3196 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_has_key.py + - -rwxr-xr-x 0 0 0 4876 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_idioms.py + - -rwxr-xr-x 0 0 0 3256 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_import.py + - -rwxr-xr-x 0 0 0 5684 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_imports.py + - -rwxr-xr-x 0 0 0 289 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_imports2.py + - -rwxr-xr-x 0 0 0 708 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_input.py + - -rwxr-xr-x 0 0 0 1144 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_intern.py + - -rwxr-xr-x 0 0 0 1608 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_isinstance.py + - -rwxr-xr-x 0 0 0 1548 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_itertools.py + - -rwxr-xr-x 0 0 0 2086 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_itertools_imports.py + - -rwxr-xr-x 0 0 0 476 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_long.py + - -rwxr-xr-x 0 0 0 3640 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_map.py + - -rwxr-xr-x 0 0 0 8197 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_metaclass.py + - -rwxr-xr-x 0 0 0 606 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_methodattrs.py + - -rwxr-xr-x 0 0 0 571 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_ne.py + - -rwxr-xr-x 0 0 0 3174 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_next.py + - -rwxr-xr-x 0 0 0 591 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_nonzero.py + - -rwxr-xr-x 0 0 0 768 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_numliterals.py + - -rwxr-xr-x 0 0 0 3426 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_operator.py + - -rwxr-xr-x 0 0 0 1226 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_paren.py + - -rwxr-xr-x 0 0 0 2844 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_print.py + - -rwxr-xr-x 0 0 0 2926 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_raise.py + - -rwxr-xr-x 0 0 0 454 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_raw_input.py + - -rwxr-xr-x 0 0 0 837 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_reduce.py + - -rwxr-xr-x 0 0 0 1081 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_reload.py + - -rwxr-xr-x 0 0 0 2221 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_renames.py + - -rwxr-xr-x 0 0 0 613 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_repr.py + - -rwxr-xr-x 0 0 0 1697 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_set_literal.py + - -rwxr-xr-x 0 0 0 449 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_standarderror.py + - -rwxr-xr-x 0 0 0 1034 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_sys_exc.py + - -rwxr-xr-x 0 0 0 1582 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_throw.py + - -rwxr-xr-x 0 0 0 5565 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_tuple_params.py + - -rwxr-xr-x 0 0 0 1774 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_types.py + - -rwxr-xr-x 0 0 0 1256 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_unicode.py + - -rwxr-xr-x 0 0 0 8367 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_urllib.py + - -rwxr-xr-x 0 0 0 1090 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_ws_comma.py + - -rwxr-xr-x 0 0 0 2694 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_xrange.py + - -rwxr-xr-x 0 0 0 689 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_xreadlines.py + - -rwxr-xr-x 0 0 0 1289 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/fixes/fix_zip.py + - -rwxr-xr-x 0 0 0 11854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/main.py + - -rwxr-xr-x 0 0 0 7054 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/patcomp.py + - -rwxr-xr-x 0 0 0 143 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/__init__.py + - -rwxr-xr-x 0 0 0 9642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/conv.py + - -rwxr-xr-x 0 0 0 5969 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/driver.py + - -rwxr-xr-x 0 0 0 5552 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/grammar.py + - -rwxr-xr-x 0 0 0 1635 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/literals.py + - -rwxr-xr-x 0 0 0 8155 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/parse.py + - -rwxr-xr-x 0 0 0 13830 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/pgen.py + - -rwxr-xr-x 0 0 0 1302 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/token.py + - -rwxr-xr-x 0 0 0 21119 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pgen2/tokenize.py + - -rwxr-xr-x 0 0 0 1305 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pygram.py + - -rwxr-xr-x 0 0 0 27974 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/pytree.py + - -rwxr-xr-x 0 0 0 27507 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib2to3/refactor.py + - -rwxr-xr-x 0 0 0 5649 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/linecache.py + - -rwxr-xr-x 0 0 0 79095 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/locale.py + - -rwxr-xr-x 0 0 0 80677 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/logging/__init__.py + - -rwxr-xr-x 0 0 0 37001 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/logging/config.py + - -rwxr-xr-x 0 0 0 61920 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/logging/handlers.py + - -rwxr-xr-x 0 0 0 13277 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lzma.py + - -rwxr-xr-x 0 0 0 78830 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/mailbox.py + - -rwxr-xr-x 0 0 0 9369 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/mailcap.py + - -rwxr-xr-x 0 0 0 22962 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/mimetypes.py + - -rwxr-xr-x 0 0 0 23699 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/modulefinder.py + - -rwxr-xr-x 0 0 0 916 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/__init__.py + - -rwxr-xr-x 0 0 0 32395 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/connection.py + - -rwxr-xr-x 0 0 0 11597 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/context.py + - -rwxr-xr-x 0 0 0 3061 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/dummy/__init__.py + - -rwxr-xr-x 0 0 0 1598 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/dummy/connection.py + - -rwxr-xr-x 0 0 0 12134 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/forkserver.py + - -rwxr-xr-x 0 0 0 11626 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/heap.py + - -rwxr-xr-x 0 0 0 47684 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/managers.py + - -rwxr-xr-x 0 0 0 32759 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/pool.py + - -rwxr-xr-x 0 0 0 2377 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/popen_fork.py + - -rwxr-xr-x 0 0 0 2230 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/popen_forkserver.py + - -rwxr-xr-x 0 0 0 2029 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/popen_spawn_posix.py + - -rwxr-xr-x 0 0 0 4515 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/popen_spawn_win32.py + - -rwxr-xr-x 0 0 0 12139 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/process.py + - -rwxr-xr-x 0 0 0 12023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/queues.py + - -rwxr-xr-x 0 0 0 9512 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/reduction.py + - -rwxr-xr-x 0 0 0 5145 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/resource_sharer.py + - -rwxr-xr-x 0 0 0 10332 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/resource_tracker.py + - -rwxr-xr-x 0 0 0 18458 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/shared_memory.py + - -rwxr-xr-x 0 0 0 6306 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/sharedctypes.py + - -rwxr-xr-x 0 0 0 9644 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/spawn.py + - -rwxr-xr-x 0 0 0 12285 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/synchronize.py + - -rwxr-xr-x 0 0 0 14261 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/multiprocessing/util.py + - -rwxr-xr-x 0 0 0 6929 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/netrc.py + - -rwxr-xr-x 0 0 0 41087 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/nntplib.py + - -rwxr-xr-x 0 0 0 28766 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ntpath.py + - -rwxr-xr-x 0 0 0 2887 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/nturl2path.py + - -rwxr-xr-x 0 0 0 10348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/numbers.py + - -rwxr-xr-x 0 0 0 10447 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/opcode.py + - -rwxr-xr-x 0 0 0 10965 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/operator.py + - -rwxr-xr-x 0 0 0 60369 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/optparse.py + - -rwxr-xr-x 0 0 0 39530 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/os.py + - -rwxr-xr-x 0 0 0 48566 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pathlib.py + - -rwxr-xr-x 0 0 0 64173 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pdb.py + - -rwxr-xr-x 0 0 0 65132 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pickle.py + - -rwxr-xr-x 0 0 0 93861 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pickletools.py + - -rwxr-xr-x 0 0 0 8978 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pipes.py + - -rwxr-xr-x 0 0 0 24638 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pkgutil.py + - -rwxr-xr-x 0 0 0 42273 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/platform.py + - -rwxr-xr-x 0 0 0 28594 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/plistlib.py + - -rwxr-xr-x 0 0 0 15198 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/poplib.py + - -rwxr-xr-x 0 0 0 17072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/posixpath.py + - -rwxr-xr-x 0 0 0 24583 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pprint.py + - -rwxr-xr-x 0 0 0 22883 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/profile.py + - -rwxr-xr-x 0 0 0 29356 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pstats.py + - -rwxr-xr-x 0 0 0 6317 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pty.py + - -rwxr-xr-x 0 0 0 7837 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/py_compile.py + - -rwxr-xr-x 0 0 0 11396 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pyclbr.py + - -rwxr-xr-x 0 0 0 112650 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pydoc.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pydoc_data/__init__.py + - -rwxr-xr-x 0 0 0 1325 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pydoc_data/_pydoc.css + - -rwxr-xr-x 0 0 0 775171 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/pydoc_data/topics.py + - -rwxr-xr-x 0 0 0 11496 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/queue.py + - -rwxr-xr-x 0 0 0 7268 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/quopri.py + - -rwxr-xr-x 0 0 0 32162 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/random.py + - -rwxr-xr-x 0 0 0 15889 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/re/__init__.py + - -rwxr-xr-x 0 0 0 5446 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/re/_casefix.py + - -rwxr-xr-x 0 0 0 26089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/re/_compiler.py + - -rwxr-xr-x 0 0 0 5930 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/re/_constants.py + - -rwxr-xr-x 0 0 0 42420 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/re/_parser.py + - -rwxr-xr-x 0 0 0 5437 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/reprlib.py + - -rwxr-xr-x 0 0 0 7827 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/rlcompleter.py + - -rwxr-xr-x 0 0 0 13159 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/runpy.py + - -rwxr-xr-x 0 0 0 6351 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sched.py + - -rwxr-xr-x 0 0 0 2028 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/secrets.py + - -rwxr-xr-x 0 0 0 19671 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/selectors.py + - -rwxr-xr-x 0 0 0 8560 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/shelve.py + - -rwxr-xr-x 0 0 0 13501 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/shlex.py + - -rwxr-xr-x 0 0 0 56517 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/shutil.py + - -rwxr-xr-x 0 0 0 2495 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/signal.py + - -rwxr-xr-x 0 0 0 119 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/README.txt + - -rwxr-xr-x 0 0 0 6755 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/_distutils_hack/__init__.py + - -rwxr-xr-x 0 0 0 44 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/_distutils_hack/override.py + - -rwxr-xr-x 0 0 0 151 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/distutils-precedence.pth + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 4675 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/METADATA + - -rwxr-xr-x 0 0 0 68854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 82 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 243 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/direct_url.json + - -rwxr-xr-x 0 0 0 84 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/entry_points.txt + - -rwxr-xr-x 0 0 0 11731 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/AUTHORS.txt + - -rwxr-xr-x 0 0 0 1093 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/LICENSE.txt + - -rwxr-xr-x 0 0 0 558 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/cachecontrol/LICENSE.txt + - -rwxr-xr-x 0 0 0 989 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/certifi/LICENSE + - -rwxr-xr-x 0 0 0 1099 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/dependency_groups/LICENSE.txt + - -rwxr-xr-x 0 0 0 14531 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/distlib/LICENSE.txt + - -rwxr-xr-x 0 0 0 11325 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/distro/LICENSE + - -rwxr-xr-x 0 0 0 1541 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/idna/LICENSE.md + - -rwxr-xr-x 0 0 0 614 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/msgpack/COPYING + - -rwxr-xr-x 0 0 0 197 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/packaging/LICENSE + - -rwxr-xr-x 0 0 0 10174 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.APACHE + - -rwxr-xr-x 0 0 0 1344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/packaging/LICENSE.BSD + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/pkg_resources/LICENSE + - -rwxr-xr-x 0 0 0 1089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/platformdirs/LICENSE + - -rwxr-xr-x 0 0 0 1331 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/pygments/LICENSE + - -rwxr-xr-x 0 0 0 1081 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/pyproject_hooks/LICENSE + - -rwxr-xr-x 0 0 0 10142 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/requests/LICENSE + - -rwxr-xr-x 0 0 0 751 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/resolvelib/LICENSE + - -rwxr-xr-x 0 0 0 1056 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/rich/LICENSE + - -rwxr-xr-x 0 0 0 1072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/tomli/LICENSE + - -rwxr-xr-x 0 0 0 1072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/tomli_w/LICENSE + - -rwxr-xr-x 0 0 0 1086 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/truststore/LICENSE + - -rwxr-xr-x 0 0 0 1115 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip-26.0.1.dist-info/licenses/src/pip/_vendor/urllib3/LICENSE.txt + - -rwxr-xr-x 0 0 0 355 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/__init__.py + - -rwxr-xr-x 0 0 0 854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/__main__.py + - -rwxr-xr-x 0 0 0 1450 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/__pip-runner__.py + - -rwxr-xr-x 0 0 0 511 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/__init__.py + - -rwxr-xr-x 0 0 0 21911 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/build_env.py + - -rwxr-xr-x 0 0 0 10345 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cache.py + - -rwxr-xr-x 0 0 0 131 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/__init__.py + - -rwxr-xr-x 0 0 0 7193 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/autocompletion.py + - -rwxr-xr-x 0 0 0 9168 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/base_command.py + - -rwxr-xr-x 0 0 0 36164 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/cmdoptions.py + - -rwxr-xr-x 0 0 0 817 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/command_context.py + - -rwxr-xr-x 0 0 0 6484 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/index_command.py + - -rwxr-xr-x 0 0 0 3137 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/main.py + - -rwxr-xr-x 0 0 0 4403 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/main_parser.py + - -rwxr-xr-x 0 0 0 13827 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/parser.py + - -rwxr-xr-x 0 0 0 4706 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/progress_bars.py + - -rwxr-xr-x 0 0 0 16482 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/req_command.py + - -rwxr-xr-x 0 0 0 7362 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/spinners.py + - -rwxr-xr-x 0 0 0 116 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/cli/status_codes.py + - -rwxr-xr-x 0 0 0 4026 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/__init__.py + - -rwxr-xr-x 0 0 0 9142 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/cache.py + - -rwxr-xr-x 0 0 0 2244 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/check.py + - -rwxr-xr-x 0 0 0 4565 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/completion.py + - -rwxr-xr-x 0 0 0 10105 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/configuration.py + - -rwxr-xr-x 0 0 0 6805 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/debug.py + - -rwxr-xr-x 0 0 0 5178 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/download.py + - -rwxr-xr-x 0 0 0 3099 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/freeze.py + - -rwxr-xr-x 0 0 0 1679 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/hash.py + - -rwxr-xr-x 0 0 0 1108 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/help.py + - -rwxr-xr-x 0 0 0 5520 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/index.py + - -rwxr-xr-x 0 0 0 3177 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/inspect.py + - -rwxr-xr-x 0 0 0 30588 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/install.py + - -rwxr-xr-x 0 0 0 13497 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/list.py + - -rwxr-xr-x 0 0 0 6027 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/lock.py + - -rwxr-xr-x 0 0 0 5782 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/search.py + - -rwxr-xr-x 0 0 0 8066 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/show.py + - -rwxr-xr-x 0 0 0 3868 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/uninstall.py + - -rwxr-xr-x 0 0 0 5880 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/commands/wheel.py + - -rwxr-xr-x 0 0 0 14568 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/configuration.py + - -rwxr-xr-x 0 0 0 858 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/distributions/__init__.py + - -rwxr-xr-x 0 0 0 1830 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/distributions/base.py + - -rwxr-xr-x 0 0 0 929 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/distributions/installed.py + - -rwxr-xr-x 0 0 0 6627 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/distributions/sdist.py + - -rwxr-xr-x 0 0 0 1364 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/distributions/wheel.py + - -rwxr-xr-x 0 0 0 32165 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/exceptions.py + - -rwxr-xr-x 0 0 0 29 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/index/__init__.py + - -rwxr-xr-x 0 0 0 16144 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/index/collector.py + - -rwxr-xr-x 0 0 0 41776 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/index/package_finder.py + - -rwxr-xr-x 0 0 0 8639 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/index/sources.py + - -rwxr-xr-x 0 0 0 14157 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/locations/__init__.py + - -rwxr-xr-x 0 0 0 5975 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/locations/_distutils.py + - -rwxr-xr-x 0 0 0 7779 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/locations/_sysconfig.py + - -rwxr-xr-x 0 0 0 2550 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/locations/base.py + - -rwxr-xr-x 0 0 0 338 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/main.py + - -rwxr-xr-x 0 0 0 5824 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/__init__.py + - -rwxr-xr-x 0 0 0 2711 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/_json.py + - -rwxr-xr-x 0 0 0 25420 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/base.py + - -rwxr-xr-x 0 0 0 135 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/importlib/__init__.py + - -rwxr-xr-x 0 0 0 2804 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_compat.py + - -rwxr-xr-x 0 0 0 8420 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_dists.py + - -rwxr-xr-x 0 0 0 5333 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/importlib/_envs.py + - -rwxr-xr-x 0 0 0 10544 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/metadata/pkg_resources.py + - -rwxr-xr-x 0 0 0 62 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/__init__.py + - -rwxr-xr-x 0 0 0 753 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/candidate.py + - -rwxr-xr-x 0 0 0 6555 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/direct_url.py + - -rwxr-xr-x 0 0 0 2471 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/format_control.py + - -rwxr-xr-x 0 0 0 1030 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/index.py + - -rwxr-xr-x 0 0 0 2839 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/installation_report.py + - -rwxr-xr-x 0 0 0 21992 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/link.py + - -rwxr-xr-x 0 0 0 3403 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/release_control.py + - -rwxr-xr-x 0 0 0 575 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/scheme.py + - -rwxr-xr-x 0 0 0 4507 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/search_scope.py + - -rwxr-xr-x 0 0 0 2221 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/selection_prefs.py + - -rwxr-xr-x 0 0 0 4243 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/target_python.py + - -rwxr-xr-x 0 0 0 2920 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/models/wheel.py + - -rwxr-xr-x 0 0 0 49 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/__init__.py + - -rwxr-xr-x 0 0 0 20806 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/auth.py + - -rwxr-xr-x 0 0 0 4862 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/cache.py + - -rwxr-xr-x 0 0 0 12667 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/download.py + - -rwxr-xr-x 0 0 0 7646 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/lazy_wheel.py + - -rwxr-xr-x 0 0 0 19555 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/session.py + - -rwxr-xr-x 0 0 0 4091 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/utils.py + - -rwxr-xr-x 0 0 0 1830 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/network/xmlrpc.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/__init__.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/build/__init__.py + - -rwxr-xr-x 0 0 0 4771 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/build/build_tracker.py + - -rwxr-xr-x 0 0 0 1421 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/build/metadata.py + - -rwxr-xr-x 0 0 0 1509 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/build/metadata_editable.py + - -rwxr-xr-x 0 0 0 1136 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/build/wheel.py + - -rwxr-xr-x 0 0 0 1478 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/build/wheel_editable.py + - -rwxr-xr-x 0 0 0 5894 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/check.py + - -rwxr-xr-x 0 0 0 9854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/freeze.py + - -rwxr-xr-x 0 0 0 50 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/install/__init__.py + - -rwxr-xr-x 0 0 0 27923 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/install/wheel.py + - -rwxr-xr-x 0 0 0 28830 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/operations/prepare.py + - -rwxr-xr-x 0 0 0 4555 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/pyproject.py + - -rwxr-xr-x 0 0 0 3041 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/__init__.py + - -rwxr-xr-x 0 0 0 18688 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/constructors.py + - -rwxr-xr-x 0 0 0 1225 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/pep723.py + - -rwxr-xr-x 0 0 0 2618 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/req_dependency_group.py + - -rwxr-xr-x 0 0 0 20685 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/req_file.py + - -rwxr-xr-x 0 0 0 31273 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/req_install.py + - -rwxr-xr-x 0 0 0 2828 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/req_set.py + - -rwxr-xr-x 0 0 0 24099 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/req/req_uninstall.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/__init__.py + - -rwxr-xr-x 0 0 0 577 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/base.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/legacy/__init__.py + - -rwxr-xr-x 0 0 0 24060 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/legacy/resolver.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/__init__.py + - -rwxr-xr-x 0 0 0 5047 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/base.py + - -rwxr-xr-x 0 0 0 20454 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/candidates.py + - -rwxr-xr-x 0 0 0 34028 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/factory.py + - -rwxr-xr-x 0 0 0 6018 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/found_candidates.py + - -rwxr-xr-x 0 0 0 11441 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/provider.py + - -rwxr-xr-x 0 0 0 3909 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/reporter.py + - -rwxr-xr-x 0 0 0 8239 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/requirements.py + - -rwxr-xr-x 0 0 0 13437 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/resolution/resolvelib/resolver.py + - -rwxr-xr-x 0 0 0 8284 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/self_outdated_check.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/__init__.py + - -rwxr-xr-x 0 0 0 3350 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/_jaraco_text.py + - -rwxr-xr-x 0 0 0 1015 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/_log.py + - -rwxr-xr-x 0 0 0 1681 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/appdirs.py + - -rwxr-xr-x 0 0 0 2514 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/compat.py + - -rwxr-xr-x 0 0 0 6630 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/compatibility_tags.py + - -rwxr-xr-x 0 0 0 868 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/datetime.py + - -rwxr-xr-x 0 0 0 3696 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/deprecation.py + - -rwxr-xr-x 0 0 0 3200 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/direct_url_helpers.py + - -rwxr-xr-x 0 0 0 2459 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/egg_link.py + - -rwxr-xr-x 0 0 0 3324 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/entrypoints.py + - -rwxr-xr-x 0 0 0 6892 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/filesystem.py + - -rwxr-xr-x 0 0 0 689 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/filetypes.py + - -rwxr-xr-x 0 0 0 3726 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/glibc.py + - -rwxr-xr-x 0 0 0 4998 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/hashes.py + - -rwxr-xr-x 0 0 0 13414 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/logging.py + - -rwxr-xr-x 0 0 0 23722 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/misc.py + - -rwxr-xr-x 0 0 0 1601 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/packaging.py + - -rwxr-xr-x 0 0 0 3817 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/pylock.py + - -rwxr-xr-x 0 0 0 1461 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/retry.py + - -rwxr-xr-x 0 0 0 8983 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/subprocess.py + - -rwxr-xr-x 0 0 0 9307 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/temp_dir.py + - -rwxr-xr-x 0 0 0 12972 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/unpacking.py + - -rwxr-xr-x 0 0 0 1601 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/urls.py + - -rwxr-xr-x 0 0 0 3455 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/virtualenv.py + - -rwxr-xr-x 0 0 0 4468 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/utils/wheel.py + - -rwxr-xr-x 0 0 0 596 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/vcs/__init__.py + - -rwxr-xr-x 0 0 0 3734 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/vcs/bazaar.py + - -rwxr-xr-x 0 0 0 19144 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/vcs/git.py + - -rwxr-xr-x 0 0 0 5575 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/vcs/mercurial.py + - -rwxr-xr-x 0 0 0 11787 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/vcs/subversion.py + - -rwxr-xr-x 0 0 0 22599 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/vcs/versioncontrol.py + - -rwxr-xr-x 0 0 0 9010 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_internal/wheel_builder.py + - -rwxr-xr-x 0 0 0 9394 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/README.rst + - -rwxr-xr-x 0 0 0 4907 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/__init__.py + - -rwxr-xr-x 0 0 0 558 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/LICENSE.txt + - -rwxr-xr-x 0 0 0 820 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/__init__.py + - -rwxr-xr-x 0 0 0 1737 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/_cmd.py + - -rwxr-xr-x 0 0 0 6586 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/adapter.py + - -rwxr-xr-x 0 0 0 1953 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/cache.py + - -rwxr-xr-x 0 0 0 303 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/__init__.py + - -rwxr-xr-x 0 0 0 4117 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/file_cache.py + - -rwxr-xr-x 0 0 0 1386 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/caches/redis_cache.py + - -rwxr-xr-x 0 0 0 19102 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/controller.py + - -rwxr-xr-x 0 0 0 4354 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/filewrapper.py + - -rwxr-xr-x 0 0 0 4881 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/heuristics.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/py.typed + - -rwxr-xr-x 0 0 0 5163 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/serialize.py + - -rwxr-xr-x 0 0 0 1417 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/cachecontrol/wrapper.py + - -rwxr-xr-x 0 0 0 989 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/certifi/LICENSE + - -rwxr-xr-x 0 0 0 94 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/certifi/__init__.py + - -rwxr-xr-x 0 0 0 255 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/certifi/__main__.py + - -rwxr-xr-x 0 0 0 270954 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/certifi/cacert.pem + - -rwxr-xr-x 0 0 0 3442 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/certifi/core.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/certifi/py.typed + - -rwxr-xr-x 0 0 0 1099 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/LICENSE.txt + - -rwxr-xr-x 0 0 0 250 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/__init__.py + - -rwxr-xr-x 0 0 0 1709 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/__main__.py + - -rwxr-xr-x 0 0 0 8041 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/_implementation.py + - -rwxr-xr-x 0 0 0 1710 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/_lint_dependency_groups.py + - -rwxr-xr-x 0 0 0 1865 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/_pip_wrapper.py + - -rwxr-xr-x 0 0 0 285 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/_toml_compat.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/dependency_groups/py.typed + - -rwxr-xr-x 0 0 0 14531 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/LICENSE.txt + - -rwxr-xr-x 0 0 0 625 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/__init__.py + - -rwxr-xr-x 0 0 0 41467 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/compat.py + - -rwxr-xr-x 0 0 0 10820 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/resources.py + - -rwxr-xr-x 0 0 0 18612 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/scripts.py + - -rwxr-xr-x 0 0 0 97792 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/t32.exe + - -rwxr-xr-x 0 0 0 182784 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/t64-arm.exe + - -rwxr-xr-x 0 0 0 108032 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/t64.exe + - -rwxr-xr-x 0 0 0 66682 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/util.py + - -rwxr-xr-x 0 0 0 91648 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/w32.exe + - -rwxr-xr-x 0 0 0 168448 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/w64-arm.exe + - -rwxr-xr-x 0 0 0 101888 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distlib/w64.exe + - -rwxr-xr-x 0 0 0 11325 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distro/LICENSE + - -rwxr-xr-x 0 0 0 981 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distro/__init__.py + - -rwxr-xr-x 0 0 0 64 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distro/__main__.py + - -rwxr-xr-x 0 0 0 49430 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distro/distro.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/distro/py.typed + - -rwxr-xr-x 0 0 0 1541 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/LICENSE.md + - -rwxr-xr-x 0 0 0 868 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/__init__.py + - -rwxr-xr-x 0 0 0 3438 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/codec.py + - -rwxr-xr-x 0 0 0 316 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/compat.py + - -rwxr-xr-x 0 0 0 13246 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/core.py + - -rwxr-xr-x 0 0 0 79623 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/idnadata.py + - -rwxr-xr-x 0 0 0 1898 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/intranges.py + - -rwxr-xr-x 0 0 0 21 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/package_data.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/py.typed + - -rwxr-xr-x 0 0 0 243725 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/idna/uts46data.py + - -rwxr-xr-x 0 0 0 614 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/msgpack/COPYING + - -rwxr-xr-x 0 0 0 1109 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/msgpack/__init__.py + - -rwxr-xr-x 0 0 0 1081 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/msgpack/exceptions.py + - -rwxr-xr-x 0 0 0 5726 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/msgpack/ext.py + - -rwxr-xr-x 0 0 0 32390 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/msgpack/fallback.py + - -rwxr-xr-x 0 0 0 197 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/LICENSE + - -rwxr-xr-x 0 0 0 10174 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/LICENSE.APACHE + - -rwxr-xr-x 0 0 0 1344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/LICENSE.BSD + - -rwxr-xr-x 0 0 0 494 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/__init__.py + - -rwxr-xr-x 0 0 0 3211 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/_elffile.py + - -rwxr-xr-x 0 0 0 9559 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/_manylinux.py + - -rwxr-xr-x 0 0 0 2707 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/_musllinux.py + - -rwxr-xr-x 0 0 0 10518 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/_parser.py + - -rwxr-xr-x 0 0 0 1514 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/_structures.py + - -rwxr-xr-x 0 0 0 5421 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/_tokenizer.py + - -rwxr-xr-x 0 0 0 5819 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/licenses/__init__.py + - -rwxr-xr-x 0 0 0 51122 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/licenses/_spdx.py + - -rwxr-xr-x 0 0 0 12771 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/markers.py + - -rwxr-xr-x 0 0 0 39360 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/metadata.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/py.typed + - -rwxr-xr-x 0 0 0 22537 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/pylock.py + - -rwxr-xr-x 0 0 0 2870 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/requirements.py + - -rwxr-xr-x 0 0 0 40821 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/specifiers.py + - -rwxr-xr-x 0 0 0 22856 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/tags.py + - -rwxr-xr-x 0 0 0 5040 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/utils.py + - -rwxr-xr-x 0 0 0 23284 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/packaging/version.py + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pkg_resources/LICENSE + - -rwxr-xr-x 0 0 0 124451 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pkg_resources/__init__.py + - -rwxr-xr-x 0 0 0 1089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/LICENSE + - -rwxr-xr-x 0 0 0 22344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/__init__.py + - -rwxr-xr-x 0 0 0 1505 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/__main__.py + - -rwxr-xr-x 0 0 0 9013 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/android.py + - -rwxr-xr-x 0 0 0 9281 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/api.py + - -rwxr-xr-x 0 0 0 6322 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/macos.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/py.typed + - -rwxr-xr-x 0 0 0 10458 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/unix.py + - -rwxr-xr-x 0 0 0 704 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/version.py + - -rwxr-xr-x 0 0 0 10362 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/platformdirs/windows.py + - -rwxr-xr-x 0 0 0 1331 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/LICENSE + - -rwxr-xr-x 0 0 0 2983 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/__init__.py + - -rwxr-xr-x 0 0 0 353 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/__main__.py + - -rwxr-xr-x 0 0 0 1718 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/console.py + - -rwxr-xr-x 0 0 0 1910 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/filter.py + - -rwxr-xr-x 0 0 0 40392 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/filters/__init__.py + - -rwxr-xr-x 0 0 0 4390 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/formatter.py + - -rwxr-xr-x 0 0 0 5385 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/__init__.py + - -rwxr-xr-x 0 0 0 4176 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/formatters/_mapping.py + - -rwxr-xr-x 0 0 0 35349 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/lexer.py + - -rwxr-xr-x 0 0 0 12115 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/__init__.py + - -rwxr-xr-x 0 0 0 77602 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/_mapping.py + - -rwxr-xr-x 0 0 0 53853 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/lexers/python.py + - -rwxr-xr-x 0 0 0 1005 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/modeline.py + - -rwxr-xr-x 0 0 0 1891 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/plugin.py + - -rwxr-xr-x 0 0 0 3072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/regexopt.py + - -rwxr-xr-x 0 0 0 3092 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/scanner.py + - -rwxr-xr-x 0 0 0 7981 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/sphinxext.py + - -rwxr-xr-x 0 0 0 6420 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/style.py + - -rwxr-xr-x 0 0 0 2042 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/styles/__init__.py + - -rwxr-xr-x 0 0 0 3312 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/styles/_mapping.py + - -rwxr-xr-x 0 0 0 6226 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/token.py + - -rwxr-xr-x 0 0 0 63208 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/unistring.py + - -rwxr-xr-x 0 0 0 10031 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pygments/util.py + - -rwxr-xr-x 0 0 0 1081 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/LICENSE + - -rwxr-xr-x 0 0 0 691 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/__init__.py + - -rwxr-xr-x 0 0 0 14936 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_impl.py + - -rwxr-xr-x 0 0 0 557 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/__init__.py + - -rwxr-xr-x 0 0 0 12216 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/pyproject_hooks/py.typed + - -rwxr-xr-x 0 0 0 10142 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/LICENSE + - -rwxr-xr-x 0 0 0 5057 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/__init__.py + - -rwxr-xr-x 0 0 0 435 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/__version__.py + - -rwxr-xr-x 0 0 0 1495 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/_internal_utils.py + - -rwxr-xr-x 0 0 0 26429 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/adapters.py + - -rwxr-xr-x 0 0 0 6449 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/api.py + - -rwxr-xr-x 0 0 0 10186 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/auth.py + - -rwxr-xr-x 0 0 0 441 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/certs.py + - -rwxr-xr-x 0 0 0 1822 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/compat.py + - -rwxr-xr-x 0 0 0 18590 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/cookies.py + - -rwxr-xr-x 0 0 0 4272 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/exceptions.py + - -rwxr-xr-x 0 0 0 3813 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/help.py + - -rwxr-xr-x 0 0 0 733 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/hooks.py + - -rwxr-xr-x 0 0 0 35575 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/models.py + - -rwxr-xr-x 0 0 0 1057 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/packages.py + - -rwxr-xr-x 0 0 0 30503 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/sessions.py + - -rwxr-xr-x 0 0 0 4322 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/status_codes.py + - -rwxr-xr-x 0 0 0 2912 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/structures.py + - -rwxr-xr-x 0 0 0 33225 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/requests/utils.py + - -rwxr-xr-x 0 0 0 751 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/LICENSE + - -rwxr-xr-x 0 0 0 541 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/__init__.py + - -rwxr-xr-x 0 0 0 8914 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/providers.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/py.typed + - -rwxr-xr-x 0 0 0 2037 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/reporters.py + - -rwxr-xr-x 0 0 0 640 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers/__init__.py + - -rwxr-xr-x 0 0 0 1543 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers/abstract.py + - -rwxr-xr-x 0 0 0 1768 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers/criterion.py + - -rwxr-xr-x 0 0 0 1768 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers/exceptions.py + - -rwxr-xr-x 0 0 0 24212 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/resolvers/resolution.py + - -rwxr-xr-x 0 0 0 6420 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/resolvelib/structs.py + - -rwxr-xr-x 0 0 0 1056 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/LICENSE + - -rwxr-xr-x 0 0 0 6090 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/__init__.py + - -rwxr-xr-x 0 0 0 7896 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/__main__.py + - -rwxr-xr-x 0 0 0 10209 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_cell_widths.py + - -rwxr-xr-x 0 0 0 140235 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_emoji_codes.py + - -rwxr-xr-x 0 0 0 1064 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_emoji_replace.py + - -rwxr-xr-x 0 0 0 2128 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_export_format.py + - -rwxr-xr-x 0 0 0 265 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_extension.py + - -rwxr-xr-x 0 0 0 799 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_fileno.py + - -rwxr-xr-x 0 0 0 9656 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_inspect.py + - -rwxr-xr-x 0 0 0 3225 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_log_render.py + - -rwxr-xr-x 0 0 0 1236 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_loop.py + - -rwxr-xr-x 0 0 0 1394 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_null_file.py + - -rwxr-xr-x 0 0 0 7063 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_palettes.py + - -rwxr-xr-x 0 0 0 423 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_pick.py + - -rwxr-xr-x 0 0 0 5325 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_ratio.py + - -rwxr-xr-x 0 0 0 19919 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_spinners.py + - -rwxr-xr-x 0 0 0 351 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_stack.py + - -rwxr-xr-x 0 0 0 417 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_timer.py + - -rwxr-xr-x 0 0 0 22755 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_win32_console.py + - -rwxr-xr-x 0 0 0 1925 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_windows.py + - -rwxr-xr-x 0 0 0 2783 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_windows_renderer.py + - -rwxr-xr-x 0 0 0 3404 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/_wrap.py + - -rwxr-xr-x 0 0 0 890 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/abc.py + - -rwxr-xr-x 0 0 0 10324 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/align.py + - -rwxr-xr-x 0 0 0 6921 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/ansi.py + - -rwxr-xr-x 0 0 0 3263 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/bar.py + - -rwxr-xr-x 0 0 0 10686 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/box.py + - -rwxr-xr-x 0 0 0 5130 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/cells.py + - -rwxr-xr-x 0 0 0 18211 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/color.py + - -rwxr-xr-x 0 0 0 1054 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/color_triplet.py + - -rwxr-xr-x 0 0 0 7131 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/columns.py + - -rwxr-xr-x 0 0 0 100849 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/console.py + - -rwxr-xr-x 0 0 0 1288 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/constrain.py + - -rwxr-xr-x 0 0 0 5502 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/containers.py + - -rwxr-xr-x 0 0 0 6487 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/control.py + - -rwxr-xr-x 0 0 0 8257 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/default_styles.py + - -rwxr-xr-x 0 0 0 1025 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/diagnose.py + - -rwxr-xr-x 0 0 0 2367 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/emoji.py + - -rwxr-xr-x 0 0 0 642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/errors.py + - -rwxr-xr-x 0 0 0 1683 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/file_proxy.py + - -rwxr-xr-x 0 0 0 2484 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/filesize.py + - -rwxr-xr-x 0 0 0 9586 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/highlighter.py + - -rwxr-xr-x 0 0 0 5031 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/json.py + - -rwxr-xr-x 0 0 0 3252 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/jupyter.py + - -rwxr-xr-x 0 0 0 14004 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/layout.py + - -rwxr-xr-x 0 0 0 15180 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/live.py + - -rwxr-xr-x 0 0 0 3521 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/live_render.py + - -rwxr-xr-x 0 0 0 12468 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/logging.py + - -rwxr-xr-x 0 0 0 8451 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/markup.py + - -rwxr-xr-x 0 0 0 5305 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/measure.py + - -rwxr-xr-x 0 0 0 4908 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/padding.py + - -rwxr-xr-x 0 0 0 828 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/pager.py + - -rwxr-xr-x 0 0 0 3396 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/palette.py + - -rwxr-xr-x 0 0 0 11157 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/panel.py + - -rwxr-xr-x 0 0 0 36391 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/pretty.py + - -rwxr-xr-x 0 0 0 60408 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/progress.py + - -rwxr-xr-x 0 0 0 8162 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/progress_bar.py + - -rwxr-xr-x 0 0 0 12447 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/prompt.py + - -rwxr-xr-x 0 0 0 1391 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/protocol.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/py.typed + - -rwxr-xr-x 0 0 0 166 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/region.py + - -rwxr-xr-x 0 0 0 4431 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/repr.py + - -rwxr-xr-x 0 0 0 4602 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/rule.py + - -rwxr-xr-x 0 0 0 2843 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/scope.py + - -rwxr-xr-x 0 0 0 1591 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/screen.py + - -rwxr-xr-x 0 0 0 24743 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/segment.py + - -rwxr-xr-x 0 0 0 4214 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/spinner.py + - -rwxr-xr-x 0 0 0 4424 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/status.py + - -rwxr-xr-x 0 0 0 26990 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/style.py + - -rwxr-xr-x 0 0 0 1258 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/styled.py + - -rwxr-xr-x 0 0 0 36371 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/syntax.py + - -rwxr-xr-x 0 0 0 40049 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/table.py + - -rwxr-xr-x 0 0 0 3370 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/terminal_theme.py + - -rwxr-xr-x 0 0 0 47552 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/text.py + - -rwxr-xr-x 0 0 0 3771 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/theme.py + - -rwxr-xr-x 0 0 0 102 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/themes.py + - -rwxr-xr-x 0 0 0 35861 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/traceback.py + - -rwxr-xr-x 0 0 0 9451 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/rich/tree.py + - -rwxr-xr-x 0 0 0 1072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli/LICENSE + - -rwxr-xr-x 0 0 0 314 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli/__init__.py + - -rwxr-xr-x 0 0 0 25778 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli/_parser.py + - -rwxr-xr-x 0 0 0 3235 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli/_re.py + - -rwxr-xr-x 0 0 0 254 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli/_types.py + - -rwxr-xr-x 0 0 0 26 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli/py.typed + - -rwxr-xr-x 0 0 0 1072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli_w/LICENSE + - -rwxr-xr-x 0 0 0 169 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli_w/__init__.py + - -rwxr-xr-x 0 0 0 6961 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli_w/_writer.py + - -rwxr-xr-x 0 0 0 26 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/tomli_w/py.typed + - -rwxr-xr-x 0 0 0 1086 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/LICENSE + - -rwxr-xr-x 0 0 0 1320 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/__init__.py + - -rwxr-xr-x 0 0 0 11413 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/_api.py + - -rwxr-xr-x 0 0 0 20503 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/_macos.py + - -rwxr-xr-x 0 0 0 2412 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/_openssl.py + - -rwxr-xr-x 0 0 0 1130 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/_ssl_constants.py + - -rwxr-xr-x 0 0 0 17993 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/_windows.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/truststore/py.typed + - -rwxr-xr-x 0 0 0 1115 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/LICENSE.txt + - -rwxr-xr-x 0 0 0 3333 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/__init__.py + - -rwxr-xr-x 0 0 0 11372 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/_collections.py + - -rwxr-xr-x 0 0 0 64 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/_version.py + - -rwxr-xr-x 0 0 0 20314 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/connection.py + - -rwxr-xr-x 0 0 0 40408 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/connectionpool.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/__init__.py + - -rwxr-xr-x 0 0 0 957 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_appengine_environ.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/__init__.py + - -rwxr-xr-x 0 0 0 17632 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/bindings.py + - -rwxr-xr-x 0 0 0 13922 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/_securetransport/low_level.py + - -rwxr-xr-x 0 0 0 11036 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/appengine.py + - -rwxr-xr-x 0 0 0 4528 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/ntlmpool.py + - -rwxr-xr-x 0 0 0 17081 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/pyopenssl.py + - -rwxr-xr-x 0 0 0 34446 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/securetransport.py + - -rwxr-xr-x 0 0 0 7097 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/contrib/socks.py + - -rwxr-xr-x 0 0 0 8217 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/exceptions.py + - -rwxr-xr-x 0 0 0 8579 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/fields.py + - -rwxr-xr-x 0 0 0 2440 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/filepost.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/__init__.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/__init__.py + - -rwxr-xr-x 0 0 0 1417 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/makefile.py + - -rwxr-xr-x 0 0 0 5343 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/backports/weakref_finalize.py + - -rwxr-xr-x 0 0 0 34665 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/packages/six.py + - -rwxr-xr-x 0 0 0 19990 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/poolmanager.py + - -rwxr-xr-x 0 0 0 6691 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/request.py + - -rwxr-xr-x 0 0 0 30641 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/response.py + - -rwxr-xr-x 0 0 0 1155 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/__init__.py + - -rwxr-xr-x 0 0 0 4901 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/connection.py + - -rwxr-xr-x 0 0 0 1605 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/proxy.py + - -rwxr-xr-x 0 0 0 498 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/queue.py + - -rwxr-xr-x 0 0 0 3997 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/request.py + - -rwxr-xr-x 0 0 0 3510 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/response.py + - -rwxr-xr-x 0 0 0 22050 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/retry.py + - -rwxr-xr-x 0 0 0 17460 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssl_.py + - -rwxr-xr-x 0 0 0 5758 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssl_match_hostname.py + - -rwxr-xr-x 0 0 0 6895 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/ssltransport.py + - -rwxr-xr-x 0 0 0 10168 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/timeout.py + - -rwxr-xr-x 0 0 0 14296 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/url.py + - -rwxr-xr-x 0 0 0 5403 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/urllib3/util/wait.py + - -rwxr-xr-x 0 0 0 342 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/_vendor/vendor.txt + - -rwxr-xr-x 0 0 0 286 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pip/py.typed + - -rwxr-xr-x 0 0 0 126219 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pkg_resources/__init__.py + - -rwxr-xr-x 0 0 0 12595 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pkg_resources/api_tests.txt + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/pkg_resources/py.typed + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 6572 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 75533 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 91 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 250 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/direct_url.json + - -rwxr-xr-x 0 0 0 2449 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/entry_points.txt + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/licenses/LICENSE + - -rwxr-xr-x 0 0 0 41 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools-80.9.0.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 9004 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/__init__.py + - -rwxr-xr-x 0 0 0 11978 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_core_metadata.py + - -rwxr-xr-x 0 0 0 836 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_discovery.py + - -rwxr-xr-x 0 0 0 359 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/__init__.py + - -rwxr-xr-x 0 0 0 42 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/_log.py + - -rwxr-xr-x 0 0 0 239 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/_macos_compat.py + - -rwxr-xr-x 0 0 0 3211 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/_modified.py + - -rwxr-xr-x 0 0 0 335 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/_msvccompiler.py + - -rwxr-xr-x 0 0 0 8884 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/archive_util.py + - -rwxr-xr-x 0 0 0 524 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/ccompiler.py + - -rwxr-xr-x 0 0 0 22186 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/cmd.py + - -rwxr-xr-x 0 0 0 386 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/__init__.py + - -rwxr-xr-x 0 0 0 1609 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/_framework_compat.py + - -rwxr-xr-x 0 0 0 5854 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/bdist.py + - -rwxr-xr-x 0 0 0 4631 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/bdist_dumb.py + - -rwxr-xr-x 0 0 0 21785 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/bdist_rpm.py + - -rwxr-xr-x 0 0 0 5923 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/build.py + - -rwxr-xr-x 0 0 0 7777 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/build_clib.py + - -rwxr-xr-x 0 0 0 32710 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/build_ext.py + - -rwxr-xr-x 0 0 0 16696 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/build_py.py + - -rwxr-xr-x 0 0 0 5135 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/build_scripts.py + - -rwxr-xr-x 0 0 0 4946 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/check.py + - -rwxr-xr-x 0 0 0 2644 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/clean.py + - -rwxr-xr-x 0 0 0 12724 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/config.py + - -rwxr-xr-x 0 0 0 30072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/install.py + - -rwxr-xr-x 0 0 0 2875 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/install_data.py + - -rwxr-xr-x 0 0 0 2868 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/install_egg_info.py + - -rwxr-xr-x 0 0 0 1272 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/install_headers.py + - -rwxr-xr-x 0 0 0 8588 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/install_lib.py + - -rwxr-xr-x 0 0 0 2002 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/install_scripts.py + - -rwxr-xr-x 0 0 0 19151 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/command/sdist.py + - -rwxr-xr-x 0 0 0 522 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compat/__init__.py + - -rwxr-xr-x 0 0 0 167 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compat/numpy.py + - -rwxr-xr-x 0 0 0 1964 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compat/py39.py + - -rwxr-xr-x 0 0 0 54876 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/base.py + - -rwxr-xr-x 0 0 0 11844 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/cygwin.py + - -rwxr-xr-x 0 0 0 573 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/errors.py + - -rwxr-xr-x 0 0 0 21404 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/msvc.py + - -rwxr-xr-x 0 0 0 16531 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/unix.py + - -rwxr-xr-x 0 0 0 6586 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/compilers/C/zos.py + - -rwxr-xr-x 0 0 0 9364 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/core.py + - -rwxr-xr-x 0 0 0 594 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/cygwinccompiler.py + - -rwxr-xr-x 0 0 0 139 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/debug.py + - -rwxr-xr-x 0 0 0 349 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/dep_util.py + - -rwxr-xr-x 0 0 0 7236 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/dir_util.py + - -rwxr-xr-x 0 0 0 55794 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/dist.py + - -rwxr-xr-x 0 0 0 3092 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/errors.py + - -rwxr-xr-x 0 0 0 11155 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/extension.py + - -rwxr-xr-x 0 0 0 17895 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/fancy_getopt.py + - -rwxr-xr-x 0 0 0 7978 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/file_util.py + - -rwxr-xr-x 0 0 0 15337 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/filelist.py + - -rwxr-xr-x 0 0 0 1200 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/log.py + - -rwxr-xr-x 0 0 0 4086 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/spawn.py + - -rwxr-xr-x 0 0 0 19728 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/sysconfig.py + - -rwxr-xr-x 0 0 0 12101 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/text_file.py + - -rwxr-xr-x 0 0 0 212 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/unixccompiler.py + - -rwxr-xr-x 0 0 0 18094 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/util.py + - -rwxr-xr-x 0 0 0 12619 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/version.py + - -rwxr-xr-x 0 0 0 5205 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/versionpredicate.py + - -rwxr-xr-x 0 0 0 58 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_distutils/zosccompiler.py + - -rwxr-xr-x 0 0 0 2468 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_entry_points.py + - -rwxr-xr-x 0 0 0 2435 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_imp.py + - -rwxr-xr-x 0 0 0 223 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_importlib.py + - -rwxr-xr-x 0 0 0 657 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_itertools.py + - -rwxr-xr-x 0 0 0 5747 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_normalization.py + - -rwxr-xr-x 0 0 0 2976 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_path.py + - -rwxr-xr-x 0 0 0 1380 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_reqs.py + - -rwxr-xr-x 0 0 0 11247 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_scripts.py + - -rwxr-xr-x 0 0 0 1578 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_shutil.py + - -rwxr-xr-x 0 0 0 4855 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_static.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 7634 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 15006 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1308 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/RECORD + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 12 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand-2.2.2.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 1037 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand/__init__.py + - -rwxr-xr-x 0 0 0 5680 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand/autoasync.py + - -rwxr-xr-x 0 0 0 2505 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand/autocommand.py + - -rwxr-xr-x 0 0 0 2076 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand/automain.py + - -rwxr-xr-x 0 0 0 11642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand/autoparse.py + - -rwxr-xr-x 0 0 0 886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/autocommand/errors.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 2020 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1360 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 10 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports.tarfile-1.2.0.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 81 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports/__init__.py + - -rwxr-xr-x 0 0 0 108491 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports/tarfile/__init__.py + - -rwxr-xr-x 0 0 0 59 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports/tarfile/__main__.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports/tarfile/compat/__init__.py + - -rwxr-xr-x 0 0 0 568 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/backports/tarfile/compat/py38.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 11358 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 4648 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 2518 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 91 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata-8.0.0.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 33798 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/__init__.py + - -rwxr-xr-x 0 0 0 2317 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_adapters.py + - -rwxr-xr-x 0 0 0 743 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_collections.py + - -rwxr-xr-x 0 0 0 1314 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_compat.py + - -rwxr-xr-x 0 0 0 2895 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_functools.py + - -rwxr-xr-x 0 0 0 2068 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_itertools.py + - -rwxr-xr-x 0 0 0 1801 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_meta.py + - -rwxr-xr-x 0 0 0 2166 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/_text.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/compat/__init__.py + - -rwxr-xr-x 0 0 0 608 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/compat/py311.py + - -rwxr-xr-x 0 0 0 1102 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/compat/py39.py + - -rwxr-xr-x 0 0 0 379 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/diagnose.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/importlib_metadata/py.typed + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 21079 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/METADATA + - -rwxr-xr-x 0 0 0 943 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/RECORD + - -rwxr-xr-x 0 0 0 91 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 8 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect-7.3.1.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 103796 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect/__init__.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect/compat/__init__.py + - -rwxr-xr-x 0 0 0 160 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect/compat/py38.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/inflect/py.typed + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 3933 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 873 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 91 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 7 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.collections-5.1.0.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 4020 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 641 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 7 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.context-5.3.0.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 2891 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/METADATA + - -rwxr-xr-x 0 0 0 843 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/RECORD + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 7 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.functools-4.0.1.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 3658 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1500 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 7 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco.text-3.12.1.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 26640 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/collections/__init__.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/collections/py.typed + - -rwxr-xr-x 0 0 0 9552 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/context.py + - -rwxr-xr-x 0 0 0 16642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/functools/__init__.py + - -rwxr-xr-x 0 0 0 3878 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/functools/__init__.pyi + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/functools/py.typed + - -rwxr-xr-x 0 0 0 1335 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/Lorem ipsum.txt + - -rwxr-xr-x 0 0 0 16250 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/__init__.py + - -rwxr-xr-x 0 0 0 643 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/layouts.py + - -rwxr-xr-x 0 0 0 904 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/show-newlines.py + - -rwxr-xr-x 0 0 0 412 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/strip-prefix.py + - -rwxr-xr-x 0 0 0 119 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/to-dvorak.py + - -rwxr-xr-x 0 0 0 119 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/jaraco/text/to-qwerty.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1053 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 36293 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1259 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 81 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools-10.3.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 149 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__init__.py + - -rwxr-xr-x 0 0 0 43 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/__init__.pyi + - -rwxr-xr-x 0 0 0 148370 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/more.py + - -rwxr-xr-x 0 0 0 21484 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/more.pyi + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/py.typed + - -rwxr-xr-x 0 0 0 28591 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/recipes.py + - -rwxr-xr-x 0 0 0 4617 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/more_itertools/recipes.pyi + - -rwxr-xr-x 0 0 0 2 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 197 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 10174 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/LICENSE.APACHE + - -rwxr-xr-x 0 0 0 1344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/LICENSE.BSD + - -rwxr-xr-x 0 0 0 3204 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/METADATA + - -rwxr-xr-x 0 0 0 2009 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 82 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging-24.2.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 494 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/__init__.py + - -rwxr-xr-x 0 0 0 3306 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/_elffile.py + - -rwxr-xr-x 0 0 0 9612 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/_manylinux.py + - -rwxr-xr-x 0 0 0 2694 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/_musllinux.py + - -rwxr-xr-x 0 0 0 10236 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/_parser.py + - -rwxr-xr-x 0 0 0 1431 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/_structures.py + - -rwxr-xr-x 0 0 0 5273 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/_tokenizer.py + - -rwxr-xr-x 0 0 0 5715 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/licenses/__init__.py + - -rwxr-xr-x 0 0 0 48398 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/licenses/_spdx.py + - -rwxr-xr-x 0 0 0 10561 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/markers.py + - -rwxr-xr-x 0 0 0 34762 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/metadata.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/py.typed + - -rwxr-xr-x 0 0 0 2947 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/requirements.py + - -rwxr-xr-x 0 0 0 40074 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/specifiers.py + - -rwxr-xr-x 0 0 0 21014 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/tags.py + - -rwxr-xr-x 0 0 0 5050 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/utils.py + - -rwxr-xr-x 0 0 0 16676 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/packaging/version.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 11429 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 87 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 1089 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs-4.2.2.dist-info/licenses/LICENSE + - -rwxr-xr-x 0 0 0 22225 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/__init__.py + - -rwxr-xr-x 0 0 0 1493 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/__main__.py + - -rwxr-xr-x 0 0 0 9016 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/android.py + - -rwxr-xr-x 0 0 0 8996 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/api.py + - -rwxr-xr-x 0 0 0 5580 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/macos.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/py.typed + - -rwxr-xr-x 0 0 0 10643 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/unix.py + - -rwxr-xr-x 0 0 0 411 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/version.py + - -rwxr-xr-x 0 0 0 10125 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/platformdirs/windows.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1072 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 8875 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/METADATA + - -rwxr-xr-x 0 0 0 999 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 81 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli-2.0.1.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 396 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli/__init__.py + - -rwxr-xr-x 0 0 0 22633 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli/_parser.py + - -rwxr-xr-x 0 0 0 2943 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli/_re.py + - -rwxr-xr-x 0 0 0 254 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli/_types.py + - -rwxr-xr-x 0 0 0 26 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/tomli/py.typed + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1130 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 3717 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/METADATA + - -rwxr-xr-x 0 0 0 2402 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/RECORD + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 48 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/entry_points.txt + - -rwxr-xr-x 0 0 0 10 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard-4.3.0.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 2071 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/__init__.py + - -rwxr-xr-x 0 0 0 31360 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_checkers.py + - -rwxr-xr-x 0 0 0 2846 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_config.py + - -rwxr-xr-x 0 0 0 9033 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_decorators.py + - -rwxr-xr-x 0 0 0 1121 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_exceptions.py + - -rwxr-xr-x 0 0 0 10393 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_functions.py + - -rwxr-xr-x 0 0 0 6389 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_importhook.py + - -rwxr-xr-x 0 0 0 1303 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_memo.py + - -rwxr-xr-x 0 0 0 4416 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_pytest_plugin.py + - -rwxr-xr-x 0 0 0 2266 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_suppression.py + - -rwxr-xr-x 0 0 0 44937 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_transformer.py + - -rwxr-xr-x 0 0 0 1354 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_union_transformer.py + - -rwxr-xr-x 0 0 0 5270 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/_utils.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typeguard/py.typed + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 13936 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 3018 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/METADATA + - -rwxr-xr-x 0 0 0 571 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/RECORD + - -rwxr-xr-x 0 0 0 81 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions-4.12.2.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 134451 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/typing_extensions.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1107 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/LICENSE.txt + - -rwxr-xr-x 0 0 0 2313 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/METADATA + - -rwxr-xr-x 0 0 0 4900 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 82 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 104 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel-0.45.1.dist-info/entry_points.txt + - -rwxr-xr-x 0 0 0 59 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/__init__.py + - -rwxr-xr-x 0 0 0 455 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/__main__.py + - -rwxr-xr-x 0 0 0 21694 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/_bdist_wheel.py + - -rwxr-xr-x 0 0 0 781 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/_setuptools_logging.py + - -rwxr-xr-x 0 0 0 1107 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/bdist_wheel.py + - -rwxr-xr-x 0 0 0 4402 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/cli/__init__.py + - -rwxr-xr-x 0 0 0 12634 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/cli/convert.py + - -rwxr-xr-x 0 0 0 3103 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/cli/pack.py + - -rwxr-xr-x 0 0 0 4760 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/cli/tags.py + - -rwxr-xr-x 0 0 0 1021 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/cli/unpack.py + - -rwxr-xr-x 0 0 0 16572 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/macosx_libfile.py + - -rwxr-xr-x 0 0 0 6171 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/metadata.py + - -rwxr-xr-x 0 0 0 423 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/util.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/__init__.py + - -rwxr-xr-x 0 0 0 197 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/LICENSE + - -rwxr-xr-x 0 0 0 10174 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/LICENSE.APACHE + - -rwxr-xr-x 0 0 0 1344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/LICENSE.BSD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/__init__.py + - -rwxr-xr-x 0 0 0 3266 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/_elffile.py + - -rwxr-xr-x 0 0 0 9588 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/_manylinux.py + - -rwxr-xr-x 0 0 0 2674 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/_musllinux.py + - -rwxr-xr-x 0 0 0 10347 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/_parser.py + - -rwxr-xr-x 0 0 0 1431 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/_structures.py + - -rwxr-xr-x 0 0 0 5292 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/_tokenizer.py + - -rwxr-xr-x 0 0 0 8232 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/markers.py + - -rwxr-xr-x 0 0 0 2933 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/requirements.py + - -rwxr-xr-x 0 0 0 39778 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/specifiers.py + - -rwxr-xr-x 0 0 0 18950 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/tags.py + - -rwxr-xr-x 0 0 0 5268 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/utils.py + - -rwxr-xr-x 0 0 0 16234 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/packaging/version.py + - -rwxr-xr-x 0 0 0 16 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/vendored/vendor.txt + - -rwxr-xr-x 0 0 0 8411 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/wheel/wheelfile.py + - -rwxr-xr-x 0 0 0 4 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/INSTALLER + - -rwxr-xr-x 0 0 0 1023 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/LICENSE + - -rwxr-xr-x 0 0 0 3575 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1039 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/RECORD + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/REQUESTED + - -rwxr-xr-x 0 0 0 92 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/WHEEL + - -rwxr-xr-x 0 0 0 5 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp-3.19.2.dist-info/top_level.txt + - -rwxr-xr-x 0 0 0 13412 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp/__init__.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp/compat/__init__.py + - -rwxr-xr-x 0 0 0 219 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp/compat/py310.py + - -rwxr-xr-x 0 0 0 3082 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/_vendor/zipp/glob.py + - -rwxr-xr-x 0 0 0 7356 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/archive_util.py + - -rwxr-xr-x 0 0 0 19968 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/build_meta.py + - -rwxr-xr-x 0 0 0 11776 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/cli-32.exe + - -rwxr-xr-x 0 0 0 14336 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/cli-64.exe + - -rwxr-xr-x 0 0 0 13824 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/cli-arm64.exe + - -rwxr-xr-x 0 0 0 11776 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/cli.exe + - -rwxr-xr-x 0 0 0 803 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/__init__.py + - -rwxr-xr-x 0 0 0 4228 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/_requirestxt.py + - -rwxr-xr-x 0 0 0 2380 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/alias.py + - -rwxr-xr-x 0 0 0 16948 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/bdist_egg.py + - -rwxr-xr-x 0 0 0 1435 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/bdist_rpm.py + - -rwxr-xr-x 0 0 0 22247 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/bdist_wheel.py + - -rwxr-xr-x 0 0 0 6052 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/build.py + - -rwxr-xr-x 0 0 0 4528 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/build_clib.py + - -rwxr-xr-x 0 0 0 18465 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/build_ext.py + - -rwxr-xr-x 0 0 0 15539 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/build_py.py + - -rwxr-xr-x 0 0 0 1610 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/develop.py + - -rwxr-xr-x 0 0 0 3450 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/dist_info.py + - -rwxr-xr-x 0 0 0 780 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/easy_install.py + - -rwxr-xr-x 0 0 0 34836 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/editable_wheel.py + - -rwxr-xr-x 0 0 0 25878 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/egg_info.py + - -rwxr-xr-x 0 0 0 5066 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/install.py + - -rwxr-xr-x 0 0 0 2075 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/install_egg_info.py + - -rwxr-xr-x 0 0 0 4319 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/install_lib.py + - -rwxr-xr-x 0 0 0 2490 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/install_scripts.py + - -rwxr-xr-x 0 0 0 628 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/launcher manifest.xml + - -rwxr-xr-x 0 0 0 2187 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/rotate.py + - -rwxr-xr-x 0 0 0 692 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/saveopts.py + - -rwxr-xr-x 0 0 0 7369 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/sdist.py + - -rwxr-xr-x 0 0 0 5100 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/setopt.py + - -rwxr-xr-x 0 0 0 1343 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/command/test.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/compat/__init__.py + - -rwxr-xr-x 0 0 0 344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/compat/py310.py + - -rwxr-xr-x 0 0 0 790 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/compat/py311.py + - -rwxr-xr-x 0 0 0 366 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/compat/py312.py + - -rwxr-xr-x 0 0 0 493 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/compat/py39.py + - -rwxr-xr-x 0 0 0 493 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/NOTICE + - -rwxr-xr-x 0 0 0 1499 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/__init__.py + - -rwxr-xr-x 0 0 0 19120 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_apply_pyprojecttoml.py + - -rwxr-xr-x 0 0 0 18737 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/NOTICE + - -rwxr-xr-x 0 0 0 1042 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/__init__.py + - -rwxr-xr-x 0 0 0 11813 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/error_reporting.py + - -rwxr-xr-x 0 0 0 2858 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/extra_validations.py + - -rwxr-xr-x 0 0 0 1612 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_exceptions.py + - -rwxr-xr-x 0 0 0 354682 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/fastjsonschema_validations.py + - -rwxr-xr-x 0 0 0 13564 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/_validate_pyproject/formats.py + - -rwxr-xr-x 0 0 0 972 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/distutils.schema.json + - -rwxr-xr-x 0 0 0 16041 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/expand.py + - -rwxr-xr-x 0 0 0 18320 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/pyprojecttoml.py + - -rwxr-xr-x 0 0 0 26575 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/setupcfg.py + - -rwxr-xr-x 0 0 0 16071 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/config/setuptools.schema.json + - -rwxr-xr-x 0 0 0 5965 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/depends.py + - -rwxr-xr-x 0 0 0 21258 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/discovery.py + - -rwxr-xr-x 0 0 0 44887 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/dist.py + - -rwxr-xr-x 0 0 0 3024 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/errors.py + - -rwxr-xr-x 0 0 0 6683 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/extension.py + - -rwxr-xr-x 0 0 0 6062 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/glob.py + - -rwxr-xr-x 0 0 0 11776 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/gui-32.exe + - -rwxr-xr-x 0 0 0 14336 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/gui-64.exe + - -rwxr-xr-x 0 0 0 13824 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/gui-arm64.exe + - -rwxr-xr-x 0 0 0 11776 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/gui.exe + - -rwxr-xr-x 0 0 0 5093 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/installer.py + - -rwxr-xr-x 0 0 0 820 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/launch.py + - -rwxr-xr-x 0 0 0 1261 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/logging.py + - -rwxr-xr-x 0 0 0 568 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/modified.py + - -rwxr-xr-x 0 0 0 3717 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/monkey.py + - -rwxr-xr-x 0 0 0 41631 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/msvc.py + - -rwxr-xr-x 0 0 0 3171 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/namespaces.py + - -rwxr-xr-x 0 0 0 218 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/script (dev).tmpl + - -rwxr-xr-x 0 0 0 138 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/script.tmpl + - -rwxr-xr-x 0 0 0 3189 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/unicode_utils.py + - -rwxr-xr-x 0 0 0 161 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/version.py + - -rwxr-xr-x 0 0 0 3796 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/warnings.py + - -rwxr-xr-x 0 0 0 9477 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/wheel.py + - -rwxr-xr-x 0 0 0 726 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site-packages/setuptools/windows_support.py + - -rwxr-xr-x 0 0 0 22987 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/site.py + - -rwxr-xr-x 0 0 0 31162 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/smtpd.py + - -rwxr-xr-x 0 0 0 45418 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/smtplib.py + - -rwxr-xr-x 0 0 0 7448 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sndhdr.py + - -rwxr-xr-x 0 0 0 37557 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/socket.py + - -rwxr-xr-x 0 0 0 27586 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/socketserver.py + - -rwxr-xr-x 0 0 0 2536 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sqlite3/__init__.py + - -rwxr-xr-x 0 0 0 3305 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sqlite3/dbapi2.py + - -rwxr-xr-x 0 0 0 3471 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sqlite3/dump.py + - -rwxr-xr-x 0 0 0 231 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sre_compile.py + - -rwxr-xr-x 0 0 0 232 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sre_constants.py + - -rwxr-xr-x 0 0 0 229 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sre_parse.py + - -rwxr-xr-x 0 0 0 54305 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/ssl.py + - -rwxr-xr-x 0 0 0 5485 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/stat.py + - -rwxr-xr-x 0 0 0 47705 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/statistics.py + - -rwxr-xr-x 0 0 0 11786 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/string.py + - -rwxr-xr-x 0 0 0 12917 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/stringprep.py + - -rwxr-xr-x 0 0 0 257 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/struct.py + - -rwxr-xr-x 0 0 0 88725 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/subprocess.py + - -rwxr-xr-x 0 0 0 18480 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sunau.py + - -rwxr-xr-x 0 0 0 10368 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/symtable.py + - -rwxr-xr-x 0 0 0 30315 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/sysconfig.py + - -rwxr-xr-x 0 0 0 11299 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tabnanny.py + - -rwxr-xr-x 0 0 0 111943 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tarfile.py + - -rwxr-xr-x 0 0 0 23301 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/telnetlib.py + - -rwxr-xr-x 0 0 0 31873 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tempfile.py + - -rwxr-xr-x 0 0 0 19718 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/textwrap.py + - -rwxr-xr-x 0 0 0 1003 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/this.py + - -rwxr-xr-x 0 0 0 58231 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/threading.py + - -rwxr-xr-x 0 0 0 13519 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/timeit.py + - -rwxr-xr-x 0 0 0 2386 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/token.py + - -rwxr-xr-x 0 0 0 26336 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tokenize.py + - -rwxr-xr-x 0 0 0 308 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tomllib/__init__.py + - -rwxr-xr-x 0 0 0 22631 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tomllib/_parser.py + - -rwxr-xr-x 0 0 0 2943 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tomllib/_re.py + - -rwxr-xr-x 0 0 0 254 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tomllib/_types.py + - -rwxr-xr-x 0 0 0 29182 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/trace.py + - -rwxr-xr-x 0 0 0 40547 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/traceback.py + - -rwxr-xr-x 0 0 0 18047 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tracemalloc.py + - -rwxr-xr-x 0 0 0 879 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tty.py + - -rwxr-xr-x 0 0 0 144360 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtle.py + - -rwxr-xr-x 0 0 0 314 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/__init__.py + - -rwxr-xr-x 0 0 0 15285 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/__main__.py + - -rwxr-xr-x 0 0 0 4248 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/bytedesign.py + - -rwxr-xr-x 0 0 0 951 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/chaos.py + - -rwxr-xr-x 0 0 0 3180 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/clock.py + - -rwxr-xr-x 0 0 0 1339 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/colormixer.py + - -rwxr-xr-x 0 0 0 2966 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/forest.py + - -rwxr-xr-x 0 0 0 3473 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/fractalcurves.py + - -rwxr-xr-x 0 0 0 2434 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/lindenmayer.py + - -rwxr-xr-x 0 0 0 2051 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/minimal_hanoi.py + - -rwxr-xr-x 0 0 0 6513 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/nim.py + - -rwxr-xr-x 0 0 0 1291 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/paint.py + - -rwxr-xr-x 0 0 0 1066 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/peace.py + - -rwxr-xr-x 0 0 0 3380 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/penrose.py + - -rwxr-xr-x 0 0 0 2825 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/planet_and_moon.py + - -rwxr-xr-x 0 0 0 1361 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/rosette.py + - -rwxr-xr-x 0 0 0 1804 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/round_dance.py + - -rwxr-xr-x 0 0 0 5052 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/sorting_animate.py + - -rwxr-xr-x 0 0 0 1401 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/tree.py + - -rwxr-xr-x 0 0 0 160 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/turtle.cfg + - -rwxr-xr-x 0 0 0 1119 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/two_canvases.py + - -rwxr-xr-x 0 0 0 821 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/turtledemo/yinyang.py + - -rwxr-xr-x 0 0 0 10067 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/types.py + - -rwxr-xr-x 0 0 0 120951 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/typing.py + - -rwxr-xr-x 0 0 0 3934 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/__init__.py + - -rwxr-xr-x 0 0 0 472 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/__main__.py + - -rwxr-xr-x 0 0 0 2746 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/_log.py + - -rwxr-xr-x 0 0 0 5465 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/async_case.py + - -rwxr-xr-x 0 0 0 58503 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/case.py + - -rwxr-xr-x 0 0 0 22536 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/loader.py + - -rwxr-xr-x 0 0 0 11415 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/main.py + - -rwxr-xr-x 0 0 0 104264 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/mock.py + - -rwxr-xr-x 0 0 0 8518 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/result.py + - -rwxr-xr-x 0 0 0 9418 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/runner.py + - -rwxr-xr-x 0 0 0 2403 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/signals.py + - -rwxr-xr-x 0 0 0 13512 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/suite.py + - -rwxr-xr-x 0 0 0 5215 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/unittest/util.py + - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/urllib/__init__.py + - -rwxr-xr-x 0 0 0 2415 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/urllib/error.py + - -rwxr-xr-x 0 0 0 44836 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/urllib/parse.py + - -rwxr-xr-x 0 0 0 101960 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/urllib/request.py + - -rwxr-xr-x 0 0 0 2361 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/urllib/response.py + - -rwxr-xr-x 0 0 0 9424 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/urllib/robotparser.py + - -rwxr-xr-x 0 0 0 7365 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/uu.py + - -rwxr-xr-x 0 0 0 27597 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/uuid.py + - -rwxr-xr-x 0 0 0 26323 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/venv/__init__.py + - -rwxr-xr-x 0 0 0 145 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/venv/__main__.py + - -rwxr-xr-x 0 0 0 9033 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/venv/scripts/common/Activate.ps1 + - -rwxr-xr-x 0 0 0 1709 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/venv/scripts/common/activate + - -rwxr-xr-x 0 0 0 933 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/venv/scripts/posix/activate.csh + - -rwxr-xr-x 0 0 0 2209 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/venv/scripts/posix/activate.fish + - -rwxr-xr-x 0 0 0 21110 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/warnings.py + - -rwxr-xr-x 0 0 0 21818 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wave.py + - -rwxr-xr-x 0 0 0 21513 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/weakref.py + - -rwxr-xr-x 0 0 0 25136 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/webbrowser.py + - -rwxr-xr-x 0 0 0 657 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/__init__.py + - -rwxr-xr-x 0 0 0 21550 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/handlers.py + - -rwxr-xr-x 0 0 0 7370 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/headers.py + - -rwxr-xr-x 0 0 0 5171 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/simple_server.py + - -rwxr-xr-x 0 0 0 1717 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/types.py + - -rwxr-xr-x 0 0 0 5472 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/util.py + - -rwxr-xr-x 0 0 0 15097 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/wsgiref/validate.py + - -rwxr-xr-x 0 0 0 5977 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xdrlib.py + - -rwxr-xr-x 0 0 0 557 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/__init__.py + - -rwxr-xr-x 0 0 0 936 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/NodeFilter.py + - -rwxr-xr-x 0 0 0 4019 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/__init__.py + - -rwxr-xr-x 0 0 0 3451 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/domreg.py + - -rwxr-xr-x 0 0 0 35767 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/expatbuilder.py + - -rwxr-xr-x 0 0 0 3367 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/minicompat.py + - -rwxr-xr-x 0 0 0 67982 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/minidom.py + - -rwxr-xr-x 0 0 0 11637 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/pulldom.py + - -rwxr-xr-x 0 0 0 12387 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/dom/xmlbuilder.py + - -rwxr-xr-x 0 0 0 6882 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/etree/ElementInclude.py + - -rwxr-xr-x 0 0 0 13997 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/etree/ElementPath.py + - -rwxr-xr-x 0 0 0 74399 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/etree/ElementTree.py + - -rwxr-xr-x 0 0 0 1605 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/etree/__init__.py + - -rwxr-xr-x 0 0 0 82 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/etree/cElementTree.py + - -rwxr-xr-x 0 0 0 167 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/parsers/__init__.py + - -rwxr-xr-x 0 0 0 248 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/parsers/expat.py + - -rwxr-xr-x 0 0 0 3642 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/sax/__init__.py + - -rwxr-xr-x 0 0 0 4785 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/sax/_exceptions.py + - -rwxr-xr-x 0 0 0 16211 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/sax/expatreader.py + - -rwxr-xr-x 0 0 0 15617 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/sax/handler.py + - -rwxr-xr-x 0 0 0 12255 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/sax/saxutils.py + - -rwxr-xr-x 0 0 0 12684 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xml/sax/xmlreader.py + - -rwxr-xr-x 0 0 0 38 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xmlrpc/__init__.py + - -rwxr-xr-x 0 0 0 49391 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xmlrpc/client.py + - -rwxr-xr-x 0 0 0 36867 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/xmlrpc/server.py + - -rwxr-xr-x 0 0 0 7535 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zipapp.py + - -rwxr-xr-x 0 0 0 94447 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zipfile.py + - -rwxr-xr-x 0 0 0 30897 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zipimport.py + - -rwxr-xr-x 0 0 0 703 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zoneinfo/__init__.py + - -rwxr-xr-x 0 0 0 5294 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zoneinfo/_common.py + - -rwxr-xr-x 0 0 0 5096 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zoneinfo/_tzpath.py + - -rwxr-xr-x 0 0 0 24674 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/zoneinfo/_zoneinfo.py + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/share/man/man1/python3.1 -> python3.11.1 + - -rwxr-xr-x 0 0 0 20280 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/share/man/man1/python3.11.1 diff --git a/e2e/cases/interpreter-features-tkinter/test.yaml b/e2e/cases/interpreter-features-tkinter/test.yaml new file mode 100644 index 000000000..eb7e12d44 --- /dev/null +++ b/e2e/cases/interpreter-features-tkinter/test.yaml @@ -0,0 +1,41 @@ +schemaVersion: 2.0.0 + +commandTests: + - name: tkinter is not importable + exitCode: 0 + command: /app + expectedOutput: + - "OK: tkinter and _tkinter are not importable" + +fileExistenceTests: + - name: tkinter package must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/tkinter + shouldExist: false + + - name: _tkinter extension must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/python3.11/lib-dynload/_tkinter.cpython-311-x86_64-linux-gnu.so + shouldExist: false + + - name: libtcl must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libtcl9.0.so + shouldExist: false + + - name: libtcl9tk must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libtcl9tk9.0.so + shouldExist: false + + - name: tcl support dir must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/tcl9.0 + shouldExist: false + + - name: tk support dir must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/tk9.0 + shouldExist: false + + - name: itcl support dir must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5 + shouldExist: false + + - name: thread support dir must not exist in interpreter + path: /app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/thread3.0.4 + shouldExist: false diff --git a/e2e/cases/jwt-regular-collision/BUILD.bazel b/e2e/cases/jwt-regular-collision/BUILD.bazel new file mode 100644 index 000000000..58f52c17a --- /dev/null +++ b/e2e/cases/jwt-regular-collision/BUILD.bazel @@ -0,0 +1,20 @@ +load("@aspect_rules_py//py:defs.bzl", "py_test") + +# PyJWT and jwt both ship a regular jwt/ package. PyJWT contributes +# jwt/api_jwt.py while jwt contributes jwt/jwa.py. A winner-only top-level +# symlink hides one side; a flat install and rules_py's physical merge keep +# both modules reachable. +py_test( + name = "test", + srcs = ["test.py"], + dep_group = "jwt-regular-collision", + expose_venv = True, + isolated = False, + main = "test.py", + package_collisions = "warning", + python_version = "3.11", + deps = [ + "@pypi_jwt_regular_collision//jwt", + "@pypi_jwt_regular_collision//pyjwt", + ], +) diff --git a/e2e/cases/jwt-regular-collision/pyproject.toml b/e2e/cases/jwt-regular-collision/pyproject.toml new file mode 100644 index 000000000..d96a74fef --- /dev/null +++ b/e2e/cases/jwt-regular-collision/pyproject.toml @@ -0,0 +1,11 @@ +[project] +name = "jwt-regular-collision" +version = "0.0.0" +requires-python = ">=3.11" +dependencies = [ + # Both distributions install a regular jwt/ directory, but each owns + # modules that the other does not. Keep the versions pinned so the + # collision shape remains the test's source of truth. + "PyJWT==2.13.0", + "jwt==1.4.0", +] diff --git a/e2e/cases/jwt-regular-collision/setup.MODULE.bazel b/e2e/cases/jwt-regular-collision/setup.MODULE.bazel new file mode 100644 index 000000000..ec72318f3 --- /dev/null +++ b/e2e/cases/jwt-regular-collision/setup.MODULE.bazel @@ -0,0 +1,10 @@ +"""Regression: two real regular jwt/ packages must merge.""" + +uv = use_extension("@aspect_rules_py//uv:extensions.bzl", "uv") +uv.declare_hub(hub_name = "pypi_jwt_regular_collision") +uv.project( + hub_name = "pypi_jwt_regular_collision", + lock = "//jwt-regular-collision:uv.lock", + pyproject = "//jwt-regular-collision:pyproject.toml", +) +use_repo(uv, "pypi_jwt_regular_collision") diff --git a/e2e/cases/jwt-regular-collision/test.py b/e2e/cases/jwt-regular-collision/test.py new file mode 100644 index 000000000..2af40ec43 --- /dev/null +++ b/e2e/cases/jwt-regular-collision/test.py @@ -0,0 +1,14 @@ +"""Regression for two regular wheels contributing to one package directory.""" + +from pathlib import Path +import sysconfig + +import jwt.api_jwt + + +site_packages = Path(sysconfig.get_paths()["purelib"]) +jwt_dir = site_packages / "jwt" + +assert (jwt_dir / "api_jwt.py").is_file(), jwt_dir +assert (jwt_dir / "jwa.py").is_file(), jwt_dir +assert Path(jwt.api_jwt.__file__).parent.samefile(jwt_dir) diff --git a/e2e/cases/jwt-regular-collision/uv.lock b/e2e/cases/jwt-regular-collision/uv.lock new file mode 100644 index 000000000..38ee01060 --- /dev/null +++ b/e2e/cases/jwt-regular-collision/uv.lock @@ -0,0 +1,174 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" + +[[package]] +name = "cffi" +version = "2.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pycparser", marker = "implementation_name != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/eb/56/b1ba7935a17738ae8453301356628e8147c79dbb825bcbc73dc7401f9846/cffi-2.0.0.tar.gz", hash = "sha256:44d1b5909021139fe36001ae048dbdde8214afa20200eda0f64c068cac5d5529", size = 523588, upload-time = "2025-09-08T23:24:04.541Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/12/4a/3dfd5f7850cbf0d06dc84ba9aa00db766b52ca38d8b86e3a38314d52498c/cffi-2.0.0-cp311-cp311-macosx_10_13_x86_64.whl", hash = "sha256:b4c854ef3adc177950a8dfc81a86f5115d2abd545751a304c5bcf2c2c7283cfe", size = 184344, upload-time = "2025-09-08T23:22:26.456Z" }, + { url = "https://files.pythonhosted.org/packages/4f/8b/f0e4c441227ba756aafbe78f117485b25bb26b1c059d01f137fa6d14896b/cffi-2.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:2de9a304e27f7596cd03d16f1b7c72219bd944e99cc52b84d0145aefb07cbd3c", size = 180560, upload-time = "2025-09-08T23:22:28.197Z" }, + { url = "https://files.pythonhosted.org/packages/b1/b7/1200d354378ef52ec227395d95c2576330fd22a869f7a70e88e1447eb234/cffi-2.0.0-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:baf5215e0ab74c16e2dd324e8ec067ef59e41125d3eade2b863d294fd5035c92", size = 209613, upload-time = "2025-09-08T23:22:29.475Z" }, + { url = "https://files.pythonhosted.org/packages/b8/56/6033f5e86e8cc9bb629f0077ba71679508bdf54a9a5e112a3c0b91870332/cffi-2.0.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:730cacb21e1bdff3ce90babf007d0a0917cc3e6492f336c2f0134101e0944f93", size = 216476, upload-time = "2025-09-08T23:22:31.063Z" }, + { url = "https://files.pythonhosted.org/packages/dc/7f/55fecd70f7ece178db2f26128ec41430d8720f2d12ca97bf8f0a628207d5/cffi-2.0.0-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:6824f87845e3396029f3820c206e459ccc91760e8fa24422f8b0c3d1731cbec5", size = 203374, upload-time = "2025-09-08T23:22:32.507Z" }, + { url = "https://files.pythonhosted.org/packages/84/ef/a7b77c8bdc0f77adc3b46888f1ad54be8f3b7821697a7b89126e829e676a/cffi-2.0.0-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:9de40a7b0323d889cf8d23d1ef214f565ab154443c42737dfe52ff82cf857664", size = 202597, upload-time = "2025-09-08T23:22:34.132Z" }, + { url = "https://files.pythonhosted.org/packages/d7/91/500d892b2bf36529a75b77958edfcd5ad8e2ce4064ce2ecfeab2125d72d1/cffi-2.0.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:8941aaadaf67246224cee8c3803777eed332a19d909b47e29c9842ef1e79ac26", size = 215574, upload-time = "2025-09-08T23:22:35.443Z" }, + { url = "https://files.pythonhosted.org/packages/44/64/58f6255b62b101093d5df22dcb752596066c7e89dd725e0afaed242a61be/cffi-2.0.0-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:a05d0c237b3349096d3981b727493e22147f934b20f6f125a3eba8f994bec4a9", size = 218971, upload-time = "2025-09-08T23:22:36.805Z" }, + { url = "https://files.pythonhosted.org/packages/ab/49/fa72cebe2fd8a55fbe14956f9970fe8eb1ac59e5df042f603ef7c8ba0adc/cffi-2.0.0-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:94698a9c5f91f9d138526b48fe26a199609544591f859c870d477351dc7b2414", size = 211972, upload-time = "2025-09-08T23:22:38.436Z" }, + { url = "https://files.pythonhosted.org/packages/0b/28/dd0967a76aab36731b6ebfe64dec4e981aff7e0608f60c2d46b46982607d/cffi-2.0.0-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:5fed36fccc0612a53f1d4d9a816b50a36702c28a2aa880cb8a122b3466638743", size = 217078, upload-time = "2025-09-08T23:22:39.776Z" }, + { url = "https://files.pythonhosted.org/packages/2b/c0/015b25184413d7ab0a410775fdb4a50fca20f5589b5dab1dbbfa3baad8ce/cffi-2.0.0-cp311-cp311-win32.whl", hash = "sha256:c649e3a33450ec82378822b3dad03cc228b8f5963c0c12fc3b1e0ab940f768a5", size = 172076, upload-time = "2025-09-08T23:22:40.95Z" }, + { url = "https://files.pythonhosted.org/packages/ae/8f/dc5531155e7070361eb1b7e4c1a9d896d0cb21c49f807a6c03fd63fc877e/cffi-2.0.0-cp311-cp311-win_amd64.whl", hash = "sha256:66f011380d0e49ed280c789fbd08ff0d40968ee7b665575489afa95c98196ab5", size = 182820, upload-time = "2025-09-08T23:22:42.463Z" }, + { url = "https://files.pythonhosted.org/packages/95/5c/1b493356429f9aecfd56bc171285a4c4ac8697f76e9bbbbb105e537853a1/cffi-2.0.0-cp311-cp311-win_arm64.whl", hash = "sha256:c6638687455baf640e37344fe26d37c404db8b80d037c3d29f58fe8d1c3b194d", size = 177635, upload-time = "2025-09-08T23:22:43.623Z" }, + { url = "https://files.pythonhosted.org/packages/ea/47/4f61023ea636104d4f16ab488e268b93008c3d0bb76893b1b31db1f96802/cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:6d02d6655b0e54f54c4ef0b94eb6be0607b70853c45ce98bd278dc7de718be5d", size = 185271, upload-time = "2025-09-08T23:22:44.795Z" }, + { url = "https://files.pythonhosted.org/packages/df/a2/781b623f57358e360d62cdd7a8c681f074a71d445418a776eef0aadb4ab4/cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8eca2a813c1cb7ad4fb74d368c2ffbbb4789d377ee5bb8df98373c2cc0dee76c", size = 181048, upload-time = "2025-09-08T23:22:45.938Z" }, + { url = "https://files.pythonhosted.org/packages/ff/df/a4f0fbd47331ceeba3d37c2e51e9dfc9722498becbeec2bd8bc856c9538a/cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:21d1152871b019407d8ac3985f6775c079416c282e431a4da6afe7aefd2bccbe", size = 212529, upload-time = "2025-09-08T23:22:47.349Z" }, + { url = "https://files.pythonhosted.org/packages/d5/72/12b5f8d3865bf0f87cf1404d8c374e7487dcf097a1c91c436e72e6badd83/cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:b21e08af67b8a103c71a250401c78d5e0893beff75e28c53c98f4de42f774062", size = 220097, upload-time = "2025-09-08T23:22:48.677Z" }, + { url = "https://files.pythonhosted.org/packages/c2/95/7a135d52a50dfa7c882ab0ac17e8dc11cec9d55d2c18dda414c051c5e69e/cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:1e3a615586f05fc4065a8b22b8152f0c1b00cdbc60596d187c2a74f9e3036e4e", size = 207983, upload-time = "2025-09-08T23:22:50.06Z" }, + { url = "https://files.pythonhosted.org/packages/3a/c8/15cb9ada8895957ea171c62dc78ff3e99159ee7adb13c0123c001a2546c1/cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:81afed14892743bbe14dacb9e36d9e0e504cd204e0b165062c488942b9718037", size = 206519, upload-time = "2025-09-08T23:22:51.364Z" }, + { url = "https://files.pythonhosted.org/packages/78/2d/7fa73dfa841b5ac06c7b8855cfc18622132e365f5b81d02230333ff26e9e/cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:3e17ed538242334bf70832644a32a7aae3d83b57567f9fd60a26257e992b79ba", size = 219572, upload-time = "2025-09-08T23:22:52.902Z" }, + { url = "https://files.pythonhosted.org/packages/07/e0/267e57e387b4ca276b90f0434ff88b2c2241ad72b16d31836adddfd6031b/cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3925dd22fa2b7699ed2617149842d2e6adde22b262fcbfada50e3d195e4b3a94", size = 222963, upload-time = "2025-09-08T23:22:54.518Z" }, + { url = "https://files.pythonhosted.org/packages/b6/75/1f2747525e06f53efbd878f4d03bac5b859cbc11c633d0fb81432d98a795/cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:2c8f814d84194c9ea681642fd164267891702542f028a15fc97d4674b6206187", size = 221361, upload-time = "2025-09-08T23:22:55.867Z" }, + { url = "https://files.pythonhosted.org/packages/7b/2b/2b6435f76bfeb6bbf055596976da087377ede68df465419d192acf00c437/cffi-2.0.0-cp312-cp312-win32.whl", hash = "sha256:da902562c3e9c550df360bfa53c035b2f241fed6d9aef119048073680ace4a18", size = 172932, upload-time = "2025-09-08T23:22:57.188Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ed/13bd4418627013bec4ed6e54283b1959cf6db888048c7cf4b4c3b5b36002/cffi-2.0.0-cp312-cp312-win_amd64.whl", hash = "sha256:da68248800ad6320861f129cd9c1bf96ca849a2771a59e0344e88681905916f5", size = 183557, upload-time = "2025-09-08T23:22:58.351Z" }, + { url = "https://files.pythonhosted.org/packages/95/31/9f7f93ad2f8eff1dbc1c3656d7ca5bfd8fb52c9d786b4dcf19b2d02217fa/cffi-2.0.0-cp312-cp312-win_arm64.whl", hash = "sha256:4671d9dd5ec934cb9a73e7ee9676f9362aba54f7f34910956b84d727b0d73fb6", size = 177762, upload-time = "2025-09-08T23:22:59.668Z" }, + { url = "https://files.pythonhosted.org/packages/4b/8d/a0a47a0c9e413a658623d014e91e74a50cdd2c423f7ccfd44086ef767f90/cffi-2.0.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:00bdf7acc5f795150faa6957054fbbca2439db2f775ce831222b66f192f03beb", size = 185230, upload-time = "2025-09-08T23:23:00.879Z" }, + { url = "https://files.pythonhosted.org/packages/4a/d2/a6c0296814556c68ee32009d9c2ad4f85f2707cdecfd7727951ec228005d/cffi-2.0.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:45d5e886156860dc35862657e1494b9bae8dfa63bf56796f2fb56e1679fc0bca", size = 181043, upload-time = "2025-09-08T23:23:02.231Z" }, + { url = "https://files.pythonhosted.org/packages/b0/1e/d22cc63332bd59b06481ceaac49d6c507598642e2230f201649058a7e704/cffi-2.0.0-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:07b271772c100085dd28b74fa0cd81c8fb1a3ba18b21e03d7c27f3436a10606b", size = 212446, upload-time = "2025-09-08T23:23:03.472Z" }, + { url = "https://files.pythonhosted.org/packages/a9/f5/a2c23eb03b61a0b8747f211eb716446c826ad66818ddc7810cc2cc19b3f2/cffi-2.0.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:d48a880098c96020b02d5a1f7d9251308510ce8858940e6fa99ece33f610838b", size = 220101, upload-time = "2025-09-08T23:23:04.792Z" }, + { url = "https://files.pythonhosted.org/packages/f2/7f/e6647792fc5850d634695bc0e6ab4111ae88e89981d35ac269956605feba/cffi-2.0.0-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:f93fd8e5c8c0a4aa1f424d6173f14a892044054871c771f8566e4008eaa359d2", size = 207948, upload-time = "2025-09-08T23:23:06.127Z" }, + { url = "https://files.pythonhosted.org/packages/cb/1e/a5a1bd6f1fb30f22573f76533de12a00bf274abcdc55c8edab639078abb6/cffi-2.0.0-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:dd4f05f54a52fb558f1ba9f528228066954fee3ebe629fc1660d874d040ae5a3", size = 206422, upload-time = "2025-09-08T23:23:07.753Z" }, + { url = "https://files.pythonhosted.org/packages/98/df/0a1755e750013a2081e863e7cd37e0cdd02664372c754e5560099eb7aa44/cffi-2.0.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:c8d3b5532fc71b7a77c09192b4a5a200ea992702734a2e9279a37f2478236f26", size = 219499, upload-time = "2025-09-08T23:23:09.648Z" }, + { url = "https://files.pythonhosted.org/packages/50/e1/a969e687fcf9ea58e6e2a928ad5e2dd88cc12f6f0ab477e9971f2309b57c/cffi-2.0.0-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:d9b29c1f0ae438d5ee9acb31cadee00a58c46cc9c0b2f9038c6b0b3470877a8c", size = 222928, upload-time = "2025-09-08T23:23:10.928Z" }, + { url = "https://files.pythonhosted.org/packages/36/54/0362578dd2c9e557a28ac77698ed67323ed5b9775ca9d3fe73fe191bb5d8/cffi-2.0.0-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6d50360be4546678fc1b79ffe7a66265e28667840010348dd69a314145807a1b", size = 221302, upload-time = "2025-09-08T23:23:12.42Z" }, + { url = "https://files.pythonhosted.org/packages/eb/6d/bf9bda840d5f1dfdbf0feca87fbdb64a918a69bca42cfa0ba7b137c48cb8/cffi-2.0.0-cp313-cp313-win32.whl", hash = "sha256:74a03b9698e198d47562765773b4a8309919089150a0bb17d829ad7b44b60d27", size = 172909, upload-time = "2025-09-08T23:23:14.32Z" }, + { url = "https://files.pythonhosted.org/packages/37/18/6519e1ee6f5a1e579e04b9ddb6f1676c17368a7aba48299c3759bbc3c8b3/cffi-2.0.0-cp313-cp313-win_amd64.whl", hash = "sha256:19f705ada2530c1167abacb171925dd886168931e0a7b78f5bffcae5c6b5be75", size = 183402, upload-time = "2025-09-08T23:23:15.535Z" }, + { url = "https://files.pythonhosted.org/packages/cb/0e/02ceeec9a7d6ee63bb596121c2c8e9b3a9e150936f4fbef6ca1943e6137c/cffi-2.0.0-cp313-cp313-win_arm64.whl", hash = "sha256:256f80b80ca3853f90c21b23ee78cd008713787b1b1e93eae9f3d6a7134abd91", size = 177780, upload-time = "2025-09-08T23:23:16.761Z" }, + { url = "https://files.pythonhosted.org/packages/92/c4/3ce07396253a83250ee98564f8d7e9789fab8e58858f35d07a9a2c78de9f/cffi-2.0.0-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:fc33c5141b55ed366cfaad382df24fe7dcbc686de5be719b207bb248e3053dc5", size = 185320, upload-time = "2025-09-08T23:23:18.087Z" }, + { url = "https://files.pythonhosted.org/packages/59/dd/27e9fa567a23931c838c6b02d0764611c62290062a6d4e8ff7863daf9730/cffi-2.0.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c654de545946e0db659b3400168c9ad31b5d29593291482c43e3564effbcee13", size = 181487, upload-time = "2025-09-08T23:23:19.622Z" }, + { url = "https://files.pythonhosted.org/packages/d6/43/0e822876f87ea8a4ef95442c3d766a06a51fc5298823f884ef87aaad168c/cffi-2.0.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:24b6f81f1983e6df8db3adc38562c83f7d4a0c36162885ec7f7b77c7dcbec97b", size = 220049, upload-time = "2025-09-08T23:23:20.853Z" }, + { url = "https://files.pythonhosted.org/packages/b4/89/76799151d9c2d2d1ead63c2429da9ea9d7aac304603de0c6e8764e6e8e70/cffi-2.0.0-cp314-cp314-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:12873ca6cb9b0f0d3a0da705d6086fe911591737a59f28b7936bdfed27c0d47c", size = 207793, upload-time = "2025-09-08T23:23:22.08Z" }, + { url = "https://files.pythonhosted.org/packages/bb/dd/3465b14bb9e24ee24cb88c9e3730f6de63111fffe513492bf8c808a3547e/cffi-2.0.0-cp314-cp314-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:d9b97165e8aed9272a6bb17c01e3cc5871a594a446ebedc996e2397a1c1ea8ef", size = 206300, upload-time = "2025-09-08T23:23:23.314Z" }, + { url = "https://files.pythonhosted.org/packages/47/d9/d83e293854571c877a92da46fdec39158f8d7e68da75bf73581225d28e90/cffi-2.0.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:afb8db5439b81cf9c9d0c80404b60c3cc9c3add93e114dcae767f1477cb53775", size = 219244, upload-time = "2025-09-08T23:23:24.541Z" }, + { url = "https://files.pythonhosted.org/packages/2b/0f/1f177e3683aead2bb00f7679a16451d302c436b5cbf2505f0ea8146ef59e/cffi-2.0.0-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:737fe7d37e1a1bffe70bd5754ea763a62a066dc5913ca57e957824b72a85e205", size = 222828, upload-time = "2025-09-08T23:23:26.143Z" }, + { url = "https://files.pythonhosted.org/packages/c6/0f/cafacebd4b040e3119dcb32fed8bdef8dfe94da653155f9d0b9dc660166e/cffi-2.0.0-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:38100abb9d1b1435bc4cc340bb4489635dc2f0da7456590877030c9b3d40b0c1", size = 220926, upload-time = "2025-09-08T23:23:27.873Z" }, + { url = "https://files.pythonhosted.org/packages/3e/aa/df335faa45b395396fcbc03de2dfcab242cd61a9900e914fe682a59170b1/cffi-2.0.0-cp314-cp314-win32.whl", hash = "sha256:087067fa8953339c723661eda6b54bc98c5625757ea62e95eb4898ad5e776e9f", size = 175328, upload-time = "2025-09-08T23:23:44.61Z" }, + { url = "https://files.pythonhosted.org/packages/bb/92/882c2d30831744296ce713f0feb4c1cd30f346ef747b530b5318715cc367/cffi-2.0.0-cp314-cp314-win_amd64.whl", hash = "sha256:203a48d1fb583fc7d78a4c6655692963b860a417c0528492a6bc21f1aaefab25", size = 185650, upload-time = "2025-09-08T23:23:45.848Z" }, + { url = "https://files.pythonhosted.org/packages/9f/2c/98ece204b9d35a7366b5b2c6539c350313ca13932143e79dc133ba757104/cffi-2.0.0-cp314-cp314-win_arm64.whl", hash = "sha256:dbd5c7a25a7cb98f5ca55d258b103a2054f859a46ae11aaf23134f9cc0d356ad", size = 180687, upload-time = "2025-09-08T23:23:47.105Z" }, + { url = "https://files.pythonhosted.org/packages/3e/61/c768e4d548bfa607abcda77423448df8c471f25dbe64fb2ef6d555eae006/cffi-2.0.0-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:9a67fc9e8eb39039280526379fb3a70023d77caec1852002b4da7e8b270c4dd9", size = 188773, upload-time = "2025-09-08T23:23:29.347Z" }, + { url = "https://files.pythonhosted.org/packages/2c/ea/5f76bce7cf6fcd0ab1a1058b5af899bfbef198bea4d5686da88471ea0336/cffi-2.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:7a66c7204d8869299919db4d5069a82f1561581af12b11b3c9f48c584eb8743d", size = 185013, upload-time = "2025-09-08T23:23:30.63Z" }, + { url = "https://files.pythonhosted.org/packages/be/b4/c56878d0d1755cf9caa54ba71e5d049479c52f9e4afc230f06822162ab2f/cffi-2.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:7cc09976e8b56f8cebd752f7113ad07752461f48a58cbba644139015ac24954c", size = 221593, upload-time = "2025-09-08T23:23:31.91Z" }, + { url = "https://files.pythonhosted.org/packages/e0/0d/eb704606dfe8033e7128df5e90fee946bbcb64a04fcdaa97321309004000/cffi-2.0.0-cp314-cp314t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl", hash = "sha256:92b68146a71df78564e4ef48af17551a5ddd142e5190cdf2c5624d0c3ff5b2e8", size = 209354, upload-time = "2025-09-08T23:23:33.214Z" }, + { url = "https://files.pythonhosted.org/packages/d8/19/3c435d727b368ca475fb8742ab97c9cb13a0de600ce86f62eab7fa3eea60/cffi-2.0.0-cp314-cp314t-manylinux2014_s390x.manylinux_2_17_s390x.whl", hash = "sha256:b1e74d11748e7e98e2f426ab176d4ed720a64412b6a15054378afdb71e0f37dc", size = 208480, upload-time = "2025-09-08T23:23:34.495Z" }, + { url = "https://files.pythonhosted.org/packages/d0/44/681604464ed9541673e486521497406fadcc15b5217c3e326b061696899a/cffi-2.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:28a3a209b96630bca57cce802da70c266eb08c6e97e5afd61a75611ee6c64592", size = 221584, upload-time = "2025-09-08T23:23:36.096Z" }, + { url = "https://files.pythonhosted.org/packages/25/8e/342a504ff018a2825d395d44d63a767dd8ebc927ebda557fecdaca3ac33a/cffi-2.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:7553fb2090d71822f02c629afe6042c299edf91ba1bf94951165613553984512", size = 224443, upload-time = "2025-09-08T23:23:37.328Z" }, + { url = "https://files.pythonhosted.org/packages/e1/5e/b666bacbbc60fbf415ba9988324a132c9a7a0448a9a8f125074671c0f2c3/cffi-2.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:6c6c373cfc5c83a975506110d17457138c8c63016b563cc9ed6e056a82f13ce4", size = 223437, upload-time = "2025-09-08T23:23:38.945Z" }, + { url = "https://files.pythonhosted.org/packages/a0/1d/ec1a60bd1a10daa292d3cd6bb0b359a81607154fb8165f3ec95fe003b85c/cffi-2.0.0-cp314-cp314t-win32.whl", hash = "sha256:1fc9ea04857caf665289b7a75923f2c6ed559b8298a1b8c49e59f7dd95c8481e", size = 180487, upload-time = "2025-09-08T23:23:40.423Z" }, + { url = "https://files.pythonhosted.org/packages/bf/41/4c1168c74fac325c0c8156f04b6749c8b6a8f405bbf91413ba088359f60d/cffi-2.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:d68b6cef7827e8641e8ef16f4494edda8b36104d79773a334beaa1e3521430f6", size = 191726, upload-time = "2025-09-08T23:23:41.742Z" }, + { url = "https://files.pythonhosted.org/packages/ae/3a/dbeec9d1ee0844c679f6bb5d6ad4e9f198b1224f4e7a32825f47f6192b0c/cffi-2.0.0-cp314-cp314t-win_arm64.whl", hash = "sha256:0a1527a803f0a659de1af2e1fd700213caba79377e27e4693648c2923da066f9", size = 184195, upload-time = "2025-09-08T23:23:43.004Z" }, +] + +[[package]] +name = "cryptography" +version = "49.0.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cffi", marker = "platform_python_implementation != 'PyPy'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/1f/99/d1c90d6041656cc6ee229dc99cd67fd0cd5aec3c5f7d72fffc27cc750054/cryptography-49.0.0.tar.gz", hash = "sha256:f89660a348f4f78a92366240a61404e337586ef7f5909a2fef59ca88ef505493", size = 854345, upload-time = "2026-06-12T20:02:30.512Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9b/22/adf66990e63584a68dfb50c24f48a125c07b1699899381c8151e63ed458c/cryptography-49.0.0-cp311-abi3-macosx_11_0_arm64.whl", hash = "sha256:966fe0e9c67490071f14c0d2b1cb2dfb3023c5ce39457343931415f08382f2db", size = 4032100, upload-time = "2026-06-12T20:02:32.143Z" }, + { url = "https://files.pythonhosted.org/packages/09/41/3797cfaf69cae04a13ee78ebd83f0678d9c02b4779d21ce24445326f1a69/cryptography-49.0.0-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:36d1709f992593689b45bda411498d62c6e365f2ca00b84657d4dadd24de16db", size = 4692978, upload-time = "2026-06-12T20:01:21.305Z" }, + { url = "https://files.pythonhosted.org/packages/e6/8b/43011f7ebe515a8aa20d61f290a326cd890c2e738e16e59eaff8d9c3a412/cryptography-49.0.0-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:0e959b578856a3924bc0cbb710fc12c387b9412a951389f3ca61704a9e25f325", size = 4716422, upload-time = "2026-06-12T20:01:48.566Z" }, + { url = "https://files.pythonhosted.org/packages/4a/91/01ce7303a4579e6d3a6abef01bd322848e9ea7a219adcabc5048b9033571/cryptography-49.0.0-cp311-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:53ecee2e23f7169b6117e99fc8a944e5e50f79e69758a83b52a00cb98ab2b2d2", size = 4700503, upload-time = "2026-06-12T20:02:47.091Z" }, + { url = "https://files.pythonhosted.org/packages/62/99/a2c95cf8293f07491e9e27c20cc4dcd18176d944e674679adeb1d0173fd6/cryptography-49.0.0-cp311-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:2eda353d8a27bcbcaa4cbed18994a74ab4d19a2ca897db188ea269ab9b71419b", size = 5309779, upload-time = "2026-06-12T20:02:08.987Z" }, + { url = "https://files.pythonhosted.org/packages/20/2c/0622f20ff02b2ef32558733443805dc82fd4c275be01b2d19d14676f3a1b/cryptography-49.0.0-cp311-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:2afe9051da7ae7bd5905da5a949280c7d2bb75682e188f650a9d0f2756b834c6", size = 4749683, upload-time = "2026-06-12T20:02:03.335Z" }, + { url = "https://files.pythonhosted.org/packages/a3/5b/c5246635d5fd3b64e0d45ae10e99fd32fe9676a79915ccfe5a61ba9af1a5/cryptography-49.0.0-cp311-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:0b82e28ee398a386f0807bba7884d30f25218855690f45115831bcce5d90822c", size = 4337874, upload-time = "2026-06-12T20:02:54.323Z" }, + { url = "https://files.pythonhosted.org/packages/6d/88/05563c7fe2e914e87d1a536d06fe83e66b4e1d95cb593e05aea375531da8/cryptography-49.0.0-cp311-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:ccac2bfebc306b862133e3bb71f3f6ee8bb525240089b2d952e4144b3a6d5da7", size = 4700283, upload-time = "2026-06-12T20:01:34.822Z" }, + { url = "https://files.pythonhosted.org/packages/c4/b6/d7696e4e890d6ae1469935164c9e5215c557671cb78d6e3f458ccceaa632/cryptography-49.0.0-cp311-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:d0527ce944105f257f605a827d6ebead966c752038b6e8656abb9c5edee6fc68", size = 5265844, upload-time = "2026-06-12T20:01:24.09Z" }, + { url = "https://files.pythonhosted.org/packages/a9/3c/f3ad17eecc1a57b0ba236dc01f90e783c51f4a2f35f64777cc4f47a184b2/cryptography-49.0.0-cp311-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:cbc77da8c523d5abd028635ba850a6966fcee2c82e2bf65a41d1d8afe0f98be9", size = 4749290, upload-time = "2026-06-12T20:01:30.848Z" }, + { url = "https://files.pythonhosted.org/packages/4f/01/339573cf1023163a400b0b5d16f6d507de413b9f60be6fd1b77feeaf6737/cryptography-49.0.0-cp311-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:b87e65d263b3e5d3bb92a57e2a6638e2f31110fa7aa890c7b2dbba42248d0a3f", size = 4834612, upload-time = "2026-06-12T20:01:29.246Z" }, + { url = "https://files.pythonhosted.org/packages/71/fd/577302e213a1be9468f92d1afef66fcf1ef83d516819d9992ca547f592bd/cryptography-49.0.0-cp311-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:66ec79c3904820572d7e987abdf304281f141d37ad9a489b8e97066e7b9b6459", size = 4980804, upload-time = "2026-06-12T20:01:42.853Z" }, + { url = "https://files.pythonhosted.org/packages/1f/09/f42b1d190c5ba75f72062a387f8030d1d75f6ab035788f1d9c4b01de6525/cryptography-49.0.0-cp311-abi3-win_amd64.whl", hash = "sha256:e5dfc1e64de5677cec922ffa8da89c546d0415bf6efdf081842e5d44c84e1f0e", size = 3810026, upload-time = "2026-06-12T20:02:39.262Z" }, + { url = "https://files.pythonhosted.org/packages/ec/9e/db72b3ae7fc9cfad53e630e56c6ae83b9b6ff0bf3718ffb8012d20b3aabf/cryptography-49.0.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:73a205dce83953d131a4aa1e0fd917a2fd1c5b1eef251e9d7152efefcbf5caf7", size = 4013892, upload-time = "2026-06-12T20:02:10.735Z" }, + { url = "https://files.pythonhosted.org/packages/86/12/c48a424f38db03027be9f7ed5c7dc5de9933dbee992865f98b13727a009d/cryptography-49.0.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:196ecd6a36e4e9aa10270393bb98d8df88fccee0bf1e5128b91ae4eb4375896d", size = 4678835, upload-time = "2026-06-12T20:02:48.743Z" }, + { url = "https://files.pythonhosted.org/packages/68/28/8a3ad4653662c93fc44dc4e5d8fd374c25c42e07b34bbfbadf49cf57a5a8/cryptography-49.0.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:7abcee80084cda3f7691f3eb1ce480d8df49cec637b429aa35986c1de71738aa", size = 4697239, upload-time = "2026-06-12T20:02:56.03Z" }, + { url = "https://files.pythonhosted.org/packages/a8/b2/2193fc74f81aee4f9b62733133b73b5176718932ed8f2e4b03fa040480a6/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_aarch64.whl", hash = "sha256:4ae387c9cb68ea569ca17e490d66d8142b81c3cc814bf179974b7d146e490bbb", size = 4685593, upload-time = "2026-06-12T20:02:50.666Z" }, + { url = "https://files.pythonhosted.org/packages/47/f1/1d3eaa243bfc5de4a187b22aa8c048b3e4980bfbe830ac46e6bac2e66947/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_ppc64le.whl", hash = "sha256:f37d847238971164fdbc68ade6f6574aecc9c0af714190e2083429ff68f4ce9d", size = 5289961, upload-time = "2026-06-12T20:01:46.468Z" }, + { url = "https://files.pythonhosted.org/packages/58/39/2d51306721330c486495853eda1c567880ff036de15a14c4b74f399934af/cryptography-49.0.0-cp314-cp314t-manylinux_2_28_x86_64.whl", hash = "sha256:c2bc30226390d60ea19d9f82b19db005fe0452154a23c1c410c12ea801e43561", size = 4731145, upload-time = "2026-06-12T20:02:16.832Z" }, + { url = "https://files.pythonhosted.org/packages/17/50/983e838c7fd0d87fd8c969bcdd328edaf5f756e38df5281637424c155873/cryptography-49.0.0-cp314-cp314t-manylinux_2_31_armv7l.whl", hash = "sha256:07cab27cc7b7e0fd28e5e26bb9eeedde5c135c868b46de4a27845abe94af6122", size = 4321719, upload-time = "2026-06-12T20:02:52.611Z" }, + { url = "https://files.pythonhosted.org/packages/a7/f5/8f571d7e27c55bce9f76f026143bcb1e040a4233149ecca0bea5fa5dd5f7/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_aarch64.whl", hash = "sha256:b20133d204d2bb56ba047642199603876c872026ca53e79c35b83772ab2cc505", size = 4685209, upload-time = "2026-06-12T20:02:07.282Z" }, + { url = "https://files.pythonhosted.org/packages/e7/84/0e27016a6fc5a0886f797018b26aa42f40c09a82332bff77822a451deaaa/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_ppc64le.whl", hash = "sha256:b970c6da94d5bb18629db453d14f2a1300f6bf59b61e9b82377931ef95504866", size = 5246285, upload-time = "2026-06-12T20:01:32.439Z" }, + { url = "https://files.pythonhosted.org/packages/11/2d/5e1fb307cb5931881516b464c98774b3f2c36b5d4bb9a2830253cf553cad/cryptography-49.0.0-cp314-cp314t-manylinux_2_34_x86_64.whl", hash = "sha256:d8ecde755e2e91bf773fc94e8c9d730cd7f2007004cb492263a794ec3899a1c8", size = 4730441, upload-time = "2026-06-12T20:02:01.469Z" }, + { url = "https://files.pythonhosted.org/packages/e4/c0/bff5a02ee731d207d6a1ed51732549d8c53d2bc8da1d10ec6f2844201d68/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e3fb64c420688e5319ae25113a354015abbd8dffbfbc41781a1ea66fc7622ac3", size = 4815869, upload-time = "2026-06-12T20:01:36.574Z" }, + { url = "https://files.pythonhosted.org/packages/b9/26/814681d14248d95d73d5c3eea0c39a94eb8302df966f670a2c60de90974b/cryptography-49.0.0-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:32703d93296f5c1f4b53349ad3a250c2cae0fdecd3a3dd5d47e616d8d616af27", size = 4960948, upload-time = "2026-06-12T20:02:18.688Z" }, + { url = "https://files.pythonhosted.org/packages/4c/fe/93ecac273d3738939d023612ad12cca9a3740a5345d69fda04134c43fd96/cryptography-49.0.0-cp314-cp314t-win_amd64.whl", hash = "sha256:33cd0565932807baddb67b96dbee92f2c374b5c89dee09fd74079aeb8c8dba61", size = 3799153, upload-time = "2026-06-12T20:01:39.059Z" }, + { url = "https://files.pythonhosted.org/packages/19/2a/5bb823f5bedcf80718cea7fbc95ec5515cca3769633c4b01a32be7f30e7c/cryptography-49.0.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:ec5e529fb80935c94fe7b729f9972b50e351a0e6b50aa294fd5cabb109fcc29a", size = 4025947, upload-time = "2026-06-12T20:01:25.745Z" }, + { url = "https://files.pythonhosted.org/packages/3d/df/40577043ca124e17012f408ddddaeb213b856336ac82ddb3bc915f39e29f/cryptography-49.0.0-cp39-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl", hash = "sha256:f78ff2c9ed8dc2d036b0f4d640e22522213d047c1b14e61205a7e55c80a494d4", size = 4692429, upload-time = "2026-06-12T20:01:53.628Z" }, + { url = "https://files.pythonhosted.org/packages/2c/99/2d13299eb3dd27b02dcfaafcc91d6b5cb3329f7cbd6d8f51921acd566c1a/cryptography-49.0.0-cp39-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", hash = "sha256:35b151772baff2c74cba7fa290ceaff4c3b11c0c881eb93eb5dbc05a7cfbba18", size = 4700968, upload-time = "2026-06-12T20:02:45.383Z" }, + { url = "https://files.pythonhosted.org/packages/a5/4d/9c0cd02f95e2602dd5e563da149ee0830abef3537be8b34dc56281ebe27a/cryptography-49.0.0-cp39-abi3-manylinux_2_28_aarch64.whl", hash = "sha256:0f21641cf4b30fca7aee061ced0ec7ad7b073518088b7c9969a297c0ae796c69", size = 4697758, upload-time = "2026-06-12T20:01:41.13Z" }, + { url = "https://files.pythonhosted.org/packages/24/01/186c825898477d77e2324d5360fefe622ff1d8d1963ec0554e2cada8ec77/cryptography-49.0.0-cp39-abi3-manylinux_2_28_ppc64le.whl", hash = "sha256:9e82dcc8e56052715fb18b2429e3bca4823b1629136a2084fc45a9a5cecb9b64", size = 5298863, upload-time = "2026-06-12T20:02:24.579Z" }, + { url = "https://files.pythonhosted.org/packages/b8/7b/62cbbab75d0659865bf0273790031544a0b16c8072d258f9428dcd8190dc/cryptography-49.0.0-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6f2debedf9ca60cf1d5bd466475638af5130f89965605cd818484d19987d3a21", size = 4735983, upload-time = "2026-06-12T20:01:50.14Z" }, + { url = "https://files.pythonhosted.org/packages/6c/72/3e798c064bc39e471008075d0f9bc9daf77a80879c092e4a8e170c585ed4/cryptography-49.0.0-cp39-abi3-manylinux_2_31_armv7l.whl", hash = "sha256:8c25ceb16df5b9435f3f6a9829204985b0e0cbee3b48aacd432c7d2c850b44d9", size = 4334173, upload-time = "2026-06-12T20:01:44.743Z" }, + { url = "https://files.pythonhosted.org/packages/f0/ee/6fca21d1ac73e06f8bef71940abfd4d2f6472b4bca284d770f32bd4086f6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_aarch64.whl", hash = "sha256:28d8b15e6275f12c8a207dc309dfa957903c927d08d0cc937ee3f63f200693cc", size = 4697298, upload-time = "2026-06-12T20:02:20.918Z" }, + { url = "https://files.pythonhosted.org/packages/67/d0/a5fcd3515f0bae49a7b6d0413cc1bdccdcc1fc0047037a0d480642cdc5d6/cryptography-49.0.0-cp39-abi3-manylinux_2_34_ppc64le.whl", hash = "sha256:6fc361c34fb6aac015ce19435876635e5c6d21db31998b0920f675f131e043b8", size = 5254338, upload-time = "2026-06-12T20:02:22.737Z" }, + { url = "https://files.pythonhosted.org/packages/a0/84/84fe36f19caf857d61cb7fc9c63035a47ffabd84ea12d1d393148efa3615/cryptography-49.0.0-cp39-abi3-manylinux_2_34_x86_64.whl", hash = "sha256:2400ef9c9e2299a25614eb1dea3db54a69b1349efd043bfac9c67630d136df36", size = 4735650, upload-time = "2026-06-12T20:02:41.389Z" }, + { url = "https://files.pythonhosted.org/packages/6c/a0/db537264e234f7273a73ec020873d6d6b39dfd8a53db78b550ca8320440e/cryptography-49.0.0-cp39-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:67e1d20ad9ef3a563c59ef22e7a8a0b8210bd26604369ea4a30a7c66aefe504e", size = 4834820, upload-time = "2026-06-12T20:01:51.847Z" }, + { url = "https://files.pythonhosted.org/packages/93/77/8df9eb486495979bccecd1062e2eaf435250e84437040295b57d09048b0b/cryptography-49.0.0-cp39-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:42b0684e0e40cf26122427802486f6d93aea593612603a94fbf260c7eb1e9c1b", size = 4967968, upload-time = "2026-06-12T20:02:12.524Z" }, + { url = "https://files.pythonhosted.org/packages/c2/e6/f60198ea8d9dfa15fff9ed4ca02ce362f6eadd9ba757dcc50634c4257b63/cryptography-49.0.0-cp39-abi3-win_amd64.whl", hash = "sha256:026ac7423e6fa66872d3bf889be5974507da3944f866f704fa200eadacd00001", size = 3785547, upload-time = "2026-06-12T20:02:26.847Z" }, + { url = "https://files.pythonhosted.org/packages/63/d3/4a83af35d65e3fad632c926fad684c193ea4398569ccb0bbbc7fe8f5dc9a/cryptography-49.0.0-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:fc1e275c2f1d97b1a6450b8b0ea3ebfa6e087a611c2b26cb2404d48588abab7b", size = 3993685, upload-time = "2026-06-12T20:02:14.883Z" }, + { url = "https://files.pythonhosted.org/packages/d6/a7/f9dac0ab7f80368c56993a7bf638ef9935f825c91902798481fac0898138/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl", hash = "sha256:c83782480a4a9da4d0feb51950131ba32e12e70813848b3343f6e18c28a66838", size = 4676239, upload-time = "2026-06-12T20:02:28.793Z" }, + { url = "https://files.pythonhosted.org/packages/d7/70/2ba3769dd0ae167e2f33dfa9592d45db6ff9a61d62ca1a5b3d1bdd09068f/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl", hash = "sha256:b39efa323140595abd3ecca8529d321ae50f55f3aa3ba9cc81ea56a6011953d5", size = 4715584, upload-time = "2026-06-12T20:01:27.495Z" }, + { url = "https://files.pythonhosted.org/packages/94/64/2923570ac1c0bd3a737aa366ac3abbbbde273042308b8cde95e2364a6e6a/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_aarch64.whl", hash = "sha256:b47db11c2c3525083296069b98ac5221907455e989ae0c2e3008bde851921615", size = 4675885, upload-time = "2026-06-12T20:01:55.49Z" }, + { url = "https://files.pythonhosted.org/packages/ab/f8/614dc7e051418cfe53d55173c1e24c6b0085e89996fe90508c2fdf769aef/cryptography-49.0.0-pp311-pypy311_pp73-manylinux_2_34_x86_64.whl", hash = "sha256:084ef1af862eb07ec46d25f68689f2102a9fc0e05ce7b80f14f5fe51e4eef0f6", size = 4715449, upload-time = "2026-06-12T20:02:05.469Z" }, + { url = "https://files.pythonhosted.org/packages/aa/50/a9caea39ad19c431c1a3f8a31114df65b260cdfe67786b6c7e7c040c4c44/cryptography-49.0.0-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:be9fcb48a55f023493482827d4f459bd263cc20efde64f204b97c123201850c6", size = 3783731, upload-time = "2026-06-12T20:02:43.319Z" }, +] + +[[package]] +name = "jwt" +version = "1.4.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "cryptography" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/7f/20/21254c9e601e6c29445d1e8854c2a81bdb554e07a82fb1f9846137a6965c/jwt-1.4.0.tar.gz", hash = "sha256:f6f789128ac247142c79ee10f3dba6e366ec4e77c9920d18c1592e28aa0a7952", size = 24911, upload-time = "2025-06-23T13:28:38.289Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b9/80/34e3fae850adb0b7b8b9b1cf02b2d975fcb68e0e8eb7d56d6b4fc23f7433/jwt-1.4.0-py3-none-any.whl", hash = "sha256:7560a7f1de4f90de94ac645ee0303ac60c95b9e08e058fb69f6c330f71d71b11", size = 18248, upload-time = "2025-06-23T13:28:37.012Z" }, +] + +[[package]] +name = "jwt-regular-collision" +version = "0.0.0" +source = { virtual = "." } +dependencies = [ + { name = "jwt" }, + { name = "pyjwt" }, +] + +[package.metadata] +requires-dist = [ + { name = "jwt", specifier = "==1.4.0" }, + { name = "pyjwt", specifier = "==2.13.0" }, +] + +[[package]] +name = "pycparser" +version = "3.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/1b/7d/92392ff7815c21062bea51aa7b87d45576f649f16458d78b7cf94b9ab2e6/pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29", size = 103492, upload-time = "2026-01-21T14:26:51.89Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0c/c3/44f3fbbfa403ea2a7c779186dc20772604442dde72947e7d01069cbe98e3/pycparser-3.0-py3-none-any.whl", hash = "sha256:b727414169a36b7d524c1c3e31839a521725078d7b2ff038656844266160a992", size = 48172, upload-time = "2026-01-21T14:26:50.693Z" }, +] + +[[package]] +name = "pyjwt" +version = "2.13.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3b/81/58d0ac84e1ef3a3843791d6954d94c0b33d526c75eeb1efbce9d0a4c4077/pyjwt-2.13.0.tar.gz", hash = "sha256:41571c89ca91598c79e8ef18a2d07367d4810fbbd6f637794879baf1b7703423", size = 107515, upload-time = "2026-05-21T19:54:36.618Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/a3/5e/ecf12fdb62546d64385c158514e9b2b671f7832108ef2ecd2020ce0af2d1/pyjwt-2.13.0-py3-none-any.whl", hash = "sha256:66adcc2aff09b3f1bbd95fc1e1577df8ac8723c978552fd43304c8a290ac5728", size = 31274, upload-time = "2026-05-21T19:54:35.362Z" }, +] diff --git a/e2e/cases/multi-project-hub/BUILD.bazel b/e2e/cases/multi-project-hub/BUILD.bazel index 4f12be1a0..d2d6c5b00 100644 --- a/e2e/cases/multi-project-hub/BUILD.bazel +++ b/e2e/cases/multi-project-hub/BUILD.bazel @@ -50,3 +50,32 @@ py_test( "@pypi_multi//cowsay", ], ) + +# Project-qualified labels: each project exposes its packages under +# @hub//project/:, scoping the select to that project only. +py_test( + name = "alpha_qualified", + srcs = ["__test__.py"], + dep_group = "dev", + main = "__test__.py", + python_version = "3.11", + deps = ["@pypi_multi//project/alpha:cowsay"], +) + +py_test( + name = "beta_qualified", + srcs = ["__test__.py"], + dep_group = "beta", + main = "__test__.py", + python_version = "3.11", + deps = ["@pypi_multi//project/beta:cowsay"], +) + +py_test( + name = "gamma_qualified", + srcs = ["__test__.py"], + dep_group = "gamma", + main = "__test__.py", + python_version = "3.11", + deps = ["@pypi_multi//project/gamma:cowsay"], +) diff --git a/e2e/cases/oci/py_image_layer/BUILD.bazel b/e2e/cases/oci/py_image_layer/BUILD.bazel index 3663db26f..5e555526e 100644 --- a/e2e/cases/oci/py_image_layer/BUILD.bazel +++ b/e2e/cases/oci/py_image_layer/BUILD.bazel @@ -1,5 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_binary", "py_image_layer", "py_layer_tier", "py_test") load("@bazel_lib//lib:transitions.bzl", "platform_transition_filegroup") +load("@bazel_skylib//rules:build_test.bzl", "build_test") load("@container_structure_test//:defs.bzl", "container_structure_test") load("@rules_oci//oci:defs.bzl", "oci_image", "oci_load") load("//tools:asserts.bzl", "assert_tar_listing") @@ -226,6 +227,18 @@ container_structure_test( ], ) +# `platform` must resolve relative to the calling repo, not aspect_rules_py. +py_image_layer( + name = "server_platform_layers", + binary = ":server", + platform = "//oci/py_image_layer:x86_64_linux", +) + +build_test( + name = "server_platform_layers_test", + targets = [":server_platform_layers"], +) + # Regression test for https://github.com/aspect-build/rules_py/issues/1120 # When the binary name matches the source file name (e.g. "server" / "server.py"), # py_image_layer used to incorrectly rename the source file. diff --git a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml index 02068d75b..665a49d95 100644 --- a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml +++ b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_fp_listing.yaml @@ -6,40 +6,6 @@ files: --- layer: 1 files: - - -rwxr-xr-x 0 0 0 266 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/__init__.py - - -rwxr-xr-x 0 0 0 2522 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/ansi.py - - -rwxr-xr-x 0 0 0 11128 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/ansitowin32.py - - -rwxr-xr-x 0 0 0 3325 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/initialise.py - - -rwxr-xr-x 0 0 0 75 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/__init__.py - - -rwxr-xr-x 0 0 0 2839 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/ansi_test.py - - -rwxr-xr-x 0 0 0 10678 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/ansitowin32_test.py - - -rwxr-xr-x 0 0 0 6741 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/initialise_test.py - - -rwxr-xr-x 0 0 0 1866 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/isatty_test.py - - -rwxr-xr-x 0 0 0 1079 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/utils.py - - -rwxr-xr-x 0 0 0 3709 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/winterm_test.py - - -rwxr-xr-x 0 0 0 6181 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/win32.py - - -rwxr-xr-x 0 0 0 7134 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/winterm.py ---- -layer: 2 -files: - - -rwxr-xr-x 0 0 0 17158 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info/METADATA - - -rwxr-xr-x 0 0 0 1491 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt ---- -layer: 3 -files: - - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app - - -rwxr-xr-x 0 0 0 2484 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/activate - - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 - - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3 -> python - - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3.11 -> python - - -rwxr-xr-x 0 0 0 295 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_my_app_bin.venv.pth - - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.pth - - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py - - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama - - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info - - -rwxr-xr-x 0 0 0 153 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/pyvenv.cfg - - -rwxr-xr-x 0 0 0 276 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/__main__.py - - -rwxr-xr-x 0 0 0 6570 Jan 1 2023 ./app.runfiles/_main/tools/verify_venv/verify_venv.py - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/2to3 -> 2to3-3.11 - -rwxr-xr-x 0 0 0 158 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/2to3-3.11 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/idle3 -> idle3.11 @@ -247,6 +213,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 306344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.11.so -> libpython3.11.so.1.0 @@ -2355,5 +2323,42 @@ files: - -rwxr-xr-x 0 0 0 25855 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/tk9.0/xmfbox.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/share/man/man1/python3.1 -> python3.11.1 - -rwxr-xr-x 0 0 0 20280 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/share/man/man1/python3.11.1 +--- +layer: 2 +files: + - -rwxr-xr-x 0 0 0 266 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/__init__.py + - -rwxr-xr-x 0 0 0 2522 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/ansi.py + - -rwxr-xr-x 0 0 0 11128 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/ansitowin32.py + - -rwxr-xr-x 0 0 0 3325 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/initialise.py + - -rwxr-xr-x 0 0 0 75 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/__init__.py + - -rwxr-xr-x 0 0 0 2839 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/ansi_test.py + - -rwxr-xr-x 0 0 0 10678 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/ansitowin32_test.py + - -rwxr-xr-x 0 0 0 6741 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/initialise_test.py + - -rwxr-xr-x 0 0 0 1866 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/isatty_test.py + - -rwxr-xr-x 0 0 0 1079 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/utils.py + - -rwxr-xr-x 0 0 0 3709 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/tests/winterm_test.py + - -rwxr-xr-x 0 0 0 6181 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/win32.py + - -rwxr-xr-x 0 0 0 7134 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama/winterm.py +--- +layer: 3 +files: + - -rwxr-xr-x 0 0 0 17158 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info/METADATA + - -rwxr-xr-x 0 0 0 1491 Jan 1 2023 ./app.runfiles/aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info/licenses/LICENSE.txt +--- +layer: 4 +files: + - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app + - -rwxr-xr-x 0 0 0 2102 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/activate + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3 -> python + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3.11 -> python + - -rwxr-xr-x 0 0 0 295 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_my_app_bin.venv.pth + - -rwxr-xr-x 0 0 0 19 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.pth + - -rwxr-xr-x 0 0 0 4745 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/_virtualenv.py + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama + - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/lib/python3.11/site-packages/colorama-0.4.6.dist-info -> ../../../../../../../aspect_rules_py++uv+whl_install__images__colorama__0_4_6/actual_install.install/lib/python3.11/site-packages/colorama-0.4.6.dist-info + - -rwxr-xr-x 0 0 0 153 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/pyvenv.cfg + - -rwxr-xr-x 0 0 0 276 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/__main__.py + - -rwxr-xr-x 0 0 0 6570 Jan 1 2023 ./app.runfiles/_main/tools/verify_venv/verify_venv.py - -rwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py+/py/tests/internal-deps/adder/__init__.py - -rwxr-xr-x 0 0 0 32 Jan 1 2023 ./app.runfiles/aspect_rules_py+/py/tests/internal-deps/adder/add.py diff --git a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml index 96143d699..b14e2728e 100644 --- a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml +++ b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_listing.yaml @@ -20,7 +20,7 @@ files: layer: 1 files: - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app - - -rwxr-xr-x 0 0 0 2484 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/activate + - -rwxr-xr-x 0 0 0 2102 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/activate - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_bin.venv/bin/python3.11 -> python @@ -241,6 +241,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 306344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.11.so -> libpython3.11.so.1.0 diff --git a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml index 056af9340..d62e25db5 100644 --- a/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml +++ b/e2e/cases/oci/py_image_layer/snapshots/my_app_layers_multi_listing.yaml @@ -27,7 +27,7 @@ files: layer: 1 files: - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app - - -rwxr-xr-x 0 0 0 2496 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/bin/activate + - -rwxr-xr-x 0 0 0 2114 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/bin/activate - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/._my_app_multi_bin.venv/bin/python3.11 -> python @@ -247,6 +247,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 306344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.11.so -> libpython3.11.so.1.0 diff --git a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml index 444e94957..409a1ac52 100644 --- a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml +++ b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_amd64_layers_listing.yaml @@ -22,7 +22,7 @@ files: - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app - -rwxr-xr-x 0 0 0 42 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/branding/__init__.py - -rwxr-xr-x 0 0 0 31 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/branding/palette.txt - - -rwxr-xr-x 0 0 0 2487 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/activate + - -rwxr-xr-x 0 0 0 2105 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/activate - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/bin/python3 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3.11 -> python @@ -242,6 +242,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 306344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_x86_64_unknown_linux_gnu/lib/libpython3.11.so -> libpython3.11.so.1.0 diff --git a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml index 4108fa145..4ab8f609a 100644 --- a/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml +++ b/e2e/cases/oci/py_venv_image_layer/snapshots/my_app_arm64_layers_listing.yaml @@ -22,7 +22,7 @@ files: - -rwxr-xr-x 0 0 0 16560 Jan 1 2023 ./app - -rwxr-xr-x 0 0 0 42 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/branding/__init__.py - -rwxr-xr-x 0 0 0 31 Jan 1 2023 ./app.runfiles/_main/oci/py_image_layer/branding/palette.txt - - -rwxr-xr-x 0 0 0 2487 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/activate + - -rwxr-xr-x 0 0 0 2105 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/activate - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/bin/python3 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/oci/py_venv_image_layer/.my_app_bin.venv/bin/python3.11 -> python @@ -242,6 +242,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2540 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2540 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 358640 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_11_aarch64_unknown_linux_gnu/lib/libpython3.11.so -> libpython3.11.so.1.0 diff --git a/e2e/cases/pytest-main-867/BUILD.bazel b/e2e/cases/pytest-main-867/BUILD.bazel index b4ead1245..5ee0f1cd2 100644 --- a/e2e/cases/pytest-main-867/BUILD.bazel +++ b/e2e/cases/pytest-main-867/BUILD.bazel @@ -44,6 +44,28 @@ py_test( deps = ["@pypi_pytest_main_867//pytest"], ) +# Regression test: py_pytest_main output must expose an importable main() +# (#1094) so a custom test main can wrap it with setup/teardown logic. +py_pytest_main( + name = "wrap_main", + tags = ["manual"], +) + +py_test( + name = "test_wrapped_main", + srcs = [ + "test_wrapped.py", + "wrapped_main.py", + ], + dep_group = "pytest-main-867", + imports = ["."], + main = "wrapped_main.py", + deps = [ + ":wrap_main", + "@pypi_pytest_main_867//pytest", + ], +) + # Regression test for #723 via direct py_pytest_main() with test_* name # (cross-repo). Validates that the dunder-wrapped output (__test____.py) # is not discovered by pytest even in cross-repo usage. diff --git a/e2e/cases/pytest-main-867/test_wrapped.py b/e2e/cases/pytest-main-867/test_wrapped.py new file mode 100644 index 000000000..459d87d32 --- /dev/null +++ b/e2e/cases/pytest-main-867/test_wrapped.py @@ -0,0 +1,5 @@ +import os + + +def test_wrapper_setup_ran(): + assert os.environ.get("WRAPPED_SETUP_RAN") == "1" diff --git a/e2e/cases/pytest-main-867/wrapped_main.py b/e2e/cases/pytest-main-867/wrapped_main.py new file mode 100644 index 000000000..7e418c9fb --- /dev/null +++ b/e2e/cases/pytest-main-867/wrapped_main.py @@ -0,0 +1,15 @@ +"""Custom test main that wraps the py_pytest_main-generated main(). + +Reproduces the #1094 use case (setup/teardown around pytest) through the +py_pytest_main macro flow: the generated module must expose an importable +main() rather than running everything under `if __name__ == "__main__"`. +""" + +import os +import sys + +from __test__wrap_main__ import main + +if __name__ == "__main__": + os.environ["WRAPPED_SETUP_RAN"] = "1" + sys.exit(main()) diff --git a/e2e/cases/single-project-hub/BUILD.bazel b/e2e/cases/single-project-hub/BUILD.bazel index 5f4aae862..aed75aad9 100644 --- a/e2e/cases/single-project-hub/BUILD.bazel +++ b/e2e/cases/single-project-hub/BUILD.bazel @@ -14,3 +14,15 @@ py_test( "@pypi_single//cowsay", ], ) + +# Verifies @hub//project/: resolves correctly. +py_test( + name = "single_project_hub_qualified_label", + srcs = ["__test__.py"], + dep_group = "single_project_hub", + main = "__test__.py", + python_version = "3.11", + deps = [ + "@pypi_single//project/single_project_hub:cowsay", + ], +) diff --git a/e2e/cases/snapshots/abi3_compat.whl_install.cffi.BUILD.bazel b/e2e/cases/snapshots/abi3_compat.whl_install.cffi.BUILD.bazel index 78ef5782d..6c7085e87 100644 --- a/e2e/cases/snapshots/abi3_compat.whl_install.cffi.BUILD.bazel +++ b/e2e/cases/snapshots/abi3_compat.whl_install.cffi.BUILD.bazel @@ -1,7 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") load("@aspect_rules_py//uv/private/whl_install:defs.bzl", "select_chain") load("@aspect_rules_py//uv/private/whl_install:rule.bzl", "source_built_wheel", "whl_install") -load("@bazel_skylib//lib:selects.bzl", "selects") source_built_wheel( name = "source_built_wheel", @@ -14,19 +13,19 @@ source_built_wheel( select_chain( name = "whl", arms = { - "@aspect_rules_py_pip_configurations//:cp312-macosx_11_0_arm64-cp312": "@whl__cffi__8eca2a813c1cb7ad//file", - "@aspect_rules_py_pip_configurations//:cp312-macosx_10_13_x86_64-cp312": "@whl__cffi__6d02d6655b0e54f5//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_i686-cp312": "@whl__cffi__21d1152871b01940//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_aarch64-cp312": "@whl__cffi__b21e08af67b8a103//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_ppc64le-cp312": "@whl__cffi__1e3a615586f05fc4//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_s390x-cp312": "@whl__cffi__81afed14892743bb//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_x86_64-cp312": "@whl__cffi__3e17ed538242334b//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_5_i686-cp312": "@whl__cffi__21d1152871b01940//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_aarch64-cp312": "@whl__cffi__3925dd22fa2b7699//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_x86_64-cp312": "@whl__cffi__2c8f814d84194c9e//file", - "@aspect_rules_py_pip_configurations//:cp312-win32-cp312": "@whl__cffi__da902562c3e9c550//file", - "@aspect_rules_py_pip_configurations//:cp312-win_amd64-cp312": "@whl__cffi__da68248800ad6320//file", - "@aspect_rules_py_pip_configurations//:cp312-win_arm64-cp312": "@whl__cffi__4671d9dd5ec934cb//file" + "@aspect_rules_py_pip_configurations//:cp312-macosx_11_0_arm64-cp312": "@whl__cffi__8eca2a813c1cb7ad//file", + "@aspect_rules_py_pip_configurations//:cp312-macosx_10_13_x86_64-cp312": "@whl__cffi__6d02d6655b0e54f5//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_i686-cp312": "@whl__cffi__21d1152871b01940//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_aarch64-cp312": "@whl__cffi__b21e08af67b8a103//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_ppc64le-cp312": "@whl__cffi__1e3a615586f05fc4//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_s390x-cp312": "@whl__cffi__81afed14892743bb//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_x86_64-cp312": "@whl__cffi__3e17ed538242334b//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_5_i686-cp312": "@whl__cffi__21d1152871b01940//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_aarch64-cp312": "@whl__cffi__3925dd22fa2b7699//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_x86_64-cp312": "@whl__cffi__2c8f814d84194c9e//file", + "@aspect_rules_py_pip_configurations//:cp312-win32-cp312": "@whl__cffi__da902562c3e9c550//file", + "@aspect_rules_py_pip_configurations//:cp312-win_amd64-cp312": "@whl__cffi__da68248800ad6320//file", + "@aspect_rules_py_pip_configurations//:cp312-win_arm64-cp312": "@whl__cffi__4671d9dd5ec934cb//file", }, default_target = ":source_built_wheel", visibility = ["//visibility:public"], @@ -117,6 +116,44 @@ whl_install( }, namespace_top_levels = {}, console_scripts = {}, + top_level_dirs = { + "cffi-2.0.0-cp312-cp312-macosx_10_13_x86_64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-macosx_11_0_arm64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-musllinux_1_2_aarch64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-musllinux_1_2_x86_64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-win32.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-win_amd64.whl": [ + "cffi", + ], + "cffi-2.0.0-cp312-cp312-win_arm64.whl": [ + "cffi", + ], + }, visibility = ["//visibility:private"], ) diff --git a/e2e/cases/snapshots/abi3_compat.whl_install.cryptography.BUILD.bazel b/e2e/cases/snapshots/abi3_compat.whl_install.cryptography.BUILD.bazel index 44877ec8b..31ac90b1b 100644 --- a/e2e/cases/snapshots/abi3_compat.whl_install.cryptography.BUILD.bazel +++ b/e2e/cases/snapshots/abi3_compat.whl_install.cryptography.BUILD.bazel @@ -1,7 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") load("@aspect_rules_py//uv/private/whl_install:defs.bzl", "select_chain") load("@aspect_rules_py//uv/private/whl_install:rule.bzl", "source_built_wheel", "whl_install") -load("@bazel_skylib//lib:selects.bzl", "selects") source_built_wheel( name = "source_built_wheel", @@ -14,188 +13,188 @@ source_built_wheel( select_chain( name = "whl", arms = { - "@aspect_rules_py_pip_configurations//:cp320-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp320-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp320-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp320-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp320-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp319-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp319-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp319-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp319-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp319-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp318-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp318-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp318-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp318-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp318-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp317-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp317-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp317-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp317-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp317-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp316-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp316-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp316-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp316-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp316-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp315-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp315-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp315-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp315-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp315-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp314-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp314-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp314-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp313-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp313-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp313-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp312-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp312-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp312-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp311-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", - "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", - "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", - "@aspect_rules_py_pip_configurations//:cp311-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", - "@aspect_rules_py_pip_configurations//:cp311-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", - "@aspect_rules_py_pip_configurations//:cp310-macosx_10_9_universal2-abi3": "@whl__cryptography__4108d4c09fbbf278//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_34_aarch64-abi3": "@whl__cryptography__582f5fcd2afa3162//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__bfd56bb4b37ed4f3//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_34_x86_64-abi3": "@whl__cryptography__a3d507bb6a513ca9//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_31_armv7l-abi3": "@whl__cryptography__420d0e909050490d//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_28_aarch64-abi3": "@whl__cryptography__ba2a27ff02f48193//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__61aa400dce22cb00//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ce58ba46e1bc2aa//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_17_aarch64-abi3": "@whl__cryptography__7d1f30a86d275719//file", - "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_17_x86_64-abi3": "@whl__cryptography__039917b0dc418bb9//file", - "@aspect_rules_py_pip_configurations//:cp310-musllinux_1_2_aarch64-abi3": "@whl__cryptography__9f16fbdf4da055ef//file", - "@aspect_rules_py_pip_configurations//:cp310-musllinux_1_2_x86_64-abi3": "@whl__cryptography__ced80795227d7054//file", - "@aspect_rules_py_pip_configurations//:cp310-win32-abi3": "@whl__cryptography__02f547fce831f509//file", - "@aspect_rules_py_pip_configurations//:cp310-win_amd64-abi3": "@whl__cryptography__556e106ee01aa134//file", - "@aspect_rules_py_pip_configurations//:cp39-macosx_10_9_universal2-abi3": "@whl__cryptography__4108d4c09fbbf278//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_34_aarch64-abi3": "@whl__cryptography__582f5fcd2afa3162//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__bfd56bb4b37ed4f3//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_34_x86_64-abi3": "@whl__cryptography__a3d507bb6a513ca9//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_31_armv7l-abi3": "@whl__cryptography__420d0e909050490d//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_28_aarch64-abi3": "@whl__cryptography__ba2a27ff02f48193//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__61aa400dce22cb00//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ce58ba46e1bc2aa//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_17_aarch64-abi3": "@whl__cryptography__7d1f30a86d275719//file", - "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_17_x86_64-abi3": "@whl__cryptography__039917b0dc418bb9//file", - "@aspect_rules_py_pip_configurations//:cp39-musllinux_1_2_aarch64-abi3": "@whl__cryptography__9f16fbdf4da055ef//file", - "@aspect_rules_py_pip_configurations//:cp39-musllinux_1_2_x86_64-abi3": "@whl__cryptography__ced80795227d7054//file", - "@aspect_rules_py_pip_configurations//:cp39-win32-abi3": "@whl__cryptography__02f547fce831f509//file", - "@aspect_rules_py_pip_configurations//:cp39-win_amd64-abi3": "@whl__cryptography__556e106ee01aa134//file", - "@aspect_rules_py_pip_configurations//:cp38-macosx_10_9_universal2-abi3": "@whl__cryptography__4108d4c09fbbf278//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_34_aarch64-abi3": "@whl__cryptography__582f5fcd2afa3162//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__bfd56bb4b37ed4f3//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_34_x86_64-abi3": "@whl__cryptography__a3d507bb6a513ca9//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_31_armv7l-abi3": "@whl__cryptography__420d0e909050490d//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_28_aarch64-abi3": "@whl__cryptography__ba2a27ff02f48193//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__61aa400dce22cb00//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ce58ba46e1bc2aa//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_17_aarch64-abi3": "@whl__cryptography__7d1f30a86d275719//file", - "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_17_x86_64-abi3": "@whl__cryptography__039917b0dc418bb9//file", - "@aspect_rules_py_pip_configurations//:cp38-musllinux_1_2_aarch64-abi3": "@whl__cryptography__9f16fbdf4da055ef//file", - "@aspect_rules_py_pip_configurations//:cp38-musllinux_1_2_x86_64-abi3": "@whl__cryptography__ced80795227d7054//file", - "@aspect_rules_py_pip_configurations//:cp38-win32-abi3": "@whl__cryptography__02f547fce831f509//file", - "@aspect_rules_py_pip_configurations//:cp38-win_amd64-abi3": "@whl__cryptography__556e106ee01aa134//file" + "@aspect_rules_py_pip_configurations//:cp320-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp320-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp320-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp320-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp320-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp320-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp319-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp319-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp319-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp319-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp319-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp319-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp318-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp318-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp318-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp318-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp318-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp318-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp317-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp317-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp317-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp317-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp317-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp317-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp316-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp316-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp316-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp316-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp316-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp316-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp315-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp315-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp315-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp315-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp315-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp315-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp314-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp314-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp314-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp313-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp313-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp313-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp312-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp312-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp312-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp311-macosx_10_9_universal2-abi3": "@whl__cryptography__351695ada9ea9618//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_34_aarch64-abi3": "@whl__cryptography__e9251e3be159d102//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__47fb8a66058b80e5//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_34_x86_64-abi3": "@whl__cryptography__4c3341037c136030//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_31_armv7l-abi3": "@whl__cryptography__f145bba11b878005//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_28_aarch64-abi3": "@whl__cryptography__50bfb6925eff619c//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__803812e111e75d1a//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ee190460e2fbe44//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_aarch64-abi3": "@whl__cryptography__c18ff11e86df2e28//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_x86_64-abi3": "@whl__cryptography__4d7e3d356b8cd4ea//file", + "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_aarch64-abi3": "@whl__cryptography__890bcb4abd5a2d3f//file", + "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_x86_64-abi3": "@whl__cryptography__80a8d7bfdf38f87c//file", + "@aspect_rules_py_pip_configurations//:cp311-win32-abi3": "@whl__cryptography__60ee7e19e95104d4//file", + "@aspect_rules_py_pip_configurations//:cp311-win_amd64-abi3": "@whl__cryptography__38946c54b16c885c//file", + "@aspect_rules_py_pip_configurations//:cp310-macosx_10_9_universal2-abi3": "@whl__cryptography__4108d4c09fbbf278//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_34_aarch64-abi3": "@whl__cryptography__582f5fcd2afa3162//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__bfd56bb4b37ed4f3//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_34_x86_64-abi3": "@whl__cryptography__a3d507bb6a513ca9//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_31_armv7l-abi3": "@whl__cryptography__420d0e909050490d//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_28_aarch64-abi3": "@whl__cryptography__ba2a27ff02f48193//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__61aa400dce22cb00//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ce58ba46e1bc2aa//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_17_aarch64-abi3": "@whl__cryptography__7d1f30a86d275719//file", + "@aspect_rules_py_pip_configurations//:cp310-manylinux_2_17_x86_64-abi3": "@whl__cryptography__039917b0dc418bb9//file", + "@aspect_rules_py_pip_configurations//:cp310-musllinux_1_2_aarch64-abi3": "@whl__cryptography__9f16fbdf4da055ef//file", + "@aspect_rules_py_pip_configurations//:cp310-musllinux_1_2_x86_64-abi3": "@whl__cryptography__ced80795227d7054//file", + "@aspect_rules_py_pip_configurations//:cp310-win32-abi3": "@whl__cryptography__02f547fce831f509//file", + "@aspect_rules_py_pip_configurations//:cp310-win_amd64-abi3": "@whl__cryptography__556e106ee01aa134//file", + "@aspect_rules_py_pip_configurations//:cp39-macosx_10_9_universal2-abi3": "@whl__cryptography__4108d4c09fbbf278//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_34_aarch64-abi3": "@whl__cryptography__582f5fcd2afa3162//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__bfd56bb4b37ed4f3//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_34_x86_64-abi3": "@whl__cryptography__a3d507bb6a513ca9//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_31_armv7l-abi3": "@whl__cryptography__420d0e909050490d//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_28_aarch64-abi3": "@whl__cryptography__ba2a27ff02f48193//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__61aa400dce22cb00//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ce58ba46e1bc2aa//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_17_aarch64-abi3": "@whl__cryptography__7d1f30a86d275719//file", + "@aspect_rules_py_pip_configurations//:cp39-manylinux_2_17_x86_64-abi3": "@whl__cryptography__039917b0dc418bb9//file", + "@aspect_rules_py_pip_configurations//:cp39-musllinux_1_2_aarch64-abi3": "@whl__cryptography__9f16fbdf4da055ef//file", + "@aspect_rules_py_pip_configurations//:cp39-musllinux_1_2_x86_64-abi3": "@whl__cryptography__ced80795227d7054//file", + "@aspect_rules_py_pip_configurations//:cp39-win32-abi3": "@whl__cryptography__02f547fce831f509//file", + "@aspect_rules_py_pip_configurations//:cp39-win_amd64-abi3": "@whl__cryptography__556e106ee01aa134//file", + "@aspect_rules_py_pip_configurations//:cp38-macosx_10_9_universal2-abi3": "@whl__cryptography__4108d4c09fbbf278//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_34_aarch64-abi3": "@whl__cryptography__582f5fcd2afa3162//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_34_ppc64le-abi3": "@whl__cryptography__bfd56bb4b37ed4f3//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_34_x86_64-abi3": "@whl__cryptography__a3d507bb6a513ca9//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_31_armv7l-abi3": "@whl__cryptography__420d0e909050490d//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_28_aarch64-abi3": "@whl__cryptography__ba2a27ff02f48193//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_28_ppc64le-abi3": "@whl__cryptography__61aa400dce22cb00//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_28_x86_64-abi3": "@whl__cryptography__3ce58ba46e1bc2aa//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_17_aarch64-abi3": "@whl__cryptography__7d1f30a86d275719//file", + "@aspect_rules_py_pip_configurations//:cp38-manylinux_2_17_x86_64-abi3": "@whl__cryptography__039917b0dc418bb9//file", + "@aspect_rules_py_pip_configurations//:cp38-musllinux_1_2_aarch64-abi3": "@whl__cryptography__9f16fbdf4da055ef//file", + "@aspect_rules_py_pip_configurations//:cp38-musllinux_1_2_x86_64-abi3": "@whl__cryptography__ced80795227d7054//file", + "@aspect_rules_py_pip_configurations//:cp38-win32-abi3": "@whl__cryptography__02f547fce831f509//file", + "@aspect_rules_py_pip_configurations//:cp38-win_amd64-abi3": "@whl__cryptography__556e106ee01aa134//file", }, default_target = ":source_built_wheel", visibility = ["//visibility:public"], @@ -355,6 +354,96 @@ whl_install( ], }, console_scripts = {}, + top_level_dirs = { + "cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp311-abi3-win32.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-win_amd64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp38-abi3-win32.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-win_amd64.whl": [ + "cryptography", + ], + }, namespace_entries = { "cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl": [ "cryptography.libs/libgcc_s-2d945d6c.so.1", @@ -369,6 +458,96 @@ whl_install( "cryptography.libs/libgcc_s-0cd532bd.so.1", ], }, + native_roots = { + "cryptography-46.0.5-cp311-abi3-macosx_10_9_universal2.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_28_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_28_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_28_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_31_armv7l.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_34_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_34_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-manylinux_2_34_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-musllinux_1_2_aarch64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp311-abi3-musllinux_1_2_x86_64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp311-abi3-win32.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp311-abi3-win_amd64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-macosx_10_9_universal2.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_28_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_28_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_28_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_31_armv7l.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_34_aarch64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_34_ppc64le.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-manylinux_2_34_x86_64.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-musllinux_1_2_aarch64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp38-abi3-musllinux_1_2_x86_64.whl": [ + "cryptography", + "cryptography.libs", + ], + "cryptography-46.0.5-cp38-abi3-win32.whl": [ + "cryptography", + ], + "cryptography-46.0.5-cp38-abi3-win_amd64.whl": [ + "cryptography", + ], + }, visibility = ["//visibility:private"], ) diff --git a/e2e/cases/snapshots/project_single.BUILD.bazel b/e2e/cases/snapshots/project_single.BUILD.bazel index 3459192c6..11699bd7c 100644 --- a/e2e/cases/snapshots/project_single.BUILD.bazel +++ b/e2e/cases/snapshots/project_single.BUILD.bazel @@ -1,5 +1,3 @@ -load("@aspect_rules_py//py:defs.bzl", "py_library") - # Fallback for `:{package}_whl` aliases on workspace / editable packages # (which have no underlying whl_install repo to point at). filegroup( @@ -13,7 +11,7 @@ filegroup( # cowsay # { # "single_project_hub": { -# "aee49c8f5bedac06": { +# "cowsay__6_1": { # "": 1, # }, # }, @@ -23,7 +21,7 @@ filegroup( alias( name = "_package_cowsay_single_project_hub", actual = select({ - "//conditions:default": "//private/sccs:aee49c8f5bedac06", + "//conditions:default": "//private/sccs:cowsay__6_1", }), visibility = ["//visibility:private"], ) @@ -59,7 +57,7 @@ alias( # single_project_hub # { # "single_project_hub": { -# "b3c9a68bcea9c616": { +# "single_project_hub__0_0_0": { # "": 1, # }, # }, @@ -69,7 +67,7 @@ alias( alias( name = "_package_single_project_hub_single_project_hub", actual = select({ - "//conditions:default": "//private/sccs:b3c9a68bcea9c616", + "//conditions:default": "//private/sccs:single_project_hub__0_0_0", }), visibility = ["//visibility:private"], ) diff --git a/e2e/cases/snapshots/project_single.private.sccs.BUILD.bazel b/e2e/cases/snapshots/project_single.private.sccs.BUILD.bazel index 976b62dd9..e0b2a522d 100644 --- a/e2e/cases/snapshots/project_single.private.sccs.BUILD.bazel +++ b/e2e/cases/snapshots/project_single.private.sccs.BUILD.bazel @@ -9,7 +9,7 @@ py_library( ) -# scc: aee49c8f5bedac06 +# scc: cowsay__6_1 # members: # { # "@whl_install__single_project_hub__cowsay__6_1//:install": { @@ -21,7 +21,7 @@ py_library( py_library( - name = "aee49c8f5bedac06", + name = "cowsay__6_1", deps = [ "@whl_install__single_project_hub__cowsay__6_1//:install", ], @@ -29,7 +29,7 @@ py_library( ) -# scc: b3c9a68bcea9c616 +# scc: single_project_hub__0_0_0 # members: # {} # deps: @@ -41,7 +41,7 @@ py_library( py_library( - name = "b3c9a68bcea9c616", + name = "single_project_hub__0_0_0", deps = [ "//:cowsay", ], diff --git a/e2e/cases/snapshots/pypi_multi.cowsay.BUILD.bazel b/e2e/cases/snapshots/pypi_multi.cowsay.BUILD.bazel index e6173f6cd..c749bc35e 100644 --- a/e2e/cases/snapshots/pypi_multi.cowsay.BUILD.bazel +++ b/e2e/cases/snapshots/pypi_multi.cowsay.BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_rules_py//py:defs.bzl", "py_library") load("//:defs.bzl", "compatible_with") diff --git a/e2e/cases/snapshots/pypi_single.cowsay.BUILD.bazel b/e2e/cases/snapshots/pypi_single.cowsay.BUILD.bazel index b0eaf7f81..39e51943f 100644 --- a/e2e/cases/snapshots/pypi_single.cowsay.BUILD.bazel +++ b/e2e/cases/snapshots/pypi_single.cowsay.BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_rules_py//py:defs.bzl", "py_library") load("//:defs.bzl", "compatible_with") diff --git a/e2e/cases/snapshots/sdist_build.uv_sdist_native_build.python_geohash.BUILD.bazel b/e2e/cases/snapshots/sdist_build.uv_sdist_native_build.python_geohash.BUILD.bazel index f0ba6b692..0dcfc5651 100644 --- a/e2e/cases/snapshots/sdist_build.uv_sdist_native_build.python_geohash.BUILD.bazel +++ b/e2e/cases/snapshots/sdist_build.uv_sdist_native_build.python_geohash.BUILD.bazel @@ -15,6 +15,8 @@ pep517_native_whl( tool = ":build_tool", version = "0.8.5", resource_set = "mem_4g", + pre_build_patches = ["@@//uv-sdist-native-build:require_cxx_driver.patch"], + pre_build_patch_strip = 1, toolchains = [ "@bazel_tools//tools/cpp:current_cc_toolchain", ], diff --git a/e2e/cases/snapshots/whl_install.azure_overlap.azure_core.BUILD.bazel b/e2e/cases/snapshots/whl_install.azure_overlap.azure_core.BUILD.bazel index 719ab2e1b..8fb24bf7b 100644 --- a/e2e/cases/snapshots/whl_install.azure_overlap.azure_core.BUILD.bazel +++ b/e2e/cases/snapshots/whl_install.azure_overlap.azure_core.BUILD.bazel @@ -1,7 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") load("@aspect_rules_py//uv/private/whl_install:defs.bzl", "select_chain") load("@aspect_rules_py//uv/private/whl_install:rule.bzl", "source_built_wheel", "whl_install") -load("@bazel_skylib//lib:selects.bzl", "selects") source_built_wheel( name = "source_built_wheel", @@ -14,7 +13,7 @@ source_built_wheel( select_chain( name = "whl", arms = { - "@aspect_rules_py_pip_configurations//:py3-any-none": "@whl__azure_core__ab0c9b2cd71fecb1//file" + "@aspect_rules_py_pip_configurations//:py3-any-none": "@whl__azure_core__ab0c9b2cd71fecb1//file", }, default_target = ":source_built_wheel", visibility = ["//visibility:public"], @@ -53,6 +52,11 @@ whl_install( ], }, console_scripts = {}, + top_level_dirs = { + "azure_core-1.38.0-py3-none-any.whl": [ + "azure", + ], + }, namespace_entries = { "azure_core-1.38.0-py3-none-any.whl": [ "azure/core", diff --git a/e2e/cases/snapshots/whl_install.azure_overlap.azure_core_tracing_opentelemetry.BUILD.bazel b/e2e/cases/snapshots/whl_install.azure_overlap.azure_core_tracing_opentelemetry.BUILD.bazel index fdc346e24..4fe1363fe 100644 --- a/e2e/cases/snapshots/whl_install.azure_overlap.azure_core_tracing_opentelemetry.BUILD.bazel +++ b/e2e/cases/snapshots/whl_install.azure_overlap.azure_core_tracing_opentelemetry.BUILD.bazel @@ -1,7 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") load("@aspect_rules_py//uv/private/whl_install:defs.bzl", "select_chain") load("@aspect_rules_py//uv/private/whl_install:rule.bzl", "source_built_wheel", "whl_install") -load("@bazel_skylib//lib:selects.bzl", "selects") source_built_wheel( name = "source_built_wheel", @@ -14,7 +13,7 @@ source_built_wheel( select_chain( name = "whl", arms = { - "@aspect_rules_py_pip_configurations//:py3-any-none": "@whl__azure_core_tracing_opentelemetry__016cefcaff2900fb//file" + "@aspect_rules_py_pip_configurations//:py3-any-none": "@whl__azure_core_tracing_opentelemetry__016cefcaff2900fb//file", }, default_target = ":source_built_wheel", visibility = ["//visibility:public"], @@ -53,6 +52,11 @@ whl_install( ], }, console_scripts = {}, + top_level_dirs = { + "azure_core_tracing_opentelemetry-1.0.0b11-py3-none-any.whl": [ + "azure", + ], + }, namespace_entries = { "azure_core_tracing_opentelemetry-1.0.0b11-py3-none-any.whl": [ "azure/core/tracing/ext/opentelemetry_span", diff --git a/e2e/cases/snapshots/whl_install.bare_linux_wheels.grpcio.BUILD.bazel b/e2e/cases/snapshots/whl_install.bare_linux_wheels.grpcio.BUILD.bazel index d4db6817b..b8ffcd02e 100644 --- a/e2e/cases/snapshots/whl_install.bare_linux_wheels.grpcio.BUILD.bazel +++ b/e2e/cases/snapshots/whl_install.bare_linux_wheels.grpcio.BUILD.bazel @@ -1,7 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") load("@aspect_rules_py//uv/private/whl_install:defs.bzl", "select_chain") load("@aspect_rules_py//uv/private/whl_install:rule.bzl", "source_built_wheel", "whl_install") -load("@bazel_skylib//lib:selects.bzl", "selects") source_built_wheel( name = "source_built_wheel", @@ -14,46 +13,46 @@ source_built_wheel( select_chain( name = "whl", arms = { - "@aspect_rules_py_pip_configurations//:cp314-macosx_11_0_universal2-cp314": "@whl__grpcio__d8e11f167935b3eb//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_aarch64-cp314": "@whl__grpcio__f14b618fc30de822//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_i686-cp314": "@whl__grpcio__4ed39fbdcf9b8737//file", - "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_x86_64-cp314": "@whl__grpcio__2dcc70e9f0ba9875//file", - "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_aarch64-cp314": "@whl__grpcio__448c884b668b8685//file", - "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_i686-cp314": "@whl__grpcio__a1dc80fe55685b4a//file", - "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_x86_64-cp314": "@whl__grpcio__31b9ac4ad1aa28ff//file", - "@aspect_rules_py_pip_configurations//:cp314-linux_armv7l-cp314": "@whl__grpcio__3d4147a97c8344d0//file", - "@aspect_rules_py_pip_configurations//:cp314-win32-cp314": "@whl__grpcio__367ce30ba67d05e0//file", - "@aspect_rules_py_pip_configurations//:cp314-win_amd64-cp314": "@whl__grpcio__3b01e1f5464c583d//file", - "@aspect_rules_py_pip_configurations//:cp313-macosx_11_0_universal2-cp313": "@whl__grpcio__92d787312e613754//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_aarch64-cp313": "@whl__grpcio__8ac393b58aa16991//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_i686-cp313": "@whl__grpcio__68e5851ac4b9afe0//file", - "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_x86_64-cp313": "@whl__grpcio__873ff5d17d68992e//file", - "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_aarch64-cp313": "@whl__grpcio__2bea16af2750fd0a//file", - "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_i686-cp313": "@whl__grpcio__ba0db34f7e1d803a//file", - "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_x86_64-cp313": "@whl__grpcio__8eb613f02d34721f//file", - "@aspect_rules_py_pip_configurations//:cp313-linux_armv7l-cp313": "@whl__grpcio__e9e408fc016dffd2//file", - "@aspect_rules_py_pip_configurations//:cp313-win32-cp313": "@whl__grpcio__93b6f82381072091//file", - "@aspect_rules_py_pip_configurations//:cp313-win_amd64-cp313": "@whl__grpcio__e172cf795a3ba524//file", - "@aspect_rules_py_pip_configurations//:cp312-macosx_11_0_universal2-cp312": "@whl__grpcio__f49eddcac43c3bf3//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_aarch64-cp312": "@whl__grpcio__d334591df610ab94//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_i686-cp312": "@whl__grpcio__0cb517eb1d0d0aaf//file", - "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_x86_64-cp312": "@whl__grpcio__4e78c4ac0d97dc2e//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_aarch64-cp312": "@whl__grpcio__2ed770b4c06984f3//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_i686-cp312": "@whl__grpcio__256507e2f524092f//file", - "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_x86_64-cp312": "@whl__grpcio__9a6284a5d907c37d//file", - "@aspect_rules_py_pip_configurations//:cp312-linux_armv7l-cp312": "@whl__grpcio__c624cc9f10083610//file", - "@aspect_rules_py_pip_configurations//:cp312-win32-cp312": "@whl__grpcio__c71309cfce2f22be//file", - "@aspect_rules_py_pip_configurations//:cp312-win_amd64-cp312": "@whl__grpcio__9fe648599c0e3759//file", - "@aspect_rules_py_pip_configurations//:cp311-macosx_11_0_universal2-cp311": "@whl__grpcio__5c07e82e822e1161//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_aarch64-cp311": "@whl__grpcio__ba0915d51fd4ced2//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_i686-cp311": "@whl__grpcio__3cb8130ba457d2aa//file", - "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_x86_64-cp311": "@whl__grpcio__09e5e478b3d14afd//file", - "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_aarch64-cp311": "@whl__grpcio__00168469238b0225//file", - "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_i686-cp311": "@whl__grpcio__8502122a3cc17140//file", - "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_x86_64-cp311": "@whl__grpcio__ce1794f4ea6cc3ca//file", - "@aspect_rules_py_pip_configurations//:cp311-linux_armv7l-cp311": "@whl__grpcio__dfab85db094068ff//file", - "@aspect_rules_py_pip_configurations//:cp311-win32-cp311": "@whl__grpcio__51b4a7189b0bef2a//file", - "@aspect_rules_py_pip_configurations//:cp311-win_amd64-cp311": "@whl__grpcio__02e64bb0bb2da14d//file" + "@aspect_rules_py_pip_configurations//:cp314-macosx_11_0_universal2-cp314": "@whl__grpcio__d8e11f167935b3eb//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_aarch64-cp314": "@whl__grpcio__f14b618fc30de822//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_i686-cp314": "@whl__grpcio__4ed39fbdcf9b8737//file", + "@aspect_rules_py_pip_configurations//:cp314-manylinux_2_17_x86_64-cp314": "@whl__grpcio__2dcc70e9f0ba9875//file", + "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_aarch64-cp314": "@whl__grpcio__448c884b668b8685//file", + "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_i686-cp314": "@whl__grpcio__a1dc80fe55685b4a//file", + "@aspect_rules_py_pip_configurations//:cp314-musllinux_1_2_x86_64-cp314": "@whl__grpcio__31b9ac4ad1aa28ff//file", + "@aspect_rules_py_pip_configurations//:cp314-linux_armv7l-cp314": "@whl__grpcio__3d4147a97c8344d0//file", + "@aspect_rules_py_pip_configurations//:cp314-win32-cp314": "@whl__grpcio__367ce30ba67d05e0//file", + "@aspect_rules_py_pip_configurations//:cp314-win_amd64-cp314": "@whl__grpcio__3b01e1f5464c583d//file", + "@aspect_rules_py_pip_configurations//:cp313-macosx_11_0_universal2-cp313": "@whl__grpcio__92d787312e613754//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_aarch64-cp313": "@whl__grpcio__8ac393b58aa16991//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_i686-cp313": "@whl__grpcio__68e5851ac4b9afe0//file", + "@aspect_rules_py_pip_configurations//:cp313-manylinux_2_17_x86_64-cp313": "@whl__grpcio__873ff5d17d68992e//file", + "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_aarch64-cp313": "@whl__grpcio__2bea16af2750fd0a//file", + "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_i686-cp313": "@whl__grpcio__ba0db34f7e1d803a//file", + "@aspect_rules_py_pip_configurations//:cp313-musllinux_1_2_x86_64-cp313": "@whl__grpcio__8eb613f02d34721f//file", + "@aspect_rules_py_pip_configurations//:cp313-linux_armv7l-cp313": "@whl__grpcio__e9e408fc016dffd2//file", + "@aspect_rules_py_pip_configurations//:cp313-win32-cp313": "@whl__grpcio__93b6f82381072091//file", + "@aspect_rules_py_pip_configurations//:cp313-win_amd64-cp313": "@whl__grpcio__e172cf795a3ba524//file", + "@aspect_rules_py_pip_configurations//:cp312-macosx_11_0_universal2-cp312": "@whl__grpcio__f49eddcac43c3bf3//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_aarch64-cp312": "@whl__grpcio__d334591df610ab94//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_i686-cp312": "@whl__grpcio__0cb517eb1d0d0aaf//file", + "@aspect_rules_py_pip_configurations//:cp312-manylinux_2_17_x86_64-cp312": "@whl__grpcio__4e78c4ac0d97dc2e//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_aarch64-cp312": "@whl__grpcio__2ed770b4c06984f3//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_i686-cp312": "@whl__grpcio__256507e2f524092f//file", + "@aspect_rules_py_pip_configurations//:cp312-musllinux_1_2_x86_64-cp312": "@whl__grpcio__9a6284a5d907c37d//file", + "@aspect_rules_py_pip_configurations//:cp312-linux_armv7l-cp312": "@whl__grpcio__c624cc9f10083610//file", + "@aspect_rules_py_pip_configurations//:cp312-win32-cp312": "@whl__grpcio__c71309cfce2f22be//file", + "@aspect_rules_py_pip_configurations//:cp312-win_amd64-cp312": "@whl__grpcio__9fe648599c0e3759//file", + "@aspect_rules_py_pip_configurations//:cp311-macosx_11_0_universal2-cp311": "@whl__grpcio__5c07e82e822e1161//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_aarch64-cp311": "@whl__grpcio__ba0915d51fd4ced2//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_i686-cp311": "@whl__grpcio__3cb8130ba457d2aa//file", + "@aspect_rules_py_pip_configurations//:cp311-manylinux_2_17_x86_64-cp311": "@whl__grpcio__09e5e478b3d14afd//file", + "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_aarch64-cp311": "@whl__grpcio__00168469238b0225//file", + "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_i686-cp311": "@whl__grpcio__8502122a3cc17140//file", + "@aspect_rules_py_pip_configurations//:cp311-musllinux_1_2_x86_64-cp311": "@whl__grpcio__ce1794f4ea6cc3ca//file", + "@aspect_rules_py_pip_configurations//:cp311-linux_armv7l-cp311": "@whl__grpcio__dfab85db094068ff//file", + "@aspect_rules_py_pip_configurations//:cp311-win32-cp311": "@whl__grpcio__51b4a7189b0bef2a//file", + "@aspect_rules_py_pip_configurations//:cp311-win_amd64-cp311": "@whl__grpcio__02e64bb0bb2da14d//file", }, default_target = ":source_built_wheel", visibility = ["//visibility:public"], @@ -244,6 +243,250 @@ whl_install( }, namespace_top_levels = {}, console_scripts = {}, + top_level_dirs = { + "grpcio-1.80.0-cp311-cp311-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-win_amd64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-win_amd64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-win_amd64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-win_amd64.whl": [ + "grpc", + ], + }, + native_roots = { + "grpcio-1.80.0-cp311-cp311-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp311-cp311-win_amd64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp312-cp312-win_amd64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp313-cp313-win_amd64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-linux_armv7l.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-macosx_11_0_universal2.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-manylinux2014_i686.manylinux_2_17_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-musllinux_1_2_aarch64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-musllinux_1_2_i686.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-musllinux_1_2_x86_64.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-win32.whl": [ + "grpc", + ], + "grpcio-1.80.0-cp314-cp314-win_amd64.whl": [ + "grpc", + ], + }, visibility = ["//visibility:private"], ) diff --git a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml index a9c8f699a..26977ddd4 100644 --- a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml +++ b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_amd64_layers_listing.yaml @@ -34,7 +34,7 @@ files: layer: 1 files: - -rwxr-xr-x 0 0 0 17400 Jan 1 2023 ./app - - -rwxr-xr-x 0 0 0 2482 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/activate + - -rwxr-xr-x 0 0 0 2100 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/activate - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/bin/python3 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python3.12 -> python @@ -278,6 +278,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2348 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 306344 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_x86_64_unknown_linux_gnu/lib/libpython3.12.so -> libpython3.12.so.1.0 diff --git a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml index 03f27a840..378461dff 100644 --- a/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml +++ b/e2e/cases/uv-deps-650/crossbuild/snapshots/app_arm64_layers_listing.yaml @@ -34,7 +34,7 @@ files: layer: 1 files: - -rwxr-xr-x 0 0 0 16560 Jan 1 2023 ./app - - -rwxr-xr-x 0 0 0 2482 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/activate + - -rwxr-xr-x 0 0 0 2100 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/activate - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python -> ../../../../../aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/bin/python3 - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python3 -> python - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/_main/uv-deps-650/crossbuild/._app_bin.venv/bin/python3.12 -> python @@ -278,6 +278,8 @@ files: - -rwxr-xr-x 0 0 0 2886 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/itclConfig.sh - -rwxr-xr-x 0 0 0 19378 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/itclHullCmds.tcl - -rwxr-xr-x 0 0 0 12114 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/itclWidget.tcl + - -rwxr-xr-x 0 0 0 2540 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub.a + - -rwxr-xr-x 0 0 0 2540 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/libitclstub4.3.5.a - -rwxr-xr-x 0 0 0 358640 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/libtcl9itcl4.3.5.so - -rwxr-xr-x 0 0 0 436 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/itcl4.3.5/pkgIndex.tcl - lrwxr-xr-x 0 0 0 0 Jan 1 2023 ./app.runfiles/aspect_rules_py++python_interpreters+python_3_12_aarch64_unknown_linux_gnu/lib/libpython3.12.so -> libpython3.12.so.1.0 diff --git a/e2e/cases/uv-duplicate-whl-labels/BUILD.bazel b/e2e/cases/uv-duplicate-whl-labels/BUILD.bazel new file mode 100644 index 000000000..b49188f2b --- /dev/null +++ b/e2e/cases/uv-duplicate-whl-labels/BUILD.bazel @@ -0,0 +1,12 @@ +load("@aspect_rules_py//py:defs.bzl", "py_test") + +# Regression: different lockfile wheel entries can map to the same fetched +# http_file label. whl_install must receive a deduplicated label_list while +# still preserving metadata for each selectable wheel basename. +py_test( + name = "test_import", + srcs = ["test_import.py"], + dep_group = "duplicate-whl-labels", + main = "test_import.py", + deps = ["@pypi_uv_duplicate_whl_labels//six"], +) diff --git a/e2e/cases/uv-duplicate-whl-labels/pyproject.toml b/e2e/cases/uv-duplicate-whl-labels/pyproject.toml new file mode 100644 index 000000000..9de361da3 --- /dev/null +++ b/e2e/cases/uv-duplicate-whl-labels/pyproject.toml @@ -0,0 +1,8 @@ +[project] +name = "duplicate-whl-labels" +version = "0.0.0" +authors = [] +requires-python = ">=3.11" +dependencies = [ + "six==1.16.0", +] diff --git a/e2e/cases/uv-duplicate-whl-labels/setup.MODULE.bazel b/e2e/cases/uv-duplicate-whl-labels/setup.MODULE.bazel new file mode 100644 index 000000000..60f21b5d1 --- /dev/null +++ b/e2e/cases/uv-duplicate-whl-labels/setup.MODULE.bazel @@ -0,0 +1,8 @@ +uv = use_extension("@aspect_rules_py//uv:extensions.bzl", "uv") +uv.declare_hub(hub_name = "pypi_uv_duplicate_whl_labels") +uv.project( + hub_name = "pypi_uv_duplicate_whl_labels", + lock = "//uv-duplicate-whl-labels:uv.lock", + pyproject = "//uv-duplicate-whl-labels:pyproject.toml", +) +use_repo(uv, "pypi_uv_duplicate_whl_labels") diff --git a/e2e/cases/uv-duplicate-whl-labels/test_import.py b/e2e/cases/uv-duplicate-whl-labels/test_import.py new file mode 100644 index 000000000..e425f0497 --- /dev/null +++ b/e2e/cases/uv-duplicate-whl-labels/test_import.py @@ -0,0 +1,6 @@ +from importlib import metadata + +import six + +assert metadata.version("six") == "1.16.0" +assert six.PY3 diff --git a/e2e/cases/uv-duplicate-whl-labels/uv.lock b/e2e/cases/uv-duplicate-whl-labels/uv.lock new file mode 100644 index 000000000..56dc9fa1d --- /dev/null +++ b/e2e/cases/uv-duplicate-whl-labels/uv.lock @@ -0,0 +1,30 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" + +[[package]] +name = "duplicate-whl-labels" +version = "0.0.0" +source = { virtual = "." } +dependencies = [ + { name = "six" }, +] + +[package.metadata] +requires-dist = [{ name = "six", specifier = "==1.16.0" }] + +[[package]] +name = "six" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-1-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053, upload-time = "2021-05-05T14:18:17.237Z" }, +] + +[[package]] +name = "six" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053, upload-time = "2021-05-05T14:18:17.237Z" }, +] diff --git a/e2e/cases/uv-git-source/BUILD.bazel b/e2e/cases/uv-git-source/BUILD.bazel new file mode 100644 index 000000000..730176460 --- /dev/null +++ b/e2e/cases/uv-git-source/BUILD.bazel @@ -0,0 +1,17 @@ +load("@aspect_rules_py//py:defs.bzl", "py_test") + +# Runtime coverage for git-sourced lockfile packages. six is locked with +# `source = { git = "https://github.com/benjaminp/six?tag=1.17.0#" }`, +# exercising parse_git_url on a real uv-generated URL, the GitHub +# git-to-http_archive conversion in collect_sdists, and the source build of +# the resulting archive. +py_test( + name = "test", + srcs = ["__test__.py"], + dep_group = "uv_git_source", + main = "__test__.py", + python_version = "3.11", + deps = [ + "@pypi_git_source//six", + ], +) diff --git a/e2e/cases/uv-git-source/__test__.py b/e2e/cases/uv-git-source/__test__.py new file mode 100644 index 000000000..143317941 --- /dev/null +++ b/e2e/cases/uv-git-source/__test__.py @@ -0,0 +1,6 @@ +import six + +assert six.__version__ == "1.17.0", six.__version__ +assert six.ensure_str(b"git-source") == "git-source" + +print("six", six.__version__, "imported from git source") diff --git a/e2e/cases/uv-git-source/pyproject.toml b/e2e/cases/uv-git-source/pyproject.toml new file mode 100644 index 000000000..b1c84a3e5 --- /dev/null +++ b/e2e/cases/uv-git-source/pyproject.toml @@ -0,0 +1,18 @@ +[project] +name = "uv_git_source" +version = "0.0.0" +requires-python = ">=3.11" +dependencies = [ + # `build` and `setuptools` surface in the project repo as deps of the + # pep517_whl build_tool that builds six from its git source tree. + "build", + "setuptools", + "six", +] + +# six is resolved from git rather than a registry, exercising the +# `source = { git = ... }` lockfile pathway: parse_git_url on the +# uv-generated URL (query params + pinned commit fragment) and the +# git-to-http_archive conversion for GitHub remotes. +[tool.uv.sources] +six = { git = "https://github.com/benjaminp/six", tag = "1.17.0" } diff --git a/e2e/cases/uv-git-source/setup.MODULE.bazel b/e2e/cases/uv-git-source/setup.MODULE.bazel new file mode 100644 index 000000000..b9e20ee2f --- /dev/null +++ b/e2e/cases/uv-git-source/setup.MODULE.bazel @@ -0,0 +1,23 @@ +"""Coverage for git-sourced lockfile packages: six resolves from a +`source = { git = ... }` entry (uv-generated URL with query params and a +pinned commit fragment), which is converted to an http_archive of the +GitHub tarball and built from source. Uses its own hub to keep the git +source isolated from the shared `pypi` hub. +""" + +uv = use_extension("@aspect_rules_py//uv:extensions.bzl", "uv") +uv.declare_hub(hub_name = "pypi_git_source") +uv.project( + default_build_dependencies = [ + "build", + "setuptools", + ], + hub_name = "pypi_git_source", + lock = "//uv-git-source:uv.lock", + pyproject = "//uv-git-source:pyproject.toml", +) +use_repo( + uv, + "pypi_git_source", + "sdist_build__uv_git_source__six__1_17_0", +) diff --git a/e2e/cases/uv-git-source/uv.lock b/e2e/cases/uv-git-source/uv.lock new file mode 100644 index 000000000..33fe27704 --- /dev/null +++ b/e2e/cases/uv-git-source/uv.lock @@ -0,0 +1,75 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" + +[[package]] +name = "build" +version = "1.5.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "os_name == 'nt'" }, + { name = "packaging" }, + { name = "pyproject-hooks" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/78/e0/df5e171f685f82f37b12e1f208064e24244911079d7b767447d1af7e0d70/build-1.5.0.tar.gz", hash = "sha256:302c22c3ba2a0fd5f3911918651341ebb3896176cbdec15bd421f80b1afc7647", size = 89796, upload-time = "2026-04-30T03:18:25.17Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/fe/6bea5c9162869c5beba5d9c8abbed835ec85bf1ec1fba05a3822325c45f3/build-1.5.0-py3-none-any.whl", hash = "sha256:13f3eecb844759ab66efec90ca17639bbf14dc06cb2fdf37a9010322d9c50a6f", size = 26018, upload-time = "2026-04-30T03:18:23.644Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "packaging" +version = "26.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d7/f1/e7a6dd94a8d4a5626c03e4e99c87f241ba9e350cd9e6d75123f992427270/packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661", size = 228134, upload-time = "2026-04-24T20:15:23.917Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/df/b2/87e62e8c3e2f4b32e5fe99e0b86d576da1312593b39f47d8ceef365e95ed/packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e", size = 100195, upload-time = "2026-04-24T20:15:22.081Z" }, +] + +[[package]] +name = "pyproject-hooks" +version = "1.2.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e7/82/28175b2414effca1cdac8dc99f76d660e7a4fb0ceefa4b4ab8f5f6742925/pyproject_hooks-1.2.0.tar.gz", hash = "sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8", size = 19228, upload-time = "2024-09-29T09:24:13.293Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/bd/24/12818598c362d7f300f18e74db45963dbcb85150324092410c8b49405e42/pyproject_hooks-1.2.0-py3-none-any.whl", hash = "sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913", size = 10216, upload-time = "2024-09-29T09:24:11.978Z" }, +] + +[[package]] +name = "setuptools" +version = "83.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/34/26/f5d29e25ffdb535afef2d35cdb55b325298f96debd670da4c325e08d70f4/setuptools-83.0.0.tar.gz", hash = "sha256:025bccbbf0fa05b6192bc64ae1e7b16e001fd6d6d4d5de03c97b1c1ade523bef", size = 1154254, upload-time = "2026-07-04T15:31:22.699Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5d/40/e1e72872c6354b306daef1703549e8e83b4d43cfea356311bf722a043752/setuptools-83.0.0-py3-none-any.whl", hash = "sha256:29b23c360f22f414dc7336bb39178cc7bcbf6021ed2733cde173f09dba19abb3", size = 1008090, upload-time = "2026-07-04T15:31:20.885Z" }, +] + +[[package]] +name = "six" +version = "1.17.0" +source = { git = "https://github.com/benjaminp/six?tag=1.17.0#ebd9b3af90247b8858d415a05e96e9ee61e48d07" } + +[[package]] +name = "uv-git-source" +version = "0.0.0" +source = { virtual = "." } +dependencies = [ + { name = "build" }, + { name = "setuptools" }, + { name = "six" }, +] + +[package.metadata] +requires-dist = [ + { name = "build" }, + { name = "setuptools" }, + { name = "six", git = "https://github.com/benjaminp/six?tag=1.17.0" }, +] diff --git a/e2e/cases/uv-legacy-deps-750/main.py b/e2e/cases/uv-legacy-deps-750/main.py deleted file mode 100644 index 4c3b2bd33..000000000 --- a/e2e/cases/uv-legacy-deps-750/main.py +++ /dev/null @@ -1,6 +0,0 @@ -def main(): - print("Hello from googlemaps!") - - -if __name__ == "__main__": - main() diff --git a/e2e/cases/uv-patching-829/patches/pre_build.patch b/e2e/cases/uv-patching-829/patches/pre_build.patch deleted file mode 100644 index aabafb7e6..000000000 --- a/e2e/cases/uv-patching-829/patches/pre_build.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/cowsay/main.py -+++ b/cowsay/main.py -@@ -3,6 +3,8 @@ from .characters import CHARS - - __version__ = '6.0' - -+PATCHED_PRE_BUILD = True -+ - CHARS = dict(sorted(CHARS.items())) - char_names = list(CHARS.keys()) - diff --git a/e2e/cases/uv-sdist-native-build/BUILD.bazel b/e2e/cases/uv-sdist-native-build/BUILD.bazel index 09c7930ee..a84b61cae 100644 --- a/e2e/cases/uv-sdist-native-build/BUILD.bazel +++ b/e2e/cases/uv-sdist-native-build/BUILD.bazel @@ -7,6 +7,8 @@ load("@aspect_rules_py//py:defs.bzl", "py_test") +exports_files(["require_cxx_driver.patch"]) + py_test( name = "test", srcs = ["test_geohash.py"], diff --git a/e2e/cases/uv-sdist-native-build/require_cxx_driver.patch b/e2e/cases/uv-sdist-native-build/require_cxx_driver.patch new file mode 100644 index 000000000..1be96d31a --- /dev/null +++ b/e2e/cases/uv-sdist-native-build/require_cxx_driver.patch @@ -0,0 +1,11 @@ +diff --git a/src/geohash.cpp b/src/geohash.cpp +--- a/src/geohash.cpp ++++ b/src/geohash.cpp +@@ -1,0 +1,7 @@ ++#include ++ ++extern "C" const char *rules_py_cxx_runtime_probe(void) { ++ static const std::string value = "rules_py"; ++ return value.c_str(); ++} ++ diff --git a/e2e/cases/uv-sdist-native-build/setup.MODULE.bazel b/e2e/cases/uv-sdist-native-build/setup.MODULE.bazel index 619e82441..e97f4c68f 100644 --- a/e2e/cases/uv-sdist-native-build/setup.MODULE.bazel +++ b/e2e/cases/uv-sdist-native-build/setup.MODULE.bazel @@ -22,6 +22,8 @@ uv.project( uv.override_package( name = "python-geohash", lock = "//uv-sdist-native-build:uv.lock", + pre_build_patch_strip = 1, + pre_build_patches = ["//uv-sdist-native-build:require_cxx_driver.patch"], resource_set = "mem_4g", ) diff --git a/e2e/interpreter-input-validation/.bazelversion b/e2e/interpreter-input-validation/.bazelversion new file mode 120000 index 000000000..96cf94962 --- /dev/null +++ b/e2e/interpreter-input-validation/.bazelversion @@ -0,0 +1 @@ +../../.bazelversion \ No newline at end of file diff --git a/e2e/interpreter-input-validation/MODULE.bazel.lock b/e2e/interpreter-input-validation/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/e2e/interpreter-input-validation/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/e2e/interpreter-runtime-metadata/.bazelversion b/e2e/interpreter-runtime-metadata/.bazelversion new file mode 120000 index 000000000..96cf94962 --- /dev/null +++ b/e2e/interpreter-runtime-metadata/.bazelversion @@ -0,0 +1 @@ +../../.bazelversion \ No newline at end of file diff --git a/e2e/interpreter-runtime-metadata/MODULE.bazel.lock b/e2e/interpreter-runtime-metadata/MODULE.bazel.lock new file mode 100644 index 000000000..099f7706a --- /dev/null +++ b/e2e/interpreter-runtime-metadata/MODULE.bazel.lock @@ -0,0 +1,726 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/e2e/interpreter-toolchain-settings/.bazelversion b/e2e/interpreter-toolchain-settings/.bazelversion new file mode 120000 index 000000000..96cf94962 --- /dev/null +++ b/e2e/interpreter-toolchain-settings/.bazelversion @@ -0,0 +1 @@ +../../.bazelversion \ No newline at end of file diff --git a/e2e/interpreter-toolchain-settings/MODULE.bazel.lock b/e2e/interpreter-toolchain-settings/MODULE.bazel.lock new file mode 100644 index 000000000..099f7706a --- /dev/null +++ b/e2e/interpreter-toolchain-settings/MODULE.bazel.lock @@ -0,0 +1,726 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/e2e/rules-proto-grpc-python/.bazelrc b/e2e/rules-proto-grpc-python/.bazelrc index 9ee607753..9b67e06ab 100644 --- a/e2e/rules-proto-grpc-python/.bazelrc +++ b/e2e/rules-proto-grpc-python/.bazelrc @@ -7,11 +7,6 @@ import %workspace%/../../bazel/defaults.bazelrc common:ci --remote_download_outputs=minimal common:ci --nobuild_runfile_links -# This module does not commit a MODULE.bazel.lock — see the repo-root -# .gitignore. Overrides the preset's `common:ci --lockfile_mode=error`, so it -# must come after the import above. -common:ci --lockfile_mode=off - # protobuf's prebuilt-protoc toolchain (@protobuf//bazel/private/oss/toolchains/ # prebuilt) calls ctx.actions.run_shell without a `toolchain` parameter, which # fails analysis under the preset's --incompatible_auto_exec_groups. The other diff --git a/e2e/rules-proto-grpc-python/.bazelversion b/e2e/rules-proto-grpc-python/.bazelversion new file mode 120000 index 000000000..96cf94962 --- /dev/null +++ b/e2e/rules-proto-grpc-python/.bazelversion @@ -0,0 +1 @@ +../../.bazelversion \ No newline at end of file diff --git a/e2e/rules-proto-grpc-python/MODULE.bazel.lock b/e2e/rules-proto-grpc-python/MODULE.bazel.lock new file mode 100644 index 000000000..8c379c197 --- /dev/null +++ b/e2e/rules-proto-grpc-python/MODULE.bazel.lock @@ -0,0 +1,2036 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20220623.1/MODULE.bazel": "73ae41b6818d423a11fd79d95aedef1258f304448193d4db4ff90e5e7a0f076c", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.0/MODULE.bazel": "98dc378d64c12a4e4741ad3362f87fb737ee6a0886b2d90c3cdbb4d93ea3e0bf", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", + "https://bcr.bazel.build/modules/abseil-cpp/20240722.0/MODULE.bazel": "88668a07647adbdc14cb3a7cd116fb23c9dda37a90a1681590b6c9d8339a5b84", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.0/MODULE.bazel": "d1086e248cda6576862b4b3fe9ad76a214e08c189af5b42557a6e1888812c5d5", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.0/MODULE.bazel": "c4d02dd22cd87458516655a45512060246ee2a4732f1fbe948a5bd9eb614e626", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/source.json": "d725d73707d01bb46ab3ca59ba408b8e9bd336642ca77a2269d4bfb8bbfd413d", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.13.0/MODULE.bazel": "7c8cdea7e031b7f9f67f0b497adf6d2c6a2675e9304ca93a9af6ed84eef5a524", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.17.1/MODULE.bazel": "655c922ab1209978a94ef6ca7d9d43e940cd97d9c172fb55f94d91ac53f8610b", + "https://bcr.bazel.build/modules/apple_support/1.23.0/MODULE.bazel": "317d47e3f65b580e7fb4221c160797fda48e32f07d2dfff63d754ef2316dcd25", + "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442", + "https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.31.2/MODULE.bazel": "7bee702b4862612f29333590f4b658a5832d433d6f8e4395f090e8f4e85d442f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.38.0/MODULE.bazel": "6307fec451ba9962c1c969eb516ebfe1e46528f7fa92e1c9ac8646bef4cdaa3f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/1.40.3/MODULE.bazel": "668e6bcb4d957fc0e284316dba546b705c8d43c857f87119619ee83c4555b859", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.14.0/MODULE.bazel": "2b31ffcc9bdc8295b2167e07a757dbbc9ac8906e7028e5170a3708cecaac119f", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.19.3/MODULE.bazel": "253d739ba126f62a5767d832765b12b59e9f8d2bc88cc1572f4a73e46eb298ca", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/MODULE.bazel": "276347663a25b0d5bd6cad869252bea3e160c4d980e764b15f3bae7f80b30624", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.21.2/source.json": "f42051fa42629f0e59b7ac2adf0a55749144b11f1efcd8c697f0ee247181e526", + "https://bcr.bazel.build/modules/aspect_bazel_lib/2.8.1/MODULE.bazel": "812d2dd42f65dca362152101fbec418029cc8fd34cbad1a2fde905383d705838", + "https://bcr.bazel.build/modules/aspect_rules_js/1.33.1/MODULE.bazel": "db3e7f16e471cf6827059d03af7c21859e7a0d2bc65429a3a11f005d46fc501b", + "https://bcr.bazel.build/modules/aspect_rules_js/1.39.0/MODULE.bazel": "aece421d479e3c31dc3e5f6d49a12acc2700457c03c556650ec7a0ff23fc0d95", + "https://bcr.bazel.build/modules/aspect_rules_lint/0.12.0/MODULE.bazel": "e767c5dbfeb254ec03275a7701b5cfde2c4d2873676804bc7cb27ddff3728fed", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/0.1.0/MODULE.bazel": "47011d645b0f949f42ee67f2e8775188a9cf4a0a1528aa2fa4952f2fd00906fd", + "https://bcr.bazel.build/modules/bazel_features/1.1.0/MODULE.bazel": "cfd42ff3b815a5f39554d97182657f8c4b9719568eb7fded2b9135f084bf760b", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.10.0/MODULE.bazel": "f75e8807570484a99be90abcd52b5e1f390362c258bcb73106f4544957a48101", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.23.0/MODULE.bazel": "fd1ac84bc4e97a5a0816b7fd7d4d4f6d837b0047cf4cbd81652d616af3a6591a", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.32.0/MODULE.bazel": "095d67022a58cb20f7e20e1aefecfa65257a222c18a938e2914fd257b5f1ccdc", + "https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.36.0/MODULE.bazel": "596cb62090b039caf1cad1d52a8bc35cf188ca9a4e279a828005e7ee49a1bec3", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/boringssl/0.0.0-20211025-d4f1ab9/MODULE.bazel": "6ee6353f8b1a701fe2178e1d925034294971350b6d3ac37e67e5a7d463267834", + "https://bcr.bazel.build/modules/boringssl/0.0.0-20230215-5c22014/MODULE.bazel": "4b03dc0d04375fa0271174badcd202ed249870c8e895b26664fd7298abea7282", + "https://bcr.bazel.build/modules/boringssl/0.0.0-20240530-2db0eb3/MODULE.bazel": "d0405b762c5e87cd445b7015f2b8da5400ef9a8dbca0bfefa6c1cea79d528a97", + "https://bcr.bazel.build/modules/boringssl/0.20240913.0/MODULE.bazel": "fcaa7503a5213290831a91ed1eb538551cf11ac0bc3a6ad92d0fef92c5bd25fb", + "https://bcr.bazel.build/modules/boringssl/0.20241024.0/MODULE.bazel": "b540cff73d948cb79cb0bc108d7cef391d2098a25adabfda5043e4ef548dbc87", + "https://bcr.bazel.build/modules/boringssl/0.20241024.0/source.json": "d843092e682b84188c043ac742965d7f96e04c846c7e338187e03238674909a9", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/c-ares/1.15.0/MODULE.bazel": "ba0a78360fdc83f02f437a9e7df0532ad1fbaa59b722f6e715c11effebaa0166", + "https://bcr.bazel.build/modules/c-ares/1.19.1/MODULE.bazel": "73bca21720772370ff91cc8e88bbbaf14897720c6473e87c1ddc0f848284c313", + "https://bcr.bazel.build/modules/c-ares/1.19.1/source.json": "56bfa95b01e4e0012e90eaa9f1bab823c48c3af4454286b889b9cc74f5098da1", + "https://bcr.bazel.build/modules/cel-spec/0.15.0/MODULE.bazel": "e1eed53d233acbdcf024b4b0bc1528116d92c29713251b5154078ab1348cb600", + "https://bcr.bazel.build/modules/cel-spec/0.15.0/source.json": "ab7dccdf21ea2261c0f809b5a5221a4d7f8b580309f285fdf1444baaca75d44a", + "https://bcr.bazel.build/modules/civetweb/1.16/MODULE.bazel": "46a38f9daeb57392e3827fce7d40926be0c802bd23cdd6bfd3a96c804de42fae", + "https://bcr.bazel.build/modules/civetweb/1.16/source.json": "ba8b9585adb8355cb51b999d57172fd05e7a762c56b8d4bac6db42c99de3beb7", + "https://bcr.bazel.build/modules/curl/8.4.0/MODULE.bazel": "0bc250aa1cb69590049383df7a9537c809591fcf876c620f5f097c58fdc9bc10", + "https://bcr.bazel.build/modules/curl/8.7.1/MODULE.bazel": "088221c35a2939c555e6e47cb31a81c15f8b59f4daa8009b1e9271a502d33485", + "https://bcr.bazel.build/modules/curl/8.8.0/MODULE.bazel": "7da3b3e79b0b4ee8f8c95d640bc6ad7b430ce66ef6e9c9d2bc29b3b5ef85f6fe", + "https://bcr.bazel.build/modules/curl/8.8.0/source.json": "d7d138b6878cf38891692fee0649ace35357fd549b425614d571786f054374d4", + "https://bcr.bazel.build/modules/cython/3.0.11-1/MODULE.bazel": "868b3f5c956c3657420d2302004c6bb92606bfa47e314bab7f2ba0630c7c966c", + "https://bcr.bazel.build/modules/cython/3.0.11-1/source.json": "da318be900b8ca9c3d1018839d3bebc5a8e1645620d0848fa2c696d4ecf7c296", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20250128-4de3c74/MODULE.bazel": "1fe72489212c530086e3ffb0e018b2bfef4663200ca03571570f9f006bef1d75", + "https://bcr.bazel.build/modules/envoy_api/0.0.0-20250128-4de3c74/source.json": "028519164a2e24563f4b43d810fdedc702daed90e71e7042d45ba82ad807b46f", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.1/MODULE.bazel": "cdf8cbe5ee750db04b78878c9633cc76e80dcf4416cbe982ac3a9222f80713c8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/gazelle/0.27.0/MODULE.bazel": "3446abd608295de6d90b4a8a118ed64a9ce11dcb3dda2dc3290a22056bd20996", + "https://bcr.bazel.build/modules/gazelle/0.30.0/MODULE.bazel": "f888a1effe338491f35f0e0e85003b47bb9d8295ccba73c37e07702d8d31c65b", + "https://bcr.bazel.build/modules/gazelle/0.32.0/MODULE.bazel": "b499f58a5d0d3537f3cf5b76d8ada18242f64ec474d8391247438bf04f58c7b8", + "https://bcr.bazel.build/modules/gazelle/0.33.0/MODULE.bazel": "a13a0f279b462b784fb8dd52a4074526c4a2afe70e114c7d09066097a46b3350", + "https://bcr.bazel.build/modules/gazelle/0.34.0/MODULE.bazel": "abdd8ce4d70978933209db92e436deb3a8b737859e9354fb5fd11fb5c2004c8a", + "https://bcr.bazel.build/modules/gazelle/0.36.0/MODULE.bazel": "e375d5d6e9a6ca59b0cb38b0540bc9a05b6aa926d322f2de268ad267a2ee74c0", + "https://bcr.bazel.build/modules/gazelle/0.37.0/MODULE.bazel": "d1327ba0907d0275ed5103bfbbb13518f6c04955b402213319d0d6c0ce9839d4", + "https://bcr.bazel.build/modules/gazelle/0.51.3/MODULE.bazel": "618a729142f66de1e2cb776d026413763be5b80d5e3d29ffb9d3d90c5defde90", + "https://bcr.bazel.build/modules/gazelle/0.51.3/source.json": "fbe5312a01fb4a2a58caff4a0d40dcf384b6f0bda75e85546663360da1d7538a", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/google_benchmark/1.8.4/MODULE.bazel": "c6d54a11dcf64ee63545f42561eda3fd94c1b5f5ebe1357011de63ae33739d5e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.4/source.json": "84590f7bc5a1fd99e1ef274ee16bb41c214f705e62847b42e705010dfa81fe53", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20240326-1c8d509c5/MODULE.bazel": "a4b7e46393c1cdcc5a00e6f85524467c48c565256b22b5fae20f84ab4a999a68", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20240819-fe8ba054a/MODULE.bazel": "117b7c7be7327ed5d6c482274533f2dbd78631313f607094d4625c28203cacdf", + "https://bcr.bazel.build/modules/googleapis/0.0.0-20240819-fe8ba054a/source.json": "b31fc7eb283a83f71d2e5bfc3d1c562d2994198fa1278409fbe8caec3afc1d3e", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", + "https://bcr.bazel.build/modules/googletest/1.16.0/MODULE.bazel": "a175623c69e94fca4ca7acbc12031e637b0c489318cd4805606981d4d7adb34a", + "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", + "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", + "https://bcr.bazel.build/modules/grpc-java/1.62.2/MODULE.bazel": "99b8771e8c7cacb130170fed2a10c9e8fed26334a93e73b42d2953250885a158", + "https://bcr.bazel.build/modules/grpc-java/1.66.0/MODULE.bazel": "86ff26209fac846adb89db11f3714b3dc0090fb2fb81575673cc74880cda4e7e", + "https://bcr.bazel.build/modules/grpc-java/1.66.0/source.json": "f841b339ff8516c86c3a5272cd053194dd0cb2fdd63157123835e1157a28328d", + "https://bcr.bazel.build/modules/grpc-proto/0.0.0-20240627-ec30f58/MODULE.bazel": "88de79051e668a04726e9ea94a481ec6f1692086735fd6f488ab908b3b909238", + "https://bcr.bazel.build/modules/grpc-proto/0.0.0-20240627-ec30f58/source.json": "5035d379c61042930244ab59e750106d893ec440add92ec0df6a0098ca7f131d", + "https://bcr.bazel.build/modules/grpc/1.41.0/MODULE.bazel": "5bcbfc2b274dabea628f0649dc50c90cf36543b1cfc31624832538644ad1aae8", + "https://bcr.bazel.build/modules/grpc/1.56.3.bcr.1/MODULE.bazel": "cd5b1eb276b806ec5ab85032921f24acc51735a69ace781be586880af20ab33f", + "https://bcr.bazel.build/modules/grpc/1.62.1/MODULE.bazel": "2998211594b8a79a6b459c4e797cfa19f0fb8b3be3149760ec7b8c99abfd426f", + "https://bcr.bazel.build/modules/grpc/1.63.1.bcr.1/MODULE.bazel": "d7b9fef03bd175e6825237b521b18a3c29f1ac15f8aa52c8a1a0f3bd8f33d54b", + "https://bcr.bazel.build/modules/grpc/1.66.0.bcr.2/MODULE.bazel": "0fa2b0fd028ce354febf0fe90f1ed8fecfbfc33118cddd95ac0418cc283333a0", + "https://bcr.bazel.build/modules/grpc/1.66.0.bcr.3/MODULE.bazel": "f6047e89faf488f5e3e65cb2594c6f5e86992abec7487163ff6b623526e543b0", + "https://bcr.bazel.build/modules/grpc/1.71.0/MODULE.bazel": "7fcab2c05530373f1a442c362b17740dd0c75b6a2a975eec8f5bf4c70a37928a", + "https://bcr.bazel.build/modules/grpc/1.74.1/MODULE.bazel": "09523be10ba2bfd999683671d0f8f22fb5b20ec77ad89b05ef58ff19a1b65c82", + "https://bcr.bazel.build/modules/grpc/1.74.1/source.json": "8508bcf9bae1b7c647a594e13461ce192240fcdbb409c2741444322d47d01f98", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/MODULE.bazel": "2ce69b1af49952cd4121a9c3055faa679e748ce774c7f1fda9657f936cae902f", + "https://bcr.bazel.build/modules/jq.bzl/0.1.0/source.json": "746bf13cac0860f091df5e4911d0c593971cd8796b5ad4e809b2f8e133eee3d5", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/libpfm/4.11.0/source.json": "caaffb3ac2b59b8aac456917a4ecf3167d40478ee79f15ab7a877ec9273937c9", + "https://bcr.bazel.build/modules/mbedtls/3.6.0/MODULE.bazel": "8e380e4698107c5f8766264d4df92e36766248447858db28187151d884995a09", + "https://bcr.bazel.build/modules/mbedtls/3.6.0/source.json": "1dbe7eb5258050afcc3806b9d43050f71c6f539ce0175535c670df606790b30c", + "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/MODULE.bazel": "87023db2f55fc3a9949c7b08dc711fae4d4be339a80a99d04453c4bb3998eefc", + "https://bcr.bazel.build/modules/nlohmann_json/3.11.3/source.json": "296c63a90c6813e53b3812d24245711981fc7e563d98fe15625f55181494488a", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de.bcr.2/MODULE.bazel": "cc18734138dd18c912c6ce2a59186db28f85d8058c99c9f21b46ca3e0aba0ebe", + "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de.bcr.2/source.json": "7c135f9d42bb3b045669c3c6ab3bb3c208e00b46aca4422eea64c29811a5b240", + "https://bcr.bazel.build/modules/opencensus-cpp/0.0.0-20230502-50eb5de/MODULE.bazel": "02201d2921dadb4ec90c4980eca4b2a02904eddcf6fa02f3da7594fb7b0d821c", + "https://bcr.bazel.build/modules/opencensus-proto/0.4.1.bcr.2/MODULE.bazel": "789706a714855f92c5c8cfcf1ef32bbb64dcd3b7c9066756ad7986ec59709d29", + "https://bcr.bazel.build/modules/opencensus-proto/0.4.1.bcr.2/source.json": "aadf3f53e08b72376506b7c4ea3d167010c9efb160d7d6e1e304ed646bac1b36", + "https://bcr.bazel.build/modules/opencensus-proto/0.4.1/MODULE.bazel": "4a2e8b4d0b544002502474d611a5a183aa282251e14f6a01afe841c0c1b10372", + "https://bcr.bazel.build/modules/openssl/3.3.1.bcr.1/MODULE.bazel": "49c0c07e8fb87b480bccb842cfee1b32617f11dac590f732573c69058699a3d1", + "https://bcr.bazel.build/modules/openssl/3.3.1.bcr.1/source.json": "0c0872e048bbea052a9c541fb47019481a19201ba5555a71d762ad591bf94e1f", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.14.2/MODULE.bazel": "089a5613c2a159c7dfde098dabfc61e966889c7d6a81a98422a84c51535ed17d", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.19.0/MODULE.bazel": "3455326c08b28415648a3d60d8e3c811847ebdbe64474f75b25878f25585aea1", + "https://bcr.bazel.build/modules/opentelemetry-cpp/1.19.0/source.json": "4e48137e4c3ecb99401ff99876df8fa330598d7da051869bec643446e8a8ff95", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.1.0/MODULE.bazel": "a49f406e99bf05ab43ed4f5b3322fbd33adfd484b6546948929d1316299b68bf", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.4.0.bcr.1/MODULE.bazel": "5ceaf25e11170d22eded4c8032728b4a3f273765fccda32f9e94f463755c4167", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.5.0/MODULE.bazel": "7543d91a53b98e7b5b37c5a0865b93bff12c1ee022b1e322cd236b968894b030", + "https://bcr.bazel.build/modules/opentelemetry-proto/1.5.0/source.json": "046b721ce203e88cdaad44d7dd17a86b7200eab9388b663b234e72e13ff7b143", + "https://bcr.bazel.build/modules/opentracing-cpp/1.6.0/MODULE.bazel": "b3925269f63561b8b880ae7cf62ccf81f6ece55b62cd791eda9925147ae116ec", + "https://bcr.bazel.build/modules/opentracing-cpp/1.6.0/source.json": "da1cb1add160f5e5074b7272e9db6fd8f1b3336c15032cd0a653af9d2f484aed", + "https://bcr.bazel.build/modules/package_metadata/0.0.2/MODULE.bazel": "fb8d25550742674d63d7b250063d4580ca530499f045d70748b1b142081ebb92", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.5/MODULE.bazel": "ef4f9439e3270fdd6b9fd4dbc3d2f29d13888e44c529a1b243f7a31dfbc2e8e4", + "https://bcr.bazel.build/modules/package_metadata/0.0.5/source.json": "2326db2f6592578177751c3e1f74786b79382cd6008834c9d01ec865b9126a85", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/prometheus-cpp/1.2.4/MODULE.bazel": "0fbe5dcff66311947a3f6b86ebc6a6d9328e31a28413ca864debc4a043f371e5", + "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0.bcr.1/MODULE.bazel": "116ad46e97c1d2aeb020fe2899a342a7e703574ce7c0faf7e4810f938c974a9a", + "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0.bcr.1/source.json": "e813cce2d450708cfcb26e309c5172583a7440776edf354e83e6788c768e5cca", + "https://bcr.bazel.build/modules/prometheus-cpp/1.3.0/MODULE.bazel": "ce82e086bbc0b60267e970f6a54b2ca6d0f22d3eb6633e00e2cc2899c700f3d8", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/23.1/MODULE.bazel": "88b393b3eb4101d18129e5db51847cd40a5517a53e81216144a8c32dfeeca52a", + "https://bcr.bazel.build/modules/protobuf/24.4/MODULE.bazel": "7bc7ce5f2abf36b3b7b7c8218d3acdebb9426aeb35c2257c96445756f970eb12", + "https://bcr.bazel.build/modules/protobuf/25.6/MODULE.bazel": "fc0ae073b47c7ede88b825ff79e64f1c058967c7a87a86cdf4abecd9e0516625", + "https://bcr.bazel.build/modules/protobuf/26.0.bcr.1/MODULE.bazel": "8f04d38c2da40a3715ff6bdce4d32c5981e6432557571482d43a62c31a24c2cf", + "https://bcr.bazel.build/modules/protobuf/26.0.bcr.2/MODULE.bazel": "62e0b84ca727bdeb55a6fe1ef180e6b191bbe548a58305ea1426c158067be534", + "https://bcr.bazel.build/modules/protobuf/26.0/MODULE.bazel": "8402da964092af40097f4a205eec2a33fd4a7748dc43632b7d1629bfd9a2b856", + "https://bcr.bazel.build/modules/protobuf/27.0-rc2/MODULE.bazel": "b2b0dbafd57b6bec0ca9b251da02e628c357dab53a097570aa7d79d020f107cf", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2.bcr.1/MODULE.bazel": "52f4126f63a2f0bbf36b99c2a87648f08467a4eaf92ba726bc7d6a500bbf770c", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/3.19.2/MODULE.bazel": "532ffe5f2186b69fdde039efe6df13ba726ff338c6bc82275ad433013fa10573", + "https://bcr.bazel.build/modules/protobuf/3.19.6/MODULE.bazel": "9233edc5e1f2ee276a60de3eaa47ac4132302ef9643238f23128fea53ea12858", + "https://bcr.bazel.build/modules/protobuf/30.0/MODULE.bazel": "0e736de5d52ad7824113f47e65256a26ee74b689ba859c5447a0663e5a075409", + "https://bcr.bazel.build/modules/protobuf/31.1/MODULE.bazel": "379a389bb330b7b8c1cdf331cc90bf3e13de5614799b3b52cdb7c6f389f6b38e", + "https://bcr.bazel.build/modules/protobuf/34.0.bcr.1/MODULE.bazel": "74e541b0ba877813da786a11707d4e394433c157841d5111a36be0d44b907931", + "https://bcr.bazel.build/modules/protobuf/34.0.bcr.1/source.json": "fc174b3d6215aa14197d1bd779f98bb72d9fd666ee5ec0d6bba6ae986baa4535", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4.bcr.2/MODULE.bazel": "c4bd2c850211ff5b7dadf9d2d0496c1c922fdedc303c775b01dfd3b3efc907ed", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.0.4/MODULE.bazel": "b8913c154b16177990f6126d2d2477d187f9ddc568e95ee3e2d50fc65d2c494a", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1.bcr.1/MODULE.bazel": "4bf09676b62fa587ae07e073420a76ec8766dcce7545e5f8c68cfa8e484b5120", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1.bcr.1/source.json": "c19071ebc4b53b5f1cfab9c66eefaf6e4179eb8a998970d07b1077687e777f29", + "https://bcr.bazel.build/modules/protoc-gen-validate/1.2.1/MODULE.bazel": "52b51f50533ec4fbd5d613cd093773f979ac2e035d954e02ca11de383f502505", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680", + "https://bcr.bazel.build/modules/rapidjson/1.1.0.bcr.20241007/MODULE.bazel": "82fbcb2e42f9e0040e76ccc74c06c3e46dfd33c64ca359293f8b84df0e6dff4c", + "https://bcr.bazel.build/modules/rapidjson/1.1.0.bcr.20241007/source.json": "5c42389ad0e21fc06b95ad7c0b730008271624a2fa3292e0eab5f30e15adeee3", + "https://bcr.bazel.build/modules/re2/2021-09-01/MODULE.bazel": "bcb6b96f3b071e6fe2d8bed9cc8ada137a105f9d2c5912e91d27528b3d123833", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2024-05-01/MODULE.bazel": "55a3f059538f381107824e7d00df5df6d061ba1fb80e874e4909c0f0549e8f3e", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4", + "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_apple/3.13.0/MODULE.bazel": "b4559a2c6281ca3165275bb36c1f0ac74666632adc5bdb680e366de7ce845f43", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366", + "https://bcr.bazel.build/modules/rules_apple/3.5.1/MODULE.bazel": "3d1bbf65ad3692003d36d8a29eff54d4e5c1c5f4bfb60f79e28646a924d9101c", + "https://bcr.bazel.build/modules/rules_buf/0.1.1/MODULE.bazel": "6189aec18a4f7caff599ad41b851ab7645d4f1e114aa6431acf9b0666eb92162", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.5/MODULE.bazel": "be41f87587998fe8890cd82ea4e848ed8eb799e053c224f78f3ff7fe1a1d9b74", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.10.1/MODULE.bazel": "b9527010e5fef060af92b6724edb3691970a5b1f76f74b21d39f7d433641be60", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.15.1/MODULE.bazel": "c2c60d26c79fda484acb95cdbec46e89d6b28b4845cb277160ce1e0c8622bb88", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.15.1/source.json": "a161811a63ba8a859086da3b7ff3ad04f2e9c255d7727b41087103fc0eb22f55", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_go/0.33.0/MODULE.bazel": "a2b11b64cd24bf94f57454f53288a5dacfe6cb86453eee7761b7637728c1910c", + "https://bcr.bazel.build/modules/rules_go/0.38.1/MODULE.bazel": "fb8e73dd3b6fc4ff9d260ceacd830114891d49904f5bda1c16bc147bcc254f71", + "https://bcr.bazel.build/modules/rules_go/0.39.1/MODULE.bazel": "d34fb2a249403a5f4339c754f1e63dc9e5ad70b47c5e97faee1441fc6636cd61", + "https://bcr.bazel.build/modules/rules_go/0.41.0/MODULE.bazel": "55861d8e8bb0e62cbd2896f60ff303f62ffcb0eddb74ecb0e5c0cbe36fc292c8", + "https://bcr.bazel.build/modules/rules_go/0.42.0/MODULE.bazel": "8cfa875b9aa8c6fce2b2e5925e73c1388173ea3c32a0db4d2b4804b453c14270", + "https://bcr.bazel.build/modules/rules_go/0.45.1/MODULE.bazel": "6d7884f0edf890024eba8ab31a621faa98714df0ec9d512389519f0edff0281a", + "https://bcr.bazel.build/modules/rules_go/0.46.0/MODULE.bazel": "3477df8bdcc49e698b9d25f734c4f3a9f5931ff34ee48a2c662be168f5f2d3fd", + "https://bcr.bazel.build/modules/rules_go/0.48.0/MODULE.bazel": "d00ebcae0908ee3f5e6d53f68677a303d6d59a77beef879598700049c3980a03", + "https://bcr.bazel.build/modules/rules_go/0.50.1/MODULE.bazel": "b91a308dc5782bb0a8021ad4330c81fea5bda77f96b9e4c117b9b9c8f6665ee0", + "https://bcr.bazel.build/modules/rules_go/0.59.0/MODULE.bazel": "b7e43e7414a3139a7547d1b4909b29085fbe5182b6c58cbe1ed4c6272815aeae", + "https://bcr.bazel.build/modules/rules_go/0.61.1/MODULE.bazel": "b599cc67f98e8dbe040631129fbd23f190a557f7be506d4781619d0fd4dbbbec", + "https://bcr.bazel.build/modules/rules_go/0.61.1/source.json": "ff52d46fca8e2ac87c610c11f05c3a9f0fa08dc4294664c6a31449092409c5aa", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.1.0/MODULE.bazel": "324b6478b0343a3ce7a9add8586ad75d24076d6d43d2f622990b9c1cfd8a1b15", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/5.5.0/MODULE.bazel": "486ad1aa15cdc881af632b4b1448b0136c76025a1fe1ad1b65c5899376b83a50", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.3.0/MODULE.bazel": "a97c7678c19f236a956ad260d59c86e10a463badb7eb2eda787490f4c969b963", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.1.0/MODULE.bazel": "30d9135a2b6561c761bd67bd4990da591e6bdc128790ce3e7afd6a3558b2fb64", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.4.0/MODULE.bazel": "a592852f8a3dd539e82ee6542013bf2cadfc4c6946be8941e189d224500a8934", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.0/MODULE.bazel": "37c93a5a78d32e895d52f86a8d0416176e915daabd029ccb5594db422e87c495", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/0.0.8/MODULE.bazel": "5669c6fe49b5134dbf534db681ad3d67a2d49cfc197e4a95f1ca2fd7f3aebe96", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_nodejs/5.8.2/MODULE.bazel": "6bc03c8f37f69401b888023bf511cb6ee4781433b0cb56236b2e55a21e3a026a", + "https://bcr.bazel.build/modules/rules_perl/0.2.4/MODULE.bazel": "5f5af7be4bf5fb88d91af7469518f0fd2161718aefc606188f7cd51f436ca938", + "https://bcr.bazel.build/modules/rules_perl/0.2.4/source.json": "574317d6b3c7e4843fe611b76f15e62a1889949f5570702e1ee4ad335ea3c339", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", + "https://bcr.bazel.build/modules/rules_proto/6.0.0/MODULE.bazel": "b531d7f09f58dce456cd61b4579ce8c86b38544da75184eadaf0a7cb7966453f", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_proto_grpc/5.8.0/MODULE.bazel": "38e2acb9aa480a04c780fa4b11bfaae0fa16e05f85f6d8fc32e044bad683ed86", + "https://bcr.bazel.build/modules/rules_proto_grpc/5.8.0/source.json": "142d5c5dd650d0f817936835738daa7df2256dfb33c247163b600ab28cba31d1", + "https://bcr.bazel.build/modules/rules_proto_grpc_python/5.8.0/MODULE.bazel": "17aba21e622ae0fb8189911844583d01eb12d708e63ea3a83a36c27afb908dcb", + "https://bcr.bazel.build/modules/rules_proto_grpc_python/5.8.0/source.json": "989fc84a837e8dcb462905f0225bb737b7317cd93f87e9221e67c27b33149f70", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.20.0/MODULE.bazel": "bfe14d17f20e3fe900b9588f526f52c967a6f281e47a1d6b988679bd15082286", + "https://bcr.bazel.build/modules/rules_python/0.22.0/MODULE.bazel": "b8057bafa11a9e0f4b08fc3b7cd7bee0dcbccea209ac6fc9a3ff051cd03e19e9", + "https://bcr.bazel.build/modules/rules_python/0.22.1/MODULE.bazel": "26114f0c0b5e93018c0c066d6673f1a2c3737c7e90af95eff30cfee38d0bbac7", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.29.0/MODULE.bazel": "2ac8cd70524b4b9ec49a0b8284c79e4cd86199296f82f6e0d5da3f783d660c82", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.32.2/MODULE.bazel": "01052470fc30b49de91fb8483d26bea6f664500cfad0b078d4605b03e3a83ed4", + "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", + "https://bcr.bazel.build/modules/rules_python/0.37.1/MODULE.bazel": "3faeb2d9fa0a81f8980643ee33f212308f4d93eea4b9ce6f36d0b742e71e9500", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.2.0/MODULE.bazel": "5aeeb48b2a6c19d668b48adf2b8a2b209a6310c230db0ce77450f148a89846e4", + "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8", + "https://bcr.bazel.build/modules/rules_python/1.6.3/MODULE.bazel": "a7b80c42cb3de5ee2a5fa1abc119684593704fcd2fec83165ebe615dec76574f", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_rust/0.51.0/MODULE.bazel": "2b6d1617ac8503bfdcc0e4520c20539d4bba3a691100bee01afe193ceb0310f9", + "https://bcr.bazel.build/modules/rules_rust/0.66.0/MODULE.bazel": "86ef763a582f4739a27029bdcc6c562258ed0ea6f8d58294b049e215ceb251b3", + "https://bcr.bazel.build/modules/rules_rust/0.66.0/source.json": "5c2252a61ccc19b4e420c7c06429c8f51d8edd7b743dcb4b60571e7d40b5aa57", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.4.0/MODULE.bazel": "0f8f11bb3cd11755f0b48c1de0bbcf62b4b34421023aa41a2fc74ef68d9584f0", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/1.18.0/MODULE.bazel": "a6aba73625d0dc64c7b4a1e831549b6e375fbddb9d2dde9d80c9de6ec45b24c9", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186", + "https://bcr.bazel.build/modules/stardoc/0.5.0/MODULE.bazel": "f9f1f46ba8d9c3362648eea571c6f9100680efc44913618811b58cc9c02cd678", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.4/MODULE.bazel": "6569966df04610b8520957cb8e97cf2e9faac2c0309657c537ab51c16c18a2a4", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.6.2/MODULE.bazel": "7060193196395f5dd668eda046ccbeacebfd98efc77fed418dbe2b82ffaa39fd", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/tar.bzl/0.2.1/MODULE.bazel": "52d1c00a80a8cc67acbd01649e83d8dd6a9dc426a6c0b754a04fe8c219c76468", + "https://bcr.bazel.build/modules/tar.bzl/0.5.1/MODULE.bazel": "7c2eb3dcfc53b0f3d6f9acdfd911ca803eaf92aadf54f8ca6e4c1f3aee288351", + "https://bcr.bazel.build/modules/toolchains_protoc/0.5.0/MODULE.bazel": "e649dcd74790d8b186517588c827a777dfa67acfc4cbd733721c4be143ea107f", + "https://bcr.bazel.build/modules/toolchains_protoc/0.5.0/source.json": "9152bf33827a44f796f94f486252fc0128d9efc2413246ebb09a234bb628a846", + "https://bcr.bazel.build/modules/upb/0.0.0-20211020-160625a/MODULE.bazel": "6cced416be2dc5b9c05efd5b997049ba795e5e4e6fafbe1624f4587767638928", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/upb/0.0.0-20230516-61a97ef/MODULE.bazel": "c0df5e35ad55e264160417fd0875932ee3c9dda63d9fccace35ac62f45e1b6f9", + "https://bcr.bazel.build/modules/upb/0.0.0-20230907-e7430e6/MODULE.bazel": "3a7dedadf70346e678dc059dbe44d05cbf3ab17f1ce43a1c7a42edc7cbf93fd9", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/MODULE.bazel": "cea509976a77e34131411684ef05a1d6ad194dd71a8d5816643bc5b0af16dc0f", + "https://bcr.bazel.build/modules/xds/0.0.0-20240423-555b57e/source.json": "7227e1fcad55f3f3cab1a08691ecd753cb29cc6380a47bc650851be9f9ad6d20", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/MODULE.bazel": "9039681f9bcb8958ee2c87ffc74bdafba9f4369096a2b5634b88abc0eaefa072", + "https://bcr.bazel.build/modules/yq.bzl/0.1.1/source.json": "2d2bad780a9f2b9195a4a370314d2c17ae95eaa745cefc2e12fbc49759b15aa3", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.2.12/MODULE.bazel": "3b1a8834ada2a883674be8cbd36ede1b6ec481477ada359cd2d3ddc562340b27", + "https://bcr.bazel.build/modules/zlib/1.2.13/MODULE.bazel": "aa6deb1b83c18ffecd940c4119aff9567cd0a671d7bba756741cb2ef043a29d5", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.1/MODULE.bazel": "6a9fe6e3fc865715a7be9823ce694ceb01e364c35f7a846bf0d2b34762bc066b", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.3/MODULE.bazel": "af322bc08976524477c79d1e45e241b6efbeb918c497e8840b8ab116802dda79", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198", + "https://bcr.bazel.build/modules/zlib/1.3/MODULE.bazel": "6a9c02f19a24dcedb05572b2381446e27c272cd383aed11d41d99da9e3167a72" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + }, + "@@rules_go+//go:extensions.bzl%go_sdk": { + "1.19.1": { + "darwin_amd64": [ + "go1.19.1.darwin-amd64.tar.gz", + "b2828a2b05f0d2169afc74c11ed010775bf7cf0061822b275697b2f470495fb7" + ], + "darwin_arm64": [ + "go1.19.1.darwin-arm64.tar.gz", + "e46aecce83a9289be16ce4ba9b8478a5b89b8aa0230171d5c6adbc0c66640548" + ], + "freebsd_386": [ + "go1.19.1.freebsd-386.tar.gz", + "cfaca8c1d5784d2bc21e12d8893cfd2dc885a60db4c1a9a95e4ffc694d0925ce" + ], + "freebsd_amd64": [ + "go1.19.1.freebsd-amd64.tar.gz", + "db5b8f232e12c655cc6cde6af1adf4d27d842541807802d747c86161e89efa0a" + ], + "linux_386": [ + "go1.19.1.linux-386.tar.gz", + "9acc57342400c5b0c2da07b5b01b50da239dd4a7fad41a1fb56af8363ef4133f" + ], + "linux_amd64": [ + "go1.19.1.linux-amd64.tar.gz", + "acc512fbab4f716a8f97a8b3fbaa9ddd39606a28be6c2515ef7c6c6311acffde" + ], + "linux_arm64": [ + "go1.19.1.linux-arm64.tar.gz", + "49960821948b9c6b14041430890eccee58c76b52e2dbaafce971c3c38d43df9f" + ], + "linux_armv6l": [ + "go1.19.1.linux-armv6l.tar.gz", + "efe93f5671621ee84ce5e262e1e21acbc72acefbaba360f21778abd083d4ad16" + ], + "linux_ppc64le": [ + "go1.19.1.linux-ppc64le.tar.gz", + "4137984aa353de9c5ec1bd8fb3cd00a0624b75eafa3d4ec13d2f3f48261dba2e" + ], + "linux_s390x": [ + "go1.19.1.linux-s390x.tar.gz", + "ca1005cc80a3dd726536b4c6ea5fef0318939351ff273eff420bd66a377c74eb" + ], + "windows_386": [ + "go1.19.1.windows-386.zip", + "bc7043e7a9a8d34aacd06f8c2f70e166d1d148f6800814cff790c45b9ab31cee" + ], + "windows_amd64": [ + "go1.19.1.windows-amd64.zip", + "b33584c1d93b0e9c783de876b7aa99d3018bdeccd396aeb6d516a74e9d88d55f" + ], + "windows_arm64": [ + "go1.19.1.windows-arm64.zip", + "d8cf3f04762fa7d5d9c82dfa15b5adaae2404463af3bc8dcd7f89837512501fe" + ] + }, + "1.20.2": { + "darwin_amd64": [ + "go1.20.2.darwin-amd64.tar.gz", + "c93b8ced9517d07e1cd4c362c6e2d5242cb139e29b417a328fbf19aded08764c" + ], + "darwin_arm64": [ + "go1.20.2.darwin-arm64.tar.gz", + "7343c87f19e79c0063532e82e1c4d6f42175a32d99f7a4d15e658e88bf97f885" + ], + "freebsd_386": [ + "go1.20.2.freebsd-386.tar.gz", + "14f9be2004e042b3a64d0facb0c020756a9084a5c7333e33b0752b393b6016ea" + ], + "freebsd_amd64": [ + "go1.20.2.freebsd-amd64.tar.gz", + "b41b67b4f1b56797a7cecf6ee7f47fcf4f93960b2788a3683c07dd009d30b2a4" + ], + "linux_386": [ + "go1.20.2.linux-386.tar.gz", + "ee240ed33ae57504c41f04c12236aeaa17fbeb6ea9fcd096cd9dc7a89d10d4db" + ], + "linux_amd64": [ + "go1.20.2.linux-amd64.tar.gz", + "4eaea32f59cde4dc635fbc42161031d13e1c780b87097f4b4234cfce671f1768" + ], + "linux_arm64": [ + "go1.20.2.linux-arm64.tar.gz", + "78d632915bb75e9a6356a47a42625fd1a785c83a64a643fedd8f61e31b1b3bef" + ], + "linux_armv6l": [ + "go1.20.2.linux-armv6l.tar.gz", + "d79d56bafd6b52b8d8cbe3f8e967caaac5383a23d7a4fa9ac0e89778cd16a076" + ], + "linux_ppc64le": [ + "go1.20.2.linux-ppc64le.tar.gz", + "850564ddb760cb703db63bf20182dc4407abd2ff090a95fa66d6634d172fd095" + ], + "linux_s390x": [ + "go1.20.2.linux-s390x.tar.gz", + "8da24c5c4205fe8115f594237e5db7bcb1d23df67bc1fa9a999954b1976896e8" + ], + "windows_386": [ + "go1.20.2.windows-386.zip", + "31838b291117495bbb93683603e98d5118bfabd2eb318b4d07540bfd524bab86" + ], + "windows_amd64": [ + "go1.20.2.windows-amd64.zip", + "fe439f0e438f7555a7f5f7194ddb6f4a07b0de1fa414385d19f2aeb26d9f43db" + ], + "windows_arm64": [ + "go1.20.2.windows-arm64.zip", + "ac5010c8b8b22849228a8dea698d58b9c7be2195d30c6d778cce0f709858fa64" + ] + }, + "1.21.1": { + "aix_ppc64": [ + "go1.21.1.aix-ppc64.tar.gz", + "ad5c160e2ff7989f818572f2391ca000d587569ff68d8591a695382a863719d0" + ], + "darwin_amd64": [ + "go1.21.1.darwin-amd64.tar.gz", + "809f5b0ef4f7dcdd5f51e9630a5b2e5a1006f22a047126d61560cdc365678a19" + ], + "darwin_arm64": [ + "go1.21.1.darwin-arm64.tar.gz", + "ffd40391a1e995855488b008ad9326ff8c2e81803a6e80894401003bae47fcf1" + ], + "dragonfly_amd64": [ + "go1.21.1.dragonfly-amd64.tar.gz", + "646f5db8ba479032aea07c597ccd187bc75c161f18e7a1785c62ab8cb103cb3e" + ], + "freebsd_386": [ + "go1.21.1.freebsd-386.tar.gz", + "9919a9a4dc82371aba3da5b7c830bcb6249fc1502cd26d959eb340a60e41ee01" + ], + "freebsd_amd64": [ + "go1.21.1.freebsd-amd64.tar.gz", + "2571f10f6047e04d87c1f5986a05e5e8f7b511faf98803ef12b66d563845d2a1" + ], + "freebsd_arm64": [ + "go1.21.1.freebsd-arm64.tar.gz", + "4946118e72deccf194a9bfcfedbafe52e45b5fe9441fd3acfced760b27a20f9a" + ], + "freebsd_armv6l": [ + "go1.21.1.freebsd-arm.tar.gz", + "6d4dab314ed6adff68a74e3bce516e36fd89c7bf4523c2c105f96e04933fc982" + ], + "freebsd_riscv64": [ + "go1.21.1.freebsd-riscv64.tar.gz", + "591bd28e2dac581facb20c1529f8c29590d7eaaccbcdc93d12a234461b7bfe89" + ], + "illumos_amd64": [ + "go1.21.1.illumos-amd64.tar.gz", + "829548b591675df5f113317ac011bfc3381da7a96bd6a1c748694370818b4497" + ], + "linux_386": [ + "go1.21.1.linux-386.tar.gz", + "b93850666cdadbd696a986cf7b03111fe99db8c34a9aaa113d7c96d0081e1901" + ], + "linux_amd64": [ + "go1.21.1.linux-amd64.tar.gz", + "b3075ae1ce5dab85f89bc7905d1632de23ca196bd8336afd93fa97434cfa55ae" + ], + "linux_arm64": [ + "go1.21.1.linux-arm64.tar.gz", + "7da1a3936a928fd0b2602ed4f3ef535b8cd1990f1503b8d3e1acc0fa0759c967" + ], + "linux_armv6l": [ + "go1.21.1.linux-armv6l.tar.gz", + "f3716a43f59ae69999841d6007b42c9e286e8d8ce470656fb3e70d7be2d7ca85" + ], + "linux_loong64": [ + "go1.21.1.linux-loong64.tar.gz", + "2273cc4ed398d8b341aee01fd62f3845045b2f439b84b28720a7f3d3552f5d41" + ], + "linux_mips": [ + "go1.21.1.linux-mips.tar.gz", + "2ba529210bae7ba7b8c48b0084f713b41e8c109ae75637820fd5b72be9f3faff" + ], + "linux_mips64": [ + "go1.21.1.linux-mips64.tar.gz", + "f2cef18856b17cc5c81cc8b0a35b1ca08d2b04d4b88adc07d190560cb464e2f6" + ], + "linux_mips64le": [ + "go1.21.1.linux-mips64le.tar.gz", + "3aa007a41f533b50eae2491bbd29926ada09357367a8aa05e7e50ec50c78acf9" + ], + "linux_mipsle": [ + "go1.21.1.linux-mipsle.tar.gz", + "c0059f49c3ea31bebe972f47d460d49addb78641081a7000e79e730464bcce95" + ], + "linux_ppc64": [ + "go1.21.1.linux-ppc64.tar.gz", + "6871fd3e6dae3897112dc4a98988406461ef1018f4a17c87689d977eba8dbf20" + ], + "linux_ppc64le": [ + "go1.21.1.linux-ppc64le.tar.gz", + "eddf018206f8a5589bda75252b72716d26611efebabdca5d0083ec15e9e41ab7" + ], + "linux_riscv64": [ + "go1.21.1.linux-riscv64.tar.gz", + "fac64ed26e003f49f1d77f6d2c4cf951422aecbce12232d9ec1bf4585fc44ee1" + ], + "linux_s390x": [ + "go1.21.1.linux-s390x.tar.gz", + "a83b3e8eb4dbf76294e773055eb51397510ff4d612a247bad9903560267bba6d" + ], + "netbsd_386": [ + "go1.21.1.netbsd-386.tar.gz", + "c919f2ba4755e6aebeea6e7f19abf1c5ed13d37c2930867d10a86adfd0686eba" + ], + "netbsd_amd64": [ + "go1.21.1.netbsd-amd64.tar.gz", + "b2dd9913063caa2b5f960e8ebc6c225293b4155e9ebd88d43afd55bb81ca8931" + ], + "netbsd_arm64": [ + "go1.21.1.netbsd-arm64.tar.gz", + "5d245ac932d421389c1bfcedc38733367ae407dbdc162a6e7bfca5677fb15269" + ], + "netbsd_armv6l": [ + "go1.21.1.netbsd-arm.tar.gz", + "4d1756a9845917b07c8ec4999b8e019a2bd2a8b3d5d16da5da0ef3ce84d2139c" + ], + "openbsd_386": [ + "go1.21.1.openbsd-386.tar.gz", + "ce094e551227522aaf3111a94a7f115c5a2b4f862c42d349026503544a40fb96" + ], + "openbsd_amd64": [ + "go1.21.1.openbsd-amd64.tar.gz", + "321c31c42131db2bd0e9d67dd98450f55b281e8e6d8eb681594c39e6688ccbb2" + ], + "openbsd_arm64": [ + "go1.21.1.openbsd-arm64.tar.gz", + "4d65bcb383895be8d6c05507f2b410e15448b0610e1f5fb23ece9ff4e045f7a8" + ], + "openbsd_armv6l": [ + "go1.21.1.openbsd-arm.tar.gz", + "481254b99b9861b65c9eaab137af15311fca618f9f17f2bd872795368c726666" + ], + "plan9_386": [ + "go1.21.1.plan9-386.tar.gz", + "93ea25cbb8063cd4d5917b8ca58a72c26b6cb9e6c1d785e30867ae8ad8290484" + ], + "plan9_amd64": [ + "go1.21.1.plan9-amd64.tar.gz", + "14d61633059651d12cc02b2f53739016f1b07063a4140147e44a196413950553" + ], + "plan9_armv6l": [ + "go1.21.1.plan9-arm.tar.gz", + "adfacbcfb5e7415802187fb6aa8b5397d589fdedcd5d0eac3b86352da7390603" + ], + "solaris_amd64": [ + "go1.21.1.solaris-amd64.tar.gz", + "b86a223e52e41de3ff180f90f1d7e705d30f96271f9a81005e20f25be2658990" + ], + "windows_386": [ + "go1.21.1.windows-386.zip", + "170256c820f466f29d64876f25f4dfa4029ed9902a0a9095d8bd603aecf4d83b" + ], + "windows_amd64": [ + "go1.21.1.windows-amd64.zip", + "10a4f5b63215d11d1770453733dbcbf024f3f74872f84e28d7ea59f0250316c6" + ], + "windows_arm64": [ + "go1.21.1.windows-arm64.zip", + "41135ce6e0ced4bc1e459cb96bd4090c9dc2062e24179c3f337d855af9b560ef" + ], + "windows_armv6l": [ + "go1.21.1.windows-arm.zip", + "d7a2472999a80dbf6bbcb6783a2b4299916055473263117295022f18e7fad487" + ] + }, + "1.25.0": { + "aix_ppc64": [ + "go1.25.0.aix-ppc64.tar.gz", + "e5234a7dac67bc86c528fe9752fc9d63557918627707a733ab4cac1a6faed2d4" + ], + "darwin_amd64": [ + "go1.25.0.darwin-amd64.tar.gz", + "5bd60e823037062c2307c71e8111809865116714d6f6b410597cf5075dfd80ef" + ], + "darwin_arm64": [ + "go1.25.0.darwin-arm64.tar.gz", + "544932844156d8172f7a28f77f2ac9c15a23046698b6243f633b0a0b00c0749c" + ], + "dragonfly_amd64": [ + "go1.25.0.dragonfly-amd64.tar.gz", + "5ed3cf9a810a1483822538674f1336c06b51aa1b94d6d545a1a0319a48177120" + ], + "freebsd_386": [ + "go1.25.0.freebsd-386.tar.gz", + "abea5d5c6697e6b5c224731f2158fe87c602996a2a233ac0c4730cd57bf8374e" + ], + "freebsd_amd64": [ + "go1.25.0.freebsd-amd64.tar.gz", + "86e6fe0a29698d7601c4442052dac48bd58d532c51cccb8f1917df648138730b" + ], + "freebsd_arm": [ + "go1.25.0.freebsd-arm.tar.gz", + "d90b78e41921f72f30e8bbc81d9dec2cff7ff384a33d8d8debb24053e4336bfe" + ], + "freebsd_arm64": [ + "go1.25.0.freebsd-arm64.tar.gz", + "451d0da1affd886bfb291b7c63a6018527b269505db21ce6e14724f22ab0662e" + ], + "freebsd_riscv64": [ + "go1.25.0.freebsd-riscv64.tar.gz", + "7b565f76bd8bda46549eeaaefe0e53b251e644c230577290c0f66b1ecdb3cdbe" + ], + "illumos_amd64": [ + "go1.25.0.illumos-amd64.tar.gz", + "b1e1fdaab1ad25aa1c08d7a36c97d45d74b98b89c3f78c6d2145f77face54a2c" + ], + "linux_386": [ + "go1.25.0.linux-386.tar.gz", + "8c602dd9d99bc9453b3995d20ce4baf382cc50855900a0ece5de9929df4a993a" + ], + "linux_amd64": [ + "go1.25.0.linux-amd64.tar.gz", + "2852af0cb20a13139b3448992e69b868e50ed0f8a1e5940ee1de9e19a123b613" + ], + "linux_arm64": [ + "go1.25.0.linux-arm64.tar.gz", + "05de75d6994a2783699815ee553bd5a9327d8b79991de36e38b66862782f54ae" + ], + "linux_armv6l": [ + "go1.25.0.linux-armv6l.tar.gz", + "a5a8f8198fcf00e1e485b8ecef9ee020778bf32a408a4e8873371bfce458cd09" + ], + "linux_loong64": [ + "go1.25.0.linux-loong64.tar.gz", + "cab86b1cf761b1cb3bac86a8877cfc92e7b036fc0d3084123d77013d61432afc" + ], + "linux_mips": [ + "go1.25.0.linux-mips.tar.gz", + "d66b6fb74c3d91b9829dc95ec10ca1f047ef5e89332152f92e136cf0e2da5be1" + ], + "linux_mips64": [ + "go1.25.0.linux-mips64.tar.gz", + "4082e4381a8661bc2a839ff94ba3daf4f6cde20f8fb771b5b3d4762dc84198a2" + ], + "linux_mips64le": [ + "go1.25.0.linux-mips64le.tar.gz", + "70002c299ec7f7175ac2ef673b1b347eecfa54ae11f34416a6053c17f855afcc" + ], + "linux_mipsle": [ + "go1.25.0.linux-mipsle.tar.gz", + "b00a3a39eff099f6df9f1c7355bf28e4589d0586f42d7d4a394efb763d145a73" + ], + "linux_ppc64": [ + "go1.25.0.linux-ppc64.tar.gz", + "df166f33bd98160662560a72ff0b4ba731f969a80f088922bddcf566a88c1ec1" + ], + "linux_ppc64le": [ + "go1.25.0.linux-ppc64le.tar.gz", + "0f18a89e7576cf2c5fa0b487a1635d9bcbf843df5f110e9982c64df52a983ad0" + ], + "linux_riscv64": [ + "go1.25.0.linux-riscv64.tar.gz", + "c018ff74a2c48d55c8ca9b07c8e24163558ffec8bea08b326d6336905d956b67" + ], + "linux_s390x": [ + "go1.25.0.linux-s390x.tar.gz", + "34e5a2e19f2292fbaf8783e3a241e6e49689276aef6510a8060ea5ef54eee408" + ], + "netbsd_386": [ + "go1.25.0.netbsd-386.tar.gz", + "f8586cdb7aa855657609a5c5f6dbf523efa00c2bbd7c76d3936bec80aa6c0aba" + ], + "netbsd_amd64": [ + "go1.25.0.netbsd-amd64.tar.gz", + "ae8dc1469385b86a157a423bb56304ba45730de8a897615874f57dd096db2c2a" + ], + "netbsd_arm": [ + "go1.25.0.netbsd-arm.tar.gz", + "1ff7e4cc764425fc9dd6825eaee79d02b3c7cafffbb3691687c8d672ade76cb7" + ], + "netbsd_arm64": [ + "go1.25.0.netbsd-arm64.tar.gz", + "e1b310739f26724216aa6d7d7208c4031f9ff54c9b5b9a796ddc8bebcb4a5f16" + ], + "openbsd_386": [ + "go1.25.0.openbsd-386.tar.gz", + "4802a9b20e533da91adb84aab42e94aa56cfe3e5475d0550bed3385b182e69d8" + ], + "openbsd_amd64": [ + "go1.25.0.openbsd-amd64.tar.gz", + "c016cd984bebe317b19a4f297c4f50def120dc9788490540c89f28e42f1dabe1" + ], + "openbsd_arm": [ + "go1.25.0.openbsd-arm.tar.gz", + "a1e31d0bf22172ddde42edf5ec811ef81be43433df0948ece52fecb247ccfd8d" + ], + "openbsd_arm64": [ + "go1.25.0.openbsd-arm64.tar.gz", + "343ea8edd8c218196e15a859c6072d0dd3246fbbb168481ab665eb4c4140458d" + ], + "openbsd_ppc64": [ + "go1.25.0.openbsd-ppc64.tar.gz", + "694c14da1bcaeb5e3332d49bdc2b6d155067648f8fe1540c5de8f3cf8e157154" + ], + "openbsd_riscv64": [ + "go1.25.0.openbsd-riscv64.tar.gz", + "aa510ad25cf54c06cd9c70b6d80ded69cb20188ac6e1735655eef29ff7e7885f" + ], + "plan9_386": [ + "go1.25.0.plan9-386.tar.gz", + "46f8cef02086cf04bf186c5912776b56535178d4cb319cd19c9fdbdd29231986" + ], + "plan9_amd64": [ + "go1.25.0.plan9-amd64.tar.gz", + "29b34391d84095e44608a228f63f2f88113a37b74a79781353ec043dfbcb427b" + ], + "plan9_arm": [ + "go1.25.0.plan9-arm.tar.gz", + "0a047107d13ebe7943aaa6d54b1d7bbd2e45e68ce449b52915a818da715799c2" + ], + "solaris_amd64": [ + "go1.25.0.solaris-amd64.tar.gz", + "9977f9e4351984364a3b2b78f8b88bfd1d339812356d5237678514594b7d3611" + ], + "windows_386": [ + "go1.25.0.windows-386.zip", + "df9f39db82a803af0db639e3613a36681ab7a42866b1384b3f3a1045663961a7" + ], + "windows_amd64": [ + "go1.25.0.windows-amd64.zip", + "89efb4f9b30812eee083cc1770fdd2913c14d301064f6454851428f9707d190b" + ], + "windows_arm64": [ + "go1.25.0.windows-arm64.zip", + "27bab004c72b3d7bd05a69b6ec0fc54a309b4b78cc569dd963d8b3ec28bfdb8c" + ] + } + } + } +} diff --git a/examples/debugger/.bazelrc b/examples/debugger/.bazelrc index 58eeb805d..b60d2c72a 100644 --- a/examples/debugger/.bazelrc +++ b/examples/debugger/.bazelrc @@ -1,4 +1,3 @@ -common --incompatible_enable_cc_toolchain_resolution common --@llvm//config:experimental_stub_libgcc_s common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=false diff --git a/examples/debugger/MODULE.bazel.lock b/examples/debugger/MODULE.bazel.lock new file mode 100644 index 000000000..5d1fffb69 --- /dev/null +++ b/examples/debugger/MODULE.bazel.lock @@ -0,0 +1,1387 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.0/MODULE.bazel": "e8ca15cb2639c5f12183db6dcb678735555d0cdd739b32a0418b6532b5e565f8", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/MODULE.bazel": "e2c890c8a515d6bca9c66d47718aa9e44b458fde64ec7204b8030bf2d349058c", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/source.json": "9e84e115c20e14652c5c21401ae85ff4daa8702e265b5c0b3bf89353f17aa212", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/llvm/0.7.1/MODULE.bazel": "74ac75efc6385b8a95d83bfa36ad399500f747c3d0f50287f9b6f9e854ec4814", + "https://bcr.bazel.build/modules/llvm/0.7.1/source.json": "0cac59d04dafa0ca1f70ea21cf1569e034ef8736c2c7510e834a9e8141d7e631", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/tar.bzl/0.9.0/MODULE.bazel": "452a22d7f02b1c9d7a22ab25edf20f46f3e1101f0f67dc4bfbf9a474ddf02445", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/dev_deps/.bazelrc b/examples/dev_deps/.bazelrc index eb4f983f6..91cdb66a3 100644 --- a/examples/dev_deps/.bazelrc +++ b/examples/dev_deps/.bazelrc @@ -1,4 +1,3 @@ -common --incompatible_enable_cc_toolchain_resolution common --@llvm//config:experimental_stub_libgcc_s common --@rules_cc//cc/toolchains/args/archiver_flags:use_libtool_on_macos=false diff --git a/examples/dev_deps/MODULE.bazel.lock b/examples/dev_deps/MODULE.bazel.lock new file mode 100644 index 000000000..5d1fffb69 --- /dev/null +++ b/examples/dev_deps/MODULE.bazel.lock @@ -0,0 +1,1387 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.42.0/MODULE.bazel": "e8ca15cb2639c5f12183db6dcb678735555d0cdd739b32a0418b6532b5e565f8", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/MODULE.bazel": "e2c890c8a515d6bca9c66d47718aa9e44b458fde64ec7204b8030bf2d349058c", + "https://bcr.bazel.build/modules/bazel_lib/3.2.2/source.json": "9e84e115c20e14652c5c21401ae85ff4daa8702e265b5c0b3bf89353f17aa212", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/llvm/0.7.1/MODULE.bazel": "74ac75efc6385b8a95d83bfa36ad399500f747c3d0f50287f9b6f9e854ec4814", + "https://bcr.bazel.build/modules/llvm/0.7.1/source.json": "0cac59d04dafa0ca1f70ea21cf1569e034ef8736c2c7510e834a9e8141d7e631", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.7.0/MODULE.bazel": "d01f995ecd137abf30238ad9ce97f8fc3ac57289c8b24bd0bf53324d937a14f8", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/tar.bzl/0.9.0/MODULE.bazel": "452a22d7f02b1c9d7a22ab25edf20f46f3e1101f0f67dc4bfbf9a474ddf02445", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.12.0/MODULE.bazel": "b573395fe63aef4299ba095173e2f62ccfee5ad9bbf7acaa95dba73af9fc2b38", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/django/MODULE.bazel.lock b/examples/django/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/django/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/multi_version/MODULE.bazel.lock b/examples/multi_version/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/multi_version/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/protobuf/.bazelrc b/examples/protobuf/.bazelrc index af10b7cbc..a04069c0c 100644 --- a/examples/protobuf/.bazelrc +++ b/examples/protobuf/.bazelrc @@ -1,6 +1,3 @@ # Build without the bytes on CI. common:ci --remote_download_outputs=minimal common:ci --nobuild_runfile_links - -# This example does not commit a MODULE.bazel.lock — see .gitignore. -common:ci --lockfile_mode=off diff --git a/examples/protobuf/MODULE.bazel.lock b/examples/protobuf/MODULE.bazel.lock new file mode 100644 index 000000000..fb0ac679f --- /dev/null +++ b/examples/protobuf/MODULE.bazel.lock @@ -0,0 +1,1414 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.2/MODULE.bazel": "73939767a4686cd9a520d16af5ab440071ed75cec1a876bf2fcfaf1f71987a16", + "https://bcr.bazel.build/modules/abseil-cpp/20250127.1/MODULE.bazel": "c4a89e7ceb9bf1e25cf84a9f830ff6b817b72874088bf5141b314726e46a57c1", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/MODULE.bazel": "d209fdb6f36ffaf61c509fcc81b19e81b411a999a934a032e10cd009a0226215", + "https://bcr.bazel.build/modules/abseil-cpp/20250512.1/source.json": "d725d73707d01bb46ab3ca59ba408b8e9bd336642ca77a2269d4bfb8bbfd413d", + "https://bcr.bazel.build/modules/apple_support/1.11.1/MODULE.bazel": "1843d7cd8a58369a444fc6000e7304425fba600ff641592161d9f15b179fb896", + "https://bcr.bazel.build/modules/apple_support/1.15.1/MODULE.bazel": "a0556fefca0b1bb2de8567b8827518f94db6a6e7e7d632b4c48dc5f865bc7c85", + "https://bcr.bazel.build/modules/apple_support/1.23.1/MODULE.bazel": "53763fed456a968cf919b3240427cf3a9d5481ec5466abc9d5dc51bc70087442", + "https://bcr.bazel.build/modules/apple_support/1.23.1/source.json": "d888b44312eb0ad2c21a91d026753f330caa48a25c9b2102fae75eb2b0dcfdd2", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.27.0/MODULE.bazel": "621eeee06c4458a9121d1f104efb80f39d34deff4984e778359c60eaf1a8cb65", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.3.0/MODULE.bazel": "cdcafe83ec318cda34e02948e81d790aab8df7a929cec6f6969f13a489ccecd9", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.33.0/MODULE.bazel": "8b8dc9d2a4c88609409c3191165bccec0e4cb044cd7a72ccbe826583303459f6", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/googletest/1.15.2/MODULE.bazel": "6de1edc1d26cafb0ea1a6ab3f4d4192d91a312fd2d360b63adaa213cd00b2108", + "https://bcr.bazel.build/modules/googletest/1.17.0/MODULE.bazel": "dbec758171594a705933a29fcf69293d2468c49ec1f2ebca65c36f504d72df46", + "https://bcr.bazel.build/modules/googletest/1.17.0/source.json": "38e4454b25fc30f15439c0378e57909ab1fd0a443158aa35aec685da727cd713", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/MODULE.bazel": "2f8d20d3b7d54143213c4dfc3d98225c42de7d666011528dc8fe91591e2e17b0", + "https://bcr.bazel.build/modules/jsoncpp/1.9.6/source.json": "a04756d367a2126c3541682864ecec52f92cdee80a35735a3cb249ce015ca000", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/MODULE.bazel": "6f7b417dcc794d9add9e556673ad25cb3ba835224290f4f848f8e2db1e1fca74", + "https://bcr.bazel.build/modules/nlohmann_json/3.6.1/source.json": "f448c6e8963fdfa7eb831457df83ad63d3d6355018f6574fb017e8169deb43a9", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/0.0.9/MODULE.bazel": "4a87a60c927b56ddd67db50c89acaa62f4ce2a1d2149ccb63ffd871d5ce29ebc", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/33.4/MODULE.bazel": "114775b816b38b6d0ca620450d6b02550c60ceedfdc8d9a229833b34a223dc42", + "https://bcr.bazel.build/modules/protobuf/33.4/source.json": "555f8686b4c7d6b5ba731fbea13bf656b4bfd9a7ff629c1d9d3f6e1d6155de79", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/MODULE.bazel": "e6f4c20442eaa7c90d7190d8dc539d0ab422f95c65a57cc59562170c58ae3d34", + "https://bcr.bazel.build/modules/pybind11_bazel/2.12.0/source.json": "6900fdc8a9e95866b8c0d4ad4aba4d4236317b5c1cd04c502df3f0d33afed680", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/MODULE.bazel": "b4963dda9b31080be1905ef085ecd7dd6cd47c05c79b9cdf83ade83ab2ab271a", + "https://bcr.bazel.build/modules/re2/2024-07-02.bcr.1/source.json": "2ff292be6ef3340325ce8a045ecc326e92cbfab47c7cbab4bd85d28971b97ac4", + "https://bcr.bazel.build/modules/re2/2024-07-02/MODULE.bazel": "0eadc4395959969297cbcf31a249ff457f2f1d456228c67719480205aa306daa", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/MODULE.bazel": "0d1caf0b8375942ce98ea944be754a18874041e4e0459401d925577624d3a54a", + "https://bcr.bazel.build/modules/rules_apple/3.16.0/source.json": "d8b5fe461272018cc07cfafce11fe369c7525330804c37eec5a82f84cd475366", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_java/8.6.1/MODULE.bazel": "f4808e2ab5b0197f094cabce9f4b006a27766beb6a9975931da07099560ca9c2", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/MODULE.bazel": "e717beabc4d091ecb2c803c2d341b88590e9116b8bf7947915eeb33aab4f96dd", + "https://bcr.bazel.build/modules/rules_jvm_external/6.7/source.json": "5426f412d0a7fc6b611643376c7e4a82dec991491b9ce5cb1cfdd25fe2e92be4", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.0-rc1/MODULE.bazel": "1e5b502e2e1a9e825eef74476a5a1ee524a92297085015a052510b09a1a09483", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/MODULE.bazel": "002d62d9108f75bb807cd56245d45648f38275cb3a99dcd45dfb864c5d74cb96", + "https://bcr.bazel.build/modules/rules_proto/7.1.0/source.json": "39f89066c12c24097854e8f57ab8558929f9c8d474d34b2c00ac04630ad8940e", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.33.2/MODULE.bazel": "3e036c4ad8d804a4dad897d333d8dce200d943df4827cb849840055be8d2e937", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.3.0/MODULE.bazel": "de4402cd12f4cc8fda2354fce179fdb068c0b9ca1ec2d2b17b3e21b24c1a937b", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/rules_swift/1.16.0/MODULE.bazel": "4a09f199545a60d09895e8281362b1ff3bb08bbde69c6fc87aff5b92fcc916ca", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/MODULE.bazel": "494900a80f944fc7aa61500c2073d9729dff0b764f0e89b824eb746959bc1046", + "https://bcr.bazel.build/modules/rules_swift/2.1.1/source.json": "40fc69dfaac64deddbb75bd99cdac55f4427d9ca0afbe408576a65428427a186", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/MODULE.bazel": "5e463fbfba7b1701d957555ed45097d7f984211330106ccd1352c6e0af0dcf91", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.1/source.json": "32bd87e5f4d7acc57c5b2ff7c325ae3061d5e242c0c4c214ae87e0f1c13e54cb", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/py_binary/MODULE.bazel.lock b/examples/py_binary/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/py_binary/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/py_pex_binary/MODULE.bazel.lock b/examples/py_pex_binary/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/py_pex_binary/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/py_venv/MODULE.bazel.lock b/examples/py_venv/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/py_venv/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/pytest/MODULE.bazel.lock b/examples/pytest/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/pytest/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/uv_pip_compile/.bazelrc b/examples/uv_pip_compile/.bazelrc index 734e4cfb5..4b583aba4 100644 --- a/examples/uv_pip_compile/.bazelrc +++ b/examples/uv_pip_compile/.bazelrc @@ -2,7 +2,3 @@ # Build without the bytes common:ci --remote_download_outputs=minimal common:ci --nobuild_runfile_links - -# Override the preset's `--lockfile_mode=error` on CI since we don't -# yet commit MODULE.bazel.lock — see .gitignore. -common:ci --lockfile_mode=off diff --git a/examples/uv_pip_compile/MODULE.bazel.lock b/examples/uv_pip_compile/MODULE.bazel.lock new file mode 100644 index 000000000..5aa228e37 --- /dev/null +++ b/examples/uv_pip_compile/MODULE.bazel.lock @@ -0,0 +1,1585 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildifier_prebuilt/6.1.2/MODULE.bazel": "2ef4962c8b0b6d8d21928a89190755619254459bc67f870dc0ccb9ba9952d444", + "https://bcr.bazel.build/modules/buildifier_prebuilt/6.1.2/source.json": "19fb45ed3f0d55cbff94e402c39512940833ae3a68f9cbfd9518a1926b609c7c", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_multitool/0.4.0/MODULE.bazel": "15517987d5c00c9e7faab41fbe22ee67a350b6eabcc1e08baded5c6d9025897f", + "https://bcr.bazel.build/modules/rules_multitool/0.4.0/source.json": "d73b450b7c6d9683e400d6cebc463fbc2b870cc5d8e2e75080d6278805aaab08", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/rules_uv/0.14.0/MODULE.bazel": "3130ee0becc89e020ff23c9bbe85464760f5938a8b844b56d86b5caa7afb1ea3", + "https://bcr.bazel.build/modules/rules_uv/0.14.0/source.json": "0858a2f1addbe472acdcf64cfa2c76bd97a52a973f13604e5c3c4a56441b3300", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@buildifier_prebuilt+//:defs.bzl%buildifier_prebuilt_deps_extension": { + "general": { + "bzlTransitiveDigest": "SGILosx5Y/9gqlxz+OVua6yYM6U/ZgniyPU6ecTht1o=", + "usagesDigest": "JCqhJg+TeFVLBlrKVGI0Npi9RChNqkZQAh9TYfbAobs=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "buildifier_darwin_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildifier-darwin-amd64" + ], + "downloaded_file_path": "buildifier", + "executable": true, + "sha256": "e2f4a67691c5f55634fbfb3850eb97dd91be0edd059d947b6c83d120682e0216" + } + }, + "buildifier_darwin_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildifier-darwin-arm64" + ], + "downloaded_file_path": "buildifier", + "executable": true, + "sha256": "7549b5f535219ac957aa2a6069d46fbfc9ea3f74abd85fd3d460af4b1a2099a6" + } + }, + "buildifier_linux_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildifier-linux-amd64" + ], + "downloaded_file_path": "buildifier", + "executable": true, + "sha256": "51bc947dabb7b14ec6fb1224464fbcf7a7cb138f1a10a3b328f00835f72852ce" + } + }, + "buildifier_linux_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildifier-linux-arm64" + ], + "downloaded_file_path": "buildifier", + "executable": true, + "sha256": "0ba6e8e3208b5a029164e542ddb5509e618f87b639ffe8cc2f54770022853080" + } + }, + "buildifier_windows_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildifier-windows-amd64.exe" + ], + "downloaded_file_path": "buildifier.exe", + "executable": true, + "sha256": "92bdd284fbc6766fc3e300b434ff9e68ac4d76a06cb29d1bdefe79a102a8d135" + } + }, + "buildozer_darwin_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildozer-darwin-amd64" + ], + "downloaded_file_path": "buildozer", + "executable": true, + "sha256": "4014751a4cc5e91a7dc4b64be7b30c565bd9014ae6d1879818dc624562a1d431" + } + }, + "buildozer_darwin_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildozer-darwin-arm64" + ], + "downloaded_file_path": "buildozer", + "executable": true, + "sha256": "e78bd5357f2356067d4b0d49ec4e4143dd9b1308746afc6ff11b55b952f462d7" + } + }, + "buildozer_linux_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildozer-linux-amd64" + ], + "downloaded_file_path": "buildozer", + "executable": true, + "sha256": "2aef0f1ef80a0140b8fe6e6a8eb822e14827d8855bfc6681532c7530339ea23b" + } + }, + "buildozer_linux_arm64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildozer-linux-arm64" + ], + "downloaded_file_path": "buildozer", + "executable": true, + "sha256": "586e27630cbc242e8bd6fe8e24485eca8dcadea6410cc13cbe059202655980ac" + } + }, + "buildozer_windows_amd64": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "urls": [ + "https://github.com/bazelbuild/buildtools/releases/download/v6.1.2/buildozer-windows-amd64.exe" + ], + "downloaded_file_path": "buildozer.exe", + "executable": true, + "sha256": "07664d5d08ee099f069cd654070cabf2708efaae9f52dc83921fa400c67a868b" + } + }, + "buildifier_prebuilt_toolchains": { + "repoRuleId": "@@buildifier_prebuilt+//:defs.bzl%_buildifier_toolchain_setup", + "attributes": { + "assets_json": "[{\"arch\":\"amd64\",\"name\":\"buildifier\",\"platform\":\"darwin\",\"sha256\":\"e2f4a67691c5f55634fbfb3850eb97dd91be0edd059d947b6c83d120682e0216\",\"version\":\"v6.1.2\"},{\"arch\":\"arm64\",\"name\":\"buildifier\",\"platform\":\"darwin\",\"sha256\":\"7549b5f535219ac957aa2a6069d46fbfc9ea3f74abd85fd3d460af4b1a2099a6\",\"version\":\"v6.1.2\"},{\"arch\":\"amd64\",\"name\":\"buildifier\",\"platform\":\"linux\",\"sha256\":\"51bc947dabb7b14ec6fb1224464fbcf7a7cb138f1a10a3b328f00835f72852ce\",\"version\":\"v6.1.2\"},{\"arch\":\"arm64\",\"name\":\"buildifier\",\"platform\":\"linux\",\"sha256\":\"0ba6e8e3208b5a029164e542ddb5509e618f87b639ffe8cc2f54770022853080\",\"version\":\"v6.1.2\"},{\"arch\":\"amd64\",\"name\":\"buildifier\",\"platform\":\"windows\",\"sha256\":\"92bdd284fbc6766fc3e300b434ff9e68ac4d76a06cb29d1bdefe79a102a8d135\",\"version\":\"v6.1.2\"},{\"arch\":\"amd64\",\"name\":\"buildozer\",\"platform\":\"darwin\",\"sha256\":\"4014751a4cc5e91a7dc4b64be7b30c565bd9014ae6d1879818dc624562a1d431\",\"version\":\"v6.1.2\"},{\"arch\":\"arm64\",\"name\":\"buildozer\",\"platform\":\"darwin\",\"sha256\":\"e78bd5357f2356067d4b0d49ec4e4143dd9b1308746afc6ff11b55b952f462d7\",\"version\":\"v6.1.2\"},{\"arch\":\"amd64\",\"name\":\"buildozer\",\"platform\":\"linux\",\"sha256\":\"2aef0f1ef80a0140b8fe6e6a8eb822e14827d8855bfc6681532c7530339ea23b\",\"version\":\"v6.1.2\"},{\"arch\":\"arm64\",\"name\":\"buildozer\",\"platform\":\"linux\",\"sha256\":\"586e27630cbc242e8bd6fe8e24485eca8dcadea6410cc13cbe059202655980ac\",\"version\":\"v6.1.2\"},{\"arch\":\"amd64\",\"name\":\"buildozer\",\"platform\":\"windows\",\"sha256\":\"07664d5d08ee099f069cd654070cabf2708efaae9f52dc83921fa400c67a868b\",\"version\":\"v6.1.2\"}]" + } + } + }, + "recordedRepoMappingEntries": [ + [ + "buildifier_prebuilt+", + "bazel_skylib", + "bazel_skylib+" + ], + [ + "buildifier_prebuilt+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_multitool+//multitool:extension.bzl%multitool": { + "general": { + "bzlTransitiveDigest": "AtvPzG/SAawYMKVVHcMoJq4EXkVPTIhS3AeNwENXp9E=", + "usagesDigest": "MtYGCyqD27aHwdd3icMIxvrCYk0Pg7GHYngSgQemQWU=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "multitool.linux_arm64": { + "repoRuleId": "@@rules_multitool+//multitool/private:multitool.bzl%_env_specific_tools", + "attributes": { + "lockfiles": [ + "@@rules_uv+//uv/private:uv.lock.json" + ], + "os": "linux", + "cpu": "arm64" + } + }, + "multitool.linux_x86_64": { + "repoRuleId": "@@rules_multitool+//multitool/private:multitool.bzl%_env_specific_tools", + "attributes": { + "lockfiles": [ + "@@rules_uv+//uv/private:uv.lock.json" + ], + "os": "linux", + "cpu": "x86_64" + } + }, + "multitool.macos_arm64": { + "repoRuleId": "@@rules_multitool+//multitool/private:multitool.bzl%_env_specific_tools", + "attributes": { + "lockfiles": [ + "@@rules_uv+//uv/private:uv.lock.json" + ], + "os": "macos", + "cpu": "arm64" + } + }, + "multitool.macos_x86_64": { + "repoRuleId": "@@rules_multitool+//multitool/private:multitool.bzl%_env_specific_tools", + "attributes": { + "lockfiles": [ + "@@rules_uv+//uv/private:uv.lock.json" + ], + "os": "macos", + "cpu": "x86_64" + } + }, + "multitool": { + "repoRuleId": "@@rules_multitool+//multitool/private:multitool.bzl%_multitool_hub", + "attributes": { + "lockfiles": [ + "@@rules_uv+//uv/private:uv.lock.json" + ] + } + } + }, + "recordedRepoMappingEntries": [] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/examples/virtual_deps/MODULE.bazel.lock b/examples/virtual_deps/MODULE.bazel.lock new file mode 100644 index 000000000..4410aab35 --- /dev/null +++ b/examples/virtual_deps/MODULE.bazel.lock @@ -0,0 +1,1380 @@ +{ + "lockFileVersion": 24, + "registryFileHashes": { + "https://bcr.bazel.build/bazel_registry.json": "8a28e4aff06ee60aed2a8c281907fb8bcbf3b753c91fb5a5c57da3215d5b3497", + "https://bcr.bazel.build/modules/abseil-cpp/20210324.2/MODULE.bazel": "7cd0312e064fde87c8d1cd79ba06c876bd23630c83466e9500321be55c96ace2", + "https://bcr.bazel.build/modules/abseil-cpp/20211102.0/MODULE.bazel": "70390338f7a5106231d20620712f7cccb659cd0e9d073d1991c038eb9fc57589", + "https://bcr.bazel.build/modules/abseil-cpp/20230125.1/MODULE.bazel": "89047429cb0207707b2dface14ba7f8df85273d484c2572755be4bab7ce9c3a0", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0.bcr.1/MODULE.bazel": "1c8cec495288dccd14fdae6e3f95f772c1c91857047a098fad772034264cc8cb", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.0/MODULE.bazel": "d253ae36a8bd9ee3c5955384096ccb6baf16a1b1e93e858370da0a3b94f77c16", + "https://bcr.bazel.build/modules/abseil-cpp/20230802.1/MODULE.bazel": "fa92e2eb41a04df73cdabeec37107316f7e5272650f81d6cc096418fe647b915", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/MODULE.bazel": "37bcdb4440fbb61df6a1c296ae01b327f19e9bb521f9b8e26ec854b6f97309ed", + "https://bcr.bazel.build/modules/abseil-cpp/20240116.1/source.json": "9be551b8d4e3ef76875c0d744b5d6a504a27e3ae67bc6b28f46415fd2d2957da", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/MODULE.bazel": "37c764292861c2f70314efa9846bb6dbb44fc0308903b3285da6528305450183", + "https://bcr.bazel.build/modules/aspect_tools_telemetry/0.3.3/source.json": "605086bbc197743a0d360f7ddc550a1d4dfa0441bc807236e17170f636153348", + "https://bcr.bazel.build/modules/bazel_features/1.1.1/MODULE.bazel": "27b8c79ef57efe08efccbd9dd6ef70d61b4798320b8d3c134fd571f78963dbcd", + "https://bcr.bazel.build/modules/bazel_features/1.11.0/MODULE.bazel": "f9382337dd5a474c3b7d334c2f83e50b6eaedc284253334cf823044a26de03e8", + "https://bcr.bazel.build/modules/bazel_features/1.15.0/MODULE.bazel": "d38ff6e517149dc509406aca0db3ad1efdd890a85e049585b7234d04238e2a4d", + "https://bcr.bazel.build/modules/bazel_features/1.17.0/MODULE.bazel": "039de32d21b816b47bd42c778e0454217e9c9caac4a3cf8e15c7231ee3ddee4d", + "https://bcr.bazel.build/modules/bazel_features/1.18.0/MODULE.bazel": "1be0ae2557ab3a72a57aeb31b29be347bcdc5d2b1eb1e70f39e3851a7e97041a", + "https://bcr.bazel.build/modules/bazel_features/1.19.0/MODULE.bazel": "59adcdf28230d220f0067b1f435b8537dd033bfff8db21335ef9217919c7fb58", + "https://bcr.bazel.build/modules/bazel_features/1.21.0/MODULE.bazel": "675642261665d8eea09989aa3b8afb5c37627f1be178382c320d1b46afba5e3b", + "https://bcr.bazel.build/modules/bazel_features/1.24.0/MODULE.bazel": "4796b4c25b47053e9bbffa792b3792d07e228ff66cd0405faef56a978708acd4", + "https://bcr.bazel.build/modules/bazel_features/1.28.0/MODULE.bazel": "4b4200e6cbf8fa335b2c3f43e1d6ef3e240319c33d43d60cc0fbd4b87ece299d", + "https://bcr.bazel.build/modules/bazel_features/1.30.0/MODULE.bazel": "a14b62d05969a293b80257e72e597c2da7f717e1e69fa8b339703ed6731bec87", + "https://bcr.bazel.build/modules/bazel_features/1.34.0/MODULE.bazel": "e8475ad7c8965542e0c7aac8af68eb48c4af904be3d614b6aa6274c092c2ea1e", + "https://bcr.bazel.build/modules/bazel_features/1.38.0/MODULE.bazel": "f9b8a9c890ebd216b4049fd12a31d3c2602e3403c7af636b04fbbd7453edc9c9", + "https://bcr.bazel.build/modules/bazel_features/1.4.1/MODULE.bazel": "e45b6bb2350aff3e442ae1111c555e27eac1d915e77775f6fdc4b351b758b5d7", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/MODULE.bazel": "defa2226f06ba20550d6548c3a2ea2a7929634437a52973869c20c225450eb91", + "https://bcr.bazel.build/modules/bazel_features/1.43.0/source.json": "1c4207dc858d6de0eecef30026793616bbf420c74aac27b6bad212534a730437", + "https://bcr.bazel.build/modules/bazel_features/1.9.0/MODULE.bazel": "885151d58d90d8d9c811eb75e3288c11f850e1d6b481a8c9f766adee4712358b", + "https://bcr.bazel.build/modules/bazel_features/1.9.1/MODULE.bazel": "8f679097876a9b609ad1f60249c49d68bfab783dd9be012faf9d82547b14815a", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/MODULE.bazel": "22b70b80ac89ad3f3772526cd9feee2fa412c2b01933fea7ed13238a448d370d", + "https://bcr.bazel.build/modules/bazel_lib/3.0.0/source.json": "895f21909c6fba01d7c17914bb6c8e135982275a1b18cdaa4e62272217ef1751", + "https://bcr.bazel.build/modules/bazel_skylib/1.0.3/MODULE.bazel": "bcb0fd896384802d1ad283b4e4eb4d718eebd8cb820b0a2c3a347fb971afd9d8", + "https://bcr.bazel.build/modules/bazel_skylib/1.1.1/MODULE.bazel": "1add3e7d93ff2e6998f9e118022c84d163917d912f5afafb3058e3d2f1545b5e", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.0/MODULE.bazel": "44fe84260e454ed94ad326352a698422dbe372b21a1ac9f3eab76eb531223686", + "https://bcr.bazel.build/modules/bazel_skylib/1.2.1/MODULE.bazel": "f35baf9da0efe45fa3da1696ae906eea3d615ad41e2e3def4aeb4e8bc0ef9a7a", + "https://bcr.bazel.build/modules/bazel_skylib/1.3.0/MODULE.bazel": "20228b92868bf5cfc41bda7afc8a8ba2a543201851de39d990ec957b513579c5", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.1/MODULE.bazel": "a0dcb779424be33100dcae821e9e27e4f2901d9dfd5333efe5ac6a8d7ab75e1d", + "https://bcr.bazel.build/modules/bazel_skylib/1.4.2/MODULE.bazel": "3bd40978e7a1fac911d5989e6b09d8f64921865a45822d8b09e815eaa726a651", + "https://bcr.bazel.build/modules/bazel_skylib/1.5.0/MODULE.bazel": "32880f5e2945ce6a03d1fbd588e9198c0a959bb42297b2cfaf1685b7bc32e138", + "https://bcr.bazel.build/modules/bazel_skylib/1.6.1/MODULE.bazel": "8fdee2dbaace6c252131c00e1de4b165dc65af02ea278476187765e1a617b917", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.0/MODULE.bazel": "0db596f4563de7938de764cc8deeabec291f55e8ec15299718b93c4423e9796d", + "https://bcr.bazel.build/modules/bazel_skylib/1.7.1/MODULE.bazel": "3120d80c5861aa616222ec015332e5f8d3171e062e3e804a2a0253e1be26e59b", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.0/MODULE.bazel": "2fb3fb53675f6adfc1ca5bfbd5cfb655ae350fba4706d924a8ec7e3ba945671c", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.1/MODULE.bazel": "88ade7293becda963e0e3ea33e7d54d3425127e0a326e0d17da085a5f1f03ff6", + "https://bcr.bazel.build/modules/bazel_skylib/1.8.2/MODULE.bazel": "69ad6927098316848b34a9142bcc975e018ba27f08c4ff403f50c1b6e646ca67", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/MODULE.bazel": "72997b29dfd95c3fa0d0c48322d05590418edef451f8db8db5509c57875fb4b7", + "https://bcr.bazel.build/modules/bazel_skylib/1.9.0/source.json": "7ad77c1e8c1b84222d9b3f3cae016a76639435744c19330b0b37c0a3c9da7dc0", + "https://bcr.bazel.build/modules/buildozer/7.1.2/MODULE.bazel": "2e8dd40ede9c454042645fd8d8d0cd1527966aa5c919de86661e62953cd73d84", + "https://bcr.bazel.build/modules/buildozer/7.1.2/source.json": "c9028a501d2db85793a6996205c8de120944f50a0d570438fcae0457a5f9d1f8", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.3/MODULE.bazel": "f1b7bb2dd53e8f2ef984b39485ec8a44e9076dda5c4b8efd2fb4c6a6e856a31d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/MODULE.bazel": "1e5e03c383fa64ebbe0942a225c32168fd6ef6b270351bbec481d47d19d1b96d", + "https://bcr.bazel.build/modules/gawk/5.3.2.bcr.7/source.json": "34a83d58ae2f1ef6731d1fc8a1b6f07825741aff3f5993b67b67ec21d2c2946e", + "https://bcr.bazel.build/modules/google_benchmark/1.8.2/MODULE.bazel": "a70cf1bba851000ba93b58ae2f6d76490a9feb74192e57ab8e8ff13c34ec50cb", + "https://bcr.bazel.build/modules/googletest/1.11.0/MODULE.bazel": "3a83f095183f66345ca86aa13c58b59f9f94a2f81999c093d4eeaa2d262d12f4", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/MODULE.bazel": "22c31a561553727960057361aa33bf20fb2e98584bc4fec007906e27053f80c6", + "https://bcr.bazel.build/modules/googletest/1.14.0.bcr.1/source.json": "41e9e129f80d8c8bf103a7acc337b76e54fad1214ac0a7084bf24f4cd924b8b4", + "https://bcr.bazel.build/modules/googletest/1.14.0/MODULE.bazel": "cfbcbf3e6eac06ef9d85900f64424708cc08687d1b527f0ef65aa7517af8118f", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/MODULE.bazel": "aba15d5a4745cedcb4750faf0c49f946d004ccb09475b6ade1dea4efe0399d82", + "https://bcr.bazel.build/modules/hermetic_launcher/0.0.11/source.json": "0c4d45a10e956dc30c7278de756c81d4b55612218b1a20fa55fc2988063ba4eb", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/MODULE.bazel": "31271aedc59e815656f5736f282bb7509a97c7ecb43e927ac1a37966e0578075", + "https://bcr.bazel.build/modules/jsoncpp/1.9.5/source.json": "4108ee5085dd2885a341c7fab149429db457b3169b86eb081fa245eadf69169d", + "https://bcr.bazel.build/modules/libpfm/4.11.0/MODULE.bazel": "45061ff025b301940f1e30d2c16bea596c25b176c8b6b3087e92615adbd52902", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/MODULE.bazel": "77890552ecea9e284b5424c9de827a58099348763a4359e975c359a83d4faa83", + "https://bcr.bazel.build/modules/package_metadata/0.0.3/source.json": "742075a428ad12a3fa18a69014c2f57f01af910c6d9d18646c990200853e641a", + "https://bcr.bazel.build/modules/platforms/0.0.10/MODULE.bazel": "8cb8efaf200bdeb2150d93e162c40f388529a25852b332cec879373771e48ed5", + "https://bcr.bazel.build/modules/platforms/0.0.11/MODULE.bazel": "0daefc49732e227caa8bfa834d65dc52e8cc18a2faf80df25e8caea151a9413f", + "https://bcr.bazel.build/modules/platforms/0.0.4/MODULE.bazel": "9b328e31ee156f53f3c416a64f8491f7eb731742655a47c9eec4703a71644aee", + "https://bcr.bazel.build/modules/platforms/0.0.5/MODULE.bazel": "5733b54ea419d5eaf7997054bb55f6a1d0b5ff8aedf0176fef9eea44f3acda37", + "https://bcr.bazel.build/modules/platforms/0.0.6/MODULE.bazel": "ad6eeef431dc52aefd2d77ed20a4b353f8ebf0f4ecdd26a807d2da5aa8cd0615", + "https://bcr.bazel.build/modules/platforms/0.0.7/MODULE.bazel": "72fd4a0ede9ee5c021f6a8dd92b503e089f46c227ba2813ff183b71616034814", + "https://bcr.bazel.build/modules/platforms/0.0.8/MODULE.bazel": "9f142c03e348f6d263719f5074b21ef3adf0b139ee4c5133e2aa35664da9eb2d", + "https://bcr.bazel.build/modules/platforms/1.0.0/MODULE.bazel": "f05feb42b48f1b3c225e4ccf351f367be0371411a803198ec34a389fb22aa580", + "https://bcr.bazel.build/modules/platforms/1.1.0/MODULE.bazel": "1c0c09f5bdcf4b3f924720d2478a3711cb39f4977019ca5988685e5b7e18b3d2", + "https://bcr.bazel.build/modules/platforms/1.1.0/source.json": "fcf351c47596c939140ab0d333dfdd08ed1ea6ce33c2fe70c12493a301cf1344", + "https://bcr.bazel.build/modules/protobuf/21.7/MODULE.bazel": "a5a29bb89544f9b97edce05642fac225a808b5b7be74038ea3640fae2f8e66a7", + "https://bcr.bazel.build/modules/protobuf/27.0/MODULE.bazel": "7873b60be88844a0a1d8f80b9d5d20cfbd8495a689b8763e76c6372998d3f64c", + "https://bcr.bazel.build/modules/protobuf/27.1/MODULE.bazel": "703a7b614728bb06647f965264967a8ef1c39e09e8f167b3ca0bb1fd80449c0d", + "https://bcr.bazel.build/modules/protobuf/29.0-rc2/MODULE.bazel": "6241d35983510143049943fc0d57937937122baf1b287862f9dc8590fc4c37df", + "https://bcr.bazel.build/modules/protobuf/29.0-rc3/MODULE.bazel": "33c2dfa286578573afc55a7acaea3cada4122b9631007c594bf0729f41c8de92", + "https://bcr.bazel.build/modules/protobuf/29.0/MODULE.bazel": "319dc8bf4c679ff87e71b1ccfb5a6e90a6dbc4693501d471f48662ac46d04e4e", + "https://bcr.bazel.build/modules/protobuf/29.0/source.json": "b857f93c796750eef95f0d61ee378f3420d00ee1dd38627b27193aa482f4f981", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/MODULE.bazel": "88af1c246226d87e65be78ed49ecd1e6f5e98648558c14ce99176da041dc378e", + "https://bcr.bazel.build/modules/pybind11_bazel/2.11.1/source.json": "be4789e951dd5301282729fe3d4938995dc4c1a81c2ff150afc9f1b0504c6022", + "https://bcr.bazel.build/modules/re2/2023-09-01/MODULE.bazel": "cb3d511531b16cfc78a225a9e2136007a48cf8a677e4264baeab57fe78a80206", + "https://bcr.bazel.build/modules/re2/2023-09-01/source.json": "e044ce89c2883cd957a2969a43e79f7752f9656f6b20050b62f90ede21ec6eb4", + "https://bcr.bazel.build/modules/rules_android/0.1.1/MODULE.bazel": "48809ab0091b07ad0182defb787c4c5328bd3a278938415c00a7b69b50c4d3a8", + "https://bcr.bazel.build/modules/rules_android/0.1.1/source.json": "e6986b41626ee10bdc864937ffb6d6bf275bb5b9c65120e6137d56e6331f089e", + "https://bcr.bazel.build/modules/rules_cc/0.0.1/MODULE.bazel": "cb2aa0747f84c6c3a78dad4e2049c154f08ab9d166b1273835a8174940365647", + "https://bcr.bazel.build/modules/rules_cc/0.0.10/MODULE.bazel": "ec1705118f7eaedd6e118508d3d26deba2a4e76476ada7e0e3965211be012002", + "https://bcr.bazel.build/modules/rules_cc/0.0.13/MODULE.bazel": "0e8529ed7b323dad0775ff924d2ae5af7640b23553dfcd4d34344c7e7a867191", + "https://bcr.bazel.build/modules/rules_cc/0.0.14/MODULE.bazel": "5e343a3aac88b8d7af3b1b6d2093b55c347b8eefc2e7d1442f7a02dc8fea48ac", + "https://bcr.bazel.build/modules/rules_cc/0.0.15/MODULE.bazel": "6704c35f7b4a72502ee81f61bf88706b54f06b3cbe5558ac17e2e14666cd5dcc", + "https://bcr.bazel.build/modules/rules_cc/0.0.16/MODULE.bazel": "7661303b8fc1b4d7f532e54e9d6565771fea666fbdf839e0a86affcd02defe87", + "https://bcr.bazel.build/modules/rules_cc/0.0.17/MODULE.bazel": "2ae1d8f4238ec67d7185d8861cb0a2cdf4bc608697c331b95bf990e69b62e64a", + "https://bcr.bazel.build/modules/rules_cc/0.0.2/MODULE.bazel": "6915987c90970493ab97393024c156ea8fb9f3bea953b2f3ec05c34f19b5695c", + "https://bcr.bazel.build/modules/rules_cc/0.0.6/MODULE.bazel": "abf360251023dfe3efcef65ab9d56beefa8394d4176dd29529750e1c57eaa33f", + "https://bcr.bazel.build/modules/rules_cc/0.0.8/MODULE.bazel": "964c85c82cfeb6f3855e6a07054fdb159aced38e99a5eecf7bce9d53990afa3e", + "https://bcr.bazel.build/modules/rules_cc/0.0.9/MODULE.bazel": "836e76439f354b89afe6a911a7adf59a6b2518fafb174483ad78a2a2fde7b1c5", + "https://bcr.bazel.build/modules/rules_cc/0.1.1/MODULE.bazel": "2f0222a6f229f0bf44cd711dc13c858dad98c62d52bd51d8fc3a764a83125513", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/MODULE.bazel": "4460ec36adc8f722a6a2a4ac9374cb91f2acebadaa93fc37966129afb3dece87", + "https://bcr.bazel.build/modules/rules_cc/0.2.18/source.json": "abad668ff2fd63ada1ac49bf386d37e27048b89a3465a6fd968bb832b00a09d3", + "https://bcr.bazel.build/modules/rules_cc/0.2.4/MODULE.bazel": "1ff1223dfd24f3ecf8f028446d4a27608aa43c3f41e346d22838a4223980b8cc", + "https://bcr.bazel.build/modules/rules_foreign_cc/0.9.0/MODULE.bazel": "c9e8c682bf75b0e7c704166d79b599f93b72cfca5ad7477df596947891feeef6", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/MODULE.bazel": "40c97d1144356f52905566c55811f13b299453a14ac7769dfba2ac38192337a8", + "https://bcr.bazel.build/modules/rules_fuzzing/0.5.2/source.json": "c8b1e2c717646f1702290959a3302a178fb639d987ab61d548105019f11e527e", + "https://bcr.bazel.build/modules/rules_java/4.0.0/MODULE.bazel": "5a78a7ae82cd1a33cef56dc578c7d2a46ed0dca12643ee45edbb8417899e6f74", + "https://bcr.bazel.build/modules/rules_java/5.3.5/MODULE.bazel": "a4ec4f2db570171e3e5eb753276ee4b389bae16b96207e9d3230895c99644b86", + "https://bcr.bazel.build/modules/rules_java/6.0.0/MODULE.bazel": "8a43b7df601a7ec1af61d79345c17b31ea1fedc6711fd4abfd013ea612978e39", + "https://bcr.bazel.build/modules/rules_java/6.4.0/MODULE.bazel": "e986a9fe25aeaa84ac17ca093ef13a4637f6107375f64667a15999f77db6c8f6", + "https://bcr.bazel.build/modules/rules_java/6.5.2/MODULE.bazel": "1d440d262d0e08453fa0c4d8f699ba81609ed0e9a9a0f02cd10b3e7942e61e31", + "https://bcr.bazel.build/modules/rules_java/7.10.0/MODULE.bazel": "530c3beb3067e870561739f1144329a21c851ff771cd752a49e06e3dc9c2e71a", + "https://bcr.bazel.build/modules/rules_java/7.12.2/MODULE.bazel": "579c505165ee757a4280ef83cda0150eea193eed3bef50b1004ba88b99da6de6", + "https://bcr.bazel.build/modules/rules_java/7.2.0/MODULE.bazel": "06c0334c9be61e6cef2c8c84a7800cef502063269a5af25ceb100b192453d4ab", + "https://bcr.bazel.build/modules/rules_java/7.3.2/MODULE.bazel": "50dece891cfdf1741ea230d001aa9c14398062f2b7c066470accace78e412bc2", + "https://bcr.bazel.build/modules/rules_java/7.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "https://bcr.bazel.build/modules/rules_java/8.14.0/MODULE.bazel": "717717ed40cc69994596a45aec6ea78135ea434b8402fb91b009b9151dd65615", + "https://bcr.bazel.build/modules/rules_java/8.14.0/source.json": "8a88c4ca9e8759da53cddc88123880565c520503321e2566b4e33d0287a3d4bc", + "https://bcr.bazel.build/modules/rules_java/8.3.2/MODULE.bazel": "7336d5511ad5af0b8615fdc7477535a2e4e723a357b6713af439fe8cf0195017", + "https://bcr.bazel.build/modules/rules_java/8.5.1/MODULE.bazel": "d8a9e38cc5228881f7055a6079f6f7821a073df3744d441978e7a43e20226939", + "https://bcr.bazel.build/modules/rules_java/8.6.0/MODULE.bazel": "9c064c434606d75a086f15ade5edb514308cccd1544c2b2a89bbac4310e41c71", + "https://bcr.bazel.build/modules/rules_jvm_external/4.4.2/MODULE.bazel": "a56b85e418c83eb1839819f0b515c431010160383306d13ec21959ac412d2fe7", + "https://bcr.bazel.build/modules/rules_jvm_external/5.1/MODULE.bazel": "33f6f999e03183f7d088c9be518a63467dfd0be94a11d0055fe2d210f89aa909", + "https://bcr.bazel.build/modules/rules_jvm_external/5.2/MODULE.bazel": "d9351ba35217ad0de03816ef3ed63f89d411349353077348a45348b096615036", + "https://bcr.bazel.build/modules/rules_jvm_external/5.3/MODULE.bazel": "bf93870767689637164657731849fb887ad086739bd5d360d90007a581d5527d", + "https://bcr.bazel.build/modules/rules_jvm_external/6.1/MODULE.bazel": "75b5fec090dbd46cf9b7d8ea08cf84a0472d92ba3585b476f44c326eda8059c4", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/MODULE.bazel": "c998e060b85f71e00de5ec552019347c8bca255062c990ac02d051bb80a38df0", + "https://bcr.bazel.build/modules/rules_jvm_external/6.3/source.json": "6f5f5a5a4419ae4e37c35a5bb0a6ae657ed40b7abc5a5189111b47fcebe43197", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.0/MODULE.bazel": "ef85697305025e5a61f395d4eaede272a5393cee479ace6686dba707de804d59", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/MODULE.bazel": "d269a01a18ee74d0335450b10f62c9ed81f2321d7958a2934e44272fe82dcef3", + "https://bcr.bazel.build/modules/rules_kotlin/1.9.6/source.json": "2faa4794364282db7c06600b7e5e34867a564ae91bda7cae7c29c64e9466b7d5", + "https://bcr.bazel.build/modules/rules_license/0.0.3/MODULE.bazel": "627e9ab0247f7d1e05736b59dbb1b6871373de5ad31c3011880b4133cafd4bd0", + "https://bcr.bazel.build/modules/rules_license/0.0.7/MODULE.bazel": "088fbeb0b6a419005b89cf93fe62d9517c0a2b8bb56af3244af65ecfe37e7d5d", + "https://bcr.bazel.build/modules/rules_license/1.0.0/MODULE.bazel": "a7fda60eefdf3d8c827262ba499957e4df06f659330bbe6cdbdb975b768bb65c", + "https://bcr.bazel.build/modules/rules_license/1.0.0/source.json": "a52c89e54cc311196e478f8382df91c15f7a2bfdf4c6cd0e2675cc2ff0b56efb", + "https://bcr.bazel.build/modules/rules_pkg/0.7.0/MODULE.bazel": "df99f03fc7934a4737122518bb87e667e62d780b610910f0447665a7e2be62dc", + "https://bcr.bazel.build/modules/rules_pkg/1.0.1/MODULE.bazel": "5b1df97dbc29623bccdf2b0dcd0f5cb08e2f2c9050aab1092fd39a41e82686ff", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/MODULE.bazel": "9db8031e71b6ef32d1846106e10dd0ee2deac042bd9a2de22b4761b0c3036453", + "https://bcr.bazel.build/modules/rules_pkg/1.1.0/source.json": "fef768df13a92ce6067e1cd0cdc47560dace01354f1d921cfb1d632511f7d608", + "https://bcr.bazel.build/modules/rules_proto/4.0.0/MODULE.bazel": "a7a7b6ce9bee418c1a760b3d84f83a299ad6952f9903c67f19e4edd964894e06", + "https://bcr.bazel.build/modules/rules_proto/5.3.0-21.7/MODULE.bazel": "e8dff86b0971688790ae75528fe1813f71809b5afd57facb44dad9e8eca631b7", + "https://bcr.bazel.build/modules/rules_proto/6.0.2/MODULE.bazel": "ce916b775a62b90b61888052a416ccdda405212b6aaeb39522f7dc53431a5e73", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/MODULE.bazel": "bf81793bd6d2ad89a37a40693e56c61b0ee30f7a7fdbaf3eabbf5f39de47dea2", + "https://bcr.bazel.build/modules/rules_proto/7.0.2/source.json": "1e5e7260ae32ef4f2b52fd1d0de8d03b606a44c91b694d2f1afb1d3b28a48ce1", + "https://bcr.bazel.build/modules/rules_python/0.10.2/MODULE.bazel": "cc82bc96f2997baa545ab3ce73f196d040ffb8756fd2d66125a530031cd90e5f", + "https://bcr.bazel.build/modules/rules_python/0.23.1/MODULE.bazel": "49ffccf0511cb8414de28321f5fcf2a31312b47c40cc21577144b7447f2bf300", + "https://bcr.bazel.build/modules/rules_python/0.25.0/MODULE.bazel": "72f1506841c920a1afec76975b35312410eea3aa7b63267436bfb1dd91d2d382", + "https://bcr.bazel.build/modules/rules_python/0.28.0/MODULE.bazel": "cba2573d870babc976664a912539b320cbaa7114cd3e8f053c720171cde331ed", + "https://bcr.bazel.build/modules/rules_python/0.31.0/MODULE.bazel": "93a43dc47ee570e6ec9f5779b2e64c1476a6ce921c48cc9a1678a91dd5f8fd58", + "https://bcr.bazel.build/modules/rules_python/0.4.0/MODULE.bazel": "9208ee05fd48bf09ac60ed269791cf17fb343db56c8226a720fbb1cdf467166c", + "https://bcr.bazel.build/modules/rules_python/0.40.0/MODULE.bazel": "9d1a3cd88ed7d8e39583d9ffe56ae8a244f67783ae89b60caafc9f5cf318ada7", + "https://bcr.bazel.build/modules/rules_python/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.9.0/MODULE.bazel": "afc3a05f29f09f2d3ee95ad99a145250dab41a2b2d8d6f82cc91936b3213282c", + "https://bcr.bazel.build/modules/rules_python/1.9.0/source.json": "3921ea0b65298d51aead5b9e4a82203d7be9b5918619b58b53f1c259f4e63169", + "https://bcr.bazel.build/modules/rules_shell/0.2.0/MODULE.bazel": "fda8a652ab3c7d8fee214de05e7a9916d8b28082234e8d2c0094505c5268ed3c", + "https://bcr.bazel.build/modules/rules_shell/0.4.1/MODULE.bazel": "00e501db01bbf4e3e1dd1595959092c2fadf2087b2852d3f553b5370f5633592", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/MODULE.bazel": "72e76b0eea4e81611ef5452aa82b3da34caca0c8b7b5c0c9584338aa93bae26b", + "https://bcr.bazel.build/modules/rules_shell/0.6.1/source.json": "20ec05cd5e592055e214b2da8ccb283c7f2a421ea0dc2acbf1aa792e11c03d0c", + "https://bcr.bazel.build/modules/stardoc/0.5.1/MODULE.bazel": "1a05d92974d0c122f5ccf09291442580317cdd859f07a8655f1db9a60374f9f8", + "https://bcr.bazel.build/modules/stardoc/0.5.3/MODULE.bazel": "c7f6948dae6999bf0db32c1858ae345f112cacf98f174c7a8bb707e41b974f1c", + "https://bcr.bazel.build/modules/stardoc/0.5.6/MODULE.bazel": "c43dabc564990eeab55e25ed61c07a1aadafe9ece96a4efabb3f8bf9063b71ef", + "https://bcr.bazel.build/modules/stardoc/0.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "https://bcr.bazel.build/modules/stardoc/0.7.1/MODULE.bazel": "3548faea4ee5dda5580f9af150e79d0f6aea934fc60c1cc50f4efdd9420759e7", + "https://bcr.bazel.build/modules/stardoc/0.7.2/MODULE.bazel": "fc152419aa2ea0f51c29583fab1e8c99ddefd5b3778421845606ee628629e0e5", + "https://bcr.bazel.build/modules/stardoc/0.7.2/source.json": "58b029e5e901d6802967754adf0a9056747e8176f017cfe3607c0851f4d42216", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/MODULE.bazel": "bf5fda5b5ccef8c3c4a5f4886144377386e0baa382972f257acb42dcf40ea908", + "https://bcr.bazel.build/modules/tar.bzl/0.10.1/source.json": "3f1beb35acf53c270a9de493cdc775a985551d7069cfcf24e136b42f683bbb10", + "https://bcr.bazel.build/modules/upb/0.0.0-20220923-a547704/MODULE.bazel": "7298990c00040a0e2f121f6c32544bab27d4452f80d9ce51349b1a28f3005c43", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/MODULE.bazel": "6b6c543e415d2a502954766e50c6a6144a131687f2751b62157a9250e2b04982", + "https://bcr.bazel.build/modules/with_cfg.bzl/0.14.6/source.json": "12363ac76d821f6c7dabfebbd673615391da06e2e33f576402d31a96a7b56532", + "https://bcr.bazel.build/modules/zlib/1.2.11/MODULE.bazel": "07b389abc85fdbca459b69e2ec656ae5622873af3f845e1c9d80fe179f3effa0", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/MODULE.bazel": "eec517b5bbe5492629466e11dae908d043364302283de25581e3eb944326c4ca", + "https://bcr.bazel.build/modules/zlib/1.3.1.bcr.5/source.json": "22bc55c47af97246cfc093d0acf683a7869377de362b5d1c552c2c2e16b7a806", + "https://bcr.bazel.build/modules/zlib/1.3.1/MODULE.bazel": "751c9940dcfe869f5f7274e1295422a34623555916eb98c174c1e945594bf198" + }, + "selectedYankedVersions": {}, + "moduleExtensions": { + "@@aspect_tools_telemetry+//:extension.bzl%telemetry": { + "general": { + "bzlTransitiveDigest": "cl5A2O84vDL6Tt+Qga8FCj1DUDGqn+e7ly5rZ+4xvcc=", + "usagesDigest": "9blYmJygEZWQR5a/Myvp61XErKXTzb80Gu2XjdU/ml4=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "", + "aspect_tools_telemetry": "0.3.3" + } + } + } + }, + "recordedRepoMappingEntries": [ + [ + "aspect_tools_telemetry+", + "bazel_lib", + "bazel_lib+" + ], + [ + "aspect_tools_telemetry+", + "bazel_skylib", + "bazel_skylib+" + ] + ] + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "rL/34P1aFDq2GqVC2zCFgQ8nTuOC6ziogocpvG50Qz8=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "com_github_jetbrains_kotlin_git": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_compiler_git_repository", + "attributes": { + "urls": [ + "https://github.com/JetBrains/kotlin/releases/download/v1.9.23/kotlin-compiler-1.9.23.zip" + ], + "sha256": "93137d3aab9afa9b27cb06a824c2324195c6b6f6179d8a8653f440f5bd58be88" + } + }, + "com_github_jetbrains_kotlin": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:compiler.bzl%kotlin_capabilities_repository", + "attributes": { + "git_repository_name": "com_github_jetbrains_kotlin_git", + "compiler_version": "1.9.23" + } + }, + "com_github_google_ksp": { + "repoRuleId": "@@rules_kotlin+//src/main/starlark/core/repositories:ksp.bzl%ksp_compiler_plugin_repository", + "attributes": { + "urls": [ + "https://github.com/google/ksp/releases/download/1.9.23-1.0.20/artifacts.zip" + ], + "sha256": "ee0618755913ef7fd6511288a232e8fad24838b9af6ea73972a76e81053c8c2d", + "strip_version": "1.9.23-1.0.20" + } + }, + "com_github_pinterest_ktlint": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_file", + "attributes": { + "sha256": "01b2e0ef893383a50dbeb13970fe7fa3be36ca3e83259e01649945b09d736985", + "urls": [ + "https://github.com/pinterest/ktlint/releases/download/1.3.0/ktlint" + ], + "executable": true + } + }, + "rules_android": { + "repoRuleId": "@@bazel_tools//tools/build_defs/repo:http.bzl%http_archive", + "attributes": { + "sha256": "cd06d15dd8bb59926e4d65f9003bfc20f9da4b2519985c27e190cddc8b7a7806", + "strip_prefix": "rules_android-0.1.1", + "urls": [ + "https://github.com/bazelbuild/rules_android/archive/v0.1.1.zip" + ] + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_kotlin+", + "bazel_tools", + "bazel_tools" + ] + ] + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "xMgnVVV6SeyGCaYQT+4rYddx63q6+JXtyCrlLeA8OLM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedFileInputs": {}, + "recordedDirentsInputs": {}, + "envVariables": {}, + "generatedRepoSpecs": { + "uv": { + "repoRuleId": "@@rules_python+//python/uv/private:uv_toolchains_repo.bzl%uv_toolchains_repo", + "attributes": { + "toolchain_type": "'@@rules_python+//python/uv:uv_toolchain_type'", + "toolchain_names": [ + "none" + ], + "toolchain_implementations": { + "none": "'@@rules_python+//python:none'" + }, + "toolchain_compatible_with": { + "none": [ + "@platforms//:incompatible" + ] + }, + "toolchain_target_settings": {} + } + } + }, + "recordedRepoMappingEntries": [ + [ + "rules_python+", + "bazel_tools", + "bazel_tools" + ], + [ + "rules_python+", + "platforms", + "platforms" + ] + ] + } + } + }, + "facts": { + "@@aspect_rules_py+//py:extensions.bzl%python_interpreters": { + "release_index_v1_20241002_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "bcfdf8235cd4f84ca280f33a17030e65ba23e7905e70a8ed2ed2c83229ad136f" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "2e364a47cdbfcfaf56122b7656a3e8a7163babbda4f6bb6165aa644cbc65bd57" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "814561a8addee5f56a19223ecdd879a22b82d631bd5704eac7b2e98287e797a8" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "35678c2ba6d7aff56ca96f06ca735fe4bd09e4a5d3d40f552d76a1653c80a123" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "422fb92c310f030b05ca8e59a256c72ffde38f03382a006284d9e5e2a7b646f5" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "f17cba68a55dcd386be4cbb0002cf3037718019fc1585b2ff9a32efd3283557d" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.15+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.15", + "sha256": "7b2baf761282600359d43e6f14b01437a8d0e517ba3a28f50688806dd8897b11" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "540225743ca9ca04d7e0de520e211ecafb379677c49fba4b89334e7248219cb2" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "047e687b561f8e38740819cc3e112e83ae349927cca846921a1c301e5d9cc873" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d9e75d5028c8975c158f4b9c01ef820480249b3401dbde755c0f344e15feebf5" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "f498693f03fd672a4dc581ef0e1101102d33964352c35ecff21686a8d00744c9" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "d71cde066b614903e9f243c4babd179e7e978fcfa95702355566463e623abe6c" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "9c0197e72b2dd1ebf56eb562cb7a078052b4ab71d5666cd3be3b6e75db42c79e" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.10+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.10", + "sha256": "fb86dce628d2008eefd3550193839fb9f283f5f6c25a09c8b676713ff4757156" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5a9cdbb8536839a83edae3e41eb44161b640d78181fec083e07c668ba796a875" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "5481ca52e7ac8685c1e9d4e804a66e5c928879e0f44799aa6934735f66266643" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "8c62920e2fef022fc49d58cc999c77ea45318f96a5a5c0ba3bb155d33732d7f3" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "60eaf2c9a63926f5edfe7a0ecf4b2fbb37de6764f0c0100be245d098e3995da7" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "1c74dd0499ef7d993d8942ebe6692c90c50d09719e0335f8e210b91277f8e7c0" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "04ffccbbb1beedd0bc80347c061fe527833001681ee543c3ba85dac5134ed500" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.7+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.7", + "sha256": "d4a8f2b3e422089475bcd6f2b855c9ed0e666af2de4f19df7c764362eb8c4aca" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "577e846eaf0a27342b3f80b5f292eb292b0eb6a9df3a0fa0c5925e86cfe046a3" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "48974ab9b4a6990b17e6740393492fc5557e6acc4ab02be9d9543e0e506e48a6" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "fa5e8195fa7a6b6d4df0bc92b36d38836b72c4f5fb41978d495abe5a454fed67" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "81a01923b25a4b2b68f517b07a4a4a9186d873e6518f060e4a004e77d7094687" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "319ecb727317868c4f3bfecd480f216b38275f5373f72c022d255318b650ebe2" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "a4b4e0a79b53938db050daf7f78dd09faf49d1e29dbba6cac87cf857c0a51fb4" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.0rc3+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.0rc3", + "sha256": "56fac98fb5ed39f67cd7c0ce6e503a1e551ce727dc46796a0f16c09d26e845aa" + }, + "3.8/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "2ddfc04bdb3e240f30fb782fa1deec6323799d0e857e0b63fa299218658fd3d4" + }, + "3.8/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "9d8798f9e79e0fc0f36fcb95bfa28a1023407d51a8ea5944b4da711f1f75f1ed" + }, + "3.8/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "06988218600fe3e2c02c3182d5629a1d4e596b3771ab32a9e99756c5904b5fac" + }, + "3.8/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "68d060cd373255d2ca5b8b3441363d5aa7cc45b0c11bbccf52b1717c2b5aa8bb" + }, + "3.8/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "41b6709fec9c56419b7de1940d1f87fa62045aff81734480672dcb807eedc47e" + }, + "3.8/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "285e141c36f88b2e9357654c5f77d1f8fb29cc25132698fe35bb30d787f38e87" + }, + "3.8/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.8.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.8.20", + "sha256": "ea8d7f9dd35815cf88f5ed257b5d0206d97df5a9500f719b6a6031b8c7071db8" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "dc5f3b4c54deea7a42479b3f81b1c1b3a330f721aea3aff7df9833567bbfa8ea" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "0d84fa0884e843828312a1fcbfd8756abe3d6cf3c27086f79cd7352bad13ac4c" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "bd2c7cf4d7eba224ada44dfbccf5248d313ba5072462c71aa753c824354704f3" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "a07be8fddd5f6f6a0db7abd16f2b2a8a94a891e54091e4f45b64e822597e4d7d" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "94000af8e9d9f5aba6d2325963a6b3403afbf310f6790edff3dfe8becd8197de" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "fec849569158e5e46610621d7da91b02dca2cc5f66dd49cc0f85d7469c8f5a84" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.20+20241002-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.20", + "sha256": "31f5e329f14ac8b79527712c4265edfea1cb6dff4bb04cf8c51cd809290e136c" + } + }, + "release_index_v1_20251031_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "43bda24c2fc073bc308bf631203b917a72640d59b59fdad4ba14503d84727012" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "f77a8a8aa77f3f943126fa9215a25309da4bf20398fc8f4b4eec54b5fc7570ef" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "9b9deba652d98857ae99bd11b05fb560144aafbd9b9e8e01c8c6d56577a06a4d" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "0240edca85508661e20bb69562686965c85b8328727332d9ebfd57cceb7fb372" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "76c12e633c09c2a790f8a958a55df4495527e0718d1875310c836e757c0c7b55" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "cfa08a4caf2df1b43551b843c052d6a8814e2ea0c97268b021f0423646c244c3" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "fb1caac917d7b6497bb6f5950da5f1e48d05c43a498948dd97f85760c4382d9f" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.19+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.19", + "sha256": "ba85013ed5ac7733fc6840168cc33ed19e9959b363dc80227d54f8fd9c92c0f4" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "6de5572b33c65af1c9b7caf00ec593fb04cffb7e14fa393a98261bb9bc464713" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "38d0d1466561e15965e8d2c20f5e5be649598f55c761ecab553d087fbd217337" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "510edb027527413c4249256194cb8ad2590b52dd93f7123b4cb341aff5d05894" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "27609ec2b0c6172d5d9f502115a6d48c20ee0a578bf5b0470cd1090be95c22aa" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "b4341ef60bc157f992a0d171f1be4e4c42dcfc537f3562f72aa7f1f9561935e0" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "4891cbf34e8652b7bd1054b9502395e4b7e048e2e517c040fbf6c8297cb954d6" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "5223b83ed9e2aa5e9e17d2ebcf767956e998876339b9cde1980a47e9d4655fb6" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "60f0bd473d861cc45d3401d9914e47ccb9fa037f88a91879ed517a62042b8477" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.14+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.14", + "sha256": "25e82d1e85b90a8ab724ee633a1811b1921797f5c25ee69c6595052371b91a87" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "5e110cb821d2eb8246065d3b46faa655180c976c4e17250f7883c634a629bc63" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "b190fed7c2b0f6e1010f554a0d1fd191c0754c4c0718e69d9d795ae559613780" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "81b644d166e0bfb918615af8a2363f8fcf26eccdcc60a5334b6a62c088470bac" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "fc423af42f4eb454c99779d9eedc619141606572da3851f7980a8da719f0f8db" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "7d333e58a53edb1ba3c85bb35dc718ea3e599d0f6b58a0cbef35b2d8184a763e" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "687052a046d33be49dc95dd671816709067cf6176ed36c93ea61b1fe0b883b0f" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "cff398b3f520c442a1b085dd347126c10c1b03f01ccc0decd8c897a687e893f1" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "80c3882f14e15cef8260ef5257d198e8f4371ca265887431d939e0d561de3253" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.12+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.12", + "sha256": "0a461330b9b89f2ea3088dde10d7a3f96aa65897b7c5ce2404fa3b5c4b8daa14" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "eae1272a72ccce601590a10a9ca2a58199b5fcdf022aa603a527e3e2a04de9bc" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "1f3568d17383426d52350c2ef7c93c1a5a043198b860cb05e5d19b35f9c25cef" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "743ff69935ef28834621647dab30f032dfcd80315732917531eea333210941c7" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "20db43873d3c4c2175d866806545e4ad4ec6bb72ca95e60082a4df6c24567e8c" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6e72f9de5d9b46cf6968d6a492f2401a919f9b959f8da2d87f43484b80169ee" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "0a56d11b0fb1662e67f892b9d5d1717aef06f24dbb8362bc25b8f784e620d44e" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "ba6a8d199c9f2a7aa5b88fdf16132049d675ab483eb6250e176a90fa0726eac4" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "90c803b66f8483caeeb5655ca82b7f19068515826a569ed05414326a6ff8d06d" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "a6cb3d7df191cde663ebf5f0108a9d7742e33862676ecde97fd90184333e822d" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "c0b0a34a492465bd44e9512582ae4ca47c06f9696807048cd917cb71c03a8416" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "e2bf5fa6a3ef443ade362e08b0a19bbc172f7bfe34dabe933ccaad31d53af5da" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "48c0f3ca5d31e90658ef99138dc21865bb62f388ab97a1ce72cac176da194ab0" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.9", + "sha256": "318a9a1e43dd52054327de3bccc0c5b7afde7b7f2a398ccb4d38e03d28b05386" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "874593f641f31ea101440c70f81768c35d4d7d6df111fde63094db67465ef787" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "dcc29b069d0588fbd4ea29c6df840c8d1207d2a3bce8cd5cd57d1b85373b6048" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "6f05b91ee8c7e6dd0f9c60b95bb29130e2d623961de6578b643e80ddd83f96b6" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.9", + "sha256": "4c5c9a251a45288ebd4a51900708eb2ada9197173ba56e5604b6b63727fb87ff" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.9+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.9", + "sha256": "ad987197034185e628715da504a50613af213dc21ba6d5ccaeab3db2c464aa6c" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "d9c7b430b25bd3837dbb03f945dbe6b7bc526c5940ca96f5db7cdc42f6b2b801" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "b4bcd3c6c24cab32ae99e1b05c89312b783b4d69431d702e5012fe1fdcad4087" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "40266e60f655e49cd1d5303295255909a4b593b08b88be6e6a55b2c9fe6ed13d" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "599a8b7e12439cd95a201dbdfe95cf363146b1ff91f379555dafd86b170caab9" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f383ef50d1da6ca511212e5ae601923b56636b87351fd5fc847e0ea0a19fa9b3" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "128a9cbfb9645d5237ec01704d9d1d2ac5f084464cc43c37a4cd96aa9c3b1ad5" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "33c7aa105634102c61b8ad01c801dbaf1950e59c04a876b72004cf4fbcfc6e33" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "e850ffb10a13cf16fb6ee08989e53532b606e7e96045ee65f7a3f41a9de14010" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "c47e0e4fd3a2d334a9f3df1d40fd9a7a8f743572dbd798b68fe5a6361c399806" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "35703b8b813afd37036ec88973c0f5a7626ee0dd48544a1c69cddeee994b5274" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b3196f6b57bbb3dc2ee07f348f1d51117ffa376979eceafbf50c15f0f7980bf8" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "4e71a3ce973be377ef18637826648bb936e2f9490f64a9e4f33a49bcc431d344" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.0", + "sha256": "b81de5fc9e783ea6dfcf1098c28a278c874999c71afbb0309f6a8b4276c769d0" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "39acfcb3857d83eab054a3de11756ffc16b3d49c31393b9800dd2704d1f07fdf" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "f4acbef0fbfaf7ab31ac63986da1d93dfa1c5cb797de1dcdc1a988aa18670120" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "3dec1ab70758a3467ac3313bbcdabf7a9b3016db5c072c4537e3cf0a9e6290f6" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.0", + "sha256": "9e18302759734fb14694efb0418e7291c8d590d880abc2da1d7e6f14ac9a381d" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.0+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.0", + "sha256": "d0a2a6d3b1bb00dce2105377fda8aa79675d187f8d6d7010a42f651af25018dc" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "12f1b16be4017181ad67904caf9e59e525b9b5d62f49105017d837e27b832959" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "3acf7aa3559b746498b18929456c5cacb84bae4e09249834cbc818970d71de87" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "54ca78dae455ece6fefbd7f5f287cc55d5ce197caf51921f6d871d15069d9489" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1508bcd7195008479ed156aad3afbb3a3793097ed530690f0304a8107f0e53e8" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "981fe8dfc6e7e1d0ffefa945a18d5c4c759bbe21722acf3a5cc7e62f16aa5f3c" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "d55c2aeece827e6bec83fd18515ee281d9ea0efaa3e2d20130db8f1c7cbb71c6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "017cd58a8e6d93a8d60453899d4bac6f540414003ec9a73dc106c20045d542ee" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "abbd20235411d7cc24cba48ac519324b8bb71a52e05b26e7012de815e43d6e73" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "9f4bc934ef9c56e6d1d7263949430cecc19d301fa4cad74fcd36c9b3c6a7ba01" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "6ffdbe54c45d0a9c309498f65c5ddf3de587c84aee89a227836f42b4e7e25691" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "64fc29e6c7a2f02a18645d968f1b3fc1d00d12a5ef3fcbb0d077fa8c62c08904" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "0ab19d3ac25f99da438b088751e5ec2421f9f6aa4292fd2dc0f8e49eb3e16bdf" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "34abc5603e1b4131f753d29b7deac865b9277912b851cbed5a149cf3e6745d3d" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "5f5d6bec2b381cfc771c49972d2a6f7b7e7ab6a1651d8fb6ef3983f3571722b3" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "0e0272186d9f5169394dbc4d4d72a3f4a5762a04c2e5ac2ab1e23aa41fc8538a" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "1f356288c2b2713619cb7a4e453d33bf8882f812af2987e21e01e7ae382fefba" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a1", + "sha256": "621ac3b8b8afa1593d63fb130dadc6eec2bd9e3603d6c028efe60146e05ec430" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a1+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a1", + "sha256": "caf5311f333eef082dd69a669ca65aceba09a08fc1e78aad602ad649106f294c" + }, + "3.9/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "87275619c2706affa4d1090d2ca3dad354b6d69f8b85dbfafe38785870751b9a" + }, + "3.9/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "6112d46355857680b81849764a6cf9f38cc4cd0d1cf29d432bc12fe5aeedf9d0" + }, + "3.9/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "f4d8eb93c54cbf7dc37d5599748582d91c268c60008f17daf19c0ad183ec78ab" + }, + "3.9/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "5056f28d59653a6bddcc8007f024af00147a7e6f82e797f073a59f16a5cacc19" + }, + "3.9/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "ace63cfe27a9487c4d72e1cb518be01c1d985271da0b2158e813801f7d3e5503" + }, + "3.9/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "4fb1b416482ce94d73cfa140317a670c596c830671d137b07c26afe8c461768a" + }, + "3.9/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "42834f61eb6df43432c3dd6ab9ca3fdf8c06d10a404ebdb53d6902e6b9570b08" + }, + "3.9/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.9.25+20251031-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.9.25", + "sha256": "76593e8c889e81e82db5fe117fe15b69466f85100ab2ec0e4035aa86242b4e93" + } + }, + "release_index_v1_20260303_https://github.com/astral-sh/python-build-standalone/releases/download": { + "3.10/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "b41060c26454b21990254fdc08a4988f4e325708d785f8a0b4b4533881cf5fd4" + }, + "3.10/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "dcf3b9bd0062276866b4fc84c9e4c39be7ef161d22c769e5f4ee01c8e27100f4" + }, + "3.10/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "92713c7f4a7bb77bf8593818e4c1da8db44d415f45b0b5b7a8eb741695c08303" + }, + "3.10/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "9bc6cd476a2670a054dc8dbdd22c5b7c7642ac2f0ac810c5bb18aa39083a8a99" + }, + "3.10/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "2fd25586216e5e6932d767034618b7bb97654c689f07513009d858398fe181f3" + }, + "3.10/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "aa55177f1247cdac1ccdf0877cdf68e9d6718b0914e56f1083404b1dcbac847b" + }, + "3.10/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c830fc25bc6e318e7ad4961caadee6cc79c041c122884c90ecfad4fe02e20344" + }, + "3.10/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.10.20+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.10.20", + "sha256": "c781a93c1030c814bc0861dc424c476ca2e0083b429b968f557e1664f3ef223f" + }, + "3.11/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "0d29ed7cb6711890b3c6da27b6258c4ad3b506bf8d5a381bff531ca8fa67417f" + }, + "3.11/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "84afaa698da2bc12f05aa317ad1ad6bf6708461e737efd08ad7e95d9a8857c1b" + }, + "3.11/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "4786f5ef8567c982517fcd7cb189a5ef4a712ed0aaf3034e839749794155ad4c" + }, + "3.11/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "d37ebd873138f85603607a56bc821e07551f45e6938e02d36b04885a6eded7ff" + }, + "3.11/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "1924013f72c36c8d19d6887979cded6ca7f2295667d591b88f74260f141e1fee" + }, + "3.11/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6ea2168c4e18cb31d9dc8486634dc375929bcc2adde0957399ce59d90b52297a" + }, + "3.11/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "6f194e1ede02260fd3d758893bbf1d3bb4084652d436a8300a229da721c3ddf8" + }, + "3.11/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "17e1f5b2c9668217ba554decd94db04adf3d085203d322c690fd44cde549d576" + }, + "3.11/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.11.15+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.11.15", + "sha256": "ee54c7baaa5a1fb65922505a646a2d097660b005e55bd35055d0a9c46a5ab916" + }, + "3.12/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2c01f29e9e4ddbd57e0319fedecf1f3e222558fce394a3ed4e39d0f750c11988" + }, + "3.12/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "f003d15139e0baa39563388b7e29c44a6c4dda3987dbd7cec2050eca32450d4f" + }, + "3.12/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "15c00b489fb89c7e3dc433800cd8b932ab3f8825870c1919fbe747f493edf81d" + }, + "3.12/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "2e3e3fc934a597c5c0e95fe9093a89cd6d3e248f9d3f6a0e82dbfa923499bd9d" + }, + "3.12/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "af220242f3d2bebff6b9a01666895bb7198d7e4be608752f7e4007dd0fddfa22" + }, + "3.12/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "8ad52a15de26e67d53f5c14f338433c59d5a2711852adc59043a20ec8da71a52" + }, + "3.12/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "43990976c8de6b72a7525cb509eedaf869a8dd116167e708af08bca50cd8ef00" + }, + "3.12/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4e5ac5a04afc4fe164e92e3844d6dbda03b33baeb62e032b5c9a8198280221e2" + }, + "3.12/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.12.13+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.12.13", + "sha256": "4099347cfb11427ceb6fe40d1b9f2af9fee3a3a8915df0e439e13dfbe948b91e" + }, + "3.13/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d152a8ec3a31a7b49772e70ff7fed1e7f6ec721497151b104532957744703d86" + }, + "3.13/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "267592285674e21982d84f2cd0b56e13e63ce60c3e85ffb0d67a842edaf5b5e9" + }, + "3.13/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "33e4de818b5419f0b6c599ccfc98a0468c441f83e02d4e0ef18b4a632408dc57" + }, + "3.13/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "4cb0d143eeaf51582fa8292d00061fc201e41bf3ce5e2de814d0b273f73d4c25" + }, + "3.13/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "a2e320b8b7ec76f538f4414bb56927e0a35fb169a4748594b3b0946df0d8942b" + }, + "3.13/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "3b88fc6dd6f0290f075353ca860b9dc48faca0d849a0a03c088883507ed63881" + }, + "3.13/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5c71151ce936e495b0dc49fe3bdd67a9ec332542e2fc250257cd76276481103c" + }, + "3.13/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "c8f2e10261f327b3b9606c23c79788e1c909f0d703c4b06ebd59b318fa271c77" + }, + "3.13/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "e27287866347dd2cc1dc766174bb67f6b459cbadfbeff74c981abe7fe6cf86ba" + }, + "3.13/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "202a933d5435eced5e92f474fac9480a82959de2b3ea5555569de9bda6f4af4f" + }, + "3.13/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "d603daefc04db99a764942a835497e52beebeb8797f7ac828826969e6f8ea165" + }, + "3.13/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "07833bcaf50c80065db8a21d7ae0459939d95e3cf399ce8f7df908ddfc4d275f" + }, + "3.13/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.13.12", + "sha256": "5703d1e5fcd43d0ac3bce24e65d03a5684f3fec3625794ca9a0a47ad2ecbd0a1" + }, + "3.13/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "61d5f9750e6971cf3bc91a1c8e7ab2eed1c22a34067f0762917bfde12b121f9f" + }, + "3.13/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "8f1a00de7342d161bfefcb6bb90f50076b0c49e1ac4d4faa7fb303015369f310" + }, + "3.13/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "ee1d08c3e6149343077d410d7de835a7a7dda8e2cec80df94f393e858a300055" + }, + "3.13/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.13.12", + "sha256": "6bae3d9f3c03448efe7e72aaf7eba1c4af4531ee22964876b36c1569e5123159" + }, + "3.13/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.13.12+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.13.12", + "sha256": "36f73e0b72ac670bd56c927a078e3e2ef0b1fef1d89a792088766bf1236815b7" + }, + "3.14/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "cedbfdb352b7b0dbdfd2e4dba11244a64665402c44099f36af9e22dc269dd0c0" + }, + "3.14/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "adce81b366416e8d1b95c9c5483607282ae43c98fc155677020d20076d333fec" + }, + "3.14/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "5af1b60808d4e8df3838267086556e2518b24a71080a7c4dc0edf3ef6a5bd8c4" + }, + "3.14/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "f64e500abf0ff11b320cba756114caae6ea733c62af1c9516d28d92cf4223d74" + }, + "3.14/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "9ca5169b62fdedbbeb1e01429e5ed75d0c89efb0dffb3d5924c58f667f365863" + }, + "3.14/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "80030e336255241a76cd05c874b70a8840fef24e344907a4ae89f0f6c3c7daf6" + }, + "3.14/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff4076086f55f83746d680792f8346037060453cf078feba233ba28e4b2a3514" + }, + "3.14/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "97b7e0182daf74f884456a4a24cf882d0296092c918939d25ed1e1f4edee0469" + }, + "3.14/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "e3085abf12bdf84a91784915082eaffd4cac154acd9818aefc71a69e13bdaf24" + }, + "3.14/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "d969b1807fe6a3ebe9c1468c55331859d329119951ab01dc6ec5b2853c217a66" + }, + "3.14/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "ff7ba9353fb4f6f923e5a0c30564e448cb678deb69ac58e7f4f3a78944b40806" + }, + "3.14/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "29469be54c9e471b916f0375f83836811b4df29dc98e0b7452ae9ec483a500a0" + }, + "3.14/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.14.3", + "sha256": "7921cf0fa140f3714c4772b8af161ab463d0ad641ac35db0beff9d45273ab5f5" + }, + "3.14/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "201d5c13ee115e029bf6caa6bb17af2bfb3e4a3baf14c7f31e9145e2aa6571ef" + }, + "3.14/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "0629158c702d4ba732c722f24e5a775885e93915c7b04fe29cfb9c81e37f499f" + }, + "3.14/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "8070ec22c0ea164b826a57102f1bf1fa0b360e143ab3378b3c5eb4178bc0c26b" + }, + "3.14/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.14.3", + "sha256": "dc478897cecef7b6dfcd089b8a425e959885883d123ba4ce3e3ec1fcf5f9637a" + }, + "3.14/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.14.3+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.14.3", + "sha256": "e72b682f652eb8ba71550a7aa4f267ddf3fe06b165a29acd4194dfff0b51ed4e" + }, + "3.15/aarch64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "c2c9679a505c94abb6e0dcbcb1a9ea2148fbcab5b443e9c8efac388e591233a8" + }, + "3.15/aarch64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "7a6bb30a11361b58849ceeaf4d74f4085306f9b00de0c7f4703f9031cbb409ee" + }, + "3.15/aarch64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "62890d115b54d2456a74db09d3026834faee19ba1be257c287025b0e8ae6ad16" + }, + "3.15/aarch64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "aafd627b816dd83cb9ae670383482f3aa166e8f8910ca946278c5cc22f96bff6" + }, + "3.15/aarch64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "93792d31d2232f6bf27e08fbfe6aec221aab1a4aa42463ac879540d399b54bc2" + }, + "3.15/aarch64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "bc351efe2ef61f2d6fae1491b0d240f7616a7be28fcdad2d1644ce0429001ad6" + }, + "3.15/aarch64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "497bbd7bc486a3092e003761f6a4fb9fd2c9854dea249042b330cb70d2ebf42a" + }, + "3.15/aarch64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-aarch64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "55fabc3bfa81d6248db65da659c8f728fdfe8aa5dcd9551a5b1eaef09bc05cbd" + }, + "3.15/i686-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "4174719f384f3c6893c59e23ea88242c3ab9d84b7fffb9d1ed3a11e9d6a6a068" + }, + "3.15/i686-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-i686-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "a49e43ea7971bb975e00f132bd45bc6834177997add3de7a07361a7449a10bda" + }, + "3.15/x86_64-apple-darwin/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "cf23826a427d19ea945965ba0e00a210b0cd96c3e7c2741ccf1174c18c37d5a6" + }, + "3.15/x86_64-apple-darwin/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-apple-darwin-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "3c25506d64f6b8e0c38bb66f8430332578a69343c1b27078b7f91d5919f2549a" + }, + "3.15/x86_64-pc-windows-msvc/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-freethreaded+pgo-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "8c3de05f4df81a3b482fd62daa14b7863df2b517a487b75661e37dfee845a4e6" + }, + "3.15/x86_64-pc-windows-msvc/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-pc-windows-msvc-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "42690076ba8f6311b737b884f56217cab7d7287f3374ab8c629fd446913534d6" + }, + "3.15/x86_64-unknown-linux-gnu/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-freethreaded+pgo+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "9d95b1429958effe665c0dd7e2a9b8dfe1364b477637df87ddf372438adfa109" + }, + "3.15/x86_64-unknown-linux-gnu/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-gnu-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "ac11f7e619c154e3d9b56186b461f52b4afc583a5524e7109686a7a9e1835b6d" + }, + "3.15/x86_64-unknown-linux-musl/freethreaded": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-freethreaded+lto-full.tar.zst", + "full_version": "3.15.0a6", + "sha256": "2b5d35017190248ebbbf8b24432ec730e496dc68b911308a0cd4c21d8181d090" + }, + "3.15/x86_64-unknown-linux-musl/install_only": { + "filename": "cpython-3.15.0a6+20260303-x86_64-unknown-linux-musl-install_only.tar.gz", + "full_version": "3.15.0a6", + "sha256": "427675a1e0e79051540cce0f1b450ca0d11a8897486aba03796a8881cadf831f" + } + } + } + } +} diff --git a/py/BUILD.bazel b/py/BUILD.bazel index ba0c7dfbc..9c41bc9fc 100644 --- a/py/BUILD.bazel +++ b/py/BUILD.bazel @@ -49,7 +49,6 @@ bzl_library( deps = [ ":toolchains", "//py/private/interpreter:extension", - "//py/private/release:version", "@aspect_tools_telemetry_report//:defs.bzl", "@bazel_features//:features", ], @@ -60,7 +59,6 @@ bzl_library( srcs = ["toolchains.bzl"], visibility = ["//visibility:public"], deps = [ - "//py/private/release:version", "//py/private/toolchain:repo", "//py/private/toolchain:tools", "@bazel_features//:features", diff --git a/py/defs.bzl b/py/defs.bzl index a1a3d3245..77dcaf649 100644 --- a/py/defs.bzl +++ b/py/defs.bzl @@ -54,9 +54,8 @@ PyInfo = _PyInfo resolutions = _resolutions def _resolve_main(name, srcs, main): - """Macro-time fallback for `main`. Mirrors `_determine_main` in - py_semantics.bzl, except it operates on label strings instead of - files because srcs no longer reaches the underlying rule. Order: + """Macro-time fallback for `main`. Operates on label strings instead + of files because srcs no longer reaches the underlying rule. Order: 1. Use `main` if set. 2. If `srcs` has exactly one entry, use it. diff --git a/py/private/BUILD.bazel b/py/private/BUILD.bazel index 7e383b26a..6c3465562 100644 --- a/py/private/BUILD.bazel +++ b/py/private/BUILD.bazel @@ -7,7 +7,6 @@ package(default_visibility = ["//py:__subpackages__"]) exports_files( [ - "pytest.py.tmpl", "pytest_main.py", "modify_mtree.awk", ], diff --git a/py/private/interpreter/BUILD.bazel b/py/private/interpreter/BUILD.bazel index e9ee15d98..bd2c2d3cd 100644 --- a/py/private/interpreter/BUILD.bazel +++ b/py/private/interpreter/BUILD.bazel @@ -17,6 +17,7 @@ bzl_library( deps = [ ":exclude_feature_bzl", ":repository", + ":sanitize", ":version_util", ":versions", ], @@ -97,6 +98,12 @@ bzl_library( bzl_library( name = "resolve", srcs = ["resolve.bzl"], + deps = [":sanitize"], +) + +bzl_library( + name = "sanitize", + srcs = ["sanitize.bzl"], ) bzl_library( diff --git a/py/private/interpreter/exclude_feature.bzl b/py/private/interpreter/exclude_feature.bzl index 4ce71e0d6..b46e0626f 100644 --- a/py/private/interpreter/exclude_feature.bzl +++ b/py/private/interpreter/exclude_feature.bzl @@ -16,23 +16,11 @@ like: will match if "headers" is among the accumulated --exclude_feature values. """ -_VALID_FEATURES = [ - "headers", - "docs", - "tkinter", - "idle", - "ensurepip", - "config", - "pydoc", - "lib2to3", - "turtle", -] - def _exclude_feature_flag_impl(ctx): values = ctx.build_setting_value for v in values: - if v and v not in _VALID_FEATURES: - fail("Invalid exclude_feature '{}'. Valid values: {}".format(v, ", ".join(_VALID_FEATURES))) + if v and v not in INTERPRETER_FEATURES: + fail("Invalid exclude_feature '{}'. Valid values: {}".format(v, ", ".join(INTERPRETER_FEATURES.keys()))) return [] exclude_feature_flag = rule( @@ -57,6 +45,12 @@ INTERPRETER_FEATURES = { "include": [ "lib/python{major}.{minor}/tkinter/**", "lib/python{major}.{minor}/lib-dynload/_tkinter*", + "lib/libtcl*", + "lib/libtk*", + "lib/tcl*/**", + "lib/tk*/**", + "lib/itcl*/**", + "lib/thread*/**", ], "doc": "Tk GUI bindings", }, diff --git a/py/private/interpreter/extension.bzl b/py/private/interpreter/extension.bzl index 32a7901a7..e7262ecb6 100644 --- a/py/private/interpreter/extension.bzl +++ b/py/private/interpreter/extension.bzl @@ -1,6 +1,7 @@ """Module extension for provisioning Python interpreters from python-build-standalone.""" load(":repository.bzl", "python_interpreter", "python_toolchains") +load(":sanitize.bzl", "sanitize") load(":version_util.bzl", "is_decimal", "is_pre_release", "version_gt") load(":versions.bzl", "DEFAULT_RELEASE_BASE_URL", "DEFAULT_RELEASE_DATES", "PLATFORMS", "RUNTIME_MODES") @@ -11,10 +12,6 @@ _GITHUB_API_LATEST = "https://api.github.com/repos/{owner}/{repo}/releases/lates # must use a new key rather than accepting cached data from the old schema. _RELEASE_INDEX_SCHEMA = 1 -def _sanitize(s): - """Replace characters that are invalid in Bazel repo names.""" - return s.replace(".", "_").replace("-", "_").replace("+", "_") - def _parse_sha256sums(content, release_date): """Parse a SHA256SUMS file into a structured index. @@ -167,7 +164,6 @@ def _python_interpreters_impl(module_ctx): # Track whether the extension is reproducible. Using "latest" as a release # date makes it non-reproducible since the resolution depends on when it runs. is_reproducible = True - resolved_latest = None # Collect release configuration from the root module only. # Non-root configure() tags are silently ignored — this allows rules_py @@ -191,7 +187,6 @@ def _python_interpreters_impl(module_ctx): if date == "latest": is_reproducible = False date = _resolve_latest(module_ctx, base_url) - resolved_latest = date if len(date) != 8 or not is_decimal(date): fail( "PBS release identifiers must be eight decimal digits, got '{}'".format(date), @@ -262,11 +257,9 @@ def _python_interpreters_impl(module_ctx): # version. if mod.is_root and tag.pre_release: allow_pre_release[major_minor] = True - elif major_minor not in allow_pre_release: - allow_pre_release[major_minor] = False if not requested_versions: - return _return_metadata(module_ctx, has_facts, facts, is_reproducible, resolved_latest) + return _return_metadata(module_ctx, has_facts, facts, is_reproducible) new_facts = {} release_indices = {} @@ -304,11 +297,11 @@ def _python_interpreters_impl(module_ctx): for mode_name, mode_info in ordered_modes: for platform_triple, platform_info in PLATFORMS.items(): repo_name = "python_{}_{}".format( - _sanitize(major_minor), - _sanitize(platform_triple), + sanitize(major_minor), + sanitize(platform_triple), ) if mode_name != "install_only": - repo_name += "_" + _sanitize(mode_name) + repo_name += "_" + sanitize(mode_name) # Find the best release for this version/platform/mode asset_info = _find_asset( @@ -375,7 +368,7 @@ def _python_interpreters_impl(module_ctx): toolchains = toolchain_entries, ) - return _return_metadata(module_ctx, has_facts, new_facts, is_reproducible, resolved_latest) + return _return_metadata(module_ctx, has_facts, new_facts, is_reproducible) def _find_asset(major_minor, platform, runtime_mode, release_dates, release_indices): """Find the best asset across releases, preferring newer releases.""" @@ -392,23 +385,18 @@ def _find_asset(major_minor, platform, runtime_mode, release_dates, release_indi } return None -def _return_metadata(module_ctx, has_facts, facts, is_reproducible, resolved_latest): - """Return extension_metadata with facts and reproducibility info.""" +def _return_metadata(module_ctx, has_facts, facts, is_reproducible): + """Return extension_metadata with facts and reproducibility info. + + Non-reproducible means "latest" was used: signal this to Bazel so it + warns the user and doesn't cache the extension evaluation. + """ if not has_facts or not hasattr(module_ctx, "extension_metadata"): return None - if not is_reproducible: - # Non-reproducible: "latest" was used. Signal this to Bazel so it - # warns the user and doesn't cache the extension evaluation. - # Include the resolved date in the reproducibility report. - return module_ctx.extension_metadata( - facts = facts, - reproducible = False, - ) - return module_ctx.extension_metadata( facts = facts, - reproducible = True, + reproducible = is_reproducible, ) _configure_tag = tag_class( diff --git a/py/private/interpreter/resolve.bzl b/py/private/interpreter/resolve.bzl index e5a7a218d..76647e6fa 100644 --- a/py/private/interpreter/resolve.bzl +++ b/py/private/interpreter/resolve.bzl @@ -6,14 +6,12 @@ module-extension time (or repository-rule time) when a Python interpreter is needed for repo-phase tooling such as sdist inspection. """ +load(":sanitize.bzl", "sanitize") + # The Python version to resolve. Must be configured via the # python_interpreters extension in the root MODULE.bazel. _PBS_PYTHON_VERSION = "3.13" -def _sanitize(s): - """Replace characters invalid in Bazel repo names with underscores.""" - return s.replace(".", "_").replace("-", "_").replace("+", "_") - def _host_platform_triple(ctx): """Determine the PBS platform triple for the current host. @@ -73,7 +71,7 @@ def resolve_host_interpreter_label(ctx): binary = "python.exe" if is_windows else "bin/python3" repo_name = "python_{}_{}".format( - _sanitize(_PBS_PYTHON_VERSION), - _sanitize(triple), + sanitize(_PBS_PYTHON_VERSION), + sanitize(triple), ) return Label("@{}//:{}".format(repo_name, binary)) diff --git a/py/private/interpreter/sanitize.bzl b/py/private/interpreter/sanitize.bzl new file mode 100644 index 000000000..8fae69cd7 --- /dev/null +++ b/py/private/interpreter/sanitize.bzl @@ -0,0 +1,5 @@ +"""Shared helper for building Bazel repo names from version/platform strings.""" + +def sanitize(s): + """Replace characters that are invalid in Bazel repo names with underscores.""" + return s.replace(".", "_").replace("-", "_").replace("+", "_") diff --git a/py/private/interpreter/version_util_test.bzl b/py/private/interpreter/version_util_test.bzl index 1024804fd..0e7f23018 100644 --- a/py/private/interpreter/version_util_test.bzl +++ b/py/private/interpreter/version_util_test.bzl @@ -1,7 +1,7 @@ """Tests for version_util.bzl.""" load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") -load("//py/private/interpreter:version_util.bzl", "is_pre_release", "version_gt", "version_key") +load("//py/private/interpreter:version_util.bzl", "is_decimal", "is_pre_release", "version_gt", "version_key") def _version_key_test_impl(ctx): env = unittest.begin(ctx) @@ -103,6 +103,21 @@ def _is_pre_release_test_impl(ctx): is_pre_release_test = unittest.make(_is_pre_release_test_impl) +def _is_decimal_test_impl(ctx): + env = unittest.begin(ctx) + + asserts.true(env, is_decimal("0")) + asserts.true(env, is_decimal("20260303")) + + asserts.false(env, is_decimal("")) + asserts.false(env, is_decimal("3.12")) + asserts.false(env, is_decimal("12a")) + asserts.false(env, is_decimal("latest")) + + return unittest.end(env) + +is_decimal_test = unittest.make(_is_decimal_test_impl) + def version_util_test_suite(): unittest.suite( "version_util_tests", @@ -110,5 +125,6 @@ def version_util_test_suite(): version_gt_basic_test, version_gt_prerelease_test, version_gt_padding_test, + is_decimal_test, is_pre_release_test, ) diff --git a/py/private/providers.bzl b/py/private/providers.bzl index 817ce769f..c0ef29136 100644 --- a/py/private/providers.bzl +++ b/py/private/providers.bzl @@ -20,6 +20,9 @@ handling gives the later distinct element in the flattened sequence precedence. Duplicate dependency edges do not create another precedence position. Fields: * `top_levels`: tuple[str] — complete set of immediate `site-packages` entry names when nonempty; an empty tuple means the layout is unknown. + * `top_level_dirs`: tuple[str] — subset of non-metadata top_levels that + are directories in the RECORD-derived install tree rather than single-file + modules. * `namespace_top_levels`: tuple[str] — subset of top_levels that are PEP 420 namespace packages. * `namespace_entries`: tuple[str] — `/`-joined paths of the concrete entries beneath the namespace top-levels (e.g. `jaraco/functools`), used to materialise a merged @@ -33,13 +36,115 @@ Duplicate dependency edges do not create another precedence position. Fields: `regular_roots` with another wheel's `namespace_dirs` detects regular packages spanning wheels, which venv assembly must physically merge. May be absent on structs from older producers. + * `native_roots`: tuple[str] — collision-relevant top-level directories, + namespace directories, and regular roots containing RECORD entries with + native-library suffixes. A colliding root in this set cannot be copied + into a merge tree without changing the library's physical origin. * `site_packages_rfpath`: str — runfiles-root-relative path to the wheel's site-packages. * `console_scripts`: tuple[str] — entry points encoded as `"name=module:func"`. * `install_tree`: File — complete installed wheel tree. + * `tl_claims`, `metadata_top_levels`, `cs_claims`: derived fields + precomputed by `make_wheel_record` so venv assembly's collision + resolution does per-wheel parsing once instead of per consuming binary. + Each `tl_claims` entry carries the top-level's namespace, directory, + native-root, and namespace-entry facts. + +Records must be built with `make_wheel_record` so the derived fields are +present and consistent with the raw ones. """, }, ) +def make_wheel_record( + *, + site_packages_rfpath, + install_tree = None, + top_levels = (), + top_level_dirs = (), + namespace_top_levels = (), + namespace_entries = (), + namespace_dirs = (), + regular_roots = (), + native_roots = (), + console_scripts = ()): + """Build one PyWheelsInfo wheel record. + + Precomputes the collision-resolution claim structs that venv assembly + consumes, so parsing happens once per wheel rather than per consuming + binary. See the PyWheelsInfo field docs for the raw fields' semantics. + + Args: + site_packages_rfpath: runfiles-root-relative path to the wheel's site-packages. + install_tree: File holding the complete installed wheel tree. + top_levels: immediate site-packages entry names; empty means unknown layout. + top_level_dirs: directory-valued non-metadata top-level entries. + namespace_top_levels: subset of top_levels that are PEP 420 namespaces. + namespace_entries: concrete `/`-joined entries beneath the namespace top-levels. + namespace_dirs: implicit-namespace directory skeleton under the top-levels. + regular_roots: minimal `__init__.py`-carrying directories under the top-levels. + native_roots: collision-relevant roots containing native-library entries. + console_scripts: entry points encoded as `"name=module:func"`. + + Returns: + A struct for PyWheelsInfo.wheels. + """ + ns_set = {tl: True for tl in namespace_top_levels} + top_level_dir_set = {tl: True for tl in top_level_dirs} + native_root_set = {root: True for root in native_roots} + ns_entries_by_tl = {} + for entry in namespace_entries: + ns_entries_by_tl.setdefault(entry.split("/")[0], []).append(entry) + + tl_claims = [] + metadata_top_levels = [] + for tl in top_levels: + if tl.endswith(".dist-info") or tl.endswith(".egg-info"): + metadata_top_levels.append(tl) + continue + tl_claims.append((tl, struct( + site_packages = site_packages_rfpath, + is_ns = tl in ns_set, + is_dir = tl in top_level_dir_set, + is_native = tl in native_root_set, + ns_entries = tuple(ns_entries_by_tl.get(tl, [])), + ))) + + cs_claims = [] + for entry in console_scripts: + # Entry encoding: "name=module:func". + if "=" not in entry: + continue + name, _, target = entry.partition("=") + if ":" not in target: + continue + module, _, func = target.partition(":") + name = name.strip() + module = module.strip() + func = func.strip() + if not name or not module or not func: + continue + cs_claims.append((name, struct( + site_packages = site_packages_rfpath, + module = module, + func = func, + ))) + + return struct( + top_levels = tuple(top_levels), + top_level_dirs = tuple(top_level_dirs), + namespace_top_levels = tuple(namespace_top_levels), + namespace_entries = tuple(namespace_entries), + namespace_dirs = tuple(namespace_dirs), + regular_roots = tuple(regular_roots), + native_roots = tuple(native_roots), + site_packages_rfpath = site_packages_rfpath, + console_scripts = tuple(console_scripts), + install_tree = install_tree, + tl_claims = tuple(tl_claims), + metadata_top_levels = tuple(metadata_top_levels), + cs_claims = tuple(cs_claims), + ) + PyVirtualInfo = provider( doc = "FIXME", fields = { diff --git a/py/private/pth.bzl b/py/private/pth.bzl index b2b3b6f9f..62f4f8d09 100644 --- a/py/private/pth.bzl +++ b/py/private/pth.bzl @@ -1,4 +1,4 @@ -"""Helper functions for creating Python .pth files and building imports depsets.""" +"""Helper functions for building imports depsets.""" load("@bazel_skylib//lib:paths.bzl", "paths") load("//py/private:py_info.bzl", "PyInfo") @@ -80,49 +80,3 @@ def make_imports_depset(deps, imports, workspace_name, label = None, extra_impor if PyInfo in target ] + extra_imports_depsets, ) - -def write_pth_file(ctx, name, imports_depset, escape = None): - """Create a .pth file from an imports depset. - - A `.pth` file is dropped into the venv's `site-packages` directory so that - the interpreter adds those directories to `sys.path` at startup. - - When `escape` is provided, it is prepended to every import path and also - written as the first line of the file. This is used by `py_binary` because - the `.pth` file lives deep inside the venv tree, e.g.: - - {name}.runfiles/.{name}.venv/lib/python{version}/site-packages/{name}.pth - - The `escape` value is the relative path from `site-packages` back to the - runfiles root (e.g. `../../../../..`). By writing it as the first line, the - runfiles root itself becomes importable, which is required by a few targets - (notably `@bazel_tools//tools/python/runfiles`) that rely on the root being on - `sys.path` but have no `imports` attribute to hint that they need it. - - Args: - ctx: The rule context. - name: Base name for the output file (`{name}.pth`). - imports_depset: A depset of strings containing import paths. - escape: Optional prefix to prepend to each import path. Also written as - the first line of the file. For py_binary-style rules, this should be - the relative path from site-packages to the runfiles root. - - Returns: - The declared File for the .pth file. - """ - pth_lines = ctx.actions.args() - pth_lines.use_param_file("%s", use_always = True) - pth_lines.set_param_file_format("multiline") - - if escape: - pth_lines.add(escape) - pth_lines.add_all(imports_depset, format_each = "{}/%s".format(escape)) - else: - pth_lines.add_all(imports_depset) - - pth_file = ctx.actions.declare_file("{}.pth".format(name)) - ctx.actions.write( - output = pth_file, - content = pth_lines, - ) - return pth_file diff --git a/py/private/py_image_layer.bzl b/py/private/py_image_layer.bzl index 81dea2902..59c8e58bb 100644 --- a/py/private/py_image_layer.bzl +++ b/py/private/py_image_layer.bzl @@ -177,11 +177,11 @@ _LayerInfo = provider( "pip_packages": "depset[struct] — fully transitive pip packages with per-package layers.", "first_party_layers": "depset[struct(label, files, group)] — first-party PyInfo targets matched by py_layer_tier.groups.", "interpreter_files": "depset[File] — interpreter runfiles, populated only on the py toolchain pass for the binary-branch skip filter.", - "interpreter_layer": "struct(tar, group) | None — prebuilt interpreter layer tar + its group name, declared at the toolchain target's namespace so the tar action-shares across every py_image_layer using that toolchain config.", + "interpreter_layer": "struct(tar, group, interpreter_files) | None — prebuilt interpreter layer tar + its group name + the files used to build it, declared at the toolchain target's namespace so the tar action-shares across every py_image_layer using that toolchain config.", }, ) -_PY_VENV_KINDS = ("py_venv", "_py_venv") +_PY_VENV_KINDS = ("py_venv", "_py_venv", "_py_venv_lib") def _collect_from_deps(ctx, provider): """Walk deps/data/actual/venv and return a list of provider values from each matching dep.""" @@ -331,7 +331,7 @@ def _layer_aspect_impl(target, ctx): "PyImagePkgLayer", "Creating interpreter layer %s" % target.label, ) - interp_layer = struct(tar = interp_tar, group = interp_group) + interp_layer = struct(tar = interp_tar, group = interp_group, interpreter_files = interp_depset) return [_LayerInfo( source_files = depset(), pip_packages = depset(), @@ -344,6 +344,7 @@ def _layer_aspect_impl(target, ctx): transitive_source = [info.source_files for info in dep_infos] transitive_pkgs = [info.pip_packages for info in dep_infos] transitive_fp = [info.first_party_layers for info in dep_infos] + transitive_interp = [info.interpreter_layer for info in dep_infos if info.interpreter_layer != None] if PyWheelsInfo in target and ctx.rule.kind in ("whl_install", "py_unpacked_wheel"): plan = ctx.attr._layer_tier[PyLayerTierInfo] @@ -363,11 +364,14 @@ def _layer_aspect_impl(target, ctx): transitive = transitive_pkgs, ), first_party_layers = depset(transitive = transitive_fp), + interpreter_files = depset(), + interpreter_layer = None, )] own_source = [] own_fp = [] interpreter_layer = None + interpreter_files = None kind = ctx.rule.kind is_binary = ( PyInfo in target and @@ -384,6 +388,8 @@ def _layer_aspect_impl(target, ctx): source_files = depset(transitive = transitive_source), pip_packages = depset(transitive = transitive_pkgs), first_party_layers = depset(transitive = transitive_fp), + interpreter_files = depset(), + interpreter_layer = None, )] # Skip PyInfo deps (including wheel-leaf targets, which also emit PyInfo) — @@ -413,11 +419,18 @@ def _layer_aspect_impl(target, ctx): else: own_source.append(own_depset) + if kind in _PY_VENV_KINDS: + if PY_TOOLCHAIN in ctx.rule.toolchains: + py_tc = ctx.rule.toolchains[PY_TOOLCHAIN] + if _LayerInfo in py_tc: + tc_info = py_tc[_LayerInfo] + if tc_info.interpreter_layer != None: + interpreter_layer = tc_info.interpreter_layer + interpreter_files = tc_info.interpreter_files + # Binaries walk their runfiles for the source layer, filtering out bytes already # shipping in their own pip / fp-group / interpreter layers. if is_binary: - if PyInfo not in target: - own_source.append(target[DefaultInfo].files) skip_paths = {} for pkg_depset in transitive_pkgs: for pkg in pkg_depset.to_list(): @@ -429,23 +442,17 @@ def _layer_aspect_impl(target, ctx): skip_paths[f.path] = True # Opt-in interpreter layer. The aspect fires on the py toolchain via - # `toolchains_aspects` and declares the tar there; we just read the - # pre-built File out of the toolchain's _LayerInfo via ctx.rule.toolchains - # (NOT ctx.toolchains, which would pick the exec interpreter under - # cross-platform transitions) and propagate it up to the rule impl. + # `toolchains_aspects` and declares the tar there; the venv propagates + # that layer (and its file list) so the binary uses the exact interpreter + # that built the venv rather than relying on its own toolchain resolution. interp_paths = {} - if PY_TOOLCHAIN in ctx.rule.toolchains: - py_tc = ctx.rule.toolchains[PY_TOOLCHAIN] - if _LayerInfo in py_tc: - tc_info = py_tc[_LayerInfo] - interpreter_layer = tc_info.interpreter_layer - - # Only skip interpreter paths from the source layer when there - # IS a separate interpreter tar to route them to; otherwise the - # interpreter belongs in the default layer. - if interpreter_layer != None and tc_info.interpreter_files != None: - for f in tc_info.interpreter_files.to_list(): - interp_paths[f.path] = True + for interp_layer in transitive_interp: + if interp_layer.interpreter_files != None: + for f in interp_layer.interpreter_files.to_list(): + interp_paths[f.path] = True + if transitive_interp: + interpreter_layer = transitive_interp[0] + interpreter_files = transitive_interp[0].interpreter_files runfiles_files = target[DefaultInfo].default_runfiles.files.to_list() filtered = [f for f in runfiles_files if f.path not in skip_paths and f.path not in interp_paths] @@ -467,6 +474,7 @@ def _layer_aspect_impl(target, ctx): source_files = depset(transitive = transitive_source + own_source), pip_packages = depset(transitive = transitive_pkgs), first_party_layers = depset(direct = own_fp, transitive = transitive_fp), + interpreter_files = interpreter_files, interpreter_layer = interpreter_layer, )] @@ -799,8 +807,9 @@ def _py_image_layer_impl(ctx): pkg_by_label[pkg.label] = pkg all_pkgs = pkg_by_label.values() - layer_tier = ctx.attr.layer_tier if ctx.attr.layer_tier else ctx.attr._layer_tier - plan = layer_tier[PyLayerTierInfo] + # `_platform_cfg` rewrites the `//py:layer_tier` flag from `attr.layer_tier`, + # so `_layer_tier` always resolves to the effective tier. + plan = ctx.attr._layer_tier[PyLayerTierInfo] root = plan.root strip_prefix = plan.strip_prefix @@ -955,7 +964,7 @@ _py_image_layer = rule( "group_compress_levels": attr.string_dict(default = {}), "warn_remote_cache_threshold_mb": attr.int(default = 200), "warn_layer_count": attr.int(default = 90), - "platform": attr.string(default = ""), + "platform": attr.label(default = None, providers = [platform_common.PlatformInfo]), "layer_tier": attr.label(default = None, providers = [PyLayerTierInfo]), "_layer_tier": attr.label( default = "//py:layer_tier", @@ -1047,7 +1056,7 @@ def py_image_layer( group_compress_levels = group_compress_levels, warn_remote_cache_threshold_mb = warn_remote_cache_threshold_mb, warn_layer_count = warn_layer_count, - platform = platform or "", + platform = platform, layer_tier = layer_tier, tags = tags, **kwargs diff --git a/py/private/py_library.bzl b/py/private/py_library.bzl index ea7b6d2ae..8f9f8cbbf 100644 --- a/py/private/py_library.bzl +++ b/py/private/py_library.bzl @@ -10,11 +10,11 @@ load("//py/private:providers.bzl", "PyVirtualInfo", "PyWheelsInfo") load("//py/private:pth.bzl", "make_imports_depset") load("//py/private:py_info.bzl", "PyInfo") -def _make_instrumented_files_info(ctx, extra_source_attributes = [], extra_dependency_attributes = []): +def _make_instrumented_files_info(ctx): return coverage_common.instrumented_files_info( ctx, - source_attributes = ["srcs"] + extra_source_attributes, - dependency_attributes = ["data", "deps"] + extra_dependency_attributes, + source_attributes = ["srcs"], + dependency_attributes = ["data", "deps"], extensions = ["py"], ) @@ -64,7 +64,7 @@ def _make_virtual_resolutions_depset(ctx): ], ) -def _resolve_virtuals(ctx, ignore_missing = False): +def _resolve_virtuals(ctx): virtual = _make_virtual_depset(ctx).to_list() resolutions = _make_virtual_resolutions_depset(ctx).to_list() @@ -88,26 +88,25 @@ def _resolve_virtuals(ctx, ignore_missing = False): v_imports.append(resolution.target[PyInfo].imports) missing = sets.to_list(sets.difference(sets.make(virtual), sets.make(seen.keys()))) - if len(missing) > 0 and not ignore_missing: + if len(missing) > 0: fail("The following dependencies were marked as virtual, but no concrete label providing them was given: {}".format(", ".join(missing))) return struct( srcs = v_srcs, runfiles = v_runfiles, imports = v_imports, - missing = missing, ) -def _make_imports_depset(ctx, imports = [], extra_imports_depsets = []): +def _make_imports_depset(ctx, extra_imports_depsets = []): return make_imports_depset( deps = getattr(ctx.attr, "deps", []), - imports = getattr(ctx.attr, "imports", imports), + imports = getattr(ctx.attr, "imports", []), workspace_name = ctx.workspace_name, label = ctx.label, extra_imports_depsets = extra_imports_depsets, ) -def _make_wheels_depset(ctx, extra_transitive = []): +def _make_wheels_depset(ctx): """Collect PyWheelsInfo.wheels across deps + resolutions. Used by downstream rules that want a flat list of wheels (with their @@ -127,7 +126,6 @@ def _make_wheels_depset(ctx, extra_transitive = []): for target in getattr(ctx.attr, "resolutions", {}).keys(): if PyWheelsInfo in target: transitive.append(target[PyWheelsInfo].wheels) - transitive.extend(extra_transitive) return depset(order = "postorder", transitive = transitive) def _make_merged_runfiles(ctx, extra_depsets = [], extra_runfiles = [], extra_runfiles_depsets = []): @@ -216,7 +214,6 @@ py_library_utils = struct( attrs = _attrs, implementation = _py_library_impl, make_imports_depset = _make_imports_depset, - make_instrumented_files_info = _make_instrumented_files_info, make_merged_runfiles = _make_merged_runfiles, make_srcs_depset = _make_srcs_depset, make_wheels_depset = _make_wheels_depset, diff --git a/py/private/py_pex_binary.bzl b/py/private/py_pex_binary.bzl index 1cf8ed6b7..6e8606648 100644 --- a/py/private/py_pex_binary.bzl +++ b/py/private/py_pex_binary.bzl @@ -48,11 +48,10 @@ exclude_paths = [ ".venv/", ] -# determines if the given file is a `distinfo`, `dep` or a `source` +# determines if the given file is a `dep` or a `source` # this required to allow PEX to put files into different places. # # --dep: into `/.deps/` -# --distinfo: is only used for determining package metadata # --source: into `//` def _map_srcs(f, workspace): dest_path = _runfiles_path(f, workspace) @@ -64,10 +63,12 @@ def _map_srcs(f, workspace): site_packages_i = f.path.find("site-packages") - # If the path contains 'site-packages', treat it as a third party dep + # If the path contains 'site-packages', treat it as a third party dep. + # Top-level dist-info files contribute nothing: pex reads the package + # metadata itself via Distribution.load() on the `--dep` directory. if site_packages_i != -1: if f.path.find("dist-info", site_packages_i) != -1 and f.path.count("/", site_packages_i) == 2: - return ["--distinfo={}".format(f.dirname)] + return [] return ["--dep={}".format(f.path[:site_packages_i + len("site-packages")])] diff --git a/py/private/py_pytest_main.bzl b/py/private/py_pytest_main.bzl index 25f7787c2..0b84fd9d1 100644 --- a/py/private/py_pytest_main.bzl +++ b/py/private/py_pytest_main.bzl @@ -56,7 +56,7 @@ def _py_pytest_main_impl(ctx): } ctx.actions.expand_template( - template = ctx.file.template, + template = ctx.file._template, output = ctx.outputs.out, substitutions = dict(substitutions, **ctx.var), is_executable = False, @@ -76,14 +76,10 @@ _py_pytest_main = rule( doc = "The output file.", mandatory = True, ), - "template": attr.label( - doc = """INTERNAL USE ONLY. - A python script to be called as the pytest main. - Default values in the template are replaced before executing the script. - This is not considered a Public API. Replacements may change without warning. - """, + "_template": attr.label( + doc = "The pytest main script; substitution markers are replaced before use.", allow_single_file = True, - default = Label("//py/private:pytest.py.tmpl"), + default = Label("//py/private:pytest_main.py"), ), }, ) diff --git a/py/private/py_semantics.bzl b/py/private/py_semantics.bzl index 6b15f4471..dd13b4a18 100644 --- a/py/private/py_semantics.bzl +++ b/py/private/py_semantics.bzl @@ -53,14 +53,12 @@ def _resolve_toolchain(ctx): py3_toolchain = toolchain_info.py3_runtime - interpreter = None runfiles_interpreter = True if py3_toolchain.interpreter != None: files = depset([py3_toolchain.interpreter], transitive = [py3_toolchain.files]) interpreter = py3_toolchain.interpreter else: - files = py3_toolchain.files interpreter = struct( path = py3_toolchain.interpreter_path, short_path = py3_toolchain.interpreter_path, @@ -68,14 +66,10 @@ def _resolve_toolchain(ctx): files = depset([]) runfiles_interpreter = False - # Bazel 7 has this field on the PyRuntimeInfo - if hasattr(py3_toolchain, "interpreter_version_info"): - for attr in ["major", "minor", "micro"]: - if not hasattr(py3_toolchain.interpreter_version_info, attr): - fail(_MUST_SET_TOOLCHAIN_INTERPRETER_VERSION_INFO) - interpreter_version_info = py3_toolchain.interpreter_version_info - else: - fail(_MUST_SET_TOOLCHAIN_INTERPRETER_VERSION_INFO) + for attr in ["major", "minor", "micro"]: + if not hasattr(py3_toolchain.interpreter_version_info, attr): + fail(_MUST_SET_TOOLCHAIN_INTERPRETER_VERSION_INFO) + interpreter_version_info = py3_toolchain.interpreter_version_info # Read the freethreaded build setting if the consuming rule exposed # the attr. Freethreaded Python uses `lib/python.t/site-packages/` @@ -91,65 +85,10 @@ def _resolve_toolchain(ctx): python = interpreter, interpreter_version_info = interpreter_version_info, runfiles_interpreter = runfiles_interpreter, - flags = _INTERPRETER_FLAGS, freethreaded = freethreaded, ) -def _csv(values): - """Convert a list of strings to comma separated value string.""" - return ", ".join(sorted(values)) - -def _path_endswith(path, endswith): - # Use slash to anchor each path to prevent e.g. - # "ab/c.py".endswith("b/c.py") from incorrectly matching. - return ("/" + path).endswith("/" + endswith) - -def _determine_main(ctx): - """Determine the main entry point .py source file. - - Args: - ctx: The rule ctx. - - Returns: - Artifact; the main file. If one can't be found, an error is raised. - """ - if ctx.attr.main: - # Check the resolved file, not the label name — the label may be a generator. - if not ctx.file.main.basename.endswith(".py"): - fail("main must end in '.py', got: " + ctx.file.main.basename) - - # Short circuit; if the user gave us a label, believe them. - return ctx.file.main - - elif len(ctx.files.srcs) == 1: - # If the user only provided one src, take that - return ctx.files.srcs[0] - - else: - # Legacy rule name based searching :/ - if ctx.label.name.endswith(".py"): - fail("name must not end in '.py'") - proposed_main = ctx.label.name + ".py" - - main_files = [src for src in ctx.files.srcs if _path_endswith(src.short_path, proposed_main)] - - if len(main_files) > 1: - fail(("file name '{}' specified by 'main' attributes matches multiple files. " + - "Matches: {}").format( - proposed_main, - _csv([f.short_path for f in main_files]), - )) - - elif len(main_files) == 1: - return main_files[0] - - else: - fail("{} does not specify main=, and has multiple sources. Disambiguate the entrypoint".format( - ctx.label, - )) - semantics = struct( interpreter_flags = _INTERPRETER_FLAGS, resolve_toolchain = _resolve_toolchain, - determine_main = _determine_main, ) diff --git a/py/private/py_unpacked_wheel.bzl b/py/private/py_unpacked_wheel.bzl index 9c527e04a..28a142804 100644 --- a/py/private/py_unpacked_wheel.bzl +++ b/py/private/py_unpacked_wheel.bzl @@ -1,7 +1,7 @@ """Unpacks a Python wheel into a directory and returns a PyInfo provider that represents that wheel""" load("@bazel_skylib//lib:paths.bzl", "paths") -load("//py/private:providers.bzl", "PyWheelsInfo") +load("//py/private:providers.bzl", "PyWheelsInfo", "make_wheel_record") load("//py/private:pth.bzl", "make_imports_depset") load("//py/private:py_info.bzl", "PyInfo") load("//py/private:py_semantics.bzl", _py_semantics = "semantics") @@ -47,7 +47,7 @@ def _py_unpacked_wheel_impl(ctx): "site-packages", ) imports = make_imports_depset( - deps = getattr(ctx.attr, "deps", []), + deps = [], imports = [import_path], workspace_name = ctx.workspace_name, label = ctx.label, @@ -80,12 +80,12 @@ def _py_unpacked_wheel_impl(ctx): ] providers.append(PyWheelsInfo( - wheels = depset(direct = [struct( - top_levels = tuple(ctx.attr.top_levels), - namespace_top_levels = tuple(ctx.attr.namespace_top_levels), - namespace_entries = tuple(ctx.attr.namespace_entries), + wheels = depset(direct = [make_wheel_record( + top_levels = ctx.attr.top_levels, + namespace_top_levels = ctx.attr.namespace_top_levels, + namespace_entries = ctx.attr.namespace_entries, site_packages_rfpath = site_packages_rfpath, - console_scripts = tuple(ctx.attr.console_scripts), + console_scripts = ctx.attr.console_scripts, # See whl_install rule for the rationale. install_tree = unpack_directory, )]), diff --git a/py/private/py_venv/link.py b/py/private/py_venv/link.py index 1c410e3c8..5035c9a57 100644 --- a/py/private/py_venv/link.py +++ b/py/private/py_venv/link.py @@ -7,8 +7,6 @@ import argparse import os -import sys -import site from pathlib import Path @@ -44,7 +42,7 @@ def munge_venv_name(target_package, virtualenv_name): virtualenv_name = virtualenv_home.name builddir = os.path.normpath(os.environ["BUILD_WORKING_DIRECTORY"]) - target_package, target_name = os.environ["BAZEL_TARGET"].split("//", 1)[1].split(":") + target_package = os.environ["BAZEL_TARGET"].split("//", 1)[1].split(":")[0] PARSER = argparse.ArgumentParser( prog="link", diff --git a/py/private/py_venv/py_venv.bzl b/py/private/py_venv/py_venv.bzl index 8c9ffb676..ed21251f4 100644 --- a/py/private/py_venv/py_venv.bzl +++ b/py/private/py_venv/py_venv.bzl @@ -29,15 +29,14 @@ load("@bazel_lib//lib:expand_make_vars.bzl", "expand_locations", "expand_variabl load("@bazel_lib//lib:paths.bzl", "BASH_RLOCATION_FUNCTION", "to_rlocation_path") load("//py/private:py_library.bzl", _py_library = "py_library_utils") load("//py/private:py_semantics.bzl", _py_semantics = "semantics") -load("//py/private:transitions.bzl", "python_version_transition") +load("//py/private:transitions.bzl", "python_transition") load("//py/private/toolchain:types.bzl", "EXEC_TOOLS_TOOLCHAIN", "PY_TOOLCHAIN") load(":py_venv_exec.bzl", _py_venv_exec = "py_venv_exec") load(":types.bzl", "VirtualenvInfo", "venv_root") load(":venv.bzl", "assemble_venv") -def _interpreter_flags(ctx, include_main = False): - py_toolchain = _py_semantics.resolve_toolchain(ctx) - args = py_toolchain.flags + ctx.attr.interpreter_options +def _interpreter_flags(ctx): + args = _py_semantics.interpreter_flags + ctx.attr.interpreter_options # py_venv strips `-I` so the interpreter picks up PYTHONPATH and # script dir — useful when users `bazel run` the venv for an @@ -45,9 +44,6 @@ def _interpreter_flags(ctx, include_main = False): # The per-binary py_binary launcher keeps `-I` (see py_venv_exec.bzl). args = [it for it in args if it not in ["-I"]] - if include_main and hasattr(ctx.file, "main") and ctx.file.main: - args.append("\"$(rlocation {})\"".format(to_rlocation_path(ctx, ctx.file.main))) - return args def _assemble_shared(ctx): @@ -60,7 +56,6 @@ def _assemble_shared(ctx): ctx, extra_imports_depsets = virtual_resolution.imports, ) - wheels_depset = _py_library.make_wheels_depset(ctx) default_env = { "BAZEL_TARGET": str(ctx.label).lstrip("@"), @@ -106,10 +101,32 @@ def _assemble_shared(ctx): venv = venv, runfiles = runfiles, imports_depset = imports_depset, - wheels_depset = wheels_depset, srcs_depset = srcs_depset, ) +def _common_providers(ctx, shared, executable = None): + """Providers emitted by both the executable and lib variants.""" + return [ + DefaultInfo( + files = depset([executable]) if executable != None else None, + executable = executable, + runfiles = shared.runfiles, + ), + # Deliberately no PyInfo: a venv is a terminal artifact, not a source of imports. + VirtualenvInfo( + bin_python = shared.venv.bin_python, + imports = shared.imports_depset, + transitive_sources = shared.srcs_depset, + ), + # `bazel coverage` finds this by walking the consumer's `venv` attr. + coverage_common.instrumented_files_info( + ctx, + source_attributes = ["srcs"], + dependency_attributes = ["deps"], + extensions = ["py"], + ), + ] + def _py_venv_rule_impl(ctx): """A virtualenv target whose own executable activates the venv and exec's the interpreter — a `bazel run :name`-able venv.""" @@ -143,39 +160,13 @@ def _py_venv_rule_impl(ctx): # overrides with its own absolute value when invoked directly. passed_env["VIRTUAL_ENV"] = venv_root(shared.venv.bin_python) - return [ - DefaultInfo( - files = depset([ctx.outputs.executable]), - executable = ctx.outputs.executable, - runfiles = shared.runfiles, - ), - # Does not provide PyInfo because venvs are terminal artifacts — - # a py_binary consumer would see this as "the binary to run", - # not "a source of imports". - VirtualenvInfo( - bin_python = shared.venv.bin_python, - venv_name = shared.venv.venv_name, - imports = shared.imports_depset, - wheels = shared.wheels_depset, - transitive_sources = shared.srcs_depset, - ), - # Forwarded to the sibling py_binary/py_test consumer (created - # by `expose_venv = True`) so env vars declared on the venv - # apply to the binary using it. The binary's own `env` wins on - # key conflicts; see py_venv_exec.bzl. + return _common_providers(ctx, shared, executable = ctx.outputs.executable) + [ + # Read by the sibling `expose_venv = True` py_binary/py_test; + # the binary's own `env` wins on key conflicts (py_venv_exec.bzl). RunEnvironmentInfo( environment = passed_env, inherited_environment = ctx.attr.env_inherit, ), - # `bazel coverage` walks the binary's `venv` attr to - # pick this up — the venv carries the test's `srcs` and - # first-party `deps`, so this is where instrumentation belongs. - coverage_common.instrumented_files_info( - ctx, - source_attributes = ["srcs"], - dependency_attributes = ["deps"], - extensions = ["py"], - ), ] # Attrs read by both the executable and lib variants — venv assembly, @@ -197,12 +188,12 @@ Only works with the Aspect rules_py uv machinery. See `py_binary`'s attribute of the same name for full semantics — the two rules share the underlying collision detector. PEP 420 namespace top-levels merge. -For ordinary top-levels, exact namespace entries, and console scripts, -permissive modes select the last distinct claimant in the postorder wheel -sequence. Regular-package spans overlay in that sequence; incompatible +Ordinary directory-valued top-levels and regular-package spans overlay in +the postorder wheel sequence. Other ordinary top-levels, exact namespace +entries, and console scripts select the last distinct claimant; incompatible namespace prefixes retain the shallower entry. Wheels not represented in -`PyWheelsInfo` remain on the `.pth` fallback. A duplicate dependency edge does -not reinsert a wheel. +`PyWheelsInfo` remain on the `.pth` fallback. A duplicate dependency edge +does not reinsert a wheel. * "error": Fail analysis or the physical merge action. * "warning" (default): Print a warning and apply the permissive behavior above. @@ -243,7 +234,8 @@ not reinsert a wheel. "_windows_constraint": attr.label( default = "@platforms//os:windows", ), - # Tool for physically merging a regular package that spans wheels + # Tool for physically merging a regular package that spans wheels or + # collides as a top-level directory # (e.g. azure-core + azure-core-tracing-opentelemetry both # installing into `azure/core/tracing/`) — see assemble_venv. "_site_merge_script": attr.label( @@ -288,14 +280,14 @@ _py_venv = rule( attrs = _attrs, toolchains = [ PY_TOOLCHAIN, - # Optional: only consulted when a regular package spans wheels + # Optional: only consulted when a regular package needs a physical merge # and assemble_venv needs an exec-config interpreter to run the # site_merge action. Optional so venvs keep analyzing in setups # that never registered rules_py's exec-tools toolchain. config_common.toolchain_type(EXEC_TOOLS_TOOLCHAIN, mandatory = False), ], executable = True, - cfg = python_version_transition, + cfg = python_transition, ) def _py_venv_lib_rule_impl(ctx): @@ -304,22 +296,7 @@ def _py_venv_lib_rule_impl(ctx): non-executable targets; py_venv_exec.bzl gates its read on `if RunEnvironmentInfo in venv`).""" shared = _assemble_shared(ctx) - return [ - DefaultInfo(runfiles = shared.runfiles), - VirtualenvInfo( - bin_python = shared.venv.bin_python, - venv_name = shared.venv.venv_name, - imports = shared.imports_depset, - wheels = shared.wheels_depset, - transitive_sources = shared.srcs_depset, - ), - coverage_common.instrumented_files_info( - ctx, - source_attributes = ["srcs"], - dependency_attributes = ["deps"], - extensions = ["py"], - ), - ] + return _common_providers(ctx, shared) # Internal-only non-executable variant. Uses `_lib_attrs` — the # launcher-only attrs (`debug`, `interpreter_options`, `_run_tmpl`, @@ -330,10 +307,10 @@ _py_venv_lib = rule( toolchains = [ PY_TOOLCHAIN, # Same optional exec-tools dependency as `_py_venv`: assemble_venv - # needs it to run the site_merge action when a package spans wheels. + # needs it to run the site_merge action when a package needs a merge. config_common.toolchain_type(EXEC_TOOLS_TOOLCHAIN, mandatory = False), ], - cfg = python_version_transition, + cfg = python_transition, ) def _wrap_with_debug(rule): @@ -353,8 +330,6 @@ py_venv = _wrap_with_debug(_py_venv) # shared (copied into venv kwargs but kept in kwargs so they also reach # the launcher rule). _VENV_ONLY_ATTRS = [ - "deps", - "imports", "resolutions", "virtual_deps", "package_collisions", diff --git a/py/private/py_venv/py_venv_exec.bzl b/py/private/py_venv/py_venv_exec.bzl index 83a1a0472..aa2222324 100644 --- a/py/private/py_venv/py_venv_exec.bzl +++ b/py/private/py_venv/py_venv_exec.bzl @@ -35,8 +35,6 @@ def _py_venv_exec_impl(ctx): fail("main must end in '.py', got: " + main.basename) venv = ctx.attr.venv - if not venv: - fail("py_binary {}: venv is required.".format(ctx.label)) vinfo = venv[VirtualenvInfo] # Merge env vars: start from the venv's `env` (if any), then diff --git a/py/private/py_venv/types.bzl b/py/private/py_venv/types.bzl index cbeefff92..569281870 100644 --- a/py/private/py_venv/types.bzl +++ b/py/private/py_venv/types.bzl @@ -12,15 +12,11 @@ virtualenv for downstream consumers. Consumed by `py_binary` / `py_test` when `expose_venv = True` splits the call into a sibling py_venv + a binary that consumes it. The -binary's launcher exec's the venv's `bin_python`; `imports` and -`wheels` are used for analysis-time coverage checks so binaries fail -loudly when their dep closure isn't covered by the venv. +binary's launcher exec's the venv's `bin_python`. """, fields = { "bin_python": "File — the venv's bin/python symlink. Callers needing a launcher target point here.", - "venv_name": "str — the venv dir's basename (e.g. `.myapp_venv`). Combine with ctx.label to derive the runfiles path to the venv root.", - "imports": "depset[str] — rlocation-root-relative import paths covered by this venv. Mirrors `PyInfo.imports` of the venv's dep closure. Used by py_binary to verify its own imports are a subset.", - "wheels": "depset[struct] — per-wheel metadata (same shape as `PyWheelsInfo.wheels`). Used by py_binary to verify its own wheel deps are covered by the venv.", + "imports": "depset[str] — rlocation-root-relative import paths covered by this venv. Mirrors `PyInfo.imports` of the venv's dep closure.", "transitive_sources": "depset[File] — first-party Python sources carried by this venv (its own `srcs` plus those of any `deps` that emit `PyInfo`). Surfaced by py_binary as `PyInfo.transitive_sources` so downstream consumers see the same source closure they'd see if srcs/deps lived on the binary directly.", }, ) diff --git a/py/private/py_venv/venv.bzl b/py/private/py_venv/venv.bzl index 368a16a75..0ed284e9b 100644 --- a/py/private/py_venv/venv.bzl +++ b/py/private/py_venv/venv.bzl @@ -78,7 +78,16 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): entirely. Wheels lacking entry metadata (hand-written `py_unpacked_wheel`) keep the historical `.pth`-only fallback, where Python's namespace machinery merges contributions at - runtime. Otherwise apply `package_collisions` policy. + runtime. Otherwise apply `package_collisions` policy. When every + claimant identifies the top-level as a directory, + permissive modes physically merge it: Python binds a regular package + to the first directory on sys.path, so a .pth fallback would hide the + other wheels' unique children. A root carrying a native library stays + on a direct wheel projection: copying it would change the library's + physical origin and can break origin-relative sibling lookup. Distinct + losing distributions keep their whole-wheel fallback so regular + packages that extend __path__ can still see a native namespace graft; + only a loser with duplicate declared metadata is suppressed. Within an all-namespace top-level there's one shape `.pth` + `addsitedir` cannot handle: a REGULAR package spanning wheels. @@ -109,15 +118,14 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): `jaraco/functools`) for merged namespace packages, and distribution metadata entries owned by fully covered wheels. fully_covered_site_pkgs: dict[str, True] — site-packages paths whose - declared import roots ALL ended up claimed by them (directly or - via a complete namespace merge) — safe to drop from the .pth + declared import roots are all projected, merged, or deliberately + suppressed by collision policy — safe to drop from the .pth fallback. console_scripts_map: dict {script_name: struct(module, func)} after collision resolution. - merge_groups: list of struct(root, site_packages_list) — regular - package dirs (site-packages-relative paths) that span wheels - and need a physical merge, with the contributing wheels' - site-packages paths in wheel traversal order. + merge_groups: list of struct(root, site_packages_list) — package dirs + (site-packages-relative paths) that need a physical merge, with the + contributing wheels' site-packages paths in wheel traversal order. """ def _complain(what, name, a, b): @@ -134,58 +142,122 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): # buildifier: disable=print print(msg) + def _distinct_claimants(keys): + """Dedup ordered claimant keys, preserving first-claim order. + + Collision precedence is "last distinct claimant wins": the final + element is the winner, everything before it is a loser. + """ + return {k: True for k in keys}.keys() + + def _distinct_by_sp(claimants): + """Last claim struct per claimant, keyed in first-claim (precedence) order. + + Starlark dicts preserve insertion order and overwriting a key keeps + its position, so .keys() is exactly the distinct-claimant precedence + chain (last element wins) and .values() the matching claim structs. + """ + return {c.site_packages: c for c in claimants} + + def _complain_chain(what, name, distinct): + """Complain once per takeover along a distinct-claimant chain.""" + for i in range(1, len(distinct)): + _complain(what, name, distinct[i - 1], distinct[i]) + + def _under(path, roots): + """True when path equals or sits below any of roots.""" + for root in roots: + if path == root or path.startswith(root + "/"): + return True + return False + + def _covers(root, paths): + """True when any of paths equals or sits below root.""" + for p in paths: + if p == root or p.startswith(root + "/"): + return True + return False + + def _shallowest(roots): + """Minimal cover of roots: drop any root nested below another. + + Lexicographic order puts an ancestor before its descendants, so a + single pass over the sorted roots suffices. + """ + out = [] + for root in sorted(roots): + if not _under(root, out): + out.append(root) + return out + # Pass 1: bucket claimants per import root, distribution metadata entry, - # and console-script name. - tl_claimants = {} # tl -> list of struct(site_packages, is_ns, ns_entries) + # and console-script name. The per-wheel claim structs are precomputed + # by make_wheel_record, so this pass only merges them per closure. + tl_claimants = {} # tl -> list of struct(site_packages, is_ns, is_dir, is_native, ns_entries) metadata_claimants = {} # metadata entry -> ordered site_packages paths cs_claimants = {} # name -> list of struct(site_packages, module, func) wheel_by_sp = {} # site_packages_rfpath -> wheel struct for w in wheels: wheel_by_sp[w.site_packages_rfpath] = w - ns_set = {tl: True for tl in getattr(w, "namespace_top_levels", ())} - ns_entries_by_tl = {} - for entry in getattr(w, "namespace_entries", ()): - ns_entries_by_tl.setdefault(entry.split("/")[0], []).append(entry) - for tl in w.top_levels: - if tl.endswith(".dist-info") or tl.endswith(".egg-info"): - metadata_claimants.setdefault(tl, []).append(w.site_packages_rfpath) - continue - tl_claimants.setdefault(tl, []).append(struct( - site_packages = w.site_packages_rfpath, - is_ns = tl in ns_set, - ns_entries = tuple(ns_entries_by_tl.get(tl, [])), - )) - for entry in getattr(w, "console_scripts", ()): - # Entry encoding from the repo rule: "name=module:func". - if "=" not in entry: - continue - name, _, target = entry.partition("=") - if ":" not in target: - continue - module, _, func = target.partition(":") - name = name.strip() - module = module.strip() - func = func.strip() - if not name or not module or not func: - continue - cs_claimants.setdefault(name, []).append(struct( - site_packages = w.site_packages_rfpath, - module = module, - func = func, - )) + for tl in w.metadata_top_levels: + metadata_claimants.setdefault(tl, []).append(w.site_packages_rfpath) + for tl, claim in w.tl_claims: + tl_claimants.setdefault(tl, []).append(claim) + for name, claim in w.cs_claims: + cs_claimants.setdefault(name, []).append(claim) + + # A native collision cannot both keep every wheel-relative root and merge + # them into one concrete venv directory. Distinct distributions may keep a + # losing wheel on the .pth fallback, which also preserves namespace grafts + # for regular packages that extend __path__. A duplicate declared metadata + # entry makes every losing fallback unsound because metadata discovery + # scans every sys.path entry. Cover only prior duplicate-metadata + # claimants; the selected claimant still keeps fallback when needed. + duplicate_metadata_loser_sps = { + loser: True + for claimants in metadata_claimants.values() + for loser in _distinct_claimants(claimants)[:-1] + } # Pass 2: resolve top-levels. Track which (site_packages, tl) pairs - # we SKIPPED (left to the .pth fallback) and which namespace claims - # were fully COVERED by per-entry symlinks, so pass 3 can decide - # which wheels are fully covered. + # we SKIPPED (left to the .pth fallback) and which claims were fully + # COVERED by projection, merge, or deliberate collision suppression, so + # pass 3 can decide which wheels are fully covered. top_level_to_site_pkgs = {} skipped_per_wheel = {} - ns_covered_per_wheel = {} + covered_per_wheel = {} + merge_groups = [] conflicted_roots = {} # root path -> True (regular package spanning wheels) ns_claimant_sps = {} # sp -> True, wheels in any all-namespace collision - top_level_merges = {} # tl -> [site_packages_rfpath, ...] for mixed regular/namespace + + def _own_entries(claimants_with_entries, tl, exclude_roots): + """Per-entry merge over the entries-bearing claimants of tl. + + The last distinct wheel to claim an entry wins. An earlier wheel + shipping the same entry is a genuine collision (same subpackage + twice) — complain per policy and leave the earlier claimant on + the .pth path. Entries under exclude_roots are owned by either a + direct native projection or a physical merge and are not merged + here. + (An entryless claimant shipping the same subpackage can't be + detected here; the concrete symlink wins over its .pth portion.) + """ + entry_owner = {} + for c in claimants_with_entries: + for entry in c.ns_entries: + if _under(entry, exclude_roots): + continue + prior = entry_owner.get(entry) + if prior == None: + entry_owner[entry] = c + elif prior.site_packages != c.site_packages: + _complain("namespace entry", entry, prior.site_packages, c.site_packages) + skipped_per_wheel.setdefault(prior.site_packages, {})[tl] = True + entry_owner[entry] = c + return entry_owner + for tl, claimants in tl_claimants.items(): - distinct_sp = {c.site_packages: c for c in claimants} + distinct_sp = _distinct_by_sp(claimants) if len(distinct_sp) == 1: top_level_to_site_pkgs[tl] = claimants[0].site_packages continue @@ -204,53 +276,97 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): # physical merge in pass 2a, and record every all-namespace # claimant sp. tl_prefix = tl + "/" - tl_conflicted = False + tl_conflicted_roots = {} for sp_a in distinct_sp.keys(): ns_claimant_sps[sp_a] = True w_a = wheel_by_sp[sp_a] - for root in getattr(w_a, "regular_roots", ()): + for root in w_a.regular_roots: if not root.startswith(tl_prefix): continue for sp_b in distinct_sp.keys(): if sp_b == sp_a: continue w_b = wheel_by_sp[sp_b] - if (root in getattr(w_b, "namespace_dirs", ()) or - root in getattr(w_b, "regular_roots", ())): - conflicted_roots[root] = True - tl_conflicted = True + if (root in w_b.namespace_dirs or + root in w_b.regular_roots): + tl_conflicted_roots[root] = True unique_claimants = distinct_sp.values() - # Regular-span conflict: PySiteMerge owns the conflicted roots; - # all claimants fall back to .pth. Sibling namespace entries - # outside the conflict still get concrete per-entry symlinks. - if tl_conflicted: + native_candidates = [ + root + for root in tl_conflicted_roots + if any([root in wheel_by_sp[c.site_packages].native_roots for c in unique_claimants]) + ] + + # A native root owns every overlapping descendant. If a pure + # conflicted root contains a native candidate, promote the outer + # root too: merging the outer tree would still relocate the + # native descendant, and declaring both paths would collide. + native_conflicted_roots = _shallowest([ + root + for root in tl_conflicted_roots + if _covers(root, native_candidates) + ]) + + for root in tl_conflicted_roots: + if not _under(root, native_conflicted_roots): + conflicted_roots[root] = True + + # Regular-span conflict: PySiteMerge owns mergeable roots; native + # roots keep a later regular-claimant direct projection instead. + # A distinct losing native claimant stays on .pth so a regular + # package that extends __path__ can still see its graft. A losing + # prior claimant with duplicate declared metadata is covered + # instead: its fallback would expose an unsuppressible duplicate + # metadata entry. The selected duplicate claimant still keeps + # fallback when needed. Sibling namespace entries still get + # concrete per-entry symlinks. Metadata-unknown wheels also need + # .pth. + if tl_conflicted_roots: + claimants_with_entries = [c for c in unique_claimants if c.ns_entries] for c in unique_claimants: - skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True + if not c.ns_entries: + skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True + + native_winner_by_root = {} + for root in native_conflicted_roots: + # A namespace-only projection cannot own runtime imports + # while a regular claimant exists: Python binds the + # regular package first and hides the namespace graft. + # Every conflicted root has a regular claimant by + # construction above. + regulars = [ + c + for c in unique_claimants + if root in wheel_by_sp[c.site_packages].regular_roots + ] + if not regulars: + fail("{}: native conflicted root {} has no regular claimant.".format(ctx.label, root)) + winner_sp = regulars[-1].site_packages + top_level_to_site_pkgs[root] = winner_sp + native_winner_by_root[root] = winner_sp - entried = [c for c in unique_claimants if c.ns_entries] - if entried: - entry_owner = {} - for c in entried: - for entry in c.ns_entries: - # Skip entries inside a conflicted root — - # the physical merge owns those. - under_conflict = False - for root in conflicted_roots: - if entry == root or entry.startswith(root + "/"): - under_conflict = True - break - if under_conflict: - continue - prior = entry_owner.get(entry) - if prior == None: - entry_owner[entry] = c - elif prior.site_packages != c.site_packages: - _complain("namespace entry", entry, prior.site_packages, c.site_packages) - entry_owner[entry] = c + for c in unique_claimants: + w = wheel_by_sp[c.site_packages] + for root, winner_sp in native_winner_by_root.items(): + contributes = ( + root in w.regular_roots or + root in w.namespace_dirs or + _covers(root, c.ns_entries) + ) + if contributes: + if (c.site_packages != winner_sp and + c.site_packages not in duplicate_metadata_loser_sps): + skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True + + if claimants_with_entries: + entry_owner = _own_entries(claimants_with_entries, tl, tl_conflicted_roots) for entry, c in entry_owner.items(): top_level_to_site_pkgs[entry] = c.site_packages + for c in claimants_with_entries: + if tl not in skipped_per_wheel.get(c.site_packages, {}): + covered_per_wheel.setdefault(c.site_packages, {})[tl] = True continue # Pure PEP 420 namespace (no regular package spanning wheels). @@ -264,30 +380,14 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): # entryless wheel still resolves at import time. Only when NO # claimant has entries do we keep the historical .pth-only # fallback for the whole group. - entried = [c for c in unique_claimants if c.ns_entries] + claimants_with_entries = [c for c in unique_claimants if c.ns_entries] for c in unique_claimants: if not c.ns_entries: skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True - if not entried: + if not claimants_with_entries: continue - # Per-entry merge over the entries-bearing claimants: the last - # distinct wheel to claim an entry wins. An earlier wheel shipping - # the same entry is a genuine collision (same subpackage twice) - # — complain per policy and leave the earlier claimant on the - # .pth path. - # (An entryless claimant shipping the same subpackage can't be - # detected here; the concrete symlink wins over its .pth portion.) - entry_owner = {} - for c in entried: - for entry in c.ns_entries: - prior = entry_owner.get(entry) - if prior == None: - entry_owner[entry] = c - elif prior.site_packages != c.site_packages: - _complain("namespace entry", entry, prior.site_packages, c.site_packages) - skipped_per_wheel.setdefault(prior.site_packages, {})[tl] = True - entry_owner[entry] = c + entry_owner = _own_entries(claimants_with_entries, tl, []) # A nested-namespace mismatch (wheel A ships # `google/cloud/__init__.py` while wheel B treats @@ -332,99 +432,78 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): # per-wheel coverage so pass 3 can drop them from the .pth # fallback. Entryless claimants stay in skipped_per_wheel # (routed to .pth above) and are intentionally excluded. - for c in entried: + for c in claimants_with_entries: if tl not in skipped_per_wheel.get(c.site_packages, {}): - ns_covered_per_wheel.setdefault(c.site_packages, {})[tl] = True + covered_per_wheel.setdefault(c.site_packages, {})[tl] = True continue - elif any_namespace: - # Mixed regular/namespace at this top-level: some wheels ship - # __init__.py here while others treat it as a PEP 420 namespace. - # pip handles this by physically merging all contributing directories; - # we do the same via PySiteMerge. - unique_claimants = list(distinct_sp.values()) - first = unique_claimants[0] - for c in unique_claimants[1:]: - _complain("top-level", tl, first.site_packages, c.site_packages) - for c in unique_claimants: - skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True - top_level_merges[tl] = [ - ordered_w.site_packages_rfpath - for ordered_w in wheels - if ordered_w.site_packages_rfpath in distinct_sp - ] + _complain_chain("top-level", tl, distinct_sp.keys()) + distinct_claimants = distinct_sp.values() + + # Mixed regular/namespace claims are necessarily directories. For + # ordinary collisions, RECORD-derived claims distinguish directories + # that can merge from single-file modules that must keep precedence. + all_directories = any_namespace or all([c.is_dir for c in distinct_claimants]) + has_native_root = any([c.is_native for c in distinct_claimants]) + + if all_directories: + if has_native_root: + # Native libraries may resolve sibling assets from their + # physical origin. Keep the later regular claimant as a + # direct wheel-relative projection instead of copying it + # into a merge tree. Distinct losing distributions stay on + # fallback for __path__-extending regular packages; duplicate + # metadata losers are suppressed so their metadata cannot + # remain visible from another sys.path entry. + winner = [c for c in distinct_claimants if not c.is_ns][-1] + top_level_to_site_pkgs[tl] = winner.site_packages + for c in distinct_claimants: + if (c.site_packages == winner.site_packages or + c.site_packages in duplicate_metadata_loser_sps): + covered_per_wheel.setdefault(c.site_packages, {})[tl] = True + else: + skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True + else: + for c in distinct_claimants: + covered_per_wheel.setdefault(c.site_packages, {})[tl] = True + merge_groups.append(struct( + root = tl, + site_packages_list = [c.site_packages for c in distinct_claimants], + )) continue - winner = claimants[0] - seen = {winner.site_packages: True} - for c in claimants[1:]: - if c.site_packages in seen: - continue - _complain("top-level", tl, winner.site_packages, c.site_packages) - skipped_per_wheel.setdefault(winner.site_packages, {})[tl] = True - winner = c - seen[c.site_packages] = True + winner = distinct_claimants[-1] + for c in distinct_claimants: + if c.site_packages != winner.site_packages: + skipped_per_wheel.setdefault(c.site_packages, {})[tl] = True top_level_to_site_pkgs[tl] = winner.site_packages - # Pass 2a: fold conflicted roots into merge groups. Keep only the - # minimal (shallowest) roots — a conflicted root nested inside - # another conflicted root is covered by merging the outer one. For - # each root, the contributors are every namespace-claimant wheel - # that has the root in its skeleton (content below it) or as its - # own regular root, in wheel traversal order. - merge_groups = [] - minimal_roots = [] - for root in sorted(conflicted_roots.keys()): - nested = False - for outer in minimal_roots: - if root == outer or root.startswith(outer + "/"): - nested = True - break - if not nested: - minimal_roots.append(root) - for root in minimal_roots: - group_sps = [] - group_sps_seen = {} - for ordered_w in wheels: - sp = ordered_w.site_packages_rfpath - if sp in group_sps_seen or sp not in ns_claimant_sps: - continue - group_sps_seen[sp] = True - w = wheel_by_sp[sp] - if (root in getattr(w, "regular_roots", ()) or - root in getattr(w, "namespace_dirs", ())): - group_sps.append(sp) + # Pass 2a: fold conflicted roots into merge groups. A conflicted root + # nested inside another conflicted root is covered by merging the + # outer one. For each root, the contributors are every + # namespace-claimant wheel that has the root in its skeleton (content + # below it) or as its own regular root, in wheel traversal order. + ordered_sps = _distinct_claimants([w.site_packages_rfpath for w in wheels]) + for root in _shallowest(conflicted_roots.keys()): + group_sps = [ + sp + for sp in ordered_sps + if sp in ns_claimant_sps and + (root in wheel_by_sp[sp].regular_roots or + root in wheel_by_sp[sp].namespace_dirs) + ] if len(group_sps) >= 2: merge_groups.append(struct( root = root, site_packages_list = group_sps, )) - # Pass 2c: build merge groups for mixed regular/namespace top-levels. - # The entire top-level directory is merged (root = tl itself). No - # shallowest-root filtering is needed since top-level names have no "/". - for tl, sps in top_level_merges.items(): - merge_groups.append(struct( - root = tl, - site_packages_list = sps, - )) - # Pass 2b: console scripts. console_scripts_map = {} for name, claimants in cs_claimants.items(): - distinct_sp = {c.site_packages: c for c in claimants} - if len(distinct_sp) == 1: - c = claimants[0] - console_scripts_map[name] = struct(module = c.module, func = c.func) - continue - winner = claimants[0] - seen = {winner.site_packages: True} - for c in claimants[1:]: - if c.site_packages in seen: - continue - _complain("console script", name, winner.site_packages, c.site_packages) - winner = c - seen[c.site_packages] = True + distinct_sp = _distinct_by_sp(claimants) + _complain_chain("console script", name, distinct_sp.keys()) + winner = distinct_sp.values()[-1] console_scripts_map[name] = struct(module = winner.module, func = winner.func) # Pass 3: wheels fully covered by direct (or complete per-entry @@ -433,20 +512,20 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): for w in wheels: if not w.top_levels: continue - skipped = skipped_per_wheel.get(w.site_packages_rfpath, {}) - ns_covered = ns_covered_per_wheel.get(w.site_packages_rfpath, {}) + sp = w.site_packages_rfpath + skipped = skipped_per_wheel.get(sp, {}) + covered_roots = covered_per_wheel.get(sp, {}) covered = True - for tl in w.top_levels: - if tl in metadata_claimants: - continue - if tl in skipped: - covered = False - break - if top_level_to_site_pkgs.get(tl) != w.site_packages_rfpath and tl not in ns_covered: + + # tl_claims carries exactly the non-metadata top-levels. + for tl, _ in w.tl_claims: + if tl in skipped or ( + top_level_to_site_pkgs.get(tl) != sp and tl not in covered_roots + ): covered = False break if covered: - fully_covered[w.site_packages_rfpath] = True + fully_covered[sp] = True # Metadata discovery scans every sys.path entry. Resolve duplicate declared # metadata entries with the existing collision precedence, but first reject @@ -455,15 +534,13 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): # fallback is gone. Wheels without declared layout metadata remain on the # existing whole-wheel fallback and cannot be classified here. for tl, claimants in metadata_claimants.items(): - winner = claimants[0] - seen = {winner: True} - for site_packages in claimants[1:]: - if site_packages in seen: - continue - winner = site_packages - seen[site_packages] = True - for site_packages in seen: - if site_packages != winner and site_packages not in fully_covered: + distinct = _distinct_claimants(claimants) + winner = distinct[-1] + + # The explicit fail must precede the _complain calls so it wins + # over _complain's generic error under package_collisions = "error". + for site_packages in distinct[:-1]: + if site_packages not in fully_covered: fail(("{}: distribution metadata entry `{}` selects {}, but " + "losing claimant {} remains on whole-wheel fallback.").format( ctx.label, @@ -471,14 +548,7 @@ def _resolve_wheel_collisions(ctx, wheels, package_collisions): winner, site_packages, )) - prior = claimants[0] - complained = {prior: True} - for site_packages in claimants[1:]: - if site_packages in complained: - continue - _complain("distribution metadata entry", tl, prior, site_packages) - prior = site_packages - complained[site_packages] = True + _complain_chain("distribution metadata entry", tl, distinct) if winner in fully_covered: top_level_to_site_pkgs[tl] = winner @@ -491,14 +561,14 @@ def assemble_venv( py_toolchain, imports_depset, is_windows, - package_collisions = "error", - include_system_site_packages = False, - include_user_site_packages = False, - default_env = {}, + package_collisions, + include_system_site_packages, + include_user_site_packages, + default_env, venv_activate_tmpl, virtualenv_shim_py, - site_merge_script_py = None, - venv_name = None): + site_merge_script_py, + venv_name): """Declare every file + symlink that makes up a venv for a target. Args: @@ -524,22 +594,17 @@ def assemble_venv( source (usually `ctx.file._virtualenv_shim`). site_merge_script_py: File — the site_merge.py tool source (usually `ctx.file._site_merge_script`). Only needed when the - wheel graph contains a regular package spanning wheels; the + wheel graph contains a regular package needing a physical merge; the merge action also requires the rule to declare the (optional) EXEC_TOOLS_TOOLCHAIN for an exec-configuration interpreter. - venv_name: Optional str — explicit venv dir basename. Defaults to - "." + safe_name + ".venv" when unset. + venv_name: str — the venv dir basename (e.g. "." + safe_name). Returns: struct with: - venv_name: str — the venv dir's basename (default "." + safe_name + ".venv"). bin_python: File — the venv's bin/python symlink, for launchers to rlocation-resolve and exec. all_files: list[File] — every declared output, ready for runfiles / DefaultInfo aggregation. - site_packages_pth_file: File — the main .pth (useful if the - caller needs to know its runfiles path). - pyvenv_cfg: File — declared pyvenv.cfg. """ wheels_depset = _py_library.make_wheels_depset(ctx) @@ -585,23 +650,19 @@ def assemble_venv( # From venv root (= sys.prefix at runtime) up to runfiles root. venv_to_runfiles_escape = "/".join([".."] * (2 + package_depth)) - # Default basename is `.{name}.venv/` — the Pythonic name that - # IDEs auto-detect. The leading dot also keeps this distinct from - # a sibling py_venv target at `:.venv` (auto-emitted when - # `expose_venv = True` is set): the sibling's launcher file lands - # at `bazel-bin//.venv`, while any internal venv tree - # lives under `bazel-bin//..venv/`. Different - # filesystem paths, no collision. Callers can override via the - # `venv_name` parameter. - if venv_name == None: - venv_name = ".{}.venv".format(safe_name) + # The leading-dot basename (e.g. `.{name}.venv/`) is the Pythonic + # name that IDEs auto-detect. The leading dot also keeps this + # distinct from a sibling py_venv target at `:.venv` + # (auto-emitted when `expose_venv = True` is set): the sibling's + # launcher file lands at `bazel-bin//.venv`, while any + # internal venv tree lives under `bazel-bin//..venv/`. + # Different filesystem paths, no collision. site_packages_rel = "{}/lib/{}/site-packages".format(venv_name, venv_py_ver) # site_packages_rfpath → install_tree, used only by the regular-package # merge action below. The per-top-level symlinks and .pth lines locate # each wheel by its runfiles path directly, not through this map. - wheels_with_trees = [w for w in wheels if getattr(w, "install_tree", None) != None] - tree_by_sp = {w.site_packages_rfpath: w.install_tree for w in wheels_with_trees} + tree_by_sp = {w.site_packages_rfpath: w.install_tree for w in wheels} # site_packages_rfpath → True for wheels whose top-level layout is known # (they declare `top_levels`), so the per-top-level symlink loop projects @@ -619,16 +680,27 @@ def assemble_venv( # rules_python pip wheels (both stage content at their rfpath). # `/`-joined top-levels (merged namespace packages, e.g. # `jaraco/functools`) need one extra `..` per segment. + # This loop runs per (binary x top-level); build the target paths from + # a cached per-wheel prefix rather than formatting every component. + site_packages_prefix = site_packages_rel + "/" + target_prefix_by_sp = {} for tl, wheel_site_pkgs in top_level_to_site_pkgs.items(): - out = ctx.actions.declare_symlink("{}/{}".format(site_packages_rel, tl)) - extra_up = "../" * tl.count("/") + out = ctx.actions.declare_symlink(site_packages_prefix + tl) + target_prefix = target_prefix_by_sp.get(wheel_site_pkgs) + if target_prefix == None: + target_prefix = escape + "/" + wheel_site_pkgs + "/" + target_prefix_by_sp[wheel_site_pkgs] = target_prefix + target_path = target_prefix + tl + if "/" in tl: + target_path = "../" * tl.count("/") + target_path ctx.actions.symlink( output = out, - target_path = "{}{}/{}/{}".format(extra_up, escape, wheel_site_pkgs, tl), + target_path = target_path, ) declared.append(out) - # Physical merges for regular packages that span wheels (see + # Physical merges for regular packages that span wheels or collide at the + # top level (see # _resolve_wheel_collisions). Each group's subtree is copied from # every contributing wheel into a real directory inside our # site-packages — the layout a flat `pip install` produces. The @@ -637,18 +709,10 @@ def assemble_venv( # package's `__path__` to; the per-wheel originals are shadowed. # # The merge runs as a build action under the exec-configuration - # interpreter (same shape as WhlInstall's unpack action). Wheels - # without an install_tree (legacy py_unpacked_wheel) can't - # contribute — they also never carry the metadata that forms a - # merge group, so they can't appear here. + # interpreter (same shape as WhlInstall's unpack action). Every + # PyWheelsInfo record carries an install_tree (see providers.bzl), + # so each contributing wheel resolves in tree_by_sp. for group in merge_groups: - if site_merge_script_py == None: - fail(("{}: wheels {} all contribute to the regular package `{}` — merging it " + - "requires the venv rule to supply the site_merge tool.").format( - ctx.label, - group.site_packages_list, - group.root, - )) exec_toolchain = ctx.toolchains[EXEC_TOOLS_TOOLCHAIN] exec_runtime = exec_toolchain.exec_tools.exec_runtime if exec_toolchain else None if exec_runtime == None: @@ -670,13 +734,7 @@ def assemble_venv( arguments.add("--collision-policy", package_collisions) trees = [] for sp in group.site_packages_list: - tree = tree_by_sp.get(sp) - if tree == None: - fail("{}: wheel at {} contributes to merged package `{}` but has no install_tree.".format( - ctx.label, - sp, - group.root, - )) + tree = tree_by_sp[sp] trees.append(tree) arguments.add_all( [tree], @@ -903,9 +961,6 @@ def assemble_venv( declared.append(script) return struct( - venv_name = venv_name, bin_python = bin_python, all_files = declared, - site_packages_pth_file = site_packages_pth_file, - pyvenv_cfg = pyvenv_cfg, ) diff --git a/py/private/py_venv/venv_activate.tmpl.sh b/py/private/py_venv/venv_activate.tmpl.sh index d79fd4439..add90d722 100644 --- a/py/private/py_venv/venv_activate.tmpl.sh +++ b/py/private/py_venv/venv_activate.tmpl.sh @@ -34,13 +34,6 @@ deactivate () { # Unset Bazel-injected vars {{ENVVARS_UNSET}} - # Unset vars we set with the runfiles interpreter. Note that this needs to - # be conditional so we don't throw this state out under tests or run. - if [ "${_OLD_RUNFILES_DIR:-}" = "_activate_undef" ]; then - unset RUNFILES_DIR - unset RUNFILES_MANIFEST_FILE - fi - if [ ! "${1:-}" = "nondestructive" ] ; then # Self destruct! unset -f deactivate @@ -66,7 +59,6 @@ unset PYTHONHOME _OLD_VIRTUAL_PATH="$PATH" # Aspect additions -# We set these before runfiles initialization so that we can use it as part of a fallback path {{ENVVARS}} # Now we can put the venv's absolute bin on the path diff --git a/py/private/pytest.py.tmpl b/py/private/pytest.py.tmpl deleted file mode 100644 index 60503bcd9..000000000 --- a/py/private/pytest.py.tmpl +++ /dev/null @@ -1,135 +0,0 @@ -# -*- mode: python -*- -# Copyright 2022 Aspect Build Systems, Inc. All rights reserved. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -import sys -import os -from pathlib import Path -from typing import List - -try: - import pytest -except ModuleNotFoundError as e: - print("ERROR: pytest must be included in the deps of the py_pytest_main or py_test target") - raise e - -# None means coverage wasn't enabled -cov = None -# For workaround of https://github.com/nedbat/coveragepy/issues/963 -coveragepy_absfile_mapping = {} - -# Since our py_test had InstrumentedFilesInfo, we know Bazel will hand us this environment variable. -# https://bazel.build/rules/lib/providers/InstrumentedFilesInfo -if "COVERAGE_MANIFEST" in os.environ: - try: - import coverage - # The lines are files that matched the --instrumentation_filter flag - with open(os.getenv("COVERAGE_MANIFEST"), "r") as mf: - manifest_entries = mf.read().splitlines() - cov = coverage.Coverage(include = manifest_entries) - # coveragepy incorrectly converts our entries by following symlinks - # record a mapping of their conversion so we can undo it later in reporting the coverage - coveragepy_absfile_mapping = {coverage.files.abs_file(mfe): mfe for mfe in manifest_entries} - cov.start() - except ModuleNotFoundError as e: - print("WARNING: python coverage setup failed. Do you need to include the 'coverage' package as a dependency of py_pytest_main?", e) - pass - -from pytest_shard import ShardPlugin - -if __name__ == "__main__": - # This statement will be replaced if the user provides a chdir path - _ = 0 # no-op - - os.environ["ENV"] = "testing" - - plugins = [] - args = [ - "--verbose", - "--ignore=external/", - # Avoid loading of the plugin "cacheprovider". - "-p", - "no:cacheprovider", - ] - - junit_xml_out = os.environ.get("XML_OUTPUT_FILE") - if junit_xml_out is not None: - args.append(f"--junitxml={junit_xml_out}") - - suite_name = os.environ.get("BAZEL_TARGET") - if suite_name: - args.extend(["-o", f"junit_suite_name={suite_name}"]) - - test_shard_index = os.environ.get("TEST_SHARD_INDEX") - test_total_shards = os.environ.get("TEST_TOTAL_SHARDS") - test_shard_status_file = os.environ.get("TEST_SHARD_STATUS_FILE") - if ( - all([test_shard_index, test_total_shards, test_shard_status_file]) - and int(test_total_shards) > 1 - ): - args.extend([ - f"--shard-id={test_shard_index}", - f"--num-shards={test_total_shards}", - ]) - Path(test_shard_status_file).touch() - plugins.append(ShardPlugin()) - - test_filter = os.environ.get("TESTBRIDGE_TEST_ONLY") - if test_filter is not None: - args.append(f"-k={test_filter}") - - # This list will be replaced if the user provides args to bake in - user_args: List[str] = [] - if len(user_args) > 0: - args.extend(user_args) - - cli_args = sys.argv[1:] - if len(cli_args) > 0: - args.extend(cli_args) - - exit_code = pytest.main(args, plugins=plugins) - - if exit_code != 0: - print("Pytest exit code: " + str(exit_code), file=sys.stderr) - print("Ran pytest.main with " + str(args), file=sys.stderr) - elif cov: - cov.stop() - # https://bazel.build/configure/coverage - coverage_output_file = os.getenv("COVERAGE_OUTPUT_FILE") - - unfixed_dat = coverage_output_file + ".tmp" - cov.lcov_report(outfile = unfixed_dat) - cov.save() - - with open(unfixed_dat, "r") as unfixed: - with open(coverage_output_file, "w") as output_file: - for line in unfixed: - # Workaround https://github.com/nedbat/coveragepy/issues/963 - # by mapping SF: records to un-do the symlink-following - if line.startswith('SF:'): - sourcefile = line[3:].rstrip() - if sourcefile in coveragepy_absfile_mapping: - output_file.write(f"SF:{coveragepy_absfile_mapping[sourcefile]}\n") - continue - # Workaround https://github.com/bazelbuild/bazel/issues/25118 - # by removing 'end line number' from FN: records - if line.startswith('FN:'): - parts = line[3:].split(",") # Remove 'FN:' and split by commas - if len(parts) == 3: - output_file.write(f"FN:{parts[0]},{parts[2]}") - continue - output_file.write(line) - os.unlink(unfixed_dat) - - sys.exit(exit_code) diff --git a/py/private/pytest_shard/BUILD.bazel b/py/private/pytest_shard/BUILD.bazel index 5bcf8994f..31816bff5 100644 --- a/py/private/pytest_shard/BUILD.bazel +++ b/py/private/pytest_shard/BUILD.bazel @@ -3,7 +3,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") py_library( name = "pytest_shard", srcs = [ - "__init__.py", ":pytest_shard.py", ], imports = ["."], diff --git a/py/private/pytest_shard/__init__.py b/py/private/pytest_shard/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/py/private/pytest_shard/pytest_shard.py b/py/private/pytest_shard/pytest_shard.py index d034400d0..dd597344c 100644 --- a/py/private/pytest_shard/pytest_shard.py +++ b/py/private/pytest_shard/pytest_shard.py @@ -58,7 +58,7 @@ def pytest_collection_modifyitems(config, items: List[nodes.Node]): shard_total = config.getoption("num_shards") if shard_id >= shard_total: raise ValueError( - "shard_num = f{shard_num} must be less than shard_total = f{shard_total}" + f"shard_id = {shard_id} must be less than num_shards = {shard_total}" ) items[:] = filter_items_by_shard(items, shard_id, shard_total) diff --git a/py/private/toolchain/repo.bzl b/py/private/toolchain/repo.bzl index a99839411..4a58509d8 100644 --- a/py/private/toolchain/repo.bzl +++ b/py/private/toolchain/repo.bzl @@ -39,10 +39,4 @@ toolchain( toolchains_repo = repository_rule( _toolchains_repo_impl, doc = "Creates a repository with native_build toolchain entries for all supported platforms.", - attrs = { - "user_repository_name": attr.string(mandatory = True, doc = """\ - What the user chose for the base name. - Needed since bzlmod apparent name has extra tilde segments. - """), - }, ) diff --git a/py/private/toolchain/tools.bzl b/py/private/toolchain/tools.bzl index a815192ca..294c9e6d1 100644 --- a/py/private/toolchain/tools.bzl +++ b/py/private/toolchain/tools.bzl @@ -2,32 +2,24 @@ TOOLCHAIN_PLATFORMS = { "darwin_amd64": struct( - arch = "x86_64", - vendor_os_abi = "apple_darwin", compatible_with = [ "@platforms//os:macos", "@platforms//cpu:x86_64", ], ), "darwin_arm64": struct( - arch = "aarch64", - vendor_os_abi = "apple_darwin", compatible_with = [ "@platforms//os:macos", "@platforms//cpu:aarch64", ], ), "linux_amd64": struct( - arch = "x86_64", - vendor_os_abi = "unknown_linux_musl", compatible_with = [ "@platforms//os:linux", "@platforms//cpu:x86_64", ], ), "linux_arm64": struct( - arch = "aarch64", - vendor_os_abi = "unknown_linux_musl", compatible_with = [ "@platforms//os:linux", "@platforms//cpu:aarch64", diff --git a/py/private/toolchain/types.bzl b/py/private/toolchain/types.bzl index 29ceb9369..d16a0cbf6 100644 --- a/py/private/toolchain/types.bzl +++ b/py/private/toolchain/types.bzl @@ -1,6 +1,5 @@ """Constants for toolchain types""" PY_TOOLCHAIN = "@bazel_tools//tools/python:toolchain_type" -SH_TOOLCHAIN = "@bazel_tools//tools/sh:toolchain_type" EXEC_TOOLS_TOOLCHAIN = "@rules_python//python:exec_tools_toolchain_type" NATIVE_BUILD_TOOLCHAIN = "@aspect_rules_py//py/private/toolchain:native_build_toolchain_type" diff --git a/py/private/transitions.bzl b/py/private/transitions.bzl index 31fc6c89c..11dbbe3f8 100644 --- a/py/private/transitions.bzl +++ b/py/private/transitions.bzl @@ -11,9 +11,6 @@ _RPY_VERSION_FLAG = "@rules_python//python/config_settings:python_version" # Interpreter feature flags that must be propagated through transitions. _FREETHREADED_FLAG = "@aspect_rules_py//py/private/interpreter:freethreaded" -# Public alias for backward compatibility -RPY_VERSION_FLAG = _RPY_VERSION_FLAG - def _python_transition_impl(settings, attr): acc = {} if attr.python_version: @@ -54,6 +51,3 @@ python_transition = transition( _FREETHREADED_FLAG, ], ) - -# The old name, FIXME: refactor this out -python_version_transition = python_transition diff --git a/py/private/virtual.bzl b/py/private/virtual.bzl index 38fc9435f..37cde1dae 100644 --- a/py/private/virtual.bzl +++ b/py/private/virtual.bzl @@ -29,7 +29,7 @@ def _make_resolutions(base, requirement_fn = lambda r: r): return struct( resolutions = _resolutions, - override = lambda overrides, **kwargs: _make_resolutions(_make_overrides(_resolutions, overrides)), + override = lambda overrides: _make_resolutions(_make_overrides(_resolutions, overrides)), to_label_keyed_dict = lambda: dict({v.requirement: v.name for k, v in _resolutions.items() if k != _RESOLUTION_SENTINEL_KEY}), ) @@ -67,5 +67,4 @@ def _from_requirements(base, requirement_fn = lambda r: r): resolutions = struct( from_requirements = _from_requirements, - empty = lambda: _make_resolutions({}), ) diff --git a/py/tests/internal-deps/expected b/py/tests/internal-deps/expected deleted file mode 100644 index e13338648..000000000 --- a/py/tests/internal-deps/expected +++ /dev/null @@ -1,3 +0,0 @@ -3.14 -3.14 -3.14 diff --git a/py/tests/py-internal-venv/test_env_vars.py b/py/tests/py-internal-venv/test_env_vars.py deleted file mode 100644 index 0d95a7f69..000000000 --- a/py/tests/py-internal-venv/test_env_vars.py +++ /dev/null @@ -1,17 +0,0 @@ -import os - - -def test_env(env, expected): - assert env in os.environ, f"Expected environ to have key '{env}'" - - _actual = os.environ.get(env) - assert _actual == expected, f"Expected environ key '{env}' to equal '{expected}', but got '{_actual}'" - - -test_env('ONE', 'un') -test_env('TWO', 'deux') -test_env('LOCATION', "py/tests/py-internal-venv/test_env_vars.py") -test_env('DEFINE', "SOME_VALUE") -test_env('BAZEL_TARGET', "//py/tests/py-internal-venv:test_env_vars") -test_env('BAZEL_WORKSPACE', "aspect_rules_py") -test_env('BAZEL_TARGET_NAME', "test_env_vars") diff --git a/py/tests/py-pex-binary/BUILD.bazel b/py/tests/py-pex-binary/BUILD.bazel index 68f71a412..6d66046ac 100644 --- a/py/tests/py-pex-binary/BUILD.bazel +++ b/py/tests/py-pex-binary/BUILD.bazel @@ -1,7 +1,7 @@ load("@bazel_lib//lib:testing.bzl", "assert_contains") load("@bazel_lib//lib:transitions.bzl", "platform_transition_binary") load("@bazel_skylib//rules:build_test.bzl", "build_test") -load("//py:defs.bzl", "py_binary", "py_pex_binary") +load("//py:defs.bzl", "py_binary", "py_pex_binary", "py_test") # Test that both single-file modules (six) and multi-file modules (cowsay) work with py_pex_binary. py_binary( @@ -35,6 +35,54 @@ assert_contains( expected = "Mooo!,cowsay-6.1/cowsay/__init__.py,six-1.16.0/six.py", ) +# Assert py_pex_binary attrs land in the built artifact: the shebang line, +# PEX-INFO inherit_path, and interpreter_constraints (including the default +# constraint's {major}/{minor}/{patch} placeholder substitution from the +# resolved toolchain version). Uses a dependency-free binary so each pex +# only carries the entrypoint. +py_binary( + name = "noop_bin", + srcs = ["noop.py"], +) + +py_pex_binary( + name = "defaults_pex", + binary = ":noop_bin", +) + +py_pex_binary( + name = "custom_pex", + binary = ":noop_bin", + inherit_path = "prefer", + python_interpreter_constraints = ["CPython=={major}.{minor}.{patch}"], + python_shebang = "#!/opt/custom/bin/python3", +) + +py_pex_binary( + name = "inherit_fallback_pex", + binary = ":noop_bin", + inherit_path = "fallback", +) + +py_pex_binary( + name = "inherit_false_pex", + binary = ":noop_bin", + inherit_path = "false", +) + +py_test( + name = "pex_info_test", + srcs = ["pex_info_test.py"], + data = [ + ":custom_pex", + ":defaults_pex", + ":inherit_fallback_pex", + ":inherit_false_pex", + ], + main = "pex_info_test.py", + deps = ["@pypi//bazel_runfiles"], +) + # Verify PEX building works under a platform transition. The PEX builder must # use the exec interpreter (cfg=exec), not the target interpreter, because the # target interpreter may not be runnable on the build host in cross-builds. diff --git a/py/tests/py-pex-binary/noop.py b/py/tests/py-pex-binary/noop.py new file mode 100644 index 000000000..1198e767c --- /dev/null +++ b/py/tests/py-pex-binary/noop.py @@ -0,0 +1 @@ +print("noop") diff --git a/py/tests/py-pex-binary/pex_info_test.py b/py/tests/py-pex-binary/pex_info_test.py new file mode 100644 index 000000000..e0f8d850b --- /dev/null +++ b/py/tests/py-pex-binary/pex_info_test.py @@ -0,0 +1,62 @@ +"""Asserts py_pex_binary attrs are reflected in the built PEX artifact. + +The shebang is the first line of the zipapp; inherit_path and +interpreter_constraints land in the PEX-INFO json at the zip root. +The default python_interpreter_constraints resolve {major}/{minor} +placeholders from the resolved toolchain, which is the same default +toolchain this test runs under, so expectations come from sys.version_info. +""" + +import json +import sys +import zipfile + +import runfiles + +r = runfiles.Create() + +PKG = "_main/py/tests/py-pex-binary" + + +def read_pex(name): + path = r.Rlocation("{}/{}.pex".format(PKG, name)) + with open(path, "rb") as f: + shebang = f.readline().rstrip(b"\r\n").decode() + with zipfile.ZipFile(path) as zf: + info = json.loads(zf.read("PEX-INFO")) + return shebang, info + + +major, minor, micro = sys.version_info[:3] + +# Defaults: stock shebang, no inherit-path, and the default +# "CPython=={major}.{minor}.*" constraint with placeholders substituted +# from the toolchain version. +shebang, info = read_pex("defaults_pex") +assert shebang == "#!/usr/bin/env python3", shebang +assert info.get("inherit_path", "false") == "false", info +expected = "CPython=={}.{}.*".format(major, minor) +assert info["interpreter_constraints"] == [expected], ( + info["interpreter_constraints"], + expected, +) + +# Custom values: shebang override, inherit_path=prefer, and full +# {major}.{minor}.{patch} placeholder substitution. +shebang, info = read_pex("custom_pex") +assert shebang == "#!/opt/custom/bin/python3", shebang +assert info["inherit_path"] == "prefer", info +expected = "CPython=={}.{}.{}".format(major, minor, micro) +assert info["interpreter_constraints"] == [expected], ( + info["interpreter_constraints"], + expected, +) + +# Remaining inherit_path attr values. +_, info = read_pex("inherit_fallback_pex") +assert info["inherit_path"] == "fallback", info + +_, info = read_pex("inherit_false_pex") +assert info.get("inherit_path", "false") == "false", info + +print("PASS") diff --git a/py/tests/py_venv_conflict/collision_order_test.bzl b/py/tests/py_venv_conflict/collision_order_test.bzl index 8184d56e4..8498cca5c 100644 --- a/py/tests/py_venv_conflict/collision_order_test.bzl +++ b/py/tests/py_venv_conflict/collision_order_test.bzl @@ -2,7 +2,7 @@ load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") load("//py:defs.bzl", "py_binary", "py_library", "py_test") -load("//py/private:providers.bzl", "PyWheelsInfo") +load("//py/private:providers.bzl", "PyWheelsInfo", "make_wheel_record") load("//py/private:py_info.bzl", "PyInfo") load("//py/private/toolchain:types.bzl", "PY_TOOLCHAIN") @@ -50,14 +50,13 @@ printf 'VALUE = "namespace"\n' > "$site/mixed_top/from_namespace.py" ] if segment ] + ["lib/python{}.{}/site-packages".format(major, minor)]) - wheel = struct( + wheel = make_wheel_record( top_levels = top_levels, namespace_top_levels = namespace_top_levels, namespace_entries = namespace_entries, namespace_dirs = namespace_dirs, regular_roots = regular_roots, site_packages_rfpath = site_packages, - console_scripts = (), install_tree = install_tree, ) return [ @@ -95,8 +94,10 @@ printf 'Metadata-Version: 2.1\nName: collision-%s\nVersion: 1.0\nSummary: %s\n' """ metadata_name = ctx.attr.metadata_name or "collision_{}-1.0.dist-info".format(ctx.attr.value) top_levels = (metadata_name,) + top_level_dirs = () namespace_top_levels = () namespace_entries = () + native_roots = () console_scripts = () if not ctx.attr.metadata_only: command += """ @@ -105,6 +106,7 @@ printf 'VALUE = %s\n' "$4" > "$site/collision_namespace/shared.py" printf 'VALUE = %s\n\ndef main():\n print(VALUE)\n' "$4" > "$site/collision_namespace/$5.py" """ top_levels = ("collision_namespace", metadata_name) + top_level_dirs = ("collision_namespace",) namespace_top_levels = ("collision_namespace",) namespace_entries = ( "collision_namespace/shared.py", @@ -116,6 +118,42 @@ printf 'VALUE = %s\n' "$4" > "$site/collision_order.py" """ top_levels += ("collision_order.py",) console_scripts = ("collision-order=collision_namespace.{}:main".format(ctx.attr.value),) + if ctx.attr.regular: + command += """ +mkdir -p "$site/collision_order" +printf '' > "$site/collision_order/__init__.py" +printf 'from pathlib import Path\n\nVALUE = %s\n\ndef sibling_value():\n return (Path(__file__).resolve().parent.parent / "collision_order.libs" / "marker.txt").read_text()\n' "$4" > "$site/collision_order/$5.py" +""" + top_levels += ("collision_order",) + top_level_dirs += ("collision_order",) + if ctx.attr.extend_path: + if not ctx.attr.regular: + fail("extend_path requires regular") + command += """ +printf 'from pkgutil import extend_path\n__path__ = extend_path(__path__, __name__)\n' > "$site/collision_order/__init__.py" +""" + if ctx.attr.native_root: + command += """ +mkdir -p "$site/collision_order.libs" +printf '%s' "$5" > "$site/collision_order.libs/marker.txt" +""" + top_levels += ("collision_order.libs",) + top_level_dirs += ("collision_order.libs",) + native_roots = ("collision_order",) + if ctx.attr.native_namespace: + command += """ +mkdir -p "$site/collision_order" +printf 'VALUE = %s\n' "$4" > "$site/collision_order/$5.py" +printf 'native' > "$site/collision_order/native_extension.so" +""" + top_levels += ("collision_order",) + top_level_dirs += ("collision_order",) + namespace_top_levels += ("collision_order",) + namespace_entries += ( + "collision_order/{}.py".format(ctx.attr.value), + "collision_order/native_extension.so", + ) + native_roots = ("collision_order",) ctx.actions.run_shell( outputs = [install_tree], command = command, @@ -138,12 +176,12 @@ printf 'VALUE = %s\n' "$4" > "$site/collision_order.py" ] if segment ] + ["lib/python{}.{}/site-packages".format(major, minor)]) - wheel = struct( + wheel = make_wheel_record( top_levels = top_levels, + top_level_dirs = top_level_dirs, namespace_top_levels = namespace_top_levels, namespace_entries = namespace_entries, - namespace_dirs = (), - regular_roots = (), + native_roots = native_roots, site_packages_rfpath = site_packages, console_scripts = console_scripts, install_tree = install_tree, @@ -168,7 +206,11 @@ _wheel = rule( attrs = { "metadata_name": attr.string(), "metadata_only": attr.bool(), + "extend_path": attr.bool(), + "native_namespace": attr.bool(), + "native_root": attr.bool(), "ordinary": attr.bool(), + "regular": attr.bool(), "value": attr.string(mandatory = True), }, toolchains = [PY_TOOLCHAIN], @@ -338,3 +380,143 @@ def collision_order_test_suite(): ":_mixed_regular_wheel", ], ) + _wheel( + name = "_regular_first", + regular = True, + value = "first", + tags = ["manual"], + ) + _wheel( + name = "_regular_second", + regular = True, + value = "second", + tags = ["manual"], + ) + py_test( + name = "regular_directory_union_test", + srcs = ["test_collision_union.py"], + main = "test_collision_union.py", + package_collisions = "ignore", + deps = [ + ":_regular_first", + ":_regular_second", + ], + ) + + _wheel( + name = "_native_regular_first", + metadata_name = "collision_native-1.0.dist-info", + metadata_only = True, + regular = True, + value = "first", + tags = ["manual"], + ) + _wheel( + name = "_native_regular_second", + metadata_name = "collision_native-1.0.dist-info", + metadata_only = True, + native_root = True, + regular = True, + value = "second", + tags = ["manual"], + ) + py_test( + name = "native_directory_collision_test", + srcs = ["test_native_collision.py"], + main = "test_native_collision.py", + package_collisions = "ignore", + deps = [ + ":_native_regular_first", + ":_native_regular_second", + ], + ) + + _wheel( + name = "_native_namespace_regular_first", + extend_path = True, + regular = True, + value = "first", + tags = ["manual"], + ) + _wheel( + name = "_native_namespace_second", + native_namespace = True, + value = "second", + tags = ["manual"], + ) + py_test( + name = "native_namespace_regular_first_collision_test", + srcs = ["test_native_top_level_collision.py"], + main = "test_native_top_level_collision.py", + package_collisions = "ignore", + deps = [ + ":_native_namespace_regular_first", + ":_native_namespace_second", + ], + ) + + # Distinct-metadata native collision: the losing native claimant must + # keep its .pth fallback (so the regular winner's extend_path __init__ + # can reach the graft) even when a third wheel places it before the + # end of the global metadata-claimant order. Guards against computing + # duplicate-metadata losers across all entries instead of per entry. + _wheel( + name = "_distinct_graft_regular", + extend_path = True, + metadata_only = True, + regular = True, + value = "dfirst", + tags = ["manual"], + ) + _wheel( + name = "_distinct_graft_native", + metadata_only = True, + native_namespace = True, + value = "dsecond", + tags = ["manual"], + ) + _wheel( + name = "_distinct_graft_third", + metadata_only = True, + value = "dthird", + tags = ["manual"], + ) + py_test( + name = "distinct_metadata_graft_test", + srcs = ["test_distinct_graft.py"], + main = "test_distinct_graft.py", + package_collisions = "ignore", + deps = [ + ":_distinct_graft_regular", + ":_distinct_graft_native", + ":_distinct_graft_third", + ], + ) + + _wheel( + name = "_native_duplicate_graft_first", + metadata_name = "collision_native_graft-1.0.dist-info", + metadata_only = True, + native_namespace = True, + value = "graft_first", + tags = ["manual"], + ) + _wheel( + name = "_native_duplicate_graft_second", + metadata_name = "collision_native_graft-1.0.dist-info", + metadata_only = True, + native_namespace = True, + value = "graft_second", + tags = ["manual"], + ) + py_test( + name = "native_duplicate_graft_collision_test", + srcs = ["test_native_duplicate_graft.py"], + main = "test_native_duplicate_graft.py", + package_collisions = "ignore", + deps = [ + ":_native_namespace_regular_first", + ":_native_duplicate_graft_first", + ":_native_duplicate_graft_second", + ], + ) diff --git a/py/tests/py_venv_conflict/site_merge_order_test.bzl b/py/tests/py_venv_conflict/site_merge_order_test.bzl index e4eafe309..0aa4d1d1f 100644 --- a/py/tests/py_venv_conflict/site_merge_order_test.bzl +++ b/py/tests/py_venv_conflict/site_merge_order_test.bzl @@ -1,7 +1,7 @@ """End-to-end coverage for regular-package physical merge order.""" load("//py:defs.bzl", "py_test") -load("//py/private:providers.bzl", "PyWheelsInfo") +load("//py/private:providers.bzl", "PyWheelsInfo", "make_wheel_record") load("//py/private:py_info.bzl", "PyInfo") load("//py/private/toolchain:types.bzl", "PY_TOOLCHAIN") @@ -104,14 +104,13 @@ printf 'VALUE = %s\n' "$4" > "$site/other/from_final.py" ] + ["lib/python{}.{}/site-packages".format(major, minor)]) install_trees.append(install_tree) site_packages_paths.append(site_packages) - wheels.append(struct( + wheels.append(make_wheel_record( top_levels = top_levels, namespace_top_levels = top_levels, namespace_entries = namespace_entries, namespace_dirs = namespace_dirs, regular_roots = regular_roots, site_packages_rfpath = site_packages, - console_scripts = (), install_tree = install_tree, )) @@ -135,6 +134,119 @@ _wheel_set = rule( toolchains = [PY_TOOLCHAIN], ) +def _native_nested_wheel_set_impl(ctx): + py_runtime = ctx.toolchains[PY_TOOLCHAIN].py3_runtime + major = py_runtime.interpreter_version_info.major + minor = py_runtime.interpreter_version_info.minor + install_trees = [] + site_packages_paths = [] + wheels = [] + + kinds = ["regular", "graft"] if ctx.attr.regular_first else ["graft", "regular"] + for kind in kinds: + install_tree = ctx.actions.declare_directory("native_{}.install".format(kind)) + if kind == "graft": + command = """ +set -eu +site="$1/lib/python$2.$3/site-packages" +mkdir -p "$site/mixed/native" "$site/mixed/pure" +printf 'VALUE = %s\n' "$4" > "$site/mixed/native/graft.py" +printf 'VALUE = %s\n' "$4" > "$site/mixed/pure/graft.py" +printf 'VALUE = %s\n' "$4" > "$site/mixed/sibling.py" +""" + namespace_entries = ( + "mixed/native/graft.py", + "mixed/pure/graft.py", + "mixed/sibling.py", + ) + namespace_dirs = ( + "mixed/native", + "mixed/pure", + ) + regular_roots = () + native_roots = ("mixed/native",) + else: + command = """ +set -eu +site="$1/lib/python$2.$3/site-packages" +mkdir -p "$site/mixed/native" "$site/mixed/pure" +printf '' > "$site/mixed/native/__init__.py" +printf '' > "$site/mixed/pure/__init__.py" +printf 'VALUE = %s\n' "$4" > "$site/mixed/native/regular.py" +printf 'VALUE = %s\n' "$4" > "$site/mixed/pure/regular.py" +printf 'VALUE = %s\n' "$4" > "$site/mixed/sibling.py" +""" + namespace_entries = ( + "mixed/native/__init__.py", + "mixed/native/regular.py", + "mixed/pure/__init__.py", + "mixed/pure/regular.py", + "mixed/sibling.py", + ) + namespace_dirs = () + regular_roots = ( + "mixed/native", + "mixed/pure", + ) + native_roots = () + + ctx.actions.run_shell( + outputs = [install_tree], + command = command, + arguments = [ + install_tree.path, + str(major), + str(minor), + json.encode(kind), + ], + ) + site_packages = "/".join([ + segment + for segment in [ + ctx.label.repo_name or ctx.workspace_name, + ctx.label.package, + install_tree.basename, + ] + if segment + ] + ["lib/python{}.{}/site-packages".format(major, minor)]) + install_trees.append(install_tree) + site_packages_paths.append(site_packages) + wheels.append(make_wheel_record( + top_levels = ("mixed",), + top_level_dirs = ("mixed",), + namespace_top_levels = ("mixed",), + namespace_entries = namespace_entries, + namespace_dirs = namespace_dirs, + regular_roots = regular_roots, + native_roots = native_roots, + site_packages_rfpath = site_packages, + console_scripts = (), + install_tree = install_tree, + )) + + return [ + DefaultInfo( + files = depset(install_trees), + runfiles = ctx.runfiles(files = install_trees), + ), + PyInfo( + imports = depset(site_packages_paths), + transitive_sources = depset(install_trees), + has_py2_only_sources = False, + has_py3_only_sources = True, + uses_shared_libraries = False, + ), + PyWheelsInfo(wheels = depset(direct = wheels, order = "postorder")), + ] + +_native_nested_wheel_set = rule( + implementation = _native_nested_wheel_set_impl, + attrs = { + "regular_first": attr.bool(), + }, + toolchains = [PY_TOOLCHAIN], +) + def site_merge_order_test_suite(): _wheel_set( name = "_site_merge_wheels", @@ -147,3 +259,28 @@ def site_merge_order_test_suite(): package_collisions = "ignore", deps = [":_site_merge_wheels"], ) + + _native_nested_wheel_set( + name = "_native_nested_wheels", + tags = ["manual"], + ) + + py_test( + name = "native_nested_collision_test", + srcs = ["test_native_nested_collision.py"], + package_collisions = "ignore", + deps = [":_native_nested_wheels"], + ) + + _native_nested_wheel_set( + name = "_native_nested_regular_first_wheels", + regular_first = True, + tags = ["manual"], + ) + + py_test( + name = "native_nested_regular_first_collision_test", + srcs = ["test_native_nested_collision.py"], + package_collisions = "ignore", + deps = [":_native_nested_regular_first_wheels"], + ) diff --git a/py/tests/py_venv_conflict/test_collision_union.py b/py/tests/py_venv_conflict/test_collision_union.py new file mode 100644 index 000000000..6d57e0f9d --- /dev/null +++ b/py/tests/py_venv_conflict/test_collision_union.py @@ -0,0 +1,5 @@ +from collision_order import first, second + + +assert first.VALUE == "first", first.VALUE +assert second.VALUE == "second", second.VALUE diff --git a/py/tests/py_venv_conflict/test_distinct_graft.py b/py/tests/py_venv_conflict/test_distinct_graft.py new file mode 100644 index 000000000..75a5586bc --- /dev/null +++ b/py/tests/py_venv_conflict/test_distinct_graft.py @@ -0,0 +1,31 @@ +from importlib.metadata import distributions +from pathlib import Path +import sys + +from collision_order import dfirst, dsecond + + +assert dfirst.VALUE == "dfirst", dfirst.VALUE + +# The losing native claimant is a distinct distribution, so it must stay on +# the .pth fallback; the winner's pkgutil.extend_path __init__ reaches its +# graft from there. +assert dsecond.VALUE == "dsecond", dsecond.VALUE +assert any( + Path(entry).name == "site-packages" + and "_distinct_graft_native.install" in Path(entry).parts + for entry in sys.path +), sys.path + +# All three distributions carry distinct metadata; every one must remain +# discoverable. +summaries = { + distribution.metadata["Summary"] + for distribution in distributions() + if distribution.metadata["Summary"].startswith("_distinct_graft_") +} +assert summaries == { + "_distinct_graft_regular", + "_distinct_graft_native", + "_distinct_graft_third", +}, summaries diff --git a/py/tests/py_venv_conflict/test_native_collision.py b/py/tests/py_venv_conflict/test_native_collision.py new file mode 100644 index 000000000..9447af647 --- /dev/null +++ b/py/tests/py_venv_conflict/test_native_collision.py @@ -0,0 +1,10 @@ +from importlib.util import find_spec +from importlib.metadata import distributions + +from collision_order import second + + +assert second.VALUE == "second", second.VALUE +assert find_spec("collision_order.first") is None +assert second.sibling_value() == "second" +assert len(list(distributions(name="collision-native"))) == 1 diff --git a/py/tests/py_venv_conflict/test_native_duplicate_graft.py b/py/tests/py_venv_conflict/test_native_duplicate_graft.py new file mode 100644 index 000000000..654e3326d --- /dev/null +++ b/py/tests/py_venv_conflict/test_native_duplicate_graft.py @@ -0,0 +1,32 @@ +from importlib.metadata import distributions +from importlib.util import find_spec +from pathlib import Path +import sys + +from collision_order import first, graft_second + + +assert first.VALUE == "first", first.VALUE +assert find_spec("collision_order.graft_first") is None +assert graft_second.VALUE == "graft_second", graft_second.VALUE + +fallbacks = [ + Path(entry) + for entry in sys.path + if Path(entry).name == "site-packages" + and any( + part.startswith("_native_duplicate_graft_") and part.endswith(".install") + for part in Path(entry).parts + ) +] +assert len(fallbacks) == 1, fallbacks +assert "_native_duplicate_graft_second.install" in fallbacks[0].parts +summaries = [ + distribution.metadata["Summary"] + for distribution in distributions() + if distribution.metadata["Summary"] in { + "_native_duplicate_graft_first", + "_native_duplicate_graft_second", + } +] +assert summaries == ["_native_duplicate_graft_second"], summaries diff --git a/py/tests/py_venv_conflict/test_native_nested_collision.py b/py/tests/py_venv_conflict/test_native_nested_collision.py new file mode 100644 index 000000000..581b1ac21 --- /dev/null +++ b/py/tests/py_venv_conflict/test_native_nested_collision.py @@ -0,0 +1,35 @@ +from importlib.util import find_spec +from pathlib import Path +import sys + +from mixed.native import regular as native_regular +from mixed.pure import graft, regular as pure_regular + + +assert native_regular.VALUE == "regular", native_regular.VALUE +assert find_spec("mixed.native.graft") is None +assert any( + Path(entry).name == "site-packages" + and "native_graft.install" in Path(entry).parts + for entry in sys.path +), sys.path +venv_site_packages = next( + Path(entry) + for entry in sys.path + if Path(entry).name == "site-packages" and Path(entry).is_relative_to(sys.prefix) +) +venv_native = venv_site_packages / "mixed" / "native" +assert (venv_native / "regular.py").is_file(), venv_native +projected_native = venv_native.resolve() +runtime_native = Path(native_regular.__file__).resolve().parent +assert "native_regular.install" in projected_native.parts, projected_native +assert "native_regular.install" in runtime_native.parts, runtime_native +assert ( + projected_native.parts[projected_native.parts.index("native_regular.install") :] + == runtime_native.parts[runtime_native.parts.index("native_regular.install") :] +), ( + projected_native, + runtime_native, +) +assert graft.VALUE == "graft", graft.VALUE +assert pure_regular.VALUE == "regular", pure_regular.VALUE diff --git a/py/tests/py_venv_conflict/test_native_top_level_collision.py b/py/tests/py_venv_conflict/test_native_top_level_collision.py new file mode 100644 index 000000000..4bd6c761a --- /dev/null +++ b/py/tests/py_venv_conflict/test_native_top_level_collision.py @@ -0,0 +1,34 @@ +from importlib.util import find_spec +from pathlib import Path +import sys + +from collision_order import first, second + + +assert first.VALUE == "first", first.VALUE +assert find_spec("collision_order.second") is not None +assert second.VALUE == "second", second.VALUE +assert any( + Path(entry).name == "site-packages" + and "_native_namespace_second.install" in Path(entry).parts + for entry in sys.path +), sys.path +venv_site_packages = next( + Path(entry) + for entry in sys.path + if Path(entry).name == "site-packages" and Path(entry).is_relative_to(sys.prefix) +) +venv_top = venv_site_packages / "collision_order" +assert (venv_top / "first.py").is_file(), venv_top +projected_top = venv_top.resolve() +runtime_top = Path(first.__file__).resolve().parent +owner_install = "_native_namespace_regular_first.install" +assert owner_install in projected_top.parts, projected_top +assert owner_install in runtime_top.parts, runtime_top +assert ( + projected_top.parts[projected_top.parts.index(owner_install) :] + == runtime_top.parts[runtime_top.parts.index(owner_install) :] +), ( + projected_top, + runtime_top, +) diff --git a/py/tests/pytest-shard/BUILD.bazel b/py/tests/pytest-shard/BUILD.bazel new file mode 100644 index 000000000..8f3edab73 --- /dev/null +++ b/py/tests/pytest-shard/BUILD.bazel @@ -0,0 +1,11 @@ +load("//py:defs.bzl", "py_test") + +py_test( + name = "pytest_shard_test", + srcs = ["pytest_shard_test.py"], + pytest_main = True, + deps = [ + "//py/private/pytest_shard", + "@pypi//pytest", + ], +) diff --git a/py/tests/pytest-shard/pytest_shard_test.py b/py/tests/pytest-shard/pytest_shard_test.py new file mode 100644 index 000000000..06e3b19c3 --- /dev/null +++ b/py/tests/pytest-shard/pytest_shard_test.py @@ -0,0 +1,62 @@ +from types import SimpleNamespace + +import pytest + +from pytest_shard import ShardPlugin, filter_items_by_shard, positive_int + + +def fake_config(shard_id=0, num_shards=1, verbose=0): + opts = {"shard_id": shard_id, "num_shards": num_shards} + return SimpleNamespace( + getoption=lambda name: opts[name], + option=SimpleNamespace(verbose=verbose), + ) + + +def test_positive_int(): + assert positive_int(0) == 0 + assert positive_int("7") == 7 + with pytest.raises(ValueError): + positive_int(-1) + + +def test_filter_items_round_robin(): + items = list(range(10)) + assert filter_items_by_shard(items, 0, 3) == [0, 3, 6, 9] + assert filter_items_by_shard(items, 1, 3) == [1, 4, 7] + assert filter_items_by_shard(items, 2, 3) == [2, 5, 8] + + # Every item lands in exactly one shard. + assert sorted( + i for s in range(3) for i in filter_items_by_shard(items, s, 3) + ) == items + + assert filter_items_by_shard(items, 0, 1) == items + assert filter_items_by_shard([], 0, 3) == [] + + # More shards than items leaves trailing shards empty. + assert filter_items_by_shard([0], 1, 2) == [] + + +def test_modifyitems_filters_in_place(): + items = list(range(6)) + ShardPlugin.pytest_collection_modifyitems(fake_config(1, 2), items) + assert items == [1, 3, 5] + + +def test_modifyitems_shard_id_out_of_range(): + with pytest.raises(ValueError): + ShardPlugin.pytest_collection_modifyitems(fake_config(2, 2), []) + + +def test_report_collectionfinish(): + items = [SimpleNamespace(nodeid="t1"), SimpleNamespace(nodeid="t2")] + assert ShardPlugin.pytest_report_collectionfinish(fake_config(), items) == ( + "Running 2 items in this shard" + ) + + # Verbose mode with multiple shards lists the node ids. + msg = ShardPlugin.pytest_report_collectionfinish( + fake_config(num_shards=2, verbose=1), items + ) + assert msg == "Running 2 items in this shard: t1, t2" diff --git a/py/tests/virtual/django/uv.lock b/py/tests/virtual/django/uv.lock deleted file mode 100644 index 367d720a0..000000000 --- a/py/tests/virtual/django/uv.lock +++ /dev/null @@ -1,132 +0,0 @@ -version = 1 -revision = 3 -requires-python = ">=3.9" - -[[package]] -name = "asgiref" -version = "3.7.2" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "typing-extensions", marker = "python_full_version < '3.11'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/12/19/64e38c1c2cbf0da9635b7082bbdf0e89052e93329279f59759c24a10cc96/asgiref-3.7.2.tar.gz", hash = "sha256:9e0ce3aa93a819ba5b45120216b23878cf6e8525eb3848653452b4192b92afed", size = 33393, upload-time = "2023-05-27T17:21:42.12Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9b/80/b9051a4a07ad231558fcd8ffc89232711b4e618c15cb7a392a17384bbeef/asgiref-3.7.2-py3-none-any.whl", hash = "sha256:89b2ef2247e3b562a16eef663bc0e2e703ec6468e2fa8a5cd61cd449786d4f6e", size = 24140, upload-time = "2023-05-27T17:21:40.454Z" }, -] - -[[package]] -name = "django" -version = "4.2.7" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "asgiref" }, - { name = "sqlparse" }, - { name = "tzdata", marker = "sys_platform == 'win32'" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/5c/62/0c6ab2f3ac9a242b4562b6be1c418685fa7d1ccb8ca302cdb97e0b23cf4b/Django-4.2.7.tar.gz", hash = "sha256:8e0f1c2c2786b5c0e39fe1afce24c926040fad47c8ea8ad30aaf1188df29fc41", size = 10425073, upload-time = "2023-11-01T06:59:30.228Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/2d/6d/e87236e3c7b2f5911d132034177aebb605f3953910cc429df8061b13bf10/Django-4.2.7-py3-none-any.whl", hash = "sha256:e1d37c51ad26186de355cbcec16613ebdabfa9689bbade9c538835205a8abbe9", size = 7990980, upload-time = "2023-11-01T06:59:15.299Z" }, -] - -[[package]] -name = "dummy" -version = "0.0.0" -source = { virtual = "." } -dependencies = [ - { name = "asgiref" }, - { name = "django" }, - { name = "pyqt6" }, - { name = "pyqt6-qt6" }, - { name = "pyqt6-sip" }, - { name = "sqlparse" }, - { name = "typing-extensions" }, -] - -[package.metadata] -requires-dist = [ - { name = "asgiref", specifier = "==3.7.2" }, - { name = "django", specifier = "==4.2.7" }, - { name = "pyqt6", specifier = "==6.6.1" }, - { name = "pyqt6-qt6", specifier = "==6.7.2" }, - { name = "pyqt6-sip", specifier = "==13.8.0" }, - { name = "sqlparse", specifier = "==0.4.4" }, - { name = "typing-extensions", specifier = "==4.8.0" }, -] - -[[package]] -name = "pyqt6" -version = "6.6.1" -source = { registry = "https://pypi.org/simple" } -dependencies = [ - { name = "pyqt6-qt6" }, - { name = "pyqt6-sip" }, -] -sdist = { url = "https://files.pythonhosted.org/packages/8c/2b/6fe0409501798abc780a70cab48c39599742ab5a8168e682107eaab78fca/PyQt6-6.6.1.tar.gz", hash = "sha256:9f158aa29d205142c56f0f35d07784b8df0be28378d20a97bcda8bd64ffd0379", size = 1043203, upload-time = "2023-12-04T10:37:27.406Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/1b/b2/130408edb21b2bf889d175465711ffcc4aa2f0df152718505e458888646d/PyQt6-6.6.1-cp38-abi3-macosx_10_14_universal2.whl", hash = "sha256:6b43878d0bbbcf8b7de165d305ec0cb87113c8930c92de748a11c473a6db5085", size = 11642552, upload-time = "2023-12-04T10:37:09.363Z" }, - { url = "https://files.pythonhosted.org/packages/0b/5a/51f4762b9f314b5577d17704bc1280532a725ba359d6cc177ab6de692035/PyQt6-6.6.1-cp38-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:5aa0e833cb5a79b93813f8181d9f145517dd5a46f4374544bcd1e93a8beec537", size = 7898775, upload-time = "2023-12-04T10:37:16.831Z" }, - { url = "https://files.pythonhosted.org/packages/6d/40/e91a88d5c716e2982eb2eef5d4c314add196951e7d430e90eb0fe8fb81a1/PyQt6-6.6.1-cp38-abi3-win_amd64.whl", hash = "sha256:03a656d5dc5ac31b6a9ad200f7f4f7ef49fa00ad7ce7a991b9bb691617141d12", size = 6549432, upload-time = "2023-12-04T10:37:24.633Z" }, -] - -[[package]] -name = "pyqt6-qt6" -version = "6.7.2" -source = { registry = "https://pypi.org/simple" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/10/38/ba0313442c5e4327d52e6c48d2bb4b39099bf1d191bd872edfd8bb1392ef/PyQt6_Qt6-6.7.2-py3-none-macosx_10_14_x86_64.whl", hash = "sha256:065415589219a2f364aba29d6a98920bb32810286301acbfa157e522d30369e3", size = 57914426, upload-time = "2024-06-24T08:02:54.588Z" }, - { url = "https://files.pythonhosted.org/packages/7e/9d/517b12a42b0692c909ed348545114dae7d0b4014ef9075e18f6bf48834a1/PyQt6_Qt6-6.7.2-py3-none-macosx_11_0_arm64.whl", hash = "sha256:7f817efa86a0e8eda9152c85b73405463fbf3266299090f32bbb2266da540ead", size = 53546572, upload-time = "2024-06-24T08:03:00.595Z" }, - { url = "https://files.pythonhosted.org/packages/cc/c4/662a0218da12ff16ee5fb87bb4c48fd972f7f55a5b60804d428b26d8e0ed/PyQt6_Qt6-6.7.2-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:05f2c7d195d316d9e678a92ecac0252a24ed175bd2444cc6077441807d756580", size = 64090179, upload-time = "2024-07-12T16:20:14.81Z" }, - { url = "https://files.pythonhosted.org/packages/d1/ec/98a16d0609fda59866ad65aa37fb028b60ead4a9a8f405059ebd0e108766/PyQt6_Qt6-6.7.2-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:fc93945eaef4536d68bd53566535efcbe78a7c05c2a533790a8fd022bac8bfaa", size = 74324521, upload-time = "2024-06-24T08:03:07.251Z" }, - { url = "https://files.pythonhosted.org/packages/c9/15/b88c88b7c530f0e0358c38024edbab60c51f8aa2679f9da398c524d89906/PyQt6_Qt6-6.7.2-py3-none-win_amd64.whl", hash = "sha256:b2d7e5ddb1b9764cd60f1d730fa7bf7a1f0f61b2630967c81761d3d0a5a8a2e0", size = 66394165, upload-time = "2024-06-24T08:03:13.888Z" }, -] - -[[package]] -name = "pyqt6-sip" -version = "13.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/e9/b7/95ac49b181096ef40144ef05aff8de7c9657de7916a70533d202ed9f0fd2/PyQt6_sip-13.8.0.tar.gz", hash = "sha256:2f74cf3d6d9cab5152bd9f49d570b2dfb87553ebb5c4919abfde27f5b9fd69d4", size = 92264, upload-time = "2024-07-12T15:55:14.173Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/9a/4f/dd03722e9b9810906d7bc48e68a8c29d1092fb90ee7933053e3fed0f8fe4/PyQt6_sip-13.8.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cedd554c643e54c4c2e12b5874781a87441a1b405acf3650a4a2e1df42aae231", size = 110518, upload-time = "2024-07-12T15:54:39.211Z" }, - { url = "https://files.pythonhosted.org/packages/fb/16/716d570e320c3b0fc8a88a4f0ded709d15f025a59c014df83ee0416deafa/PyQt6_sip-13.8.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f57275b5af774529f9838adcfb58869ba3ebdaf805daea113bb0697a96a3f3cb", size = 293987, upload-time = "2024-07-12T15:54:41.481Z" }, - { url = "https://files.pythonhosted.org/packages/14/5a/a8ddbfdc38a78a6ca2c0fad452256c60e6885f4af803b69636b6d67e475a/PyQt6_sip-13.8.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:835ed22eab977f75fd77e60d4ff308a1fa794b1d0c04849311f36d2a080cdf3b", size = 284564, upload-time = "2024-07-12T15:54:43.373Z" }, - { url = "https://files.pythonhosted.org/packages/bf/9c/1c13e769f8eb0ec63b6dc5238ba5ad1bcfa0d46672457b1b7dd6c0e66160/PyQt6_sip-13.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d8b22a6850917c68ce83fc152a8b606ecb2efaaeed35be53110468885d6cdd9d", size = 53305, upload-time = "2024-07-12T15:54:44.83Z" }, - { url = "https://files.pythonhosted.org/packages/79/ea/804a8c9c0fb0adb2412524b99458810c146fb6fc5a381a64b869afee5f00/PyQt6_sip-13.8.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:b203b6fbae4a8f2d27f35b7df46200057033d9ecd9134bcf30e3eab66d43572c", size = 110481, upload-time = "2024-07-12T15:54:46.315Z" }, - { url = "https://files.pythonhosted.org/packages/1e/b3/66ba2db2baa674b24c55823bac2b6a2195859c069d3569eb93a570626149/PyQt6_sip-13.8.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:beaddc1ec96b342f4e239702f91802706a80cb403166c2da318cec4ad8b790cb", size = 304588, upload-time = "2024-07-12T15:54:47.754Z" }, - { url = "https://files.pythonhosted.org/packages/4f/db/f453a866d5bdadc98a48f457f6af0794ea0de5b806156eb9d74c7b25a08e/PyQt6_sip-13.8.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:a5c086b7c9c7996ea9b7522646cc24eebbf3591ec9dd38f65c0a3fdb0dbeaac7", size = 293948, upload-time = "2024-07-12T15:54:49.469Z" }, - { url = "https://files.pythonhosted.org/packages/73/e0/311b9b4bdc972bedd30f14badd4b6a70c5200f302a7557f9e7bfd5f03854/PyQt6_sip-13.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:dd168667addf01f8a4b0fa7755323e43e4cd12ca4bade558c61f713a5d48ba1a", size = 53303, upload-time = "2024-07-12T15:54:50.661Z" }, - { url = "https://files.pythonhosted.org/packages/f0/db/e505fa9a42fffe9425d176d449b3c07af01af7bd6d457963d17ad2e2c391/PyQt6_sip-13.8.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:33d9b399fc9c9dc99496266842b0fb2735d924604774e97cf9b555667cc0fc59", size = 112121, upload-time = "2024-07-12T15:54:51.891Z" }, - { url = "https://files.pythonhosted.org/packages/36/35/b824bb051cfc9a707b529ea66cf1af5717d37ffe0949d90c91ab2ab94c1d/PyQt6_sip-13.8.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:056af69d1d8d28d5968066ec5da908afd82fc0be07b67cf2b84b9f02228416ce", size = 311858, upload-time = "2024-07-12T15:54:53.886Z" }, - { url = "https://files.pythonhosted.org/packages/fa/54/77b4e08135ca98384d378917dd2da02a5bc86a7fb190fa4a22dccc826492/PyQt6_sip-13.8.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:08dd81037a2864982ece2bf9891f3bf4558e247034e112993ea1a3fe239458cb", size = 303451, upload-time = "2024-07-12T15:54:55.485Z" }, - { url = "https://files.pythonhosted.org/packages/36/38/e84b5c2c1a4594f3b72972a28b0c72fd494e2769bf4f182cc30f68e766ec/PyQt6_sip-13.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:fbb249b82c53180f1420571ece5dc24fea1188ba435923edd055599dffe7abfb", size = 53409, upload-time = "2024-07-12T15:54:56.684Z" }, - { url = "https://files.pythonhosted.org/packages/55/b5/fe6e90cac72296d6ab60922d0a712918d57c428dedecf43fd5b49322c464/PyQt6_sip-13.8.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7f84c472afdc7d316ff683f63129350d645ef82d9b3fd75a609b08472d1f7291", size = 110489, upload-time = "2024-07-12T15:55:07.014Z" }, - { url = "https://files.pythonhosted.org/packages/b4/98/fd3da06fa4ded7bcd4159af6a2547ce88f7eafb2f654606029fe2aed5ced/PyQt6_sip-13.8.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b1bf29e95f10a8a00819dac804ca7e5eba5fc1769adcd74c837c11477bf81954", size = 291100, upload-time = "2024-07-12T15:55:08.836Z" }, - { url = "https://files.pythonhosted.org/packages/51/73/f93719f3cfcb17e4293039a0e09bb4d5691e5bfb0ed4cb22197e6b8e34dc/PyQt6_sip-13.8.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:9ea9223c94906efd68148f12ae45b51a21d67e86704225ddc92bce9c54e4d93c", size = 281602, upload-time = "2024-07-12T15:55:10.673Z" }, - { url = "https://files.pythonhosted.org/packages/b5/ce/c3ac5c44c3b090e145619fa794ba195910f0c50b618d5e474c2ab5a08a14/PyQt6_sip-13.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:2559afa68825d08de09d71c42f3b6ad839dcc30f91e7c6d0785e07830d5541a5", size = 53524, upload-time = "2024-07-12T15:55:12.438Z" }, -] - -[[package]] -name = "sqlparse" -version = "0.4.4" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/65/16/10f170ec641ed852611b6c9441b23d10b5702ab5288371feab3d36de2574/sqlparse-0.4.4.tar.gz", hash = "sha256:d446183e84b8349fa3061f0fe7f06ca94ba65b426946ffebe6e3e8295332420c", size = 72383, upload-time = "2023-04-18T08:30:41.994Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/98/5a/66d7c9305baa9f11857f247d4ba761402cea75db6058ff850ed7128957b7/sqlparse-0.4.4-py3-none-any.whl", hash = "sha256:5430a4fe2ac7d0f93e66f1efc6e1338a41884b7ddf2a350cedd20ccc4d9d28f3", size = 41183, upload-time = "2023-04-18T08:30:36.96Z" }, -] - -[[package]] -name = "typing-extensions" -version = "4.8.0" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/1f/7a/8b94bb016069caa12fc9f587b28080ac33b4fbb8ca369b98bc0a4828543e/typing_extensions-4.8.0.tar.gz", hash = "sha256:df8e4339e9cb77357558cbdbceca33c303714cf861d1eef15e1070055ae8b7ef", size = 71456, upload-time = "2023-09-18T04:01:56.846Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/24/21/7d397a4b7934ff4028987914ac1044d3b7d52712f30e2ac7a2ae5bc86dd0/typing_extensions-4.8.0-py3-none-any.whl", hash = "sha256:8f92fc8806f9a6b641eaa5318da32b44d401efaac0f6678c9bc448ba3605faa0", size = 31584, upload-time = "2023-09-18T04:01:55.398Z" }, -] - -[[package]] -name = "tzdata" -version = "2025.2" -source = { registry = "https://pypi.org/simple" } -sdist = { url = "https://files.pythonhosted.org/packages/95/32/1a225d6164441be760d75c2c42e2780dc0873fe382da3e98a2e1e48361e5/tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9", size = 196380, upload-time = "2025-03-23T13:54:43.652Z" } -wheels = [ - { url = "https://files.pythonhosted.org/packages/5c/23/c7abc0ca0a1526a0774eca151daeb8de62ec457e77262b66b359c3c7679e/tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8", size = 347839, upload-time = "2025-03-23T13:54:41.845Z" }, -] diff --git a/py/toolchains.bzl b/py/toolchains.bzl index e0f8d8996..1156143b9 100644 --- a/py/toolchains.bzl +++ b/py/toolchains.bzl @@ -5,14 +5,13 @@ load("//py/private/toolchain:repo.bzl", "toolchains_repo") DEFAULT_TOOLS_REPOSITORY = "rules_py_tools" -def rules_py_toolchains(name = DEFAULT_TOOLS_REPOSITORY, **kwargs): +def rules_py_toolchains(name = DEFAULT_TOOLS_REPOSITORY): """Create toolchain repositories for rules_py. Args: name: prefix used in created repositories - **kwargs: unused, retained for backwards compatibility """ - toolchains_repo(name = name, user_repository_name = name) + toolchains_repo(name = name) http_file( name = "rules_py_pex_2_3_1", diff --git a/py/tools/pex/main.py b/py/tools/pex/main.py index c32164ed3..38c119591 100644 --- a/py/tools/pex/main.py +++ b/py/tools/pex/main.py @@ -13,7 +13,7 @@ from pex.interpreter_constraints import InterpreterConstraint from pex.layout import Layout from pex.dist_metadata import Distribution -from argparse import Action, ArgumentParser +from argparse import Action, ArgumentError, ArgumentParser class InjectEnvAction(Action): def __call__(self, parser, namespace, value, option_str=None): @@ -39,9 +39,8 @@ def __call__(self, parser, namespace, value, option_str=None): "-o", "--output-file", dest="pex_name", - default=None, - help="The name of the generated .pex file: Omitting this will run PEX " - "immediately and not save it to a file.", + required=True, + help="The name of the generated .pex file.", ) parser.add_argument( @@ -76,13 +75,6 @@ def __call__(self, parser, namespace, value, option_str=None): action="append", ) -parser.add_argument( - "--distinfo", - dest="distinfos", - default=[], - action="append", -) - parser.add_argument( "--source", dest="sources", diff --git a/py/tools/site_merge/site_merge.py b/py/tools/site_merge/site_merge.py index 71755926c..0c94faa18 100644 --- a/py/tools/site_merge/site_merge.py +++ b/py/tools/site_merge/site_merge.py @@ -5,7 +5,8 @@ site-packages would produce. Needed when a *regular* package (one with an `__init__.py`) spans -wheels: e.g. azure-core owns `azure/core/` while +wheels or multiple wheels claim the same top-level package directory. +For example, azure-core owns `azure/core/` while azure-core-tracing-opentelemetry installs `azure/core/tracing/ext/opentelemetry_span/` into that same tree. Python locks a regular package's `__path__` to the first directory diff --git a/py/tools/unpack/unpack.py b/py/tools/unpack/unpack.py index 81bc63248..50e31ef36 100644 --- a/py/tools/unpack/unpack.py +++ b/py/tools/unpack/unpack.py @@ -42,6 +42,23 @@ def _has_python_shebang(data): return data.startswith(b"#!") and b"python" in data.split(b"\n", 1)[0] +def _is_native_library(path): + name = path.name + _, so_separator, so_version = name.partition(".so.") + return ( + name.endswith((".so", ".pyd", ".dylib", ".dll")) + or (so_separator and so_version and so_version[0].isdigit()) + ) + + +def _native_descendants(directory): + return tuple(sorted( + path.relative_to(directory).as_posix() + for path in directory.rglob("*") + if path.is_file() and _is_native_library(path) + )) + + def _write_executable(path, content): path.parent.mkdir(parents=True, exist_ok=True) path.write_bytes(content) @@ -198,17 +215,20 @@ def main(): # Analysis uses these paths for collision and merge planning. Snapshot their # installed shape here, where both the before and after states are available. observed_files = [] - observed_directory_init = {} + observed_directories = {} for relative_string in args.preserve_path: relative = Path(relative_string) if relative.is_absolute() or ".." in relative.parts: raise SystemExit("Invalid preserved wheel path: {}".format(relative)) path = site_packages / relative if path.is_dir(): - observed_directory_init[relative] = ( - None - if relative.name.endswith((".dist-info", ".egg-info")) - else (path / "__init__.py").is_file() + observed_directories[relative] = ( + ( + None + if relative.name.endswith((".dist-info", ".egg-info")) + else (path / "__init__.py").is_file() + ), + _native_descendants(path), ) elif path.is_file(): observed_files.append(relative) @@ -241,7 +261,7 @@ def main(): raise SystemExit( "Post-install patch changed observed wheel file: {}".format(relative) ) - for relative, had_init in observed_directory_init.items(): + for relative, (had_init, native_descendants) in observed_directories.items(): directory = site_packages / relative if not directory.is_dir(): raise SystemExit( @@ -251,6 +271,10 @@ def main(): raise SystemExit( "Post-install patch changed observed package classification: {}".format(relative) ) + if _native_descendants(directory) != native_descendants: + raise SystemExit( + "Post-install patch changed observed native files: {}".format(relative) + ) if args.compile_pyc: if not args.python: diff --git a/py/tools/unpack/unpack_test.py b/py/tools/unpack/unpack_test.py index 7e5db7cb9..85aca3054 100644 --- a/py/tools/unpack/unpack_test.py +++ b/py/tools/unpack/unpack_test.py @@ -205,14 +205,27 @@ def main() -> None: elif operation == "directory-to-file": shutil.rmtree(target) target.write_text("replacement\\n") +elif operation == "write-native": + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes(b"native") else: raise SystemExit(f"unknown operation: {{operation}}") """ ) mutation_tool.chmod(0o755) - for name, operation, changed_path, preserved_path, expected_error in [ + native_wheel = root / "native_fixture-1.0-py3-none-any.whl" + _write_wheel( + native_wheel, + "native_fixture", + { + "fixture/__init__.py": b"VALUE = 1\n", + "fixture/native_extension.so": b"native", + }, + ) + for name, wheel, operation, changed_path, preserved_path, expected_error in [ ( "removed-file", + good_wheel, "unlink", "fixture/mod.py", "fixture/mod.py", @@ -220,6 +233,7 @@ def main() -> None: ), ( "file-to-directory", + good_wheel, "file-to-directory", "fixture/mod.py", "fixture/mod.py", @@ -227,6 +241,7 @@ def main() -> None: ), ( "regular-to-namespace", + good_wheel, "unlink", "fixture/__init__.py", "fixture", @@ -234,11 +249,36 @@ def main() -> None: ), ( "directory-to-file", + good_wheel, "directory-to-file", "fixture", "fixture", "changed observed wheel directory: fixture", ), + ( + "added-native", + good_wheel, + "write-native", + "fixture/native_extension.so", + "fixture", + "changed observed native files: fixture", + ), + ( + "removed-native", + native_wheel, + "unlink", + "fixture/native_extension.so", + "fixture", + "changed observed native files: fixture", + ), + ( + "added-nested-native", + native_wheel, + "write-native", + "fixture/nested/new_extension.so", + "fixture", + "changed observed native files: fixture", + ), ]: mutation = root / f"{name}.patch" mutation.write_text( @@ -246,7 +286,7 @@ def main() -> None: ) rejected = _run_unpack( unpack, - good_wheel, + wheel, root / name, Path(sys.executable), ( diff --git a/renovate.json b/renovate.json index 30a444bcc..4d6664569 100644 --- a/renovate.json +++ b/renovate.json @@ -18,9 +18,6 @@ "enabled": false } ], - "pip-compile": { - "managerFilePatterns": ["/(^|/)requirements\\.txt$/"] - }, "pip_requirements": { "enabled": false }, diff --git a/requirements.in b/requirements.in deleted file mode 100644 index 69f5f7189..000000000 --- a/requirements.in +++ /dev/null @@ -1,13 +0,0 @@ -setuptools -build -django~=4.2.7 -colorama~=0.4.0 -click -pytest -coverage -cowsay -snakesay -ftfy==6.2.0 -neptune==1.10.2 -six -bazel-runfiles diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 4ceab5d59..000000000 --- a/requirements.txt +++ /dev/null @@ -1,931 +0,0 @@ -# -# This file is autogenerated by pip-compile with Python 3.9 -# by the following command: -# -# bazel run //:requirements.update -# -arrow==1.3.0 \ - --hash=sha256:c728b120ebc00eb84e01882a6f5e7927a53960aa990ce7dd2b10f39005a67f80 \ - --hash=sha256:d4540617648cb5f895730f1ad8c82a65f2dad0166f57b75f3ca54759c4d67a85 - # via isoduration -asgiref==3.8.1 \ - --hash=sha256:3e1e3ecc849832fe52ccf2cb6686b7a55f82bb1d6aee72a58826471390335e47 \ - --hash=sha256:c343bd80a0bec947a9860adb4c432ffa7db769836c64238fc34bdc3fec84d590 - # via django -attrs==23.2.0 \ - --hash=sha256:935dc3b529c262f6cf76e50877d35a4bd3c1de194fd41f47a2b7ae8f19971f30 \ - --hash=sha256:99b87a485a5820b23b879f04c2305b44b951b502fd64be915879d77a7e8fc6f1 - # via - # jsonschema - # referencing -bazel-runfiles==1.1.0 \ - --hash=sha256:37f59ea505b86ada391ef94e0949ff38a6fd6c111c9a8338065b16b355d0efae - # via -r requirements.in -boto3==1.34.93 \ - --hash=sha256:b59355bf4a1408563969526f314611dbeacc151cf90ecb22af295dcc4fe18def \ - --hash=sha256:e39516e4ca21612932599819662759c04485d53ca457996a913163da11f052a4 - # via neptune -botocore==1.34.93 \ - --hash=sha256:6fbd5a53a2adc9b3d4ebd90ae0ede83a91a41d96231f8a5984051f75495f246d \ - --hash=sha256:79d39b0b87e962991c6dd55e78ce15155099f6fb741be88b1b8a456a702cc150 - # via - # boto3 - # s3transfer -bravado==11.0.3 \ - --hash=sha256:1bb6ef75d84140c851fffe6420baaee5037d840070cfe11d60913be6ab8e0530 \ - --hash=sha256:8ac8bbb645e49607917a5c07808116c708521f51e80d9c29bc4a168ff4dd22c6 - # via neptune -bravado-core==6.1.1 \ - --hash=sha256:8cf1f7bbac2f7c696d37e970253938b5be4ddec92c8d5e64400b17469c3714b4 - # via bravado -build==1.3.0 \ - --hash=sha256:698edd0ea270bde950f53aed21f3a0135672206f3911e0176261a31e0e07b397 \ - --hash=sha256:7145f0b5061ba90a1500d60bd1b13ca0a8a4cebdd0cc16ed8adf1c0e739f43b4 - # via -r requirements.in -certifi==2024.7.4 \ - --hash=sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b \ - --hash=sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90 - # via requests -charset-normalizer==3.3.2 \ - --hash=sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027 \ - --hash=sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087 \ - --hash=sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786 \ - --hash=sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8 \ - --hash=sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09 \ - --hash=sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185 \ - --hash=sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574 \ - --hash=sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e \ - --hash=sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519 \ - --hash=sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898 \ - --hash=sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269 \ - --hash=sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3 \ - --hash=sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f \ - --hash=sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6 \ - --hash=sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8 \ - --hash=sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a \ - --hash=sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73 \ - --hash=sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc \ - --hash=sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714 \ - --hash=sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2 \ - --hash=sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc \ - --hash=sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce \ - --hash=sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d \ - --hash=sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e \ - --hash=sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6 \ - --hash=sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269 \ - --hash=sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96 \ - --hash=sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d \ - --hash=sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a \ - --hash=sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4 \ - --hash=sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77 \ - --hash=sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d \ - --hash=sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0 \ - --hash=sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed \ - --hash=sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068 \ - --hash=sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac \ - --hash=sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25 \ - --hash=sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8 \ - --hash=sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab \ - --hash=sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26 \ - --hash=sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2 \ - --hash=sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db \ - --hash=sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f \ - --hash=sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5 \ - --hash=sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99 \ - --hash=sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c \ - --hash=sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d \ - --hash=sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811 \ - --hash=sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa \ - --hash=sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a \ - --hash=sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03 \ - --hash=sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b \ - --hash=sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04 \ - --hash=sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c \ - --hash=sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001 \ - --hash=sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458 \ - --hash=sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389 \ - --hash=sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99 \ - --hash=sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985 \ - --hash=sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537 \ - --hash=sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238 \ - --hash=sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f \ - --hash=sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d \ - --hash=sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796 \ - --hash=sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a \ - --hash=sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143 \ - --hash=sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8 \ - --hash=sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c \ - --hash=sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5 \ - --hash=sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5 \ - --hash=sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711 \ - --hash=sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4 \ - --hash=sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6 \ - --hash=sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c \ - --hash=sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7 \ - --hash=sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4 \ - --hash=sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b \ - --hash=sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae \ - --hash=sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12 \ - --hash=sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c \ - --hash=sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae \ - --hash=sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8 \ - --hash=sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887 \ - --hash=sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b \ - --hash=sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4 \ - --hash=sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f \ - --hash=sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5 \ - --hash=sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33 \ - --hash=sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519 \ - --hash=sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561 - # via requests -click==8.1.7 \ - --hash=sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28 \ - --hash=sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de - # via - # -r requirements.in - # neptune -colorama==0.4.6 \ - --hash=sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44 \ - --hash=sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6 - # via -r requirements.in -coverage==7.6.10 \ - --hash=sha256:05fca8ba6a87aabdd2d30d0b6c838b50510b56cdcfc604d40760dae7153b73d9 \ - --hash=sha256:0aa9692b4fdd83a4647eeb7db46410ea1322b5ed94cd1715ef09d1d5922ba87f \ - --hash=sha256:0c807ca74d5a5e64427c8805de15b9ca140bba13572d6d74e262f46f50b13273 \ - --hash=sha256:0d7a2bf79378d8fb8afaa994f91bfd8215134f8631d27eba3e0e2c13546ce994 \ - --hash=sha256:0f460286cb94036455e703c66988851d970fdfd8acc2a1122ab7f4f904e4029e \ - --hash=sha256:204a8238afe787323a8b47d8be4df89772d5c1e4651b9ffa808552bdf20e1d50 \ - --hash=sha256:2396e8116db77789f819d2bc8a7e200232b7a282c66e0ae2d2cd84581a89757e \ - --hash=sha256:254f1a3b1eef5f7ed23ef265eaa89c65c8c5b6b257327c149db1ca9d4a35f25e \ - --hash=sha256:26bcf5c4df41cad1b19c84af71c22cbc9ea9a547fc973f1f2cc9a290002c8b3c \ - --hash=sha256:27c6e64726b307782fa5cbe531e7647aee385a29b2107cd87ba7c0105a5d3853 \ - --hash=sha256:299e91b274c5c9cdb64cbdf1b3e4a8fe538a7a86acdd08fae52301b28ba297f8 \ - --hash=sha256:2bcfa46d7709b5a7ffe089075799b902020b62e7ee56ebaed2f4bdac04c508d8 \ - --hash=sha256:2ccf240eb719789cedbb9fd1338055de2761088202a9a0b73032857e53f612fe \ - --hash=sha256:32ee6d8491fcfc82652a37109f69dee9a830e9379166cb73c16d8dc5c2915165 \ - --hash=sha256:3f7b444c42bbc533aaae6b5a2166fd1a797cdb5eb58ee51a92bee1eb94a1e1cb \ - --hash=sha256:457574f4599d2b00f7f637a0700a6422243b3565509457b2dbd3f50703e11f59 \ - --hash=sha256:489a01f94aa581dbd961f306e37d75d4ba16104bbfa2b0edb21d29b73be83609 \ - --hash=sha256:4bcc276261505d82f0ad426870c3b12cb177752834a633e737ec5ee79bbdff18 \ - --hash=sha256:4e0de1e902669dccbf80b0415fb6b43d27edca2fbd48c74da378923b05316098 \ - --hash=sha256:4e4630c26b6084c9b3cb53b15bd488f30ceb50b73c35c5ad7871b869cb7365fd \ - --hash=sha256:4eea95ef275de7abaef630c9b2c002ffbc01918b726a39f5a4353916ec72d2f3 \ - --hash=sha256:507a20fc863cae1d5720797761b42d2d87a04b3e5aeb682ef3b7332e90598f43 \ - --hash=sha256:54a5f0f43950a36312155dae55c505a76cd7f2b12d26abeebbe7a0b36dbc868d \ - --hash=sha256:55b201b97286cf61f5e76063f9e2a1d8d2972fc2fcfd2c1272530172fd28c359 \ - --hash=sha256:59af35558ba08b758aec4d56182b222976330ef8d2feacbb93964f576a7e7a90 \ - --hash=sha256:5c912978f7fbf47ef99cec50c4401340436d200d41d714c7a4766f377c5b7b78 \ - --hash=sha256:656c82b8a0ead8bba147de9a89bda95064874c91a3ed43a00e687f23cc19d53a \ - --hash=sha256:6713ba4b4ebc330f3def51df1d5d38fad60b66720948112f114968feb52d3f99 \ - --hash=sha256:675cefc4c06e3b4c876b85bfb7c59c5e2218167bbd4da5075cbe3b5790a28988 \ - --hash=sha256:6f93531882a5f68c28090f901b1d135de61b56331bba82028489bc51bdd818d2 \ - --hash=sha256:714f942b9c15c3a7a5fe6876ce30af831c2ad4ce902410b7466b662358c852c0 \ - --hash=sha256:79109c70cc0882e4d2d002fe69a24aa504dec0cc17169b3c7f41a1d341a73694 \ - --hash=sha256:7bbd8c8f1b115b892e34ba66a097b915d3871db7ce0e6b9901f462ff3a975377 \ - --hash=sha256:7ed2f37cfce1ce101e6dffdfd1c99e729dd2ffc291d02d3e2d0af8b53d13840d \ - --hash=sha256:7fb105327c8f8f0682e29843e2ff96af9dcbe5bab8eeb4b398c6a33a16d80a23 \ - --hash=sha256:89d76815a26197c858f53c7f6a656686ec392b25991f9e409bcef020cd532312 \ - --hash=sha256:9a7cfb50515f87f7ed30bc882f68812fd98bc2852957df69f3003d22a2aa0abf \ - --hash=sha256:9e1747bab246d6ff2c4f28b4d186b205adced9f7bd9dc362051cc37c4a0c7bd6 \ - --hash=sha256:9e80eba8801c386f72e0712a0453431259c45c3249f0009aff537a517b52942b \ - --hash=sha256:a01ec4af7dfeb96ff0078ad9a48810bb0cc8abcb0115180c6013a6b26237626c \ - --hash=sha256:a372c89c939d57abe09e08c0578c1d212e7a678135d53aa16eec4430adc5e690 \ - --hash=sha256:a3b204c11e2b2d883946fe1d97f89403aa1811df28ce0447439178cc7463448a \ - --hash=sha256:a534738b47b0de1995f85f582d983d94031dffb48ab86c95bdf88dc62212142f \ - --hash=sha256:a5e37dc41d57ceba70956fa2fc5b63c26dba863c946ace9705f8eca99daecdc4 \ - --hash=sha256:aa744da1820678b475e4ba3dfd994c321c5b13381d1041fe9c608620e6676e25 \ - --hash=sha256:ab32947f481f7e8c763fa2c92fd9f44eeb143e7610c4ca9ecd6a36adab4081bd \ - --hash=sha256:abb02e2f5a3187b2ac4cd46b8ced85a0858230b577ccb2c62c81482ca7d18852 \ - --hash=sha256:b330368cb99ef72fcd2dc3ed260adf67b31499584dc8a20225e85bfe6f6cfed0 \ - --hash=sha256:bc67deb76bc3717f22e765ab3e07ee9c7a5e26b9019ca19a3b063d9f4b874244 \ - --hash=sha256:c0b1818063dc9e9d838c09e3a473c1422f517889436dd980f5d721899e66f315 \ - --hash=sha256:c56e097019e72c373bae32d946ecf9858fda841e48d82df7e81c63ac25554078 \ - --hash=sha256:c7827a5bc7bdb197b9e066cdf650b2887597ad124dd99777332776f7b7c7d0d0 \ - --hash=sha256:ccc2b70a7ed475c68ceb548bf69cec1e27305c1c2606a5eb7c3afff56a1b3b27 \ - --hash=sha256:d37a84878285b903c0fe21ac8794c6dab58150e9359f1aaebbeddd6412d53132 \ - --hash=sha256:e2f0280519e42b0a17550072861e0bc8a80a0870de260f9796157d3fca2733c5 \ - --hash=sha256:e4ae5ac5e0d1e4edfc9b4b57b4cbecd5bc266a6915c500f358817a8496739247 \ - --hash=sha256:e67926f51821b8e9deb6426ff3164870976fe414d033ad90ea75e7ed0c2e5022 \ - --hash=sha256:e78b270eadb5702938c3dbe9367f878249b5ef9a2fcc5360ac7bff694310d17b \ - --hash=sha256:ea3c8f04b3e4af80e17bab607c386a830ffc2fb88a5484e1df756478cf70d1d3 \ - --hash=sha256:ec22b5e7fe7a0fa8509181c4aac1db48f3dd4d3a566131b313d1efc102892c18 \ - --hash=sha256:f4f620668dbc6f5e909a0946a877310fb3d57aea8198bde792aae369ee1c23b5 \ - --hash=sha256:fd34e7b3405f0cc7ab03d54a334c17a9e802897580d964bd8c2001f4b9fd488f - # via -r requirements.in -cowsay==6.1 \ - --hash=sha256:274b1e6fc1b966d53976333eb90ac94cb07a450a700b455af9fbdf882244b30a - # via -r requirements.in -django==4.2.15 \ - --hash=sha256:61ee4a130efb8c451ef3467c67ca99fdce400fedd768634efc86a68c18d80d30 \ - --hash=sha256:c77f926b81129493961e19c0e02188f8d07c112a1162df69bfab178ae447f94a - # via -r requirements.in -exceptiongroup==1.2.0 \ - --hash=sha256:4bfd3996ac73b41e9b9628b04e079f193850720ea5945fc96a08633c66912f14 \ - --hash=sha256:91f5c769735f051a4290d52edd0858999b57e5876e9f85937691bd4c9fa3ed68 - # via pytest -fqdn==1.5.1 \ - --hash=sha256:105ed3677e767fb5ca086a0c1f4bb66ebc3c100be518f0e0d755d9eae164d89f \ - --hash=sha256:3a179af3761e4df6eb2e026ff9e1a3033d3587bf980a0b1b2e1e5d08d7358014 - # via jsonschema -ftfy==6.2.0 \ - --hash=sha256:5e42143c7025ef97944ca2619d6b61b0619fc6654f98771d39e862c1424c75c0 \ - --hash=sha256:f94a2c34b76e07475720e3096f5ca80911d152406fbde66fdb45c4d0c9150026 - # via -r requirements.in -future==1.0.0 \ - --hash=sha256:929292d34f5872e70396626ef385ec22355a1fae8ad29e1a734c3e43f9fbc216 \ - --hash=sha256:bd2968309307861edae1458a4f8a4f3598c03be43b97521076aebf5d94c07b05 - # via neptune -gitdb==4.0.12 \ - --hash=sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571 \ - --hash=sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf - # via gitpython -gitpython==3.1.43 \ - --hash=sha256:35f314a9f878467f5453cc1fee295c3e18e52f1b99f10f6cf5b1682e968a9e7c \ - --hash=sha256:eec7ec56b92aad751f9912a73404bc02ba212a23adb2c7098ee668417051a1ff - # via neptune -idna==3.7 \ - --hash=sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc \ - --hash=sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0 - # via - # jsonschema - # requests -importlib-metadata==8.7.0 \ - --hash=sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000 \ - --hash=sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd - # via build -iniconfig==2.0.0 \ - --hash=sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3 \ - --hash=sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374 - # via pytest -isoduration==20.11.0 \ - --hash=sha256:ac2f9015137935279eac671f94f89eb00584f940f5dc49462a0c4ee692ba1bd9 \ - --hash=sha256:b2904c2a4228c3d44f409c8ae8e2370eb21a26f7ac2ec5446df141dde3452042 - # via jsonschema -jmespath==1.0.1 \ - --hash=sha256:02e2e4cc71b5bcab88332eebf907519190dd9e6e82107fa7f83b1003a6252980 \ - --hash=sha256:90261b206d6defd58fdd5e85f478bf633a2901798906be2ad389150c5c60edbe - # via - # boto3 - # botocore -jsonpointer==2.4 \ - --hash=sha256:15d51bba20eea3165644553647711d150376234112651b4f1811022aecad7d7a \ - --hash=sha256:585cee82b70211fa9e6043b7bb89db6e1aa49524340dde8ad6b63206ea689d88 - # via jsonschema -jsonref==1.1.0 \ - --hash=sha256:32fe8e1d85af0fdefbebce950af85590b22b60f9e95443176adbde4e1ecea552 \ - --hash=sha256:590dc7773df6c21cbf948b5dac07a72a251db28b0238ceecce0a2abfa8ec30a9 - # via bravado-core -jsonschema[format-nongpl]==4.21.1 \ - --hash=sha256:7996507afae316306f9e2290407761157c6f78002dcf7419acb99822143d1c6f \ - --hash=sha256:85727c00279f5fa6bedbe6238d2aa6403bedd8b4864ab11207d07df3cc1b2ee5 - # via - # bravado-core - # swagger-spec-validator -jsonschema-specifications==2023.12.1 \ - --hash=sha256:48a76787b3e70f5ed53f1160d2b81f586e4ca6d1548c5de7085d1682674764cc \ - --hash=sha256:87e4fdf3a94858b8a2ba2778d9ba57d8a9cafca7c7489c46ba0d30a8bc6a9c3c - # via jsonschema -monotonic==1.6 \ - --hash=sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7 \ - --hash=sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c - # via bravado -msgpack==1.0.8 \ - --hash=sha256:00e073efcba9ea99db5acef3959efa45b52bc67b61b00823d2a1a6944bf45982 \ - --hash=sha256:0726c282d188e204281ebd8de31724b7d749adebc086873a59efb8cf7ae27df3 \ - --hash=sha256:0ceea77719d45c839fd73abcb190b8390412a890df2f83fb8cf49b2a4b5c2f40 \ - --hash=sha256:114be227f5213ef8b215c22dde19532f5da9652e56e8ce969bf0a26d7c419fee \ - --hash=sha256:13577ec9e247f8741c84d06b9ece5f654920d8365a4b636ce0e44f15e07ec693 \ - --hash=sha256:1876b0b653a808fcd50123b953af170c535027bf1d053b59790eebb0aeb38950 \ - --hash=sha256:1ab0bbcd4d1f7b6991ee7c753655b481c50084294218de69365f8f1970d4c151 \ - --hash=sha256:1cce488457370ffd1f953846f82323cb6b2ad2190987cd4d70b2713e17268d24 \ - --hash=sha256:26ee97a8261e6e35885c2ecd2fd4a6d38252246f94a2aec23665a4e66d066305 \ - --hash=sha256:3528807cbbb7f315bb81959d5961855e7ba52aa60a3097151cb21956fbc7502b \ - --hash=sha256:374a8e88ddab84b9ada695d255679fb99c53513c0a51778796fcf0944d6c789c \ - --hash=sha256:376081f471a2ef24828b83a641a02c575d6103a3ad7fd7dade5486cad10ea659 \ - --hash=sha256:3923a1778f7e5ef31865893fdca12a8d7dc03a44b33e2a5f3295416314c09f5d \ - --hash=sha256:4916727e31c28be8beaf11cf117d6f6f188dcc36daae4e851fee88646f5b6b18 \ - --hash=sha256:493c5c5e44b06d6c9268ce21b302c9ca055c1fd3484c25ba41d34476c76ee746 \ - --hash=sha256:505fe3d03856ac7d215dbe005414bc28505d26f0c128906037e66d98c4e95868 \ - --hash=sha256:5845fdf5e5d5b78a49b826fcdc0eb2e2aa7191980e3d2cfd2a30303a74f212e2 \ - --hash=sha256:5c330eace3dd100bdb54b5653b966de7f51c26ec4a7d4e87132d9b4f738220ba \ - --hash=sha256:5dbf059fb4b7c240c873c1245ee112505be27497e90f7c6591261c7d3c3a8228 \ - --hash=sha256:5e390971d082dba073c05dbd56322427d3280b7cc8b53484c9377adfbae67dc2 \ - --hash=sha256:5fbb160554e319f7b22ecf530a80a3ff496d38e8e07ae763b9e82fadfe96f273 \ - --hash=sha256:64d0fcd436c5683fdd7c907eeae5e2cbb5eb872fafbc03a43609d7941840995c \ - --hash=sha256:69284049d07fce531c17404fcba2bb1df472bc2dcdac642ae71a2d079d950653 \ - --hash=sha256:6a0e76621f6e1f908ae52860bdcb58e1ca85231a9b0545e64509c931dd34275a \ - --hash=sha256:73ee792784d48aa338bba28063e19a27e8d989344f34aad14ea6e1b9bd83f596 \ - --hash=sha256:74398a4cf19de42e1498368c36eed45d9528f5fd0155241e82c4082b7e16cffd \ - --hash=sha256:7938111ed1358f536daf311be244f34df7bf3cdedb3ed883787aca97778b28d8 \ - --hash=sha256:82d92c773fbc6942a7a8b520d22c11cfc8fd83bba86116bfcf962c2f5c2ecdaa \ - --hash=sha256:83b5c044f3eff2a6534768ccfd50425939e7a8b5cf9a7261c385de1e20dcfc85 \ - --hash=sha256:8db8e423192303ed77cff4dce3a4b88dbfaf43979d280181558af5e2c3c71afc \ - --hash=sha256:9517004e21664f2b5a5fd6333b0731b9cf0817403a941b393d89a2f1dc2bd836 \ - --hash=sha256:95c02b0e27e706e48d0e5426d1710ca78e0f0628d6e89d5b5a5b91a5f12274f3 \ - --hash=sha256:99881222f4a8c2f641f25703963a5cefb076adffd959e0558dc9f803a52d6a58 \ - --hash=sha256:9ee32dcb8e531adae1f1ca568822e9b3a738369b3b686d1477cbc643c4a9c128 \ - --hash=sha256:a22e47578b30a3e199ab067a4d43d790249b3c0587d9a771921f86250c8435db \ - --hash=sha256:b5505774ea2a73a86ea176e8a9a4a7c8bf5d521050f0f6f8426afe798689243f \ - --hash=sha256:bd739c9251d01e0279ce729e37b39d49a08c0420d3fee7f2a4968c0576678f77 \ - --hash=sha256:d16a786905034e7e34098634b184a7d81f91d4c3d246edc6bd7aefb2fd8ea6ad \ - --hash=sha256:d3420522057ebab1728b21ad473aa950026d07cb09da41103f8e597dfbfaeb13 \ - --hash=sha256:d56fd9f1f1cdc8227d7b7918f55091349741904d9520c65f0139a9755952c9e8 \ - --hash=sha256:d661dc4785affa9d0edfdd1e59ec056a58b3dbb9f196fa43587f3ddac654ac7b \ - --hash=sha256:dfe1f0f0ed5785c187144c46a292b8c34c1295c01da12e10ccddfc16def4448a \ - --hash=sha256:e1dd7839443592d00e96db831eddb4111a2a81a46b028f0facd60a09ebbdd543 \ - --hash=sha256:e2872993e209f7ed04d963e4b4fbae72d034844ec66bc4ca403329db2074377b \ - --hash=sha256:e2f879ab92ce502a1e65fce390eab619774dda6a6ff719718069ac94084098ce \ - --hash=sha256:e3aa7e51d738e0ec0afbed661261513b38b3014754c9459508399baf14ae0c9d \ - --hash=sha256:e532dbd6ddfe13946de050d7474e3f5fb6ec774fbb1a188aaf469b08cf04189a \ - --hash=sha256:e6b7842518a63a9f17107eb176320960ec095a8ee3b4420b5f688e24bf50c53c \ - --hash=sha256:e75753aeda0ddc4c28dce4c32ba2f6ec30b1b02f6c0b14e547841ba5b24f753f \ - --hash=sha256:eadb9f826c138e6cf3c49d6f8de88225a3c0ab181a9b4ba792e006e5292d150e \ - --hash=sha256:ed59dd52075f8fc91da6053b12e8c89e37aa043f8986efd89e61fae69dc1b011 \ - --hash=sha256:ef254a06bcea461e65ff0373d8a0dd1ed3aa004af48839f002a0c994a6f72d04 \ - --hash=sha256:f3709997b228685fe53e8c433e2df9f0cdb5f4542bd5114ed17ac3c0129b0480 \ - --hash=sha256:f51bab98d52739c50c56658cc303f190785f9a2cd97b823357e7aeae54c8f68a \ - --hash=sha256:f9904e24646570539a8950400602d66d2b2c492b9010ea7e965025cb71d0c86d \ - --hash=sha256:f9af38a89b6a5c04b7d18c492c8ccf2aee7048aff1ce8437c4683bb5a1df893d - # via - # bravado - # bravado-core -neptune==1.10.2 \ - --hash=sha256:75cf8e58a349d9510b03dd5ce941ab34d40b33dc5f9c35442ef4a706ab8acfab \ - --hash=sha256:c6d9c7d9ea7344a2359c4ee47c50cc519121622b34e55e83eebd6bfd3638ddbd - # via -r requirements.in -numpy==1.26.4 \ - --hash=sha256:03a8c78d01d9781b28a6989f6fa1bb2c4f2d51201cf99d3dd875df6fbd96b23b \ - --hash=sha256:08beddf13648eb95f8d867350f6a018a4be2e5ad54c8d8caed89ebca558b2818 \ - --hash=sha256:1af303d6b2210eb850fcf03064d364652b7120803a0b872f5211f5234b399f20 \ - --hash=sha256:1dda2e7b4ec9dd512f84935c5f126c8bd8b9f2fc001e9f54af255e8c5f16b0e0 \ - --hash=sha256:2a02aba9ed12e4ac4eb3ea9421c420301a0c6460d9830d74a9df87efa4912010 \ - --hash=sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a \ - --hash=sha256:3373d5d70a5fe74a2c1bb6d2cfd9609ecf686d47a2d7b1d37a8f3b6bf6003aea \ - --hash=sha256:47711010ad8555514b434df65f7d7b076bb8261df1ca9bb78f53d3b2db02e95c \ - --hash=sha256:4c66707fabe114439db9068ee468c26bbdf909cac0fb58686a42a24de1760c71 \ - --hash=sha256:50193e430acfc1346175fcbdaa28ffec49947a06918b7b92130744e81e640110 \ - --hash=sha256:52b8b60467cd7dd1e9ed082188b4e6bb35aa5cdd01777621a1658910745b90be \ - --hash=sha256:60dedbb91afcbfdc9bc0b1f3f402804070deed7392c23eb7a7f07fa857868e8a \ - --hash=sha256:62b8e4b1e28009ef2846b4c7852046736bab361f7aeadeb6a5b89ebec3c7055a \ - --hash=sha256:666dbfb6ec68962c033a450943ded891bed2d54e6755e35e5835d63f4f6931d5 \ - --hash=sha256:675d61ffbfa78604709862923189bad94014bef562cc35cf61d3a07bba02a7ed \ - --hash=sha256:679b0076f67ecc0138fd2ede3a8fd196dddc2ad3254069bcb9faf9a79b1cebcd \ - --hash=sha256:7349ab0fa0c429c82442a27a9673fc802ffdb7c7775fad780226cb234965e53c \ - --hash=sha256:7ab55401287bfec946ced39700c053796e7cc0e3acbef09993a9ad2adba6ca6e \ - --hash=sha256:7e50d0a0cc3189f9cb0aeb3a6a6af18c16f59f004b866cd2be1c14b36134a4a0 \ - --hash=sha256:95a7476c59002f2f6c590b9b7b998306fba6a5aa646b1e22ddfeaf8f78c3a29c \ - --hash=sha256:96ff0b2ad353d8f990b63294c8986f1ec3cb19d749234014f4e7eb0112ceba5a \ - --hash=sha256:9fad7dcb1aac3c7f0584a5a8133e3a43eeb2fe127f47e3632d43d677c66c102b \ - --hash=sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0 \ - --hash=sha256:a354325ee03388678242a4d7ebcd08b5c727033fcff3b2f536aea978e15ee9e6 \ - --hash=sha256:a4abb4f9001ad2858e7ac189089c42178fcce737e4169dc61321660f1a96c7d2 \ - --hash=sha256:ab47dbe5cc8210f55aa58e4805fe224dac469cde56b9f731a4c098b91917159a \ - --hash=sha256:afedb719a9dcfc7eaf2287b839d8198e06dcd4cb5d276a3df279231138e83d30 \ - --hash=sha256:b3ce300f3644fb06443ee2222c2201dd3a89ea6040541412b8fa189341847218 \ - --hash=sha256:b97fe8060236edf3662adfc2c633f56a08ae30560c56310562cb4f95500022d5 \ - --hash=sha256:bfe25acf8b437eb2a8b2d49d443800a5f18508cd811fea3181723922a8a82b07 \ - --hash=sha256:cd25bcecc4974d09257ffcd1f098ee778f7834c3ad767fe5db785be9a4aa9cb2 \ - --hash=sha256:d209d8969599b27ad20994c8e41936ee0964e6da07478d6c35016bc386b66ad4 \ - --hash=sha256:d5241e0a80d808d70546c697135da2c613f30e28251ff8307eb72ba696945764 \ - --hash=sha256:edd8b5fe47dab091176d21bb6de568acdd906d1887a4584a15a9a96a1dca06ef \ - --hash=sha256:f870204a840a60da0b12273ef34f7051e98c3b5961b61b0c2c1be6dfd64fbcd3 \ - --hash=sha256:ffa75af20b44f8dba823498024771d5ac50620e6915abac414251bd971b4529f - # via pandas -oauthlib==3.2.2 \ - --hash=sha256:8139f29aac13e25d502680e9e19963e83f16838d48a0d71c287fe40e7067fbca \ - --hash=sha256:9859c40929662bec5d64f34d01c99e093149682a3f38915dc0655d5a633dd918 - # via - # neptune - # requests-oauthlib -packaging==24.0 \ - --hash=sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5 \ - --hash=sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9 - # via - # build - # neptune - # pytest -pandas==2.2.2 \ - --hash=sha256:001910ad31abc7bf06f49dcc903755d2f7f3a9186c0c040b827e522e9cef0863 \ - --hash=sha256:0ca6377b8fca51815f382bd0b697a0814c8bda55115678cbc94c30aacbb6eff2 \ - --hash=sha256:0cace394b6ea70c01ca1595f839cf193df35d1575986e484ad35c4aeae7266c1 \ - --hash=sha256:1cb51fe389360f3b5a4d57dbd2848a5f033350336ca3b340d1c53a1fad33bcad \ - --hash=sha256:2925720037f06e89af896c70bca73459d7e6a4be96f9de79e2d440bd499fe0db \ - --hash=sha256:3e374f59e440d4ab45ca2fffde54b81ac3834cf5ae2cdfa69c90bc03bde04d76 \ - --hash=sha256:40ae1dffb3967a52203105a077415a86044a2bea011b5f321c6aa64b379a3f51 \ - --hash=sha256:43498c0bdb43d55cb162cdc8c06fac328ccb5d2eabe3cadeb3529ae6f0517c32 \ - --hash=sha256:4abfe0be0d7221be4f12552995e58723c7422c80a659da13ca382697de830c08 \ - --hash=sha256:58b84b91b0b9f4bafac2a0ac55002280c094dfc6402402332c0913a59654ab2b \ - --hash=sha256:640cef9aa381b60e296db324337a554aeeb883ead99dc8f6c18e81a93942f5f4 \ - --hash=sha256:66b479b0bd07204e37583c191535505410daa8df638fd8e75ae1b383851fe921 \ - --hash=sha256:696039430f7a562b74fa45f540aca068ea85fa34c244d0deee539cb6d70aa288 \ - --hash=sha256:6d2123dc9ad6a814bcdea0f099885276b31b24f7edf40f6cdbc0912672e22eee \ - --hash=sha256:8635c16bf3d99040fdf3ca3db669a7250ddf49c55dc4aa8fe0ae0fa8d6dcc1f0 \ - --hash=sha256:873d13d177501a28b2756375d59816c365e42ed8417b41665f346289adc68d24 \ - --hash=sha256:8e5a0b00e1e56a842f922e7fae8ae4077aee4af0acb5ae3622bd4b4c30aedf99 \ - --hash=sha256:8e90497254aacacbc4ea6ae5e7a8cd75629d6ad2b30025a4a8b09aa4faf55151 \ - --hash=sha256:9057e6aa78a584bc93a13f0a9bf7e753a5e9770a30b4d758b8d5f2a62a9433cd \ - --hash=sha256:90c6fca2acf139569e74e8781709dccb6fe25940488755716d1d354d6bc58bce \ - --hash=sha256:92fd6b027924a7e178ac202cfbe25e53368db90d56872d20ffae94b96c7acc57 \ - --hash=sha256:9dfde2a0ddef507a631dc9dc4af6a9489d5e2e740e226ad426a05cabfbd7c8ef \ - --hash=sha256:9e79019aba43cb4fda9e4d983f8e88ca0373adbb697ae9c6c43093218de28b54 \ - --hash=sha256:a77e9d1c386196879aa5eb712e77461aaee433e54c68cf253053a73b7e49c33a \ - --hash=sha256:c7adfc142dac335d8c1e0dcbd37eb8617eac386596eb9e1a1b77791cf2498238 \ - --hash=sha256:d187d355ecec3629624fccb01d104da7d7f391db0311145817525281e2804d23 \ - --hash=sha256:ddf818e4e6c7c6f4f7c8a12709696d193976b591cc7dc50588d3d1a6b5dc8772 \ - --hash=sha256:e9b79011ff7a0f4b1d6da6a61aa1aa604fb312d6647de5bad20013682d1429ce \ - --hash=sha256:eee3a87076c0756de40b05c5e9a6069c035ba43e8dd71c379e68cab2c20f16ad - # via neptune -pillow==10.3.0 \ - --hash=sha256:048ad577748b9fa4a99a0548c64f2cb8d672d5bf2e643a739ac8faff1164238c \ - --hash=sha256:048eeade4c33fdf7e08da40ef402e748df113fd0b4584e32c4af74fe78baaeb2 \ - --hash=sha256:0ba26351b137ca4e0db0342d5d00d2e355eb29372c05afd544ebf47c0956ffeb \ - --hash=sha256:0ea2a783a2bdf2a561808fe4a7a12e9aa3799b701ba305de596bc48b8bdfce9d \ - --hash=sha256:1530e8f3a4b965eb6a7785cf17a426c779333eb62c9a7d1bbcf3ffd5bf77a4aa \ - --hash=sha256:16563993329b79513f59142a6b02055e10514c1a8e86dca8b48a893e33cf91e3 \ - --hash=sha256:19aeb96d43902f0a783946a0a87dbdad5c84c936025b8419da0a0cd7724356b1 \ - --hash=sha256:1a1d1915db1a4fdb2754b9de292642a39a7fb28f1736699527bb649484fb966a \ - --hash=sha256:1b87bd9d81d179bd8ab871603bd80d8645729939f90b71e62914e816a76fc6bd \ - --hash=sha256:1dfc94946bc60ea375cc39cff0b8da6c7e5f8fcdc1d946beb8da5c216156ddd8 \ - --hash=sha256:2034f6759a722da3a3dbd91a81148cf884e91d1b747992ca288ab88c1de15999 \ - --hash=sha256:261ddb7ca91fcf71757979534fb4c128448b5b4c55cb6152d280312062f69599 \ - --hash=sha256:2ed854e716a89b1afcedea551cd85f2eb2a807613752ab997b9974aaa0d56936 \ - --hash=sha256:3102045a10945173d38336f6e71a8dc71bcaeed55c3123ad4af82c52807b9375 \ - --hash=sha256:339894035d0ede518b16073bdc2feef4c991ee991a29774b33e515f1d308e08d \ - --hash=sha256:412444afb8c4c7a6cc11a47dade32982439925537e483be7c0ae0cf96c4f6a0b \ - --hash=sha256:4203efca580f0dd6f882ca211f923168548f7ba334c189e9eab1178ab840bf60 \ - --hash=sha256:45ebc7b45406febf07fef35d856f0293a92e7417ae7933207e90bf9090b70572 \ - --hash=sha256:4b5ec25d8b17217d635f8935dbc1b9aa5907962fae29dff220f2659487891cd3 \ - --hash=sha256:4c8e73e99da7db1b4cad7f8d682cf6abad7844da39834c288fbfa394a47bbced \ - --hash=sha256:4e6f7d1c414191c1199f8996d3f2282b9ebea0945693fb67392c75a3a320941f \ - --hash=sha256:4eaa22f0d22b1a7e93ff0a596d57fdede2e550aecffb5a1ef1106aaece48e96b \ - --hash=sha256:50b8eae8f7334ec826d6eeffaeeb00e36b5e24aa0b9df322c247539714c6df19 \ - --hash=sha256:50fd3f6b26e3441ae07b7c979309638b72abc1a25da31a81a7fbd9495713ef4f \ - --hash=sha256:51243f1ed5161b9945011a7360e997729776f6e5d7005ba0c6879267d4c5139d \ - --hash=sha256:5d512aafa1d32efa014fa041d38868fda85028e3f930a96f85d49c7d8ddc0383 \ - --hash=sha256:5f77cf66e96ae734717d341c145c5949c63180842a545c47a0ce7ae52ca83795 \ - --hash=sha256:6b02471b72526ab8a18c39cb7967b72d194ec53c1fd0a70b050565a0f366d355 \ - --hash=sha256:6fb1b30043271ec92dc65f6d9f0b7a830c210b8a96423074b15c7bc999975f57 \ - --hash=sha256:7161ec49ef0800947dc5570f86568a7bb36fa97dd09e9827dc02b718c5643f09 \ - --hash=sha256:72d622d262e463dfb7595202d229f5f3ab4b852289a1cd09650362db23b9eb0b \ - --hash=sha256:74d28c17412d9caa1066f7a31df8403ec23d5268ba46cd0ad2c50fb82ae40462 \ - --hash=sha256:78618cdbccaa74d3f88d0ad6cb8ac3007f1a6fa5c6f19af64b55ca170bfa1edf \ - --hash=sha256:793b4e24db2e8742ca6423d3fde8396db336698c55cd34b660663ee9e45ed37f \ - --hash=sha256:798232c92e7665fe82ac085f9d8e8ca98826f8e27859d9a96b41d519ecd2e49a \ - --hash=sha256:81d09caa7b27ef4e61cb7d8fbf1714f5aec1c6b6c5270ee53504981e6e9121ad \ - --hash=sha256:8ab74c06ffdab957d7670c2a5a6e1a70181cd10b727cd788c4dd9005b6a8acd9 \ - --hash=sha256:8eb0908e954d093b02a543dc963984d6e99ad2b5e36503d8a0aaf040505f747d \ - --hash=sha256:90b9e29824800e90c84e4022dd5cc16eb2d9605ee13f05d47641eb183cd73d45 \ - --hash=sha256:9797a6c8fe16f25749b371c02e2ade0efb51155e767a971c61734b1bf6293994 \ - --hash=sha256:9d2455fbf44c914840c793e89aa82d0e1763a14253a000743719ae5946814b2d \ - --hash=sha256:9d3bea1c75f8c53ee4d505c3e67d8c158ad4df0d83170605b50b64025917f338 \ - --hash=sha256:9e2ec1e921fd07c7cda7962bad283acc2f2a9ccc1b971ee4b216b75fad6f0463 \ - --hash=sha256:9e91179a242bbc99be65e139e30690e081fe6cb91a8e77faf4c409653de39451 \ - --hash=sha256:a0eaa93d054751ee9964afa21c06247779b90440ca41d184aeb5d410f20ff591 \ - --hash=sha256:a2c405445c79c3f5a124573a051062300936b0281fee57637e706453e452746c \ - --hash=sha256:aa7e402ce11f0885305bfb6afb3434b3cd8f53b563ac065452d9d5654c7b86fd \ - --hash=sha256:aff76a55a8aa8364d25400a210a65ff59d0168e0b4285ba6bf2bd83cf675ba32 \ - --hash=sha256:b09b86b27a064c9624d0a6c54da01c1beaf5b6cadfa609cf63789b1d08a797b9 \ - --hash=sha256:b14f16f94cbc61215115b9b1236f9c18403c15dd3c52cf629072afa9d54c1cbf \ - --hash=sha256:b50811d664d392f02f7761621303eba9d1b056fb1868c8cdf4231279645c25f5 \ - --hash=sha256:b7bc2176354defba3edc2b9a777744462da2f8e921fbaf61e52acb95bafa9828 \ - --hash=sha256:c78e1b00a87ce43bb37642c0812315b411e856a905d58d597750eb79802aaaa3 \ - --hash=sha256:c83341b89884e2b2e55886e8fbbf37c3fa5efd6c8907124aeb72f285ae5696e5 \ - --hash=sha256:ca2870d5d10d8726a27396d3ca4cf7976cec0f3cb706debe88e3a5bd4610f7d2 \ - --hash=sha256:ccce24b7ad89adb5a1e34a6ba96ac2530046763912806ad4c247356a8f33a67b \ - --hash=sha256:cd5e14fbf22a87321b24c88669aad3a51ec052eb145315b3da3b7e3cc105b9a2 \ - --hash=sha256:ce49c67f4ea0609933d01c0731b34b8695a7a748d6c8d186f95e7d085d2fe475 \ - --hash=sha256:d33891be6df59d93df4d846640f0e46f1a807339f09e79a8040bc887bdcd7ed3 \ - --hash=sha256:d3b2348a78bc939b4fed6552abfd2e7988e0f81443ef3911a4b8498ca084f6eb \ - --hash=sha256:d886f5d353333b4771d21267c7ecc75b710f1a73d72d03ca06df49b09015a9ef \ - --hash=sha256:d93480005693d247f8346bc8ee28c72a2191bdf1f6b5db469c096c0c867ac015 \ - --hash=sha256:dc1a390a82755a8c26c9964d457d4c9cbec5405896cba94cf51f36ea0d855002 \ - --hash=sha256:dd78700f5788ae180b5ee8902c6aea5a5726bac7c364b202b4b3e3ba2d293170 \ - --hash=sha256:e46f38133e5a060d46bd630faa4d9fa0202377495df1f068a8299fd78c84de84 \ - --hash=sha256:e4b878386c4bf293578b48fc570b84ecfe477d3b77ba39a6e87150af77f40c57 \ - --hash=sha256:f0d0591a0aeaefdaf9a5e545e7485f89910c977087e7de2b6c388aec32011e9f \ - --hash=sha256:fdcbb4068117dfd9ce0138d068ac512843c52295ed996ae6dd1faf537b6dbc27 \ - --hash=sha256:ff61bfd9253c3915e6d41c651d5f962da23eda633cf02262990094a18a55371a - # via neptune -pluggy==1.4.0 \ - --hash=sha256:7db9f7b503d67d1c5b95f59773ebb58a8c1c288129a88665838012cfb07b8981 \ - --hash=sha256:8c85c2876142a764e5b7548e7d9a0e0ddb46f5185161049a79b7e974454223be - # via pytest -psutil==5.9.8 \ - --hash=sha256:02615ed8c5ea222323408ceba16c60e99c3f91639b07da6373fb7e6539abc56d \ - --hash=sha256:05806de88103b25903dff19bb6692bd2e714ccf9e668d050d144012055cbca73 \ - --hash=sha256:26bd09967ae00920df88e0352a91cff1a78f8d69b3ecabbfe733610c0af486c8 \ - --hash=sha256:27cc40c3493bb10de1be4b3f07cae4c010ce715290a5be22b98493509c6299e2 \ - --hash=sha256:36f435891adb138ed3c9e58c6af3e2e6ca9ac2f365efe1f9cfef2794e6c93b4e \ - --hash=sha256:50187900d73c1381ba1454cf40308c2bf6f34268518b3f36a9b663ca87e65e36 \ - --hash=sha256:611052c4bc70432ec770d5d54f64206aa7203a101ec273a0cd82418c86503bb7 \ - --hash=sha256:6be126e3225486dff286a8fb9a06246a5253f4c7c53b475ea5f5ac934e64194c \ - --hash=sha256:7d79560ad97af658a0f6adfef8b834b53f64746d45b403f225b85c5c2c140eee \ - --hash=sha256:8cb6403ce6d8e047495a701dc7c5bd788add903f8986d523e3e20b98b733e421 \ - --hash=sha256:8db4c1b57507eef143a15a6884ca10f7c73876cdf5d51e713151c1236a0e68cf \ - --hash=sha256:aee678c8720623dc456fa20659af736241f575d79429a0e5e9cf88ae0605cc81 \ - --hash=sha256:bc56c2a1b0d15aa3eaa5a60c9f3f8e3e565303b465dbf57a1b730e7a2b9844e0 \ - --hash=sha256:bd1184ceb3f87651a67b2708d4c3338e9b10c5df903f2e3776b62303b26cb631 \ - --hash=sha256:d06016f7f8625a1825ba3732081d77c94589dca78b7a3fc072194851e88461a4 \ - --hash=sha256:d16bbddf0693323b8c6123dd804100241da461e41d6e332fb0ba6058f630f8c8 - # via neptune -pyjwt==2.8.0 \ - --hash=sha256:57e28d156e3d5c10088e0c68abb90bfac3df82b40a71bd0daa20c65ccd5c23de \ - --hash=sha256:59127c392cc44c2da5bb3192169a91f429924e17aff6534d70fdc02ab3e04320 - # via neptune -pyproject-hooks==1.2.0 \ - --hash=sha256:1e859bd5c40fae9448642dd871adf459e5e2084186e8d2c2a79a824c970da1f8 \ - --hash=sha256:9e5c6bfa8dcc30091c74b0cf803c81fdd29d94f01992a7707bc97babb1141913 - # via build -pytest==8.1.1 \ - --hash=sha256:2a8386cfc11fa9d2c50ee7b2a57e7d898ef90470a7a34c4b949ff59662bb78b7 \ - --hash=sha256:ac978141a75948948817d360297b7aae0fcb9d6ff6bc9ec6d514b85d5a65c044 - # via -r requirements.in -python-dateutil==2.9.0.post0 \ - --hash=sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3 \ - --hash=sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427 - # via - # arrow - # botocore - # bravado - # bravado-core - # pandas -pytz==2024.1 \ - --hash=sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812 \ - --hash=sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319 - # via - # bravado-core - # pandas -pyyaml==6.0.1 \ - --hash=sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5 \ - --hash=sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc \ - --hash=sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df \ - --hash=sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741 \ - --hash=sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206 \ - --hash=sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27 \ - --hash=sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595 \ - --hash=sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62 \ - --hash=sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98 \ - --hash=sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696 \ - --hash=sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290 \ - --hash=sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9 \ - --hash=sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d \ - --hash=sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6 \ - --hash=sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867 \ - --hash=sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47 \ - --hash=sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486 \ - --hash=sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6 \ - --hash=sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3 \ - --hash=sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007 \ - --hash=sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938 \ - --hash=sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0 \ - --hash=sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c \ - --hash=sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735 \ - --hash=sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d \ - --hash=sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28 \ - --hash=sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4 \ - --hash=sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba \ - --hash=sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8 \ - --hash=sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef \ - --hash=sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5 \ - --hash=sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd \ - --hash=sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3 \ - --hash=sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0 \ - --hash=sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515 \ - --hash=sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c \ - --hash=sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c \ - --hash=sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924 \ - --hash=sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34 \ - --hash=sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43 \ - --hash=sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859 \ - --hash=sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673 \ - --hash=sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54 \ - --hash=sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a \ - --hash=sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b \ - --hash=sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab \ - --hash=sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa \ - --hash=sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c \ - --hash=sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585 \ - --hash=sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d \ - --hash=sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f - # via - # bravado - # bravado-core - # swagger-spec-validator -referencing==0.35.0 \ - --hash=sha256:191e936b0c696d0af17ad7430a3dc68e88bc11be6514f4757dc890f04ab05889 \ - --hash=sha256:8080727b30e364e5783152903672df9b6b091c926a146a759080b62ca3126cd6 - # via - # jsonschema - # jsonschema-specifications -requests==2.31.0 \ - --hash=sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f \ - --hash=sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1 - # via - # bravado - # bravado-core - # neptune - # requests-oauthlib -requests-oauthlib==2.0.0 \ - --hash=sha256:7dd8a5c40426b779b0868c404bdef9768deccf22749cde15852df527e6269b36 \ - --hash=sha256:b3dffaebd884d8cd778494369603a9e7b58d29111bf6b41bdc2dcd87203af4e9 - # via neptune -rfc3339-validator==0.1.4 \ - --hash=sha256:138a2abdf93304ad60530167e51d2dfb9549521a836871b88d7f4695d0022f6b \ - --hash=sha256:24f6ec1eda14ef823da9e36ec7113124b39c04d50a4d3d3a3c2859577e7791fa - # via jsonschema -rfc3986-validator==0.1.1 \ - --hash=sha256:2f235c432ef459970b4306369336b9d5dbdda31b510ca1e327636e01f528bfa9 \ - --hash=sha256:3d44bde7921b3b9ec3ae4e3adca370438eccebc676456449b145d533b240d055 - # via jsonschema -rpds-py==0.18.0 \ - --hash=sha256:01e36a39af54a30f28b73096dd39b6802eddd04c90dbe161c1b8dbe22353189f \ - --hash=sha256:044a3e61a7c2dafacae99d1e722cc2d4c05280790ec5a05031b3876809d89a5c \ - --hash=sha256:08231ac30a842bd04daabc4d71fddd7e6d26189406d5a69535638e4dcb88fe76 \ - --hash=sha256:08f9ad53c3f31dfb4baa00da22f1e862900f45908383c062c27628754af2e88e \ - --hash=sha256:0ab39c1ba9023914297dd88ec3b3b3c3f33671baeb6acf82ad7ce883f6e8e157 \ - --hash=sha256:0af039631b6de0397ab2ba16eaf2872e9f8fca391b44d3d8cac317860a700a3f \ - --hash=sha256:0b8612cd233543a3781bc659c731b9d607de65890085098986dfd573fc2befe5 \ - --hash=sha256:11a8c85ef4a07a7638180bf04fe189d12757c696eb41f310d2426895356dcf05 \ - --hash=sha256:1374f4129f9bcca53a1bba0bb86bf78325a0374577cf7e9e4cd046b1e6f20e24 \ - --hash=sha256:1d4acf42190d449d5e89654d5c1ed3a4f17925eec71f05e2a41414689cda02d1 \ - --hash=sha256:1d9a5be316c15ffb2b3c405c4ff14448c36b4435be062a7f578ccd8b01f0c4d8 \ - --hash=sha256:1df3659d26f539ac74fb3b0c481cdf9d725386e3552c6fa2974f4d33d78e544b \ - --hash=sha256:22806714311a69fd0af9b35b7be97c18a0fc2826e6827dbb3a8c94eac6cf7eeb \ - --hash=sha256:2644e47de560eb7bd55c20fc59f6daa04682655c58d08185a9b95c1970fa1e07 \ - --hash=sha256:2e6d75ab12b0bbab7215e5d40f1e5b738aa539598db27ef83b2ec46747df90e1 \ - --hash=sha256:30f43887bbae0d49113cbaab729a112251a940e9b274536613097ab8b4899cf6 \ - --hash=sha256:34b18ba135c687f4dac449aa5157d36e2cbb7c03cbea4ddbd88604e076aa836e \ - --hash=sha256:36b3ee798c58ace201289024b52788161e1ea133e4ac93fba7d49da5fec0ef9e \ - --hash=sha256:39514da80f971362f9267c600b6d459bfbbc549cffc2cef8e47474fddc9b45b1 \ - --hash=sha256:39f5441553f1c2aed4de4377178ad8ff8f9d733723d6c66d983d75341de265ab \ - --hash=sha256:3a96e0c6a41dcdba3a0a581bbf6c44bb863f27c541547fb4b9711fd8cf0ffad4 \ - --hash=sha256:3f26b5bd1079acdb0c7a5645e350fe54d16b17bfc5e71f371c449383d3342e17 \ - --hash=sha256:41ef53e7c58aa4ef281da975f62c258950f54b76ec8e45941e93a3d1d8580594 \ - --hash=sha256:42821446ee7a76f5d9f71f9e33a4fb2ffd724bb3e7f93386150b61a43115788d \ - --hash=sha256:43fbac5f22e25bee1d482c97474f930a353542855f05c1161fd804c9dc74a09d \ - --hash=sha256:4457a94da0d5c53dc4b3e4de1158bdab077db23c53232f37a3cb7afdb053a4e3 \ - --hash=sha256:465a3eb5659338cf2a9243e50ad9b2296fa15061736d6e26240e713522b6235c \ - --hash=sha256:482103aed1dfe2f3b71a58eff35ba105289b8d862551ea576bd15479aba01f66 \ - --hash=sha256:4832d7d380477521a8c1644bbab6588dfedea5e30a7d967b5fb75977c45fd77f \ - --hash=sha256:4901165d170a5fde6f589acb90a6b33629ad1ec976d4529e769c6f3d885e3e80 \ - --hash=sha256:5307def11a35f5ae4581a0b658b0af8178c65c530e94893345bebf41cc139d33 \ - --hash=sha256:5417558f6887e9b6b65b4527232553c139b57ec42c64570569b155262ac0754f \ - --hash=sha256:56a737287efecafc16f6d067c2ea0117abadcd078d58721f967952db329a3e5c \ - --hash=sha256:586f8204935b9ec884500498ccc91aa869fc652c40c093bd9e1471fbcc25c022 \ - --hash=sha256:5b4e7d8d6c9b2e8ee2d55c90b59c707ca59bc30058269b3db7b1f8df5763557e \ - --hash=sha256:5ddcba87675b6d509139d1b521e0c8250e967e63b5909a7e8f8944d0f90ff36f \ - --hash=sha256:618a3d6cae6ef8ec88bb76dd80b83cfe415ad4f1d942ca2a903bf6b6ff97a2da \ - --hash=sha256:635dc434ff724b178cb192c70016cc0ad25a275228f749ee0daf0eddbc8183b1 \ - --hash=sha256:661d25cbffaf8cc42e971dd570d87cb29a665f49f4abe1f9e76be9a5182c4688 \ - --hash=sha256:66e6a3af5a75363d2c9a48b07cb27c4ea542938b1a2e93b15a503cdfa8490795 \ - --hash=sha256:67071a6171e92b6da534b8ae326505f7c18022c6f19072a81dcf40db2638767c \ - --hash=sha256:685537e07897f173abcf67258bee3c05c374fa6fff89d4c7e42fb391b0605e98 \ - --hash=sha256:69e64831e22a6b377772e7fb337533c365085b31619005802a79242fee620bc1 \ - --hash=sha256:6b0817e34942b2ca527b0e9298373e7cc75f429e8da2055607f4931fded23e20 \ - --hash=sha256:6c81e5f372cd0dc5dc4809553d34f832f60a46034a5f187756d9b90586c2c307 \ - --hash=sha256:6d7faa6f14017c0b1e69f5e2c357b998731ea75a442ab3841c0dbbbfe902d2c4 \ - --hash=sha256:6ef0befbb5d79cf32d0266f5cff01545602344eda89480e1dd88aca964260b18 \ - --hash=sha256:6ef687afab047554a2d366e112dd187b62d261d49eb79b77e386f94644363294 \ - --hash=sha256:7223a2a5fe0d217e60a60cdae28d6949140dde9c3bcc714063c5b463065e3d66 \ - --hash=sha256:77f195baa60a54ef9d2de16fbbfd3ff8b04edc0c0140a761b56c267ac11aa467 \ - --hash=sha256:793968759cd0d96cac1e367afd70c235867831983f876a53389ad869b043c948 \ - --hash=sha256:7bd339195d84439cbe5771546fe8a4e8a7a045417d8f9de9a368c434e42a721e \ - --hash=sha256:7cd863afe7336c62ec78d7d1349a2f34c007a3cc6c2369d667c65aeec412a5b1 \ - --hash=sha256:7f2facbd386dd60cbbf1a794181e6aa0bd429bd78bfdf775436020172e2a23f0 \ - --hash=sha256:84ffab12db93b5f6bad84c712c92060a2d321b35c3c9960b43d08d0f639d60d7 \ - --hash=sha256:8c8370641f1a7f0e0669ddccca22f1da893cef7628396431eb445d46d893e5cd \ - --hash=sha256:8db715ebe3bb7d86d77ac1826f7d67ec11a70dbd2376b7cc214199360517b641 \ - --hash=sha256:8e8916ae4c720529e18afa0b879473049e95949bf97042e938530e072fde061d \ - --hash=sha256:8f03bccbd8586e9dd37219bce4d4e0d3ab492e6b3b533e973fa08a112cb2ffc9 \ - --hash=sha256:8f2fc11e8fe034ee3c34d316d0ad8808f45bc3b9ce5857ff29d513f3ff2923a1 \ - --hash=sha256:923d39efa3cfb7279a0327e337a7958bff00cc447fd07a25cddb0a1cc9a6d2da \ - --hash=sha256:93df1de2f7f7239dc9cc5a4a12408ee1598725036bd2dedadc14d94525192fc3 \ - --hash=sha256:998e33ad22dc7ec7e030b3df701c43630b5bc0d8fbc2267653577e3fec279afa \ - --hash=sha256:99f70b740dc04d09e6b2699b675874367885217a2e9f782bdf5395632ac663b7 \ - --hash=sha256:9a00312dea9310d4cb7dbd7787e722d2e86a95c2db92fbd7d0155f97127bcb40 \ - --hash=sha256:9d54553c1136b50fd12cc17e5b11ad07374c316df307e4cfd6441bea5fb68496 \ - --hash=sha256:9dbbeb27f4e70bfd9eec1be5477517365afe05a9b2c441a0b21929ee61048124 \ - --hash=sha256:a1ce3ba137ed54f83e56fb983a5859a27d43a40188ba798993812fed73c70836 \ - --hash=sha256:a34d557a42aa28bd5c48a023c570219ba2593bcbbb8dc1b98d8cf5d529ab1434 \ - --hash=sha256:a5f446dd5055667aabaee78487f2b5ab72e244f9bc0b2ffebfeec79051679984 \ - --hash=sha256:ad36cfb355e24f1bd37cac88c112cd7730873f20fb0bdaf8ba59eedf8216079f \ - --hash=sha256:aec493917dd45e3c69d00a8874e7cbed844efd935595ef78a0f25f14312e33c6 \ - --hash=sha256:b316144e85316da2723f9d8dc75bada12fa58489a527091fa1d5a612643d1a0e \ - --hash=sha256:b34ae4636dfc4e76a438ab826a0d1eed2589ca7d9a1b2d5bb546978ac6485461 \ - --hash=sha256:b34b7aa8b261c1dbf7720b5d6f01f38243e9b9daf7e6b8bc1fd4657000062f2c \ - --hash=sha256:bc362ee4e314870a70f4ae88772d72d877246537d9f8cb8f7eacf10884862432 \ - --hash=sha256:bed88b9a458e354014d662d47e7a5baafd7ff81c780fd91584a10d6ec842cb73 \ - --hash=sha256:c0013fe6b46aa496a6749c77e00a3eb07952832ad6166bd481c74bda0dcb6d58 \ - --hash=sha256:c0b5dcf9193625afd8ecc92312d6ed78781c46ecbf39af9ad4681fc9f464af88 \ - --hash=sha256:c4325ff0442a12113a6379af66978c3fe562f846763287ef66bdc1d57925d337 \ - --hash=sha256:c463ed05f9dfb9baebef68048aed8dcdc94411e4bf3d33a39ba97e271624f8f7 \ - --hash=sha256:c8362467a0fdeccd47935f22c256bec5e6abe543bf0d66e3d3d57a8fb5731863 \ - --hash=sha256:cd5bf1af8efe569654bbef5a3e0a56eca45f87cfcffab31dd8dde70da5982475 \ - --hash=sha256:cf1ea2e34868f6fbf070e1af291c8180480310173de0b0c43fc38a02929fc0e3 \ - --hash=sha256:d62dec4976954a23d7f91f2f4530852b0c7608116c257833922a896101336c51 \ - --hash=sha256:d68c93e381010662ab873fea609bf6c0f428b6d0bb00f2c6939782e0818d37bf \ - --hash=sha256:d7c36232a90d4755b720fbd76739d8891732b18cf240a9c645d75f00639a9024 \ - --hash=sha256:dd18772815d5f008fa03d2b9a681ae38d5ae9f0e599f7dda233c439fcaa00d40 \ - --hash=sha256:ddc2f4dfd396c7bfa18e6ce371cba60e4cf9d2e5cdb71376aa2da264605b60b9 \ - --hash=sha256:e003b002ec72c8d5a3e3da2989c7d6065b47d9eaa70cd8808b5384fbb970f4ec \ - --hash=sha256:e32a92116d4f2a80b629778280103d2a510a5b3f6314ceccd6e38006b5e92dcb \ - --hash=sha256:e4461d0f003a0aa9be2bdd1b798a041f177189c1a0f7619fe8c95ad08d9a45d7 \ - --hash=sha256:e541ec6f2ec456934fd279a3120f856cd0aedd209fc3852eca563f81738f6861 \ - --hash=sha256:e546e768d08ad55b20b11dbb78a745151acbd938f8f00d0cfbabe8b0199b9880 \ - --hash=sha256:ea7d4a99f3b38c37eac212dbd6ec42b7a5ec51e2c74b5d3223e43c811609e65f \ - --hash=sha256:ed4eb745efbff0a8e9587d22a84be94a5eb7d2d99c02dacf7bd0911713ed14dd \ - --hash=sha256:f8a2f084546cc59ea99fda8e070be2fd140c3092dc11524a71aa8f0f3d5a55ca \ - --hash=sha256:fcb25daa9219b4cf3a0ab24b0eb9a5cc8949ed4dc72acb8fa16b7e1681aa3c58 \ - --hash=sha256:fdea4952db2793c4ad0bdccd27c1d8fdd1423a92f04598bc39425bcc2b8ee46e - # via - # jsonschema - # referencing -s3transfer==0.10.1 \ - --hash=sha256:5683916b4c724f799e600f41dd9e10a9ff19871bf87623cc8f491cb4f5fa0a19 \ - --hash=sha256:ceb252b11bcf87080fb7850a224fb6e05c8a776bab8f2b64b7f25b969464839d - # via boto3 -simplejson==3.19.2 \ - --hash=sha256:0405984f3ec1d3f8777c4adc33eac7ab7a3e629f3b1c05fdded63acc7cf01137 \ - --hash=sha256:0436a70d8eb42bea4fe1a1c32d371d9bb3b62c637969cb33970ad624d5a3336a \ - --hash=sha256:061e81ea2d62671fa9dea2c2bfbc1eec2617ae7651e366c7b4a2baf0a8c72cae \ - --hash=sha256:064300a4ea17d1cd9ea1706aa0590dcb3be81112aac30233823ee494f02cb78a \ - --hash=sha256:08889f2f597ae965284d7b52a5c3928653a9406d88c93e3161180f0abc2433ba \ - --hash=sha256:0a48679310e1dd5c9f03481799311a65d343748fe86850b7fb41df4e2c00c087 \ - --hash=sha256:0b0a3eb6dd39cce23801a50c01a0976971498da49bc8a0590ce311492b82c44b \ - --hash=sha256:0d2d5119b1d7a1ed286b8af37357116072fc96700bce3bec5bb81b2e7057ab41 \ - --hash=sha256:0d551dc931638e2102b8549836a1632e6e7cf620af3d093a7456aa642bff601d \ - --hash=sha256:1018bd0d70ce85f165185d2227c71e3b1e446186f9fa9f971b69eee223e1e3cd \ - --hash=sha256:11c39fbc4280d7420684494373b7c5904fa72a2b48ef543a56c2d412999c9e5d \ - --hash=sha256:11cc3afd8160d44582543838b7e4f9aa5e97865322844b75d51bf4e0e413bb3e \ - --hash=sha256:1537b3dd62d8aae644f3518c407aa8469e3fd0f179cdf86c5992792713ed717a \ - --hash=sha256:16ca9c90da4b1f50f089e14485db8c20cbfff2d55424062791a7392b5a9b3ff9 \ - --hash=sha256:176a1b524a3bd3314ed47029a86d02d5a95cc0bee15bd3063a1e1ec62b947de6 \ - --hash=sha256:18955c1da6fc39d957adfa346f75226246b6569e096ac9e40f67d102278c3bcb \ - --hash=sha256:1bb5b50dc6dd671eb46a605a3e2eb98deb4a9af787a08fcdddabe5d824bb9664 \ - --hash=sha256:1c768e7584c45094dca4b334af361e43b0aaa4844c04945ac7d43379eeda9bc2 \ - --hash=sha256:1dd4f692304854352c3e396e9b5f0a9c9e666868dd0bdc784e2ac4c93092d87b \ - --hash=sha256:25785d038281cd106c0d91a68b9930049b6464288cea59ba95b35ee37c2d23a5 \ - --hash=sha256:287e39ba24e141b046812c880f4619d0ca9e617235d74abc27267194fc0c7835 \ - --hash=sha256:2c1467d939932901a97ba4f979e8f2642415fcf02ea12f53a4e3206c9c03bc17 \ - --hash=sha256:2c433a412e96afb9a3ce36fa96c8e61a757af53e9c9192c97392f72871e18e69 \ - --hash=sha256:2d022b14d7758bfb98405672953fe5c202ea8a9ccf9f6713c5bd0718eba286fd \ - --hash=sha256:2f98d918f7f3aaf4b91f2b08c0c92b1774aea113334f7cde4fe40e777114dbe6 \ - --hash=sha256:2fc697be37585eded0c8581c4788fcfac0e3f84ca635b73a5bf360e28c8ea1a2 \ - --hash=sha256:3194cd0d2c959062b94094c0a9f8780ffd38417a5322450a0db0ca1a23e7fbd2 \ - --hash=sha256:332c848f02d71a649272b3f1feccacb7e4f7e6de4a2e6dc70a32645326f3d428 \ - --hash=sha256:346820ae96aa90c7d52653539a57766f10f33dd4be609206c001432b59ddf89f \ - --hash=sha256:3471e95110dcaf901db16063b2e40fb394f8a9e99b3fe9ee3acc6f6ef72183a2 \ - --hash=sha256:3848427b65e31bea2c11f521b6fc7a3145d6e501a1038529da2391aff5970f2f \ - --hash=sha256:39b6d79f5cbfa3eb63a869639cfacf7c41d753c64f7801efc72692c1b2637ac7 \ - --hash=sha256:3e74355cb47e0cd399ead3477e29e2f50e1540952c22fb3504dda0184fc9819f \ - --hash=sha256:3f39bb1f6e620f3e158c8b2eaf1b3e3e54408baca96a02fe891794705e788637 \ - --hash=sha256:40847f617287a38623507d08cbcb75d51cf9d4f9551dd6321df40215128325a3 \ - --hash=sha256:4280e460e51f86ad76dc456acdbfa9513bdf329556ffc8c49e0200878ca57816 \ - --hash=sha256:445a96543948c011a3a47c8e0f9d61e9785df2544ea5be5ab3bc2be4bd8a2565 \ - --hash=sha256:4969d974d9db826a2c07671273e6b27bc48e940738d768fa8f33b577f0978378 \ - --hash=sha256:49aaf4546f6023c44d7e7136be84a03a4237f0b2b5fb2b17c3e3770a758fc1a0 \ - --hash=sha256:49e0e3faf3070abdf71a5c80a97c1afc059b4f45a5aa62de0c2ca0444b51669b \ - --hash=sha256:49f9da0d6cd17b600a178439d7d2d57c5ef01f816b1e0e875e8e8b3b42db2693 \ - --hash=sha256:4a8c3cc4f9dfc33220246760358c8265dad6e1104f25f0077bbca692d616d358 \ - --hash=sha256:4d36081c0b1c12ea0ed62c202046dca11438bee48dd5240b7c8de8da62c620e9 \ - --hash=sha256:4edcd0bf70087b244ba77038db23cd98a1ace2f91b4a3ecef22036314d77ac23 \ - --hash=sha256:554313db34d63eac3b3f42986aa9efddd1a481169c12b7be1e7512edebff8eaf \ - --hash=sha256:5675e9d8eeef0aa06093c1ff898413ade042d73dc920a03e8cea2fb68f62445a \ - --hash=sha256:60848ab779195b72382841fc3fa4f71698a98d9589b0a081a9399904487b5832 \ - --hash=sha256:66e5dc13bfb17cd6ee764fc96ccafd6e405daa846a42baab81f4c60e15650414 \ - --hash=sha256:6779105d2fcb7fcf794a6a2a233787f6bbd4731227333a072d8513b252ed374f \ - --hash=sha256:6ad331349b0b9ca6da86064a3599c425c7a21cd41616e175ddba0866da32df48 \ - --hash=sha256:6f0a0b41dd05eefab547576bed0cf066595f3b20b083956b1405a6f17d1be6ad \ - --hash=sha256:73a8a4653f2e809049999d63530180d7b5a344b23a793502413ad1ecea9a0290 \ - --hash=sha256:778331444917108fa8441f59af45886270d33ce8a23bfc4f9b192c0b2ecef1b3 \ - --hash=sha256:7cb98be113911cb0ad09e5523d0e2a926c09a465c9abb0784c9269efe4f95917 \ - --hash=sha256:7d74beca677623481810c7052926365d5f07393c72cbf62d6cce29991b676402 \ - --hash=sha256:7f2398361508c560d0bf1773af19e9fe644e218f2a814a02210ac2c97ad70db0 \ - --hash=sha256:8434dcdd347459f9fd9c526117c01fe7ca7b016b6008dddc3c13471098f4f0dc \ - --hash=sha256:8a390e56a7963e3946ff2049ee1eb218380e87c8a0e7608f7f8790ba19390867 \ - --hash=sha256:92c4a4a2b1f4846cd4364855cbac83efc48ff5a7d7c06ba014c792dd96483f6f \ - --hash=sha256:9300aee2a8b5992d0f4293d88deb59c218989833e3396c824b69ba330d04a589 \ - --hash=sha256:9453419ea2ab9b21d925d0fd7e3a132a178a191881fab4169b6f96e118cc25bb \ - --hash=sha256:9652e59c022e62a5b58a6f9948b104e5bb96d3b06940c6482588176f40f4914b \ - --hash=sha256:972a7833d4a1fcf7a711c939e315721a88b988553fc770a5b6a5a64bd6ebeba3 \ - --hash=sha256:9c1a4393242e321e344213a90a1e3bf35d2f624aa8b8f6174d43e3c6b0e8f6eb \ - --hash=sha256:9e038c615b3906df4c3be8db16b3e24821d26c55177638ea47b3f8f73615111c \ - --hash=sha256:9e4c166f743bb42c5fcc60760fb1c3623e8fda94f6619534217b083e08644b46 \ - --hash=sha256:9eb117db8d7ed733a7317c4215c35993b815bf6aeab67523f1f11e108c040672 \ - --hash=sha256:9eb442a2442ce417801c912df68e1f6ccfcd41577ae7274953ab3ad24ef7d82c \ - --hash=sha256:a3cd18e03b0ee54ea4319cdcce48357719ea487b53f92a469ba8ca8e39df285e \ - --hash=sha256:a8617625369d2d03766413bff9e64310feafc9fc4f0ad2b902136f1a5cd8c6b0 \ - --hash=sha256:a970a2e6d5281d56cacf3dc82081c95c1f4da5a559e52469287457811db6a79b \ - --hash=sha256:aad7405c033d32c751d98d3a65801e2797ae77fac284a539f6c3a3e13005edc4 \ - --hash=sha256:adcb3332979cbc941b8fff07181f06d2b608625edc0a4d8bc3ffc0be414ad0c4 \ - --hash=sha256:af9c7e6669c4d0ad7362f79cb2ab6784d71147503e62b57e3d95c4a0f222c01c \ - --hash=sha256:b01fda3e95d07a6148702a641e5e293b6da7863f8bc9b967f62db9461330562c \ - --hash=sha256:b8d940fd28eb34a7084877747a60873956893e377f15a32ad445fe66c972c3b8 \ - --hash=sha256:bccb3e88ec26ffa90f72229f983d3a5d1155e41a1171190fa723d4135523585b \ - --hash=sha256:bcedf4cae0d47839fee7de344f96b5694ca53c786f28b5f773d4f0b265a159eb \ - --hash=sha256:be893258d5b68dd3a8cba8deb35dc6411db844a9d35268a8d3793b9d9a256f80 \ - --hash=sha256:c0521e0f07cb56415fdb3aae0bbd8701eb31a9dfef47bb57206075a0584ab2a2 \ - --hash=sha256:c594642d6b13d225e10df5c16ee15b3398e21a35ecd6aee824f107a625690374 \ - --hash=sha256:c87c22bd6a987aca976e3d3e23806d17f65426191db36d40da4ae16a6a494cbc \ - --hash=sha256:c9ac1c2678abf9270e7228133e5b77c6c3c930ad33a3c1dfbdd76ff2c33b7b50 \ - --hash=sha256:d0e5ffc763678d48ecc8da836f2ae2dd1b6eb2d27a48671066f91694e575173c \ - --hash=sha256:d0f402e787e6e7ee7876c8b05e2fe6464820d9f35ba3f172e95b5f8b699f6c7f \ - --hash=sha256:d222a9ed082cd9f38b58923775152003765016342a12f08f8c123bf893461f28 \ - --hash=sha256:d94245caa3c61f760c4ce4953cfa76e7739b6f2cbfc94cc46fff6c050c2390c5 \ - --hash=sha256:de9a2792612ec6def556d1dc621fd6b2073aff015d64fba9f3e53349ad292734 \ - --hash=sha256:e2f5a398b5e77bb01b23d92872255e1bcb3c0c719a3be40b8df146570fe7781a \ - --hash=sha256:e8dd53a8706b15bc0e34f00e6150fbefb35d2fd9235d095b4f83b3c5ed4fa11d \ - --hash=sha256:e9eb3cff1b7d71aa50c89a0536f469cb8d6dcdd585d8f14fb8500d822f3bdee4 \ - --hash=sha256:ed628c1431100b0b65387419551e822987396bee3c088a15d68446d92f554e0c \ - --hash=sha256:ef7938a78447174e2616be223f496ddccdbf7854f7bf2ce716dbccd958cc7d13 \ - --hash=sha256:f1c70249b15e4ce1a7d5340c97670a95f305ca79f376887759b43bb33288c973 \ - --hash=sha256:f3c7363a8cb8c5238878ec96c5eb0fc5ca2cb11fc0c7d2379863d342c6ee367a \ - --hash=sha256:fbbcc6b0639aa09b9649f36f1bcb347b19403fe44109948392fbb5ea69e48c3e \ - --hash=sha256:febffa5b1eda6622d44b245b0685aff6fb555ce0ed734e2d7b1c3acd018a2cff \ - --hash=sha256:ff836cd4041e16003549449cc0a5e372f6b6f871eb89007ab0ee18fb2800fded - # via - # bravado - # bravado-core -six==1.16.0 \ - --hash=sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926 \ - --hash=sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254 - # via - # -r requirements.in - # bravado - # bravado-core - # neptune - # python-dateutil - # rfc3339-validator -smmap==5.0.1 \ - --hash=sha256:dceeb6c0028fdb6734471eb07c0cd2aae706ccaecab45965ee83f11c8d3b1f62 \ - --hash=sha256:e6d8668fa5f93e706934a62d7b4db19c8d9eb8cf2adbb75ef1b675aa332b69da - # via gitdb -snakesay==0.10.3 \ - --hash=sha256:0a601a0c408deba05a20b11ba2f0db336b1915274601053ef8de3a6b354c60fc \ - --hash=sha256:6346aa7231b1970efc6fa8b3ea78bd015b3d5a7e33ba709c17e00bcc3328f93f - # via -r requirements.in -sqlparse==0.5.1 \ - --hash=sha256:773dcbf9a5ab44a090f3441e2180efe2560220203dc2f8c0b0fa141e18b505e4 \ - --hash=sha256:bb6b4df465655ef332548e24f08e205afc81b9ab86cb1c45657a7ff173a3a00e - # via django -swagger-spec-validator==3.0.3 \ - --hash=sha256:16a5ce08c772824a77b1a4a05efc047d72eef1ed53fb969dfe0a18f437ac30a8 \ - --hash=sha256:174b5de4ab0899df9a57d35c880aaa515511c4b8b578d9d519b09a9596537055 - # via - # bravado-core - # neptune -tomli==2.0.1 \ - --hash=sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc \ - --hash=sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f - # via - # build - # pytest -types-python-dateutil==2.9.0.20240316 \ - --hash=sha256:5d2f2e240b86905e40944dd787db6da9263f0deabef1076ddaed797351ec0202 \ - --hash=sha256:6b8cb66d960771ce5ff974e9dd45e38facb81718cc1e208b10b1baccbfdbee3b - # via arrow -typing-extensions==4.12.2 \ - --hash=sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d \ - --hash=sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8 - # via - # asgiref - # bravado - # neptune - # swagger-spec-validator -tzdata==2024.1 \ - --hash=sha256:2674120f8d891909751c38abcdfd386ac0a5a1127954fbc332af6b5ceae07efd \ - --hash=sha256:9068bc196136463f5245e51efda838afa15aaeca9903f49050dfa2679db4d252 - # via pandas -uri-template==1.3.0 \ - --hash=sha256:0e00f8eb65e18c7de20d595a14336e9f337ead580c70934141624b6d1ffdacc7 \ - --hash=sha256:a44a133ea12d44a0c0f06d7d42a52d71282e77e2f937d8abd5655b8d56fc1363 - # via jsonschema -urllib3==1.26.19 \ - --hash=sha256:37a0344459b199fce0e80b0d3569837ec6b6937435c5244e7fd73fa6006830f3 \ - --hash=sha256:3e3d753a8618b86d7de333b4223005f68720bcd6a7d2bcb9fbd2229ec7c1e429 - # via - # botocore - # neptune - # requests -wcwidth==0.2.13 \ - --hash=sha256:3da69048e4540d84af32131829ff948f1e022c1c6bdb8d6102117aac784f6859 \ - --hash=sha256:72ea0c06399eb286d978fdedb6923a9eb47e1c486ce63e9b4e64fc18303972b5 - # via ftfy -webcolors==1.13 \ - --hash=sha256:29bc7e8752c0a1bd4a1f03c14d6e6a72e93d82193738fa860cbff59d0fcc11bf \ - --hash=sha256:c225b674c83fa923be93d235330ce0300373d02885cef23238813b0d5668304a - # via jsonschema -websocket-client==1.8.0 \ - --hash=sha256:17b44cc997f5c498e809b22cdf2d9c7a9e71c02c8cc2b6c56e7c2d1239bfa526 \ - --hash=sha256:3239df9f44da632f96012472805d40a23281a991027ce11d2f45a6f24ac4c3da - # via neptune -zipp==3.23.0 \ - --hash=sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e \ - --hash=sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166 - # via importlib-metadata - -# The following packages are considered to be unsafe in a requirements file: -setuptools==80.9.0 \ - --hash=sha256:062d34222ad13e0cc312a4c02d73f059e86a4acbfbdea8f8f76b28c99f306922 \ - --hash=sha256:f36b47402ecde768dbfafc46e8e4207b4360c654f1f3bb84475f0a28628fb19c - # via -r requirements.in diff --git a/tools/e2e/BUILD.bazel b/tools/e2e/BUILD.bazel deleted file mode 100644 index b29b3baff..000000000 --- a/tools/e2e/BUILD.bazel +++ /dev/null @@ -1,7 +0,0 @@ -load("//py:defs.bzl", "py_binary") - -py_binary( - name = "fileserver", - srcs = ["devserver.py"], - main = "devserver.py", -) diff --git a/tools/e2e/devserver.py b/tools/e2e/devserver.py deleted file mode 100644 index d5bdb2249..000000000 --- a/tools/e2e/devserver.py +++ /dev/null @@ -1,31 +0,0 @@ -#!/usr/bin/env python3 - -import argparse -import http.server -import os -import socketserver - -PARSER = argparse.ArgumentParser(__name__) -PARSER.add_argument("--port", type=int, default=8080) -PARSER.add_argument("--dir", type=str) -PARSER.add_argument("--background", action="store_true", default=False) -PARSER.add_argument("--pidfile", type=str, default=None) - -opts, args = PARSER.parse_known_args() - -class Handler(http.server.SimpleHTTPRequestHandler): - def __init__(self, *args, **kwargs): - super().__init__(*args, directory=opts.dir, **kwargs) - -if opts.background: - # Fork; the child will run the server and we will exit - status = os.fork() - if status > 0: - if opts.pidfile: - with open(opts.pidfile, "w") as fp: - fp.write("{}\n".format(status)) - exit(0) - -with socketserver.TCPServer(("", opts.port), Handler) as httpd: - print("serving at port", opts.port) - httpd.serve_forever() diff --git a/tools/install.sh b/tools/install.sh deleted file mode 100755 index 2059081ac..000000000 --- a/tools/install.sh +++ /dev/null @@ -1,52 +0,0 @@ -#!/usr/bin/env bash - -set -eu -o pipefail - -owner="aspect-build" -repo="aspect-cli" -list_asset_url="https://api.github.com/repos/${owner}/${repo}/releases/latest" - -echo >&2 "Attempting to identify the host os ..." -case "$(uname -o)" in - Darwin) - os=macos - ;; - Linux) - os=linux - ;; - *) - echo >&2 "Error: Unable to pick the right os! Correct the first uname match" - exit 1 - ;; -esac - -echo >&2 "Attempting to identify the host arch ..." -case "$(uname -m)" in - arm64|aarch64) - arch=aarch64 - ;; - amd64|x86_64) - arch=x86_64 - ;; - *) - echo >&2 "Error: Unable to pick the right arch! Correct the second uname match" - exit 1 - ;; -esac - -artifact="aspect-launcher-${os}_${arch}" - -echo >&2 "Attempting to identify the most recent release asset ..." -asset_url=$(curl -s "${list_asset_url}" | jq ".assets[] | select(.name==\"${artifact}\") | .url" | sed 's/\"//g' | head -n 1) - -echo >&2 "Attempting to fetch the release asset ${asset_url} ..." -curl -sLJ \ - -H 'Accept: application/octet-stream' \ - -o aspect \ - "${asset_url}" - -chmod +x ./aspect - -./aspect help - -echo "Success! Move the aspect (launcher) binary onto your \$PATH" diff --git a/tools/push_release_tag.sh b/tools/push_release_tag.sh deleted file mode 100755 index 257b56a70..000000000 --- a/tools/push_release_tag.sh +++ /dev/null @@ -1,23 +0,0 @@ -#!/usr/bin/env bash -set -o errexit -o nounset -o pipefail - -# Determine the script path -SCRIPTPATH="$(cd -- "$(dirname "$0")" >/dev/null 2>&1 || exit; pwd -P)" -if [ -z "$SCRIPTPATH" ]; then echo "Error: Could not determine script path"; exit 1; fi - -# Run the workspace_status script and capture its output -output=$("${SCRIPTPATH}/../bazel/workspace_status.sh") - -# Extract the STABLE_MONOREPO_SHORT_VERSION value using grep and awk -version=$(echo "$output" | grep '^STABLE_MONOREPO_SHORT_VERSION ' | awk '{print $2}') - -# Check if the version was found (optional, but good practice to avoid errors) -if [ -z "$version" ]; then - echo "Error: STABLE_MONOREPO_SHORT_VERSION not found in output." - exit 1 -fi - -# Push the release tag -set -x -git tag "$version" -git push origin "$version" diff --git a/uv/private/BUILD.bazel b/uv/private/BUILD.bazel index 25cd5f8e5..5330c01ca 100644 --- a/uv/private/BUILD.bazel +++ b/uv/private/BUILD.bazel @@ -1,5 +1,6 @@ load("@bazel_lib//:bzl_library.bzl", "bzl_library") load(":normalize_version_test.bzl", "normalize_version_test_suite") +load(":parse_whl_name_test.bzl", "parse_whl_name_test_suite") package(default_visibility = [ "//docs:__pkg__", @@ -8,6 +9,8 @@ package(default_visibility = [ normalize_version_test_suite() +parse_whl_name_test_suite() + bzl_library( name = "sha1", srcs = ["sha1.bzl"], diff --git a/uv/private/constraints/abi/macro.bzl b/uv/private/constraints/abi/macro.bzl index 36a41a992..748c8e2d1 100644 --- a/uv/private/constraints/abi/macro.bzl +++ b/uv/private/constraints/abi/macro.bzl @@ -2,7 +2,7 @@ Generate interpreter ABI config_settings for wheel selection. Each ABI tag from a wheel filename (e.g. cp312, cp312t, cp312dmu) maps to a -config_setting_group that combines a Python version check with interpreter +config_setting whose flag_values AND a Python version check with interpreter feature flag checks. The feature flags are backed by bool_flags defined in //py/private/interpreter:BUILD.bazel and are set by the interpreter toolchain provisioning system. @@ -35,74 +35,24 @@ def generate( ], ) - # Interpreter feature flag config_settings. Each pair (enabled/disabled) - # checks the corresponding bool_flag from //py/private/interpreter. - native.config_setting( - name = "pydebug_enabled", - flag_values = {_PYDEBUG_FLAG: "true"}, - visibility = visibility, - ) - native.config_setting( - name = "pydebug_disabled", - flag_values = {_PYDEBUG_FLAG: "false"}, - visibility = visibility, - ) - - native.config_setting( - name = "pymalloc_enabled", - flag_values = {_PYMALLOC_FLAG: "true"}, - visibility = visibility, - ) - native.config_setting( - name = "pymalloc_disabled", - flag_values = {_PYMALLOC_FLAG: "false"}, - visibility = visibility, - ) - - native.config_setting( - name = "freethreading_enabled", - flag_values = {_FREETHREADING_FLAG: "true"}, - visibility = visibility, - ) - native.config_setting( - name = "freethreading_disabled", - flag_values = {_FREETHREADING_FLAG: "false"}, - visibility = visibility, - ) - - native.config_setting( - name = "wide_unicode_enabled", - flag_values = {_WIDE_UNICODE_FLAG: "true"}, - visibility = visibility, - ) - native.config_setting( - name = "wide_unicode_disabled", - flag_values = {_WIDE_UNICODE_FLAG: "false"}, - visibility = visibility, - ) - native.alias( name = "abi3", - actual = "is_py33", + actual = "//uv/private/constraints/python:py33", visibility = visibility, ) + # A native config_setting ANDs all of its flag_values entries, so each + # abi tag is one target instead of a config_setting_group chain — this + # loop emits 1344 tags, so the per-tag target count matters. for interpreter in INTERPRETERS: for major in MAJORS: for minor in MINORS: - selects.config_setting_group( - name = "is_{}{}{}".format(interpreter, major, minor), - match_all = [ - "//uv/private/constraints/python:py{}{}".format(major, minor), - ], - visibility = visibility, - ) - + version_flag = "//uv/private/constraints/python:_py{}{}_flag".format(major, minor) for d in [False, True]: for m in [False, True]: for t in [False, True]: for u in [False, True]: - selects.config_setting_group( + native.config_setting( name = "{0}{1}{2}{3}{4}{5}{6}".format( interpreter, major, @@ -112,14 +62,12 @@ def generate( "t" if t else "", "u" if u else "", ), - match_all = ( - [ - ":is_{}{}{}".format(interpreter, major, minor), - ] + - ([":pydebug_enabled"] if d else [":pydebug_disabled"]) + - ([":pymalloc_enabled"] if m else [":pymalloc_disabled"]) + - ([":freethreading_enabled"] if t else [":freethreading_disabled"]) + - ([":wide_unicode_enabled"] if u else [":wide_unicode_disabled"]) - ), + flag_values = { + version_flag: "yes", + _PYDEBUG_FLAG: "true" if d else "false", + _PYMALLOC_FLAG: "true" if m else "false", + _FREETHREADING_FLAG: "true" if t else "false", + _WIDE_UNICODE_FLAG: "true" if u else "false", + }, visibility = visibility, ) diff --git a/uv/private/constraints/python/defs.bzl b/uv/private/constraints/python/defs.bzl index 51b8c72f8..e26c8b926 100644 --- a/uv/private/constraints/python/defs.bzl +++ b/uv/private/constraints/python/defs.bzl @@ -33,8 +33,7 @@ def supported_python(python_tag): _PYTHON_VERSION_MAJOR_MINOR_FLAG = Label("@rules_python//python/config_settings:python_version_major_minor") _ARPY_PYTHON_VERSION_FLAG = Label("@aspect_rules_py//py/private/interpreter:python_version") -def is_python_version_at_least(name, version = None, visibility = visibility, **kwargs): - version = version or name +def is_python_version_at_least(name, version, visibility, **kwargs): flag_name = "_{}_flag".format(name) native.config_setting( name = name, @@ -46,7 +45,9 @@ def is_python_version_at_least(name, version = None, visibility = visibility, ** _python_version_at_least( name = flag_name, at_least = version, - visibility = ["//visibility:private"], + # The abi package's config_settings check this flag directly in + # their flag_values, ANDed with the interpreter feature flags. + visibility = ["//uv/private/constraints:__subpackages__"], **kwargs ) diff --git a/uv/private/constraints/python/macro.bzl b/uv/private/constraints/python/macro.bzl index c09ede58d..8bd9872bf 100644 --- a/uv/private/constraints/python/macro.bzl +++ b/uv/private/constraints/python/macro.bzl @@ -9,18 +9,35 @@ load(":defs.bzl", "is_python_version_at_least") # buildifier: disable=function-docstring def generate( visibility): - # FIXME: Needs to generate a cascade. + for major in MAJORS: + is_python_version_at_least( + name = "py{}".format(major), + version = "{}.0".format(major), + visibility = visibility, + ) + + for minor in MINORS: + is_python_version_at_least( + name = "py{}{}".format(major, minor), + version = "{}.{}".format(major, minor), + visibility = visibility, + ) + + # The settings check only the interpreter version, so every non-generic + # tag (cp312, ...) evaluates identically to its py equivalent. for interpreter in INTERPRETERS: + if interpreter == "py": + continue for major in MAJORS: - is_python_version_at_least( + native.alias( name = "{}{}".format(interpreter, major), - version = "{}.0".format(major), + actual = ":py{}".format(major), visibility = visibility, ) for minor in MINORS: - is_python_version_at_least( + native.alias( name = "{}{}{}".format(interpreter, major, minor), - version = "{}.{}".format(major, minor), + actual = ":py{}{}".format(major, minor), visibility = visibility, ) diff --git a/uv/private/constraints/repository.bzl b/uv/private/constraints/repository.bzl index b5fcb3da9..0633126e2 100644 --- a/uv/private/constraints/repository.bzl +++ b/uv/private/constraints/repository.bzl @@ -18,21 +18,13 @@ def _format_list(items): def _constraints_hub_impl(repository_ctx): """Generates a repository of `config_setting` targets. - This rule materializes two kinds of `config_setting` targets into a central - repository, which are then used by other rules to implement platform-specific - logic: - - 1. Platform "triples": For each entry in the `configurations` attribute, - it creates a `config_setting_group` that represents a specific Python - platform (e.g., a combination of interpreter, platform, and ABI like - `cp39-manylinux_2_17_x86_64-cp39`). These are used by `whl_install` - to select the correct pre-built wheel. - - 2. Environment Markers: For each entry in the `markers` attribute, it - creates a `decide_marker` target. This custom rule evaluates a Python - environment marker expression (e.g., "sys_platform == 'linux'") and - creates a `config_setting` that is active when the marker evaluates - to true. These are used by `uv_lock` to handle conditional dependencies. + This rule materializes platform "triple" `config_setting` targets into a + central repository, which are then used by other rules to implement + platform-specific logic: for each entry in the `configurations` attribute, + it creates a `config_setting_group` that represents a specific Python + platform (e.g., a combination of interpreter, platform, and ABI like + `cp39-manylinux_2_17_x86_64-cp39`). These are used by `whl_install` + to select the correct pre-built wheel. Args: repository_ctx: The repository context. @@ -41,7 +33,6 @@ def _constraints_hub_impl(repository_ctx): ################################################################################ content = [ "load(\"@bazel_skylib//lib:selects.bzl\", \"selects\")", - "load(\"@aspect_rules_py//uv/private/markers:defs.bzl\", \"decide_marker\")", ] for name, conditions in repository_ctx.attr.configurations.items(): @@ -57,17 +48,6 @@ selects.config_setting_group( """.format(name, _format_list(conditions)), ) - for marker, id in repository_ctx.attr.markers.items(): - content.append( - """ -decide_marker( - name = {!r}, - marker = {!r}, - visibility = ["//visibility:public"], -) -""".format(id, marker), - ) - content.append(""" exports_files( ["BUILD.bazel"], @@ -85,6 +65,5 @@ configurations_hub = repository_rule( implementation = _constraints_hub_impl, attrs = { "configurations": attr.string_list_dict(), - "markers": attr.string_dict(), }, ) diff --git a/uv/private/diffutils/BUILD.bazel b/uv/private/diffutils/BUILD.bazel deleted file mode 100644 index 201f373d4..000000000 --- a/uv/private/diffutils/BUILD.bazel +++ /dev/null @@ -1,16 +0,0 @@ -load("@bazel_lib//:bzl_library.bzl", "bzl_library") - -# Diffutils toolchain support for package patching. -# The actual patch binary is provided by the system_diffutils repo rule. - -bzl_library( - name = "defs", - srcs = ["defs.bzl"], - visibility = ["//uv:__subpackages__"], -) - -bzl_library( - name = "repository", - srcs = ["repository.bzl"], - visibility = ["//uv:__subpackages__"], -) diff --git a/uv/private/diffutils/defs.bzl b/uv/private/diffutils/defs.bzl deleted file mode 100644 index 4c71022b9..000000000 --- a/uv/private/diffutils/defs.bzl +++ /dev/null @@ -1,9 +0,0 @@ -"""Diffutils constants for patch application. - -The system_diffutils repository rule discovers the host `patch` binary and -exports it. Rules that need to apply patches reference it via an implicit -attr label. -""" - -# Label for the system patch binary, resolved by system_diffutils repo rule. -PATCH_TOOL_LABEL = "@aspect_rules_py_system_diffutils//:patch" diff --git a/uv/private/diffutils/repository.bzl b/uv/private/diffutils/repository.bzl deleted file mode 100644 index 820a87922..000000000 --- a/uv/private/diffutils/repository.bzl +++ /dev/null @@ -1,21 +0,0 @@ -"""Repository rule to discover the host system's patch binary.""" - -def _system_diffutils_impl(repository_ctx): - patch = repository_ctx.which("patch") - if not patch: - repository_ctx.file("BUILD.bazel", content = """\ -# System patch binary was not found. This repo will not be functional. -# Install diffutils to enable package patching. -""") - return - - repository_ctx.symlink(patch, "patch") - repository_ctx.file("BUILD.bazel", content = """\ -exports_files(["patch"], visibility = ["//visibility:public"]) -""") - -system_diffutils = repository_rule( - implementation = _system_diffutils_impl, - local = True, - doc = "Discovers the host system's patch binary for use in package patching.", -) diff --git a/uv/private/extension/BUILD.bazel b/uv/private/extension/BUILD.bazel index f6d6af7e6..ae8d3b619 100644 --- a/uv/private/extension/BUILD.bazel +++ b/uv/private/extension/BUILD.bazel @@ -1,10 +1,16 @@ load("@bazel_lib//:bzl_library.bzl", "bzl_library") load(":test_defs.bzl", "defs_test_suite") +load(":test_dep_groups.bzl", "dep_groups_test_suite") +load(":test_git_utils.bzl", "git_utils_test_suite") load(":test_graph_utils.bzl", "graph_utils_test_suite") load(":test_projectfile.bzl", "projectfile_test_suite") defs_test_suite() +dep_groups_test_suite() + +git_utils_test_suite() + graph_utils_test_suite() projectfile_test_suite() @@ -22,7 +28,6 @@ bzl_library( "//uv/private:normalize_version", "//uv/private/constraints:repository", "//uv/private/git_archive:repository", - "//uv/private/pprint:defs", "//uv/private/sdist_build:attrs", "//uv/private/sdist_build:repository", "//uv/private/sdist_configure:defs", @@ -42,7 +47,7 @@ bzl_library( srcs = ["graph_utils.bzl"], visibility = ["//uv:__subpackages__"], deps = [ - "//uv/private:sha1", + "//uv/private:normalize_version", "//uv/private/graph:sccs", ], ) @@ -80,6 +85,27 @@ bzl_library( visibility = ["//uv:__subpackages__"], deps = [ ":defs", + ":lockfile", + "@bazel_skylib//lib:unittest", + ], +) + +bzl_library( + name = "test_dep_groups", + srcs = ["test_dep_groups.bzl"], + visibility = ["//uv:__subpackages__"], + deps = [ + ":dep_groups", + "@bazel_skylib//lib:unittest", + ], +) + +bzl_library( + name = "test_git_utils", + srcs = ["test_git_utils.bzl"], + visibility = ["//uv:__subpackages__"], + deps = [ + ":git_utils", "@bazel_skylib//lib:unittest", ], ) diff --git a/uv/private/extension/defs.bzl b/uv/private/extension/defs.bzl index 3bcfac550..e78b2830b 100644 --- a/uv/private/extension/defs.bzl +++ b/uv/private/extension/defs.bzl @@ -61,7 +61,6 @@ load("//uv/private:normalize_version.bzl", "normalize_version") load("//uv/private:parse_whl_name.bzl", "parse_whl_name") load("//uv/private/constraints:repository.bzl", "configurations_hub") load("//uv/private/git_archive:repository.bzl", "git_archive") -load("//uv/private/pprint:defs.bzl", "pprint") load("//uv/private/sdist_build:attrs.bzl", "validate_build_attrs") load("//uv/private/sdist_build:repository.bzl", "sdist_build") load("//uv/private/sdist_configure:defs.bzl", "DEFAULT_CONFIGURE_SCRIPT") @@ -70,27 +69,24 @@ load("//uv/private/uv_hub:repository.bzl", "uv_hub") load("//uv/private/uv_project:repository.bzl", "uv_project") load("//uv/private/whl_install:repository.bzl", "parse_console_script", "whl_install") load(":graph_utils.bzl", "activate_extras", "collect_sccs") -load(":lockfile.bzl", "build_marker_graph", "collect_bdists", "collect_configurations", "collect_markers", "collect_sdists", "normalize_deps") +load(":lockfile.bzl", "build_marker_graph", "collect_bdists", "collect_configurations", "collect_sdists", "normalize_deps", "url_basename") load(":projectfile.bzl", "collate_versions_by_name", "collect_activated_extras", "extract_requirement_marker_pairs") -def url_basename(url): - """Returns the trailing file name of a distribution URL. - - Lockfile wheel and sdist URLs name the distribution file in the last path - segment, but registries may append a query string (e.g. signed/expiring - download links) and/or a fragment (e.g. PEP 503 `#sha256=...` hashes). - Neither is part of the file name, so both are stripped. - - Args: - url: str, the URL of a distribution file. - - Returns: - the file name as a string, e.g. "foo-1.0.0-py3-none-any.whl". - """ - basename = url.split("/")[-1].split("?")[0].split("#")[0] - if not basename: - fail("Invalid distribution URL (no file name): " + url) - return basename +def _dist_sha256(dist): + """The distribution's sha256 for http_file, or None for other hash algorithms.""" + hash = dist.get("hash", "") + return hash[len("sha256:"):] if hash.startswith("sha256:") else None + +def _deduplicate_whl_files(whls): + """Returns unique non-empty wheel labels while preserving order.""" + whl_files = [] + seen = {} + for whl in whls: + if not whl or whl in seen: + continue + seen[whl] = True + whl_files.append(whl) + return whl_files def parse_declared_console_script(name, entry_point): """Canonicalize one override_package console-script declaration. @@ -139,18 +135,15 @@ def _parse_hubs(module_ctx): module_ctx: The Bazel module context. Returns: - A dictionary of hub specifications, where the keys are hub names and the - values are dictionaries of module names that declared the hub. + A dictionary of hub specifications, keyed by hub name. """ # As with `rules_python` hub names have to be globally unique :/ hub_specs = {} - # Collect all hubs, ensure we have no dupes for mod in module_ctx.modules: for hub in mod.tags.declare_hub: - hub_specs.setdefault(hub.hub_name, {}) - hub_specs[hub.hub_name][mod.name] = 1 + hub_specs[hub.hub_name] = True # Note that we ARE NOT validating that the same hub name is registered by # one and only one repository. This allows `@pypi` which we think should be @@ -179,7 +172,6 @@ def _parse_projects(module_ctx, hub_specs): hub_cfgs = {} project_cfgs = {} - marker_specs = {} whl_configurations = {} sdist_specs = {} @@ -220,9 +212,6 @@ def _parse_projects(module_ctx, hub_specs): # Read these from the project or honor the module state project_name = project.name or project_data["project"]["name"] - # FIXME: Error if this wasn't provided and the version is marked as dynamic - project_version = project.version or project_data["project"]["version"] - if project.hub_name not in hub_specs: fail("Project {} in {} refers to hub {} which is not configured for that module. Please declare it.".format(project_name, mod.name, project.hub_name)) @@ -233,16 +222,13 @@ def _parse_projects(module_ctx, hub_specs): default_versions, package_versions, lock_data = normalize_deps(project_id, lock_data) - def _resolve(package, fail_if_missing = True): + def _resolve(package): name = normalize_name(package["name"]) if "version" in package: return (project_id, name, package["version"], "__base__") elif name in default_versions: return default_versions[name] - else: - if fail_if_missing: - fail("Unable to identify id for package {} for lock {}\n{}".format(package, project.lock, pprint(default_versions))) - return None + return None lock_build_dep_anns = {} lock_native_anns = {} @@ -250,7 +236,7 @@ def _parse_projects(module_ctx, hub_specs): if ann.lock == project.lock: annotations = toml.decode_file(module_ctx, ann.src) for package in annotations.get("package", []): - k = _resolve(package, fail_if_missing = False) + k = _resolve(package) if k == None: # Allow a shared annotation file to include entries for other locks. continue @@ -262,7 +248,7 @@ def _parse_projects(module_ctx, hub_specs): deps = [] skip = False for dep in package["build-dependencies"]: - resolved = _resolve(dep, fail_if_missing = False) + resolved = _resolve(dep) if resolved == None: skip = True break @@ -280,7 +266,7 @@ def _parse_projects(module_ctx, hub_specs): name = normalize_name(override.name) v = override.version or default_versions.get(name, (None, None, None, None))[2] if not v: - fail("Overridden project {} neither specifies a version nor has an implied singular version in the lockfile!".format(override.name, project.lock)) + fail("Overridden project {} neither specifies a version nor has an implied singular version in lock {}!".format(override.name, project.lock)) available_versions = package_versions.get(name, {}) if v not in available_versions: fail("uv.override_package() for package '{}' selects version '{}', which is absent from lock '{}'; available versions: {}".format( @@ -348,8 +334,6 @@ def _parse_projects(module_ctx, hub_specs): marker_graph = build_marker_graph(project_id, lock_data) - marker_specs.update(collect_markers(marker_graph)) - bd, bt = collect_bdists(lock_data) bdist_specs.update(bd) bdist_table.update(bt) @@ -371,9 +355,13 @@ def _parse_projects(module_ctx, hub_specs): # Mapping from package to cfg to the SCC for that package in that cfg package_cfg_sccs = {} + + # Shared across configurations so identical SCC content keeps one + # id while content differing only in deps/markers stays distinct. + scc_id_state = {} for cfg in configuration_names: cfgd_marker_graph = activate_extras(marker_graph, activated_extras, cfg) - cfgd_dep_to_scc, cfgd_scc_graph, cfgd_scc_deps = collect_sccs(cfgd_marker_graph) + cfgd_dep_to_scc, cfgd_scc_graph, cfgd_scc_deps = collect_sccs(cfgd_marker_graph, scc_id_state) # Aggregate the dependency graphs Note that this may be overly # simplistic, since markers COULD vary per configured graph; @@ -603,12 +591,7 @@ def _parse_projects(module_ctx, hub_specs): project_cfgs[project_id] = struct( dep_to_scc = marked_package_cfg_sccs, scc_deps = { - k: { - dep_name: markers - for dep_name, markers in _merge_scc_dep_markers_by_surface_package( - deps, - ).items() - } + k: _merge_scc_dep_markers_by_surface_package(deps) for k, deps in scc_deps.items() }, scc_graph = { @@ -647,7 +630,6 @@ def _parse_projects(module_ctx, hub_specs): hub_cfgs = hub_cfgs, install_cfgs = install_cfgs, sbuild_cfgs = sbuild_specs, - marker_cfgs = marker_specs, whl_cfgs = whl_configurations, sdist_cfgs = sdist_specs, bdist_cfgs = bdist_specs, @@ -678,20 +660,15 @@ def _uv_impl(module_ctx): configurations_hub( name = "aspect_rules_py_pip_configurations", configurations = cfg.whl_cfgs, - markers = {}, ) for sdist_name, sdist_cfg in cfg.sdist_cfgs.items(): if "file" in sdist_cfg: sdist_cfg = sdist_cfg["file"] - sha256 = None - if "hash" in sdist_cfg: - sha256 = sdist_cfg["hash"][len("sha256:"):] - http_file( name = sdist_name, url = sdist_cfg["url"], - sha256 = sha256, + sha256 = _dist_sha256(sdist_cfg), downloaded_file_path = url_basename(sdist_cfg["url"]), ) @@ -708,14 +685,10 @@ def _uv_impl(module_ctx): fail("Unsupported archive! {}".format(repr(sdist_cfg))) for bdist_name, bdist_cfg in cfg.bdist_cfgs.items(): - sha256 = None - if "hash" in bdist_cfg and bdist_cfg["hash"].startswith("sha256:"): - sha256 = bdist_cfg["hash"][len("sha256:"):] - http_file( name = bdist_name, url = bdist_cfg["url"], - sha256 = sha256, + sha256 = _dist_sha256(bdist_cfg), downloaded_file_path = url_basename(bdist_cfg["url"]), ) @@ -769,7 +742,7 @@ def _uv_impl(module_ctx): # Parallel list of the same wheel labels as a real label_list, # so the whl_install repo rule can `rctx.path()` them to peek # at `*.dist-info/RECORD` for top-level metadata. - "whl_files": [v for v in install_cfg.whls.values() if v], + "whl_files": _deduplicate_whl_files(install_cfg.whls.values()), } if install_cfg.post_install_patches: install_kwargs["post_install_patches"] = json.encode(install_cfg.post_install_patches) @@ -836,15 +809,6 @@ _annotations_tag = tag_class( }, ) -_declare_entrypoint_tag = tag_class( - attrs = { - "package": attr.string(mandatory = True), - "version": attr.string(mandatory = False), - "name": attr.string(mandatory = True), - "entrypoint": attr.string(mandatory = True), - }, -) - _override_package_tag = tag_class( attrs = { "lock": attr.label(mandatory = True), @@ -953,6 +917,5 @@ uv = module_extension( "project": _project_tag, "unstable_annotate_packages": _annotations_tag, "override_package": _override_package_tag, - # "declare_entrypoint": _declare_entrypoint_tag, }, ) diff --git a/uv/private/extension/git_utils.bzl b/uv/private/extension/git_utils.bzl index df2e4139c..18e217e73 100644 --- a/uv/private/extension/git_utils.bzl +++ b/uv/private/extension/git_utils.bzl @@ -3,19 +3,19 @@ Utilities for parsing git URLs and converting them to http_archive. """ def ensure_ref(maybe_ref): - """Ensures a git ref starts with "ref/". + """Ensures a git ref starts with "refs/". Args: maybe_ref: The git ref string. Returns: - The git ref string, prefixed with "ref/" if it is not already. + The git ref string, prefixed with "refs/" if it is not already. """ if maybe_ref == None: return None - if not maybe_ref.startswith("ref/"): - return "ref/" + maybe_ref + if not maybe_ref.startswith("refs/"): + return "refs/" + maybe_ref return maybe_ref @@ -98,7 +98,7 @@ def try_git_to_http_archive(git_cfg): "url": url, } elif "ref" in git_cfg: - url = "{}/archive/{}.tar.gz".format(url, git_cfg["tag"]) + url = "{}/archive/{}.tar.gz".format(url, git_cfg["ref"]) return { "url": url, } diff --git a/uv/private/extension/graph_utils.bzl b/uv/private/extension/graph_utils.bzl index 0a6d4aeed..da35c414d 100644 --- a/uv/private/extension/graph_utils.bzl +++ b/uv/private/extension/graph_utils.bzl @@ -1,7 +1,26 @@ -load("//uv/private:sha1.bzl", "sha1") +load("//uv/private:normalize_version.bzl", "normalize_version") load("//uv/private/graph:sccs.bzl", "sccs") -def collect_sccs(marker_graph): +def _derive_scc_id(scc_members, stems): + """Derive a deterministic, readable SCC id from the SCC's members. + + A lone base package (the overwhelmingly common case) gets + `__`; a genuine cycle is named by its member packages. + `stems` disambiguates repeat stems with a `__v` suffix. + """ + if len(scc_members) == 1 and scc_members[0][3] == "__base__": + member = scc_members[0] + stem = "{}__{}".format(member[1], normalize_version(member[2])) + else: + names = sorted([m[1] for m in scc_members]) + if len(names) > 4: + names = names[:4] + ["and_{}_more".format(len(scc_members) - 4)] + stem = "cycle__" + "__".join(names) + n = stems.get(stem, 0) + stems[stem] = n + 1 + return stem if n == 0 else "{}__v{}".format(stem, n) + +def collect_sccs(marker_graph, id_state = None): """Computes Strongly Connected Components (SCCs) for a dependency marker_graph. This function takes a dependency marker_graph and identifies all the SCCs, which @@ -10,6 +29,10 @@ def collect_sccs(marker_graph): Args: marker_graph: The dependency marker_graph, as returned by `_build_marker_graph`. {pkg: {dep: {marker: 1}}} + id_state: dict carrying SCC id intern state. Pass the same dict for + every configuration of one project: identical SCC content reuses one + id (the caller aggregates by id), while an SCC with the same members + but different external deps/markers gets a distinct id. Returns: A tuple containing: @@ -34,26 +57,36 @@ def collect_sccs(marker_graph): graph_components = sccs(simplified_graph) - # Now we need to rebuild markers for intra-scc deps - # Data structure to hold scc_members and their raw deps + # Split each SCC's edges into external deps and intra-member deps in + # one pass, merging markers per target. scc_info_list = [] for scc_members in graph_components: + member_set = {m: True for m in scc_members} raw_scc_deps = {} + intra_deps = {} for member in scc_members: for dep, markers in marker_graph.get(member, {}).items(): - if dep not in scc_members: # Only consider external dependencies - raw_scc_deps.setdefault(dep, {}).update(markers) - scc_info_list.append((scc_members, raw_scc_deps)) + target = intra_deps if dep in member_set else raw_scc_deps + target.setdefault(dep, {}).update(markers) + scc_info_list.append((scc_members, raw_scc_deps, intra_deps)) new_scc_graph = {} dep_to_scc = {} final_scc_deps = {} # This will store the scc_deps with the new keys - for scc_members, raw_scc_deps in scc_info_list: - # Generate the new scc_id - # We need to sort the raw_scc_deps.items() to ensure consistent hashing - sorted_raw_scc_deps_repr = repr(sorted(raw_scc_deps.items())) - new_scc_id = sha1(repr(sorted(scc_members)) + ";" + sorted_raw_scc_deps_repr)[:16] + if id_state == None: + id_state = {} + interned_ids = id_state.setdefault("ids", {}) + id_stems = id_state.setdefault("stems", {}) + + for scc_members, raw_scc_deps, intra_deps in scc_info_list: + # Intern the scc_id by full content: distinct (members, deps, markers) + # content must map to distinct ids, identical content to one id. + content_key = repr(sorted(scc_members)) + ";" + repr(sorted(raw_scc_deps.items())) + new_scc_id = interned_ids.get(content_key) + if new_scc_id == None: + new_scc_id = _derive_scc_id(scc_members, id_stems) + interned_ids[content_key] = new_scc_id # Build the new scc_graph entry new_scc_graph[new_scc_id] = {m: {} for m in scc_members} @@ -65,14 +98,9 @@ def collect_sccs(marker_graph): # Populate final_scc_deps final_scc_deps[new_scc_id] = raw_scc_deps - # Now, rebuild markers for intra-scc deps for the new_scc_graph - for start in scc_members: - for next in scc_members: - # Note that we DO NOT provide a default marker here because this - # is a dependency edge which may not actually exist and we don't - # want to falsely insert edges/markers. - next_marks = marker_graph.get(start, {}).get(next, {}) - new_scc_graph[new_scc_id][next].update(next_marks) + # Merge the intra-member markers collected in the split above. + for next, next_marks in intra_deps.items(): + new_scc_graph[new_scc_id][next].update(next_marks) # Ensure that everything has at least the no-op marker for next in scc_members: diff --git a/uv/private/extension/lockfile.bzl b/uv/private/extension/lockfile.bzl index 486a98101..830d26fd4 100644 --- a/uv/private/extension/lockfile.bzl +++ b/uv/private/extension/lockfile.bzl @@ -11,6 +11,35 @@ load("//uv/private/constraints/python:defs.bzl", "supported_python") load("//uv/private/whl_install:repository.bzl", "compatible_python_tags") load(":git_utils.bzl", "parse_git_url", "try_git_to_http_archive") +def url_basename(url): + """Returns the trailing file name of a distribution URL. + + Lockfile wheel and sdist URLs name the distribution file in the last path + segment, but registries may append a query string (e.g. signed/expiring + download links) and/or a fragment (e.g. PEP 503 `#sha256=...` hashes). + Neither is part of the file name, so both are stripped. + + Args: + url: str, the URL of a distribution file. + + Returns: + the file name as a string, e.g. "foo-1.0.0-py3-none-any.whl". + """ + basename = url.split("/")[-1].split("?")[0].split("#")[0] + if not basename: + fail("Invalid distribution URL (no file name): " + url) + return basename + +def _dist_identifier(dist): + """Stable short id for a wheel/sdist repo name. + + Lockfile sources without a `hash` field (e.g. find-links registries) + fall back to hashing the URL, the only field guaranteed present. + """ + if "hash" in dist: + return dist["hash"].split(":")[1][:16] + return sha1(dist["url"])[:16] + def normalize_deps(lock_id, lock_data): """Normalizes dependency specifications in a lockfile. @@ -67,8 +96,6 @@ def normalize_deps(lock_id, lock_data): return default_versions, package_versions, lock_data -MAGIC_ACTIVATE_BASE_MARKER = "magic_activate_base == 1" - def build_marker_graph(lock_id, lock_data): """Builds a dependency graph from a lockfile. @@ -138,18 +165,21 @@ def collect_configurations(lock): for package in lock.get("package", []): for whl in package.get("wheels", []): - url = whl["url"] - wheel_name = url.split("/")[-1] # Find the trailing file name - wheel_files[wheel_name] = 1 + wheel_files[url_basename(whl["url"])] = 1 - abi_tags = {} - platform_tags = {} - python_tags = {} + # Configurations depend only on a wheel's trailing tag triple + # ({python}-{abi}-{platform}.whl); a large lock has thousands of wheel + # files but only a few dozen distinct triples, so parse and expand one + # representative wheel per triple. + tag_triples = {} + for wheel_name in wheel_files.keys(): + parts = wheel_name.rsplit("-", 3) + tag_triples["-".join(parts[1:]) if len(parts) == 4 else wheel_name] = wheel_name # Platform definitions from groups of configs configurations = {} - for wheel_name in wheel_files.keys(): + for wheel_name in tag_triples.values(): parsed_wheel = parse_whl_name(wheel_name) for python_tag in parsed_wheel.python_tags: # Ignore configurations for unsupported interpreters @@ -161,17 +191,11 @@ def collect_configurations(lock): if not supported_platform(platform_tag): continue - platform_tags[platform_tag] = 1 - for abi_tag in parsed_wheel.abi_tags: - abi_tags[abi_tag] = 1 - # Mirror the abi3 expansion `_whl_install_impl` does # via `compatible_python_tags`, so every triple it # references has a matching config_setting here. for cfg_python_tag in compatible_python_tags(python_tag, abi_tag): - python_tags[cfg_python_tag] = 1 - # Note that we are NOT filtering out # impossible/unsatisfiable python+abi tag # possibilities. It's not aesthetic but it is @@ -202,15 +226,7 @@ def collect_bdists(lock_data): bdist_table = {} for package in lock_data.get("package", []): for bdist in package.get("wheels", []): - # Some lockfile sources (e.g. find-links registries) emit wheel - # entries without a `hash` field. Fall back to hashing the URL so - # the repo name is still stable; key the table by URL since that - # is the only field guaranteed to be present. - if "hash" in bdist: - identifier = bdist["hash"].split(":")[1][:16] - else: - identifier = sha1(bdist["url"])[:16] - bdist_repo_name = "whl__{}__{}".format(package["name"], identifier) + bdist_repo_name = "whl__{}__{}".format(package["name"], _dist_identifier(bdist)) bdist_specs[bdist_repo_name] = bdist bdist_table[bdist["url"]] = "@{}//file".format(bdist_repo_name) @@ -218,9 +234,7 @@ def collect_bdists(lock_data): def collect_sdists( lock_id, - lock_data, - # FIXME: Need some sort of policy engine/input here - allow_git_to_http_conversion = True): + lock_data): """Collects all source distributions (sdists) from a lockfile. Args: @@ -240,13 +254,7 @@ def collect_sdists( if "sdist" in package: sdist = package["sdist"] - identifier = None - if "hash" in sdist: - identifier = sdist["hash"].split(":")[1][:16] - else: - identifier = sha1(sdist["url"])[:16] - - sdist_repo_name = "sdist__{}__{}".format(package["name"], identifier) + sdist_repo_name = "sdist__{}__{}".format(package["name"], _dist_identifier(sdist)) sdist_specs[sdist_repo_name] = {"file": sdist} sdist_table[k] = "@{}//file".format(sdist_repo_name) @@ -257,29 +265,10 @@ def collect_sdists( sdist_table[k] = "@{}//file".format(sdist_repo_name) sdist_cfg = try_git_to_http_archive(git_cfg) - if allow_git_to_http_conversion and sdist_cfg: + if sdist_cfg: sdist_specs[sdist_repo_name] = {"file": sdist_cfg} else: sdist_specs[sdist_repo_name] = {"git": git_cfg} return sdist_specs, sdist_table - -def collect_markers(graph): - """Collects all unique marker expressions from the dependency graph. - - Args: - graph: The dependency graph. - - Returns: - A dictionary mapping each unique marker expression to its SHA-1 hash. - """ - acc = {} - for _dep, nexts in graph.items(): - for _next, markers in nexts.items(): - for marker in markers.keys(): - # sha1 is "expensive" so we minimize it - if marker and marker not in acc: - acc[marker] = sha1(marker) - - return acc diff --git a/uv/private/extension/test_defs.bzl b/uv/private/extension/test_defs.bzl index 069e26b82..05ae3bff3 100644 --- a/uv/private/extension/test_defs.bzl +++ b/uv/private/extension/test_defs.bzl @@ -1,7 +1,8 @@ """Unit tests for helpers in defs.bzl""" load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") -load(":defs.bzl", "parse_declared_console_script", "url_basename") +load(":defs.bzl", "parse_declared_console_script") +load(":lockfile.bzl", "url_basename") def _url_basename_test_impl(ctx): env = unittest.begin(ctx) diff --git a/uv/private/extension/test_dep_groups.bzl b/uv/private/extension/test_dep_groups.bzl new file mode 100644 index 000000000..18a2e32f9 --- /dev/null +++ b/uv/private/extension/test_dep_groups.bzl @@ -0,0 +1,52 @@ +load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") +load(":dep_groups.bzl", "resolve_dependency_group_specs") + +def _flat_group_test_impl(ctx): + env = unittest.begin(ctx) + groups = {"dev": ["pytest", "ruff==0.1.0"]} + asserts.equals(env, ["pytest", "ruff==0.1.0"], resolve_dependency_group_specs(groups, "dev")) + asserts.equals(env, [], resolve_dependency_group_specs({"empty": []}, "empty")) + return unittest.end(env) + +flat_group_test = unittest.make(_flat_group_test_impl) + +def _include_group_test_impl(ctx): + env = unittest.begin(ctx) + + # Includes expand in place, preserving spec order. + groups = { + "lint": ["ruff"], + "dev": ["pytest", {"include-group": "lint"}, "mypy"], + } + asserts.equals( + env, + ["pytest", "ruff", "mypy"], + resolve_dependency_group_specs(groups, "dev"), + ) + return unittest.end(env) + +include_group_test = unittest.make(_include_group_test_impl) + +def _nested_include_test_impl(ctx): + env = unittest.begin(ctx) + groups = { + "leaf": ["a", "b"], + "mid": [{"include-group": "leaf"}, "c"], + "top": ["d", {"include-group": "mid"}], + } + asserts.equals( + env, + ["d", "a", "b", "c"], + resolve_dependency_group_specs(groups, "top"), + ) + return unittest.end(env) + +nested_include_test = unittest.make(_nested_include_test_impl) + +def dep_groups_test_suite(): + unittest.suite( + "dep_groups_tests", + flat_group_test, + include_group_test, + nested_include_test, + ) diff --git a/uv/private/extension/test_git_utils.bzl b/uv/private/extension/test_git_utils.bzl new file mode 100644 index 000000000..51c160562 --- /dev/null +++ b/uv/private/extension/test_git_utils.bzl @@ -0,0 +1,141 @@ +load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") +load(":git_utils.bzl", "ensure_ref", "parse_git_url", "try_git_to_http_archive") + +def _ensure_ref_test_impl(ctx): + env = unittest.begin(ctx) + asserts.equals(env, None, ensure_ref(None)) + asserts.equals(env, "refs/heads/main", ensure_ref("heads/main")) + asserts.equals(env, "refs/pull/64/head", ensure_ref("pull/64/head")) + + # An already fully-qualified ref must not be prefixed again. + asserts.equals(env, "refs/pull/64/head", ensure_ref("refs/pull/64/head")) + asserts.equals(env, "refs/tags/v1.0.0", ensure_ref("refs/tags/v1.0.0")) + return unittest.end(env) + +ensure_ref_test = unittest.make(_ensure_ref_test_impl) + +def _parse_git_url_fragment_commit_test_impl(ctx): + env = unittest.begin(ctx) + result = parse_git_url("https://github.com/user/repo.git#c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1") + asserts.equals(env, { + "remote": "https://github.com/user/repo.git", + "commit": "c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1", + }, result) + return unittest.end(env) + +parse_git_url_fragment_commit_test = unittest.make(_parse_git_url_fragment_commit_test_impl) + +def _parse_git_url_query_commit_test_impl(ctx): + env = unittest.begin(ctx) + result = parse_git_url("https://github.com/user/repo.git?commit=c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1") + asserts.equals(env, { + "remote": "https://github.com/user/repo.git", + "commit": "c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1", + }, result) + return unittest.end(env) + +parse_git_url_query_commit_test = unittest.make(_parse_git_url_query_commit_test_impl) + +def _parse_git_url_query_ref_test_impl(ctx): + env = unittest.begin(ctx) + result = parse_git_url("https://github.com/user/repo.git?ref=refs%2Fpull%2F64%2Fhead") + asserts.equals(env, { + "remote": "https://github.com/user/repo.git", + "ref": "refs/pull/64/head", + }, result) + return unittest.end(env) + +parse_git_url_query_ref_test = unittest.make(_parse_git_url_query_ref_test_impl) + +def _parse_git_url_fragment_wins_over_query_test_impl(ctx): + env = unittest.begin(ctx) + result = parse_git_url("https://github.com/user/repo.git?ref=refs%2Fheads%2Fmain#c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1") + asserts.equals(env, { + "remote": "https://github.com/user/repo.git", + "commit": "c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1", + }, result) + return unittest.end(env) + +parse_git_url_fragment_wins_over_query_test = unittest.make(_parse_git_url_fragment_wins_over_query_test_impl) + +def _parse_git_url_bare_remote_test_impl(ctx): + env = unittest.begin(ctx) + result = parse_git_url("https://github.com/user/repo.git") + asserts.equals(env, {"remote": "https://github.com/user/repo.git"}, result) + return unittest.end(env) + +parse_git_url_bare_remote_test = unittest.make(_parse_git_url_bare_remote_test_impl) + +def _git_to_http_archive_commit_test_impl(ctx): + env = unittest.begin(ctx) + result = try_git_to_http_archive({ + "remote": "git+https://github.com/user/repo.git", + "commit": "c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1", + }) + asserts.equals(env, { + "url": "https://github.com/user/repo/archive/c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1.tar.gz", + }, result) + return unittest.end(env) + +git_to_http_archive_commit_test = unittest.make(_git_to_http_archive_commit_test_impl) + +def _git_to_http_archive_ref_test_impl(ctx): + env = unittest.begin(ctx) + + # Regression test: this branch used to read git_cfg["tag"], a key + # parse_git_url never produces. + result = try_git_to_http_archive({ + "remote": "https://github.com/user/repo", + "ref": "refs/pull/64/head", + }) + asserts.equals(env, { + "url": "https://github.com/user/repo/archive/refs/pull/64/head.tar.gz", + }, result) + return unittest.end(env) + +git_to_http_archive_ref_test = unittest.make(_git_to_http_archive_ref_test_impl) + +def _git_to_http_archive_parsed_ref_url_test_impl(ctx): + env = unittest.begin(ctx) + result = try_git_to_http_archive(parse_git_url("git+https://github.com/user/repo.git?ref=refs%2Ftags%2Fv1.0.0")) + asserts.equals(env, { + "url": "https://github.com/user/repo/archive/refs/tags/v1.0.0.tar.gz", + }, result) + return unittest.end(env) + +git_to_http_archive_parsed_ref_url_test = unittest.make(_git_to_http_archive_parsed_ref_url_test_impl) + +def _git_to_http_archive_non_github_test_impl(ctx): + env = unittest.begin(ctx) + result = try_git_to_http_archive({ + "remote": "https://gitlab.com/user/repo.git", + "commit": "c7076a0c6e34d7b2fa4e0ecd7ba4b8e9d3d9e0f1", + }) + asserts.equals(env, None, result) + return unittest.end(env) + +git_to_http_archive_non_github_test = unittest.make(_git_to_http_archive_non_github_test_impl) + +def _git_to_http_archive_no_rev_test_impl(ctx): + env = unittest.begin(ctx) + result = try_git_to_http_archive({"remote": "https://github.com/user/repo.git"}) + asserts.equals(env, None, result) + return unittest.end(env) + +git_to_http_archive_no_rev_test = unittest.make(_git_to_http_archive_no_rev_test_impl) + +def git_utils_test_suite(): + unittest.suite( + "git_utils_tests", + ensure_ref_test, + parse_git_url_fragment_commit_test, + parse_git_url_query_commit_test, + parse_git_url_query_ref_test, + parse_git_url_fragment_wins_over_query_test, + parse_git_url_bare_remote_test, + git_to_http_archive_commit_test, + git_to_http_archive_ref_test, + git_to_http_archive_parsed_ref_url_test, + git_to_http_archive_non_github_test, + git_to_http_archive_no_rev_test, + ) diff --git a/uv/private/extension/test_graph_utils.bzl b/uv/private/extension/test_graph_utils.bzl index cd1cd7ec4..a94a2e5ee 100644 --- a/uv/private/extension/test_graph_utils.bzl +++ b/uv/private/extension/test_graph_utils.bzl @@ -195,6 +195,37 @@ collect_sccs_empty_graph_test = unittest.make( _collect_sccs_empty_graph_test_impl, ) +def _collect_sccs_id_state_test_impl(ctx): + env = unittest.begin(ctx) + + pkg = ("lock", "cowsay", "6.1", "__base__") + dep_a = ("lock", "requests", "2.0", "__base__") + dep_b = ("lock", "urllib3", "1.26", "__base__") + + id_state = {} + ids_cfg1, _, _ = collect_sccs({pkg: {dep_a: {"": 1}}, dep_a: {}}, id_state) + ids_cfg2, _, _ = collect_sccs({pkg: {dep_a: {"": 1}}, dep_a: {}}, id_state) + + # A lone base package gets a readable name__version id + asserts.equals(env, "cowsay__6_1", ids_cfg1[pkg]) + + # Identical SCC content across configurations reuses the same id + asserts.equals(env, ids_cfg1[pkg], ids_cfg2[pkg]) + + # Same members but different external deps/markers gets a distinct id + ids_cfg3, _, _ = collect_sccs({pkg: {dep_b: {"sys_platform == 'linux'": 1}}, dep_b: {}}, id_state) + asserts.equals(env, "cowsay__6_1__v1", ids_cfg3[pkg]) + + # A genuine cycle is named by its member packages + cycle_ids, _, _ = collect_sccs({pkg: {dep_a: {"": 1}}, dep_a: {pkg: {"": 1}}}, {}) + asserts.equals(env, "cycle__cowsay__requests", cycle_ids[pkg]) + + return unittest.end(env) + +collect_sccs_id_state_test = unittest.make( + _collect_sccs_id_state_test_impl, +) + def _collect_sccs_linear_graph_test_impl(ctx): env = unittest.begin(ctx) marker_graph = { @@ -374,6 +405,7 @@ def graph_utils_test_suite(): "collect_sccs_tests", collect_sccs_test, collect_sccs_empty_graph_test, + collect_sccs_id_state_test, collect_sccs_linear_graph_test, collect_sccs_disconnected_graph_test, collect_sccs_single_node_graph_test, diff --git a/uv/private/extension/uv_bin.bzl b/uv/private/extension/uv_bin.bzl index 7598fcb0a..aec0986c1 100644 --- a/uv/private/extension/uv_bin.bzl +++ b/uv/private/extension/uv_bin.bzl @@ -107,5 +107,5 @@ uv_bin = module_extension( tag_classes = { "toolchain": _toolchain_tag, }, - doc = "Downloads UV binaries and registers `@uv//:all` toolchains.", + doc = "Downloads UV binaries and publishes the `@uv` hub repo.", ) diff --git a/uv/private/gazelle_manifest/defs.bzl b/uv/private/gazelle_manifest/defs.bzl index df2be4339..7cd2ae443 100644 --- a/uv/private/gazelle_manifest/defs.bzl +++ b/uv/private/gazelle_manifest/defs.bzl @@ -69,7 +69,7 @@ _modules_mapping = rule( update = Label(":update.sh") -def gazelle_python_manifest(name, hub, venvs = [], lockfile = None): +def gazelle_python_manifest(name, hub, venvs = []): file = "gazelle_python.yaml" hub = hub.lstrip("@") diff --git a/uv/private/gazelle_manifest/generate.py b/uv/private/gazelle_manifest/generate.py index 8d494c2a3..fb419be66 100644 --- a/uv/private/gazelle_manifest/generate.py +++ b/uv/private/gazelle_manifest/generate.py @@ -6,8 +6,6 @@ # # The strategy is simple. # - Accept an args file containing paths to wheel (.whl) files or directories containing .whl files -# - A path to a lockfile -# - A path to a file containing an integrity shasum # # - For each whl file # - open it with a zip reader, extract the .dist-info/METADATA` file and use that to grab the package name @@ -15,7 +13,7 @@ # - strip out `_` prefixed modules and packages # - enter each module into a mapping from module name to requirement name # -# - Write a YAML format manifest file {manifest: {modules_mapping: , pip_repository: }, integrity: } +# - Write a YAML format manifest file {manifest: {modules_mapping: , pip_repository: }} import argparse import sys @@ -25,7 +23,6 @@ from io import StringIO from typing import Optional, Set, List, Tuple from collections import defaultdict -from pprint import pprint def normalize_name(name): """normalize a PyPI package name and return a valid bazel label. @@ -153,8 +150,8 @@ def identify_modules(whl_path: Path, package_name: str) -> dict[str, str]: try: with ZipFile(whl_path, 'r') as zf: for member in zf.namelist(): - # Skip files inside dist-info, test, or example directories - if any(p in member for p in ['.dist-info/']): + # Skip files inside dist-info directories + if '.dist-info/' in member: continue # Check for importable file types @@ -175,7 +172,7 @@ def identify_modules(whl_path: Path, package_name: str) -> dict[str, str]: def write_manifest(module_mapping: dict[str, str], output_path: Path, - pip_repository_name: str = "pypi") -> None: + pip_repository_name: str) -> None: """ Formats the module mapping into a YAML-like string and writes it to the specified output path. No pyyaml is used. diff --git a/uv/private/git_archive/repository.bzl b/uv/private/git_archive/repository.bzl index f0f5f50e8..c57df4683 100644 --- a/uv/private/git_archive/repository.bzl +++ b/uv/private/git_archive/repository.bzl @@ -33,8 +33,6 @@ def _git_archive_impl(repository_ctx): resolved_commit = result.stdout.split()[0] is_reproducible = False else: - # If we can't resolve it, it's definitely not reproducible - is_reproducible = False fail("Unable to resolve remote ref {} {}".format(remote, ref)) archive_path = "archive.tar" diff --git a/uv/private/graph/BUILD.bazel b/uv/private/graph/BUILD.bazel index 34802a12a..ea863b9c0 100644 --- a/uv/private/graph/BUILD.bazel +++ b/uv/private/graph/BUILD.bazel @@ -3,13 +3,6 @@ load(":sccs_test.bzl", "sccs_test_suite") sccs_test_suite() -bzl_library( - name = "defs", - srcs = ["defs.bzl"], - visibility = ["//uv:__subpackages__"], - deps = [":sccs"], -) - bzl_library( name = "sccs", srcs = ["sccs.bzl"], diff --git a/uv/private/graph/defs.bzl b/uv/private/graph/defs.bzl deleted file mode 100644 index 79b6c7ff2..000000000 --- a/uv/private/graph/defs.bzl +++ /dev/null @@ -1,5 +0,0 @@ -load(":sccs.bzl", _sccs = "sccs") - -graph = struct( - sccs = _sccs, -) diff --git a/uv/private/graph/sccs.bzl b/uv/private/graph/sccs.bzl index 1af8dfdbd..e6784fa23 100644 --- a/uv/private/graph/sccs.bzl +++ b/uv/private/graph/sccs.bzl @@ -27,24 +27,29 @@ def sccs(graph): visited = {node: 0 for node in nodes} for node in nodes: if visited[node] == 0: - stack = [node] + # Stack frames are [node, cursor] so neighbor scans resume + # where they left off, keeping the traversal O(V + E). + stack = [[node, 0]] visited[node] = 1 for _ in range(bound): if not stack: break - current_node = stack[-1] + frame = stack[-1] + current_node = frame[0] + neighbors = graph.get(current_node, []) - # Find an unvisited neighbor + # Find an unvisited neighbor, starting from the cursor unvisited_neighbor = None - for neighbor in graph.get(current_node, []): - if visited[neighbor] == 0: - unvisited_neighbor = neighbor + for i in range(frame[1], len(neighbors)): + if visited[neighbors[i]] == 0: + unvisited_neighbor = neighbors[i] + frame[1] = i + 1 break if unvisited_neighbor: visited[unvisited_neighbor] = 1 - stack.append(unvisited_neighbor) + stack.append([unvisited_neighbor, 0]) else: # All neighbors visited, so we are done with this node stack.pop() diff --git a/uv/private/markers/defs.bzl b/uv/private/markers/defs.bzl index 9df8eef05..ed1010b02 100644 --- a/uv/private/markers/defs.bzl +++ b/uv/private/markers/defs.bzl @@ -89,9 +89,7 @@ def _decide_marker_impl(ctx): FeatureFlagInfo = config_common.FeatureFlagInfo - extras = sorted(ctx.attr.extras) - extra = ",".join(extras) - dependency_groups = sorted(ctx.attr.dependency_groups) + extra = ",".join(sorted(ctx.attr.extras)) # Hide the differences between string flags and our custom build settings so # we can use them interchangeably. @@ -113,14 +111,11 @@ def _decide_marker_impl(ctx): # # {{{ "extra": extra, - "extras": extras, - "dependency_groups": dependency_groups, # }}} "python_version": _value(ctx.attr.python_version), "python_full_version": _value(ctx.attr.python_full_version), "os_name": _value(ctx.attr.os_name), "sys_platform": _value(ctx.attr.sys_platform), - "os_release": _value(ctx.attr.os_release), "platform_machine": _value(ctx.attr.platform_machine), "platform_system": _value(ctx.attr.platform_system), "platform_version": _value(ctx.attr.platform_version), @@ -142,12 +137,10 @@ _decide_marker = rule( attrs = { "marker": attr.string(), "extras": attr.string_list(default = []), - "dependency_groups": attr.string_list(default = []), "python_version": attr.label(default = Label(":python_version")), "python_full_version": attr.label(default = Label(":python_full_version")), "os_name": attr.label(default = Label(":os_name")), "sys_platform": attr.label(default = Label(":sys_platform")), - "os_release": attr.label(default = Label(":os_release")), "platform_system": attr.label(default = Label(":platform_system")), "platform_version": attr.label(default = Label(":platform_version")), "platform_machine": attr.label(default = Label(":platform_machine")), @@ -161,7 +154,6 @@ def decide_marker( name, marker, extras = [], - dependency_groups = [], visibility = None, **kwargs): flag_name = "_{}_impl".format(name) @@ -176,7 +168,6 @@ def decide_marker( name = flag_name, marker = marker, extras = extras, - dependency_groups = dependency_groups, visibility = ["//visibility:private"], **kwargs ) diff --git a/uv/private/markers/pep508_evaluate.bzl b/uv/private/markers/pep508_evaluate.bzl index 1da1d0be6..12129aab0 100644 --- a/uv/private/markers/pep508_evaluate.bzl +++ b/uv/private/markers/pep508_evaluate.bzl @@ -81,20 +81,22 @@ def tokenize(marker): token = "" state = _STATE.NONE char = "" + n = len(marker) + pos = 0 # Due to the `continue` in the loop, we will be processing chars at a slower pace - for _ in range(2 * len(marker)): - if token and (state == _STATE.NONE or not marker): + for _ in range(2 * n): + if token and (state == _STATE.NONE or pos >= n): if tokens and token == "in" and tokens[-1] == _NOT: tokens[-1] += " " + token else: tokens.append(token) token = "" - if not marker: + if pos >= n: return tokens - char = marker[0] + char = marker[pos] if state == _STATE.STRING and char in _QUOTES: state = _STATE.NONE token = '"{}"'.format(token) @@ -125,9 +127,9 @@ def tokenize(marker): token += char # Consume the char - marker = marker[1:] + pos += 1 - return fail("BUG: failed to process the marker in allocated cycles: {}".format(marker)) + return fail("BUG: failed to process the marker in allocated cycles: {}".format(marker[pos:])) def evaluate(marker, *, env, strict = True, **kwargs): """Evaluate the marker against a given env. @@ -143,37 +145,18 @@ def evaluate(marker, *, env, strict = True, **kwargs): """ tokens = tokenize(marker) ast = _new_expr(**kwargs) + pos = 0 for _ in range(len(tokens) * 2): - if not tokens: + if pos >= len(tokens): break - tokens = ast.parse(env = env, tokens = tokens, strict = strict) + pos = ast.parse(env = env, tokens = tokens, pos = pos, strict = strict) - if not tokens: + if pos >= len(tokens): return ast.value() fail("Could not evaluate: {}".format(marker)) -_STRING_REPLACEMENTS = { - "!=": "neq", - "(": "_", - ")": "_", - "<": "lt", - "<=": "lteq", - "==": "eq", - "===": "eeq", - ">": "gt", - ">=": "gteq", - "not in": "not_in", - "~==": "cmp", -} - -def to_string(marker): - return "_".join([ - _STRING_REPLACEMENTS.get(t, t) - for t in tokenize(marker) - ]).replace("\"", "") - def _and_fn(x, y): """Our custom `and` evaluation function. @@ -241,26 +224,31 @@ def _new_expr( ) return self -def _parse(self, *, env, tokens, strict = False): - """The parse function takes the consumed tokens and returns the remaining.""" - token, remaining = tokens[0], tokens[1:] +def _parse(self, *, env, tokens, pos, strict = False): + """The parse function takes the token cursor and returns the new position.""" + token = tokens[pos] if token == "(": expr = _open_parenthesis(self) + pos += 1 elif token == ")": expr = _close_parenthesis(self) + pos += 1 elif token == _AND: expr = _and_expr(self) + pos += 1 elif token == _OR: expr = _or_expr(self) + pos += 1 elif token == _NOT: expr = _not_expr(self) + pos += 1 else: - expr = marker_expr(env = env, strict = strict, *tokens[:3]) - remaining = tokens[3:] + expr = marker_expr(env = env, strict = strict, *tokens[pos:pos + 3]) + pos += 3 _append(self, expr) - return remaining + return pos def _value(self): """Evaluate the expression tree""" diff --git a/uv/private/markers/pep508_evaluate_test.bzl b/uv/private/markers/pep508_evaluate_test.bzl index 11ae1e8d1..4797e63ca 100644 --- a/uv/private/markers/pep508_evaluate_test.bzl +++ b/uv/private/markers/pep508_evaluate_test.bzl @@ -2,7 +2,7 @@ load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") load(":defs.bzl", "MARKER_ENV_ALIASES") -load(":pep508_evaluate.bzl", "evaluate") +load(":pep508_evaluate.bzl", "evaluate", "tokenize") _LINUX_ENV = { "implementation_name": "cpython", @@ -45,6 +45,65 @@ _X86_64_ENV = { "_aliases": MARKER_ENV_ALIASES, } +def _tokenize_test_impl(ctx): + env = unittest.begin(ctx) + + # Empty / whitespace-only input + asserts.equals(env, [], tokenize("")) + asserts.equals(env, [], tokenize(" \t ")) + + # Quoting is normalized to double quotes, for single- and double-quoted + # values alike. + asserts.equals( + env, + ["sys_platform", "==", "\"linux\""], + tokenize("sys_platform == 'linux'"), + ) + asserts.equals( + env, + ["os_name", "==", "\"nt\""], + tokenize("os_name == \"nt\""), + ) + + # 'not' followed by 'in' fuses into a single "not in" token, regardless + # of the whitespace between them. + asserts.equals( + env, + ["\"win32\"", "not in", "sys_platform"], + tokenize("'win32' not in sys_platform"), + ) + asserts.equals( + env, + ["\"win32\"", "not in", "sys_platform"], + tokenize("'win32' not \t in sys_platform"), + ) + + # Whitespace is trimmed: tabs, runs of spaces, and no spaces at all + # around operators tokenize identically. + expected = ["python_version", ">=", "\"3.10\""] + asserts.equals(env, expected, tokenize("python_version >= '3.10'")) + asserts.equals(env, expected, tokenize("python_version\t>= '3.10'")) + asserts.equals(env, expected, tokenize("python_version>='3.10'")) + + # Parentheses are standalone tokens, including when adjacent to + # identifiers and quoted values. + asserts.equals( + env, + ["(", "sys_platform", "==", "\"linux\"", ")"], + tokenize("(sys_platform == 'linux')"), + ) + asserts.equals( + env, + ["(", "(", "sys_platform", "==", "\"linux\"", ")", "and", "(", "os_name", "==", "\"posix\"", ")", ")"], + tokenize("((sys_platform == 'linux') and (os_name == 'posix'))"), + ) + + return unittest.end(env) + +tokenize_test = unittest.make( + _tokenize_test_impl, +) + def _evaluate_test_impl(ctx): env = unittest.begin(ctx) @@ -109,6 +168,36 @@ def _evaluate_test_impl(ctx): asserts.true(env, evaluate("sys_platform != 'emscripten' and sys_platform != 'win32'", env = _LINUX_ENV)) asserts.false(env, evaluate("sys_platform != 'emscripten' and sys_platform != 'win32'", env = _WINDOWS_ENV)) + # Double-quoted values (PEP 508 allows both quote styles; uv locks + # typically emit single quotes, so pin the other style explicitly). + asserts.true(env, evaluate("os_name == \"nt\"", env = _WINDOWS_ENV)) + asserts.false(env, evaluate("os_name == \"nt\"", env = _LINUX_ENV)) + + # Precedence: 'and' binds tighter than 'or'. Each pair distinguishes + # correct grouping from the flat left-to-right reading. + # + # true or (false and false) == true; ((true or false) and false) == false. + asserts.true(env, evaluate("sys_platform == 'linux' or sys_platform == 'win32' and python_version >= '3.12'", env = _LINUX_ENV)) + + # (false and true) or true == true; (false and (true or true)) == false. + asserts.true(env, evaluate("sys_platform == 'win32' and os_name == 'posix' or sys_platform == 'linux'", env = _LINUX_ENV)) + + # Parentheses override the default precedence. + asserts.false(env, evaluate("(sys_platform == 'linux' or sys_platform == 'win32') and python_version >= '3.12'", env = _LINUX_ENV)) + asserts.true(env, evaluate("sys_platform == 'linux' or (sys_platform == 'win32' and python_version >= '3.12')", env = _LINUX_ENV)) + + # Unary 'not' + asserts.true(env, evaluate("not sys_platform == 'win32'", env = _LINUX_ENV)) + asserts.false(env, evaluate("not sys_platform == 'linux'", env = _LINUX_ENV)) + asserts.true(env, evaluate("not not sys_platform == 'linux'", env = _LINUX_ENV)) + asserts.true(env, evaluate("not (sys_platform == 'win32' or sys_platform == 'darwin')", env = _LINUX_ENV)) + asserts.false(env, evaluate("not (sys_platform == 'win32' or sys_platform == 'linux')", env = _LINUX_ENV)) + + # 'not' binds tighter than 'and'/'or'. + asserts.true(env, evaluate("not sys_platform == 'win32' and python_version >= '3.10'", env = _LINUX_ENV)) + asserts.false(env, evaluate("not sys_platform == 'linux' and python_version >= '3.10'", env = _LINUX_ENV)) + asserts.true(env, evaluate("not sys_platform == 'linux' or python_version >= '3.10'", env = _LINUX_ENV)) + # Empty marker evaluates to True asserts.true(env, evaluate("", env = _LINUX_ENV)) @@ -140,8 +229,83 @@ evaluate_test = unittest.make( _evaluate_test_impl, ) +def _version_ops_test_impl(ctx): + env = unittest.begin(ctx) + + # '~=' compatible release: >= right and < right.upper(). + asserts.true(env, evaluate("python_full_version ~= '3.11.0'", env = _LINUX_ENV)) + asserts.false(env, evaluate("python_full_version ~= '3.10.2'", env = _LINUX_ENV)) + asserts.false(env, evaluate("python_full_version ~= '3.12.0'", env = _LINUX_ENV)) + + # Two-segment '~=' bumps the major for its upper bound (3.11 < 4.0). + asserts.true(env, evaluate("python_version ~= '3.10'", env = _LINUX_ENV)) + asserts.false(env, evaluate("python_version ~= '3.12'", env = _LINUX_ENV)) + + # Single-segment right side: upper bound is the next major. + asserts.true(env, evaluate("python_version ~= '3'", env = _LINUX_ENV)) + + # '===' strict matching compares the full version key, so a pre-release + # or differing patch breaks equality while '3.11' == '3.11.0' holds + # (missing segments normalize to 0 in the key). + asserts.true(env, evaluate("python_full_version === '3.11.0'", env = _LINUX_ENV)) + asserts.true(env, evaluate("python_full_version === '3.11'", env = _LINUX_ENV)) + asserts.false(env, evaluate("python_full_version === '3.11.1'", env = _LINUX_ENV)) + asserts.false(env, evaluate("python_full_version === '3.11.0-rc1'", env = _LINUX_ENV)) + + # Pre-release versions order below the final release. + asserts.true(env, evaluate("python_full_version > '3.11.0-rc1'", env = _LINUX_ENV)) + asserts.false(env, evaluate("python_full_version < '3.11.0-rc1'", env = _LINUX_ENV)) + + # A variable that is neither a known string var nor *_version evaluates + # to False rather than failing, even when the values would match. + weird_env = dict(_LINUX_ENV) + weird_env["weird_var"] = "x" + asserts.false(env, evaluate("weird_var == 'x'", env = weird_env)) + + return unittest.end(env) + +version_ops_test = unittest.make( + _version_ops_test_impl, +) + +def _partial_evaluate_test_impl(ctx): + env = unittest.begin(ctx) + + # With strict = False an expression over env vars that are absent is + # returned as a normalized string instead of failing. + asserts.equals(env, 'extra == "tls"', evaluate("extra == 'tls'", env = {}, strict = False)) + + # 'and': a True side reduces to the unknown side; a False side wins. + asserts.equals(env, 'extra == "tls"', evaluate("sys_platform == 'linux' and extra == 'tls'", env = _LINUX_ENV, strict = False)) + asserts.equals(env, 'extra == "tls"', evaluate("extra == 'tls' and sys_platform == 'linux'", env = _LINUX_ENV, strict = False)) + asserts.false(env, evaluate("sys_platform == 'win32' and extra == 'tls'", env = _LINUX_ENV, strict = False)) + asserts.equals(env, 'extra == "a" and extra2 == "b"', evaluate("extra == 'a' and extra2 == 'b'", env = {}, strict = False)) + + # 'or': a True side makes the unknown side irrelevant (empty string); a + # False side reduces to the unknown side. + asserts.equals(env, "", evaluate("extra == 'tls' or sys_platform == 'linux'", env = _LINUX_ENV, strict = False)) + asserts.equals(env, "", evaluate("sys_platform == 'linux' or extra == 'tls'", env = _LINUX_ENV, strict = False)) + asserts.equals(env, 'extra == "tls"', evaluate("extra == 'tls' or sys_platform == 'win32'", env = _LINUX_ENV, strict = False)) + asserts.equals(env, 'extra == "tls"', evaluate("sys_platform == 'win32' or extra == 'tls'", env = _LINUX_ENV, strict = False)) + asserts.equals(env, 'extra == "a" or extra2 == "b"', evaluate("extra == 'a' or extra2 == 'b'", env = {}, strict = False)) + + # 'not' over an unknown expression is preserved as a string. + asserts.equals(env, 'not extra == "tls"', evaluate("not extra == 'tls'", env = {}, strict = False)) + + # Unknown expressions inside parentheses keep their grouping. + asserts.equals(env, '(extra == "tls")', evaluate("(extra == 'tls') and sys_platform == 'linux'", env = _LINUX_ENV, strict = False)) + + return unittest.end(env) + +partial_evaluate_test = unittest.make( + _partial_evaluate_test_impl, +) + def pep508_evaluate_test_suite(): unittest.suite( "pep508_evaluate_tests", evaluate_test, + partial_evaluate_test, + tokenize_test, + version_ops_test, ) diff --git a/uv/private/markers/semver.bzl b/uv/private/markers/semver.bzl index bcafd4c5a..916aa4f6f 100644 --- a/uv/private/markers/semver.bzl +++ b/uv/private/markers/semver.bzl @@ -39,15 +39,6 @@ def _key(version): version.build, ) -def _to_dict(self): - return { - "build": self.build, - "major": self.major, - "minor": self.minor, - "patch": self.patch, - "pre_release": self.pre_release, - } - def _upper(self): major = self.major minor = self.minor @@ -62,7 +53,7 @@ def _upper(self): elif minor != None: major = major + 1 minor = 0 - elif minor == None: + else: major = major + 1 return _new( @@ -86,7 +77,6 @@ def _new(*, major, minor, patch, pre_release, build, version = None): # buildifier: disable=uninitialized key = lambda: _key(self), str = lambda: version, - to_dict = lambda: _to_dict(self), upper = lambda: _upper(self), ) return self diff --git a/uv/private/normalize_version.bzl b/uv/private/normalize_version.bzl index d011f561a..f1e1997f2 100644 --- a/uv/private/normalize_version.bzl +++ b/uv/private/normalize_version.bzl @@ -16,7 +16,7 @@ def normalize_version(version): """ acc = [] for c in version.elems(): - if c.isalnum() or c == "-" or c == "_": + if c.isalnum() or c == "-": acc.append(c) else: acc.append("_") diff --git a/uv/private/parse_whl_name.bzl b/uv/private/parse_whl_name.bzl index c4e7a063b..5d44d779f 100644 --- a/uv/private/parse_whl_name.bzl +++ b/uv/private/parse_whl_name.bzl @@ -37,40 +37,6 @@ _LEGACY_ALIASES = { "manylinux2014_x86_64": "manylinux_2_17_x86_64", } -def parse_abi_feature_flags(tag): - """Parse an ABI flag to extract the feature flags. - - Args: - tag (str): An interpreter tag which may contain feature flags. - - Returns: - A struct containing the extracted and canoncalized feature flags, the - original tag and the "stripped" tag without any feature flags. - """ - - flags = { - "d": False, - "m": False, - "u": False, - "t": False, - } - found = False - for cursor in [-1, -2, -3, -4]: - if tag[cursor] in flags: - flags[tag[cursor]] = True - found = True - else: - break - - return struct( - pydebug = flags["d"], - pymalloc = flags["m"], - freethreading = flags["t"], - unicode = flags["u"], - stripped = tag[:cursor + 1] if found else cursor, # buildifier: disable=uninitialized - full = tag, - ) - def normalize_abi_tag(tag): """Normalize feature flag order in ABI tags. diff --git a/uv/private/parse_whl_name_test.bzl b/uv/private/parse_whl_name_test.bzl new file mode 100644 index 000000000..3967d713b --- /dev/null +++ b/uv/private/parse_whl_name_test.bzl @@ -0,0 +1,87 @@ +"""Tests for parse_whl_name.bzl.""" + +load("@bazel_skylib//lib:unittest.bzl", "asserts", "unittest") +load(":parse_whl_name.bzl", "normalize_abi_tag", "normalize_platform_tag", "parse_whl_name") + +def _normalize_platform_tag_test_impl(ctx): + env = unittest.begin(ctx) + + # PEP 600 legacy aliases resolve to their modern equivalents. + asserts.equals(env, "manylinux_2_17_x86_64", normalize_platform_tag("manylinux2014_x86_64")) + asserts.equals(env, "manylinux_2_12_i686", normalize_platform_tag("manylinux2010_i686")) + asserts.equals(env, "manylinux_2_5_x86_64", normalize_platform_tag("manylinux1_x86_64")) + + # A legacy alias alongside its modern spelling dedupes to one tag. + asserts.equals( + env, + "manylinux_2_17_aarch64", + normalize_platform_tag("manylinux2014_aarch64.manylinux_2_17_aarch64"), + ) + + # Non-legacy tags pass through untouched, preserving order. + asserts.equals(env, "macosx_11_0_arm64", normalize_platform_tag("macosx_11_0_arm64")) + asserts.equals( + env, + "musllinux_1_2_x86_64.manylinux_2_17_x86_64", + normalize_platform_tag("musllinux_1_2_x86_64.manylinux2014_x86_64"), + ) + + return unittest.end(env) + +normalize_platform_tag_test = unittest.make(_normalize_platform_tag_test_impl) + +def _normalize_abi_tag_test_impl(ctx): + env = unittest.begin(ctx) + + # Tags without trailing feature flags are untouched. + asserts.equals(env, "abi3", normalize_abi_tag("abi3")) + asserts.equals(env, "none", normalize_abi_tag("none")) + asserts.equals(env, "cp310", normalize_abi_tag("cp310")) + + # Feature flags normalize to a stable d/m/t/u order. + asserts.equals(env, "cp313t", normalize_abi_tag("cp313t")) + asserts.equals(env, "cp39dm", normalize_abi_tag("cp39md")) + asserts.equals(env, "cp39dmu", normalize_abi_tag("cp39umd")) + + return unittest.end(env) + +normalize_abi_tag_test = unittest.make(_normalize_abi_tag_test_impl) + +def _parse_whl_name_test_impl(ctx): + env = unittest.begin(ctx) + + # Common pure-python wheel: compound python tag, no build tag. + parsed = parse_whl_name("six-1.17.0-py2.py3-none-any.whl") + asserts.equals(env, "six", parsed.project) + asserts.equals(env, "1.17.0", parsed.version) + asserts.equals(env, None, parsed.build) + asserts.equals(env, ["py2", "py3"], parsed.python_tags) + asserts.equals(env, ["none"], parsed.abi_tags) + asserts.equals(env, ["any"], parsed.platform_tags) + + # Build tag between version and python tag. + parsed = parse_whl_name("mypkg-1.0-2foo-py3-none-any.whl") + asserts.equals(env, "mypkg", parsed.project) + asserts.equals(env, "1.0", parsed.version) + asserts.equals(env, "2foo", parsed.build) + + # Native wheel with a legacy platform alias and a freethreaded ABI: + # the alias normalizes and dedupes against its modern spelling. + parsed = parse_whl_name( + "regex-2024.11.6-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.whl", + ) + asserts.equals(env, ["cp313"], parsed.python_tags) + asserts.equals(env, ["cp313t"], parsed.abi_tags) + asserts.equals(env, ["manylinux_2_17_x86_64"], parsed.platform_tags) + + return unittest.end(env) + +parse_whl_name_test = unittest.make(_parse_whl_name_test_impl) + +def parse_whl_name_test_suite(): + unittest.suite( + "parse_whl_name_tests", + normalize_abi_tag_test, + normalize_platform_tag_test, + parse_whl_name_test, + ) diff --git a/uv/private/pep517_whl/BUILD.bazel b/uv/private/pep517_whl/BUILD.bazel index 196da680e..2008737be 100644 --- a/uv/private/pep517_whl/BUILD.bazel +++ b/uv/private/pep517_whl/BUILD.bazel @@ -6,7 +6,12 @@ load("@tar.bzl//tar:mtree.bzl", "mtree_mutate", "mtree_spec") load("@tar.bzl//tar:tar.bzl", "tar_rule") load("//py:defs.bzl", "py_binary", "py_library", "py_test") load(":rule.bzl", "pep517_native_whl", "pep517_whl") -load(":test.bzl", "hostile_python_env_target", "pep517_native_whl_toolchain_env_test") +load( + ":test.bzl", + "compiler_driver_test_suite", + "hostile_python_env_target", + "pep517_native_whl_toolchain_env_test", +) package(default_visibility = [ "//uv/private:__subpackages__", @@ -21,6 +26,7 @@ bzl_library( name = "rule", srcs = ["rule.bzl"], deps = [ + ":compiler", "//py/private/toolchain:types", "@bazel_lib//lib:resource_sets", ], @@ -75,11 +81,14 @@ bzl_library( srcs = ["test.bzl"], visibility = ["//uv:__subpackages__"], deps = [ + ":compiler", ":rule", "@bazel_skylib//lib:unittest", ], ) +compiler_driver_test_suite(name = "compiler_driver_test") + # --- Analysis test fixtures ---------------------------------------------- # # pep517_native_whl only needs its attrs to type-check at analysis time; @@ -164,3 +173,8 @@ pep517_native_whl_toolchain_env_test( name = "toolchain_env_test", target_under_test = ":__toolchain_env_fixture", ) + +bzl_library( + name = "compiler", + srcs = ["compiler.bzl"], +) diff --git a/uv/private/pep517_whl/build_helper.py b/uv/private/pep517_whl/build_helper.py index 17644aa73..ff4e53537 100644 --- a/uv/private/pep517_whl/build_helper.py +++ b/uv/private/pep517_whl/build_helper.py @@ -81,7 +81,6 @@ def _make_compiler_wrapper(tmpdir, name, compiler_path, sysroot=None): f.write(_COMPILER_WRAPPER.format( debug_flag=_DEBUG_FLAG, compiler_path=compiler_path, - name=name, sysroot=sysroot, )) chmod(wrapper, 0o755) @@ -205,7 +204,7 @@ def _legacy_metadata_conflicts_with_pyproject(worktree): PARSER.add_argument("--validate-anyarch", action="store_true") PARSER.add_argument("--patch-strip", type=int, default=0, help="Strip count for patch (-p)") PARSER.add_argument("--patch", action="append", default=[], dest="patches", help="Patch file to apply (repeatable)") -opts, args = PARSER.parse_known_args() +opts, _ = PARSER.parse_known_args() tmp_root = path.abspath(opts.outdir) + ".tmp" # Sandboxed/remote actions get a fresh root each run, so we don't expect a stale tmp_root to exist. diff --git a/uv/private/pep517_whl/compiler.bzl b/uv/private/pep517_whl/compiler.bzl new file mode 100644 index 000000000..a70ea5042 --- /dev/null +++ b/uv/private/pep517_whl/compiler.bzl @@ -0,0 +1,39 @@ +"""Strict C/C++ driver matching for private PEP 517 wheel actions.""" + +_COMPILER_PAIRS = [ + ("clang", "clang++"), + ("gcc", "g++"), +] + +def _driver_suffix(basename, driver_basename): + if basename == driver_basename: + return "" + if not basename.startswith(driver_basename + "-"): + return None + version = basename[len(driver_basename) + 1:] + return "-" + version if version and version.isdigit() else None + +def compiler_driver_paths(compiler_path, available_paths): + """Return selected C/C++ paths for a recognized C compiler, or None.""" + basename = compiler_path.split("/")[-1] + for cc_basename, cxx_basename in _COMPILER_PAIRS: + suffix = _driver_suffix(basename, cc_basename) + if suffix == None: + continue + + cxx_path = cxx_basename + suffix + dirname_index = compiler_path.rfind("/") + if dirname_index != -1: + cxx_path = compiler_path[:dirname_index] + "/" + cxx_path + if cxx_path not in available_paths: + cxx_path = compiler_path + return struct(cxx = cxx_path) + return None + +def cxx_driver_fallback_path(compiler_path): + """Return a recognized C++ driver path for same-driver fallback, or None.""" + basename = compiler_path.split("/")[-1] + for _, cxx_basename in _COMPILER_PAIRS: + if _driver_suffix(basename, cxx_basename) != None: + return compiler_path + return None diff --git a/uv/private/pep517_whl/rule.bzl b/uv/private/pep517_whl/rule.bzl index 1e4198b46..f1fdd328a 100644 --- a/uv/private/pep517_whl/rule.bzl +++ b/uv/private/pep517_whl/rule.bzl @@ -7,6 +7,7 @@ build backend the sdist declares in its `[build-system]` table. load("@bazel_lib//lib:resource_sets.bzl", "resource_set", "resource_set_attr") load("//py/private/toolchain:types.bzl", "NATIVE_BUILD_TOOLCHAIN", "PY_TOOLCHAIN") +load("//uv/private/pep517_whl:compiler.bzl", "compiler_driver_paths", "cxx_driver_fallback_path") _CC_TOOLCHAIN_TYPE = Label("@bazel_tools//tools/cpp:toolchain_type") _TARGET_EXEC_GROUP = "target" @@ -83,36 +84,41 @@ def _collect_toolchain_inputs_and_vars(ctx): known_variables.update(target[platform_common.TemplateVariableInfo].variables) return extra_inputs, known_variables -_BAZEL_CC_WRAPPER_BASENAMES = ["gcc", "g++", "clang", "clang++"] - -def _cc_toolchain_inputs_and_compiler(ctx): - """Return the target execution group's C++ files and compiler path.""" +def _cc_toolchain_inputs_and_compilers(ctx): + """Return the target execution group's C++ files and C/C++ drivers.""" cc_toolchain = ctx.exec_groups[_TARGET_EXEC_GROUP].toolchains[_CC_TOOLCHAIN_TYPE] if hasattr(cc_toolchain, "cc_provider_in_toolchain") and hasattr(cc_toolchain, "cc"): cc_toolchain = cc_toolchain.cc if not cc_toolchain or not hasattr(cc_toolchain, "all_files"): - return None, None + return None, None, None files = cc_toolchain.all_files + files_list = files.to_list() + files_by_path = {f.path: f for f in files_list} compiler_file = None if hasattr(cc_toolchain, "compiler_executable"): compiler_basename = cc_toolchain.compiler_executable.split("/")[-1] - for f in files.to_list(): + for f in files_list: if f.basename == compiler_basename: compiler_file = f break if not compiler_file: - for f in files.to_list(): - if f.basename in _BAZEL_CC_WRAPPER_BASENAMES: + for f in files_list: + if compiler_driver_paths(f.path, files_by_path) != None: compiler_file = f break if not compiler_file: - for f in files.to_list(): - if (f.basename.startswith("clang-") or f.basename.startswith("gcc-") or - f.basename.startswith("g++-")): + for f in files_list: + if cxx_driver_fallback_path(f.path) != None: compiler_file = f break + + # Preserve the current same-driver behavior when the selected toolchain + # files do not expose a matching same-directory C++ companion, including + # toolchains that expose only a C++ wrapper. compiler_path = compiler_file.path if compiler_file else None - return files, compiler_path + driver_paths = compiler_driver_paths(compiler_path, files_by_path) if compiler_path else None + cxx_path = driver_paths.cxx if driver_paths else compiler_path + return files, compiler_path, cxx_path def _pep517_whl(ctx): archive = ctx.file.src @@ -151,7 +157,7 @@ def _pep517_native_whl(ctx): env = _common_env(ctx) extra_inputs, known_variables = _collect_toolchain_inputs_and_vars(ctx) - cc_files, cc_compiler = _cc_toolchain_inputs_and_compiler(ctx) + cc_files, cc_compiler, cxx_compiler = _cc_toolchain_inputs_and_compilers(ctx) if cc_files: extra_inputs.append(cc_files) @@ -160,7 +166,8 @@ def _pep517_native_whl(ctx): if cc_compiler: env["CC"] = cc_compiler - env["CXX"] = cc_compiler + if cxx_compiler: + env["CXX"] = cxx_compiler ctx.actions.run( mnemonic = "PySdistNativeBuild", diff --git a/uv/private/pep517_whl/test.bzl b/uv/private/pep517_whl/test.bzl index 7a14f7e0f..1ce945aa3 100644 --- a/uv/private/pep517_whl/test.bzl +++ b/uv/private/pep517_whl/test.bzl @@ -5,7 +5,8 @@ Inspecting the action at analysis time avoids actually running a PEP 517 build to verify the env wiring. """ -load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts") +load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts", "unittest") +load("//uv/private/pep517_whl:compiler.bzl", "compiler_driver_paths", "cxx_driver_fallback_path") _ACTION_ENV = "//command_line_option:action_env" _HOST_ENV = [ @@ -84,14 +85,19 @@ def _toolchain_env_test_impl(ctx): "${} should resolve to a non-empty toolchain path".format(key), ) - # CC and CXX both derive from cc_toolchain's $(CC) make variable today. - # If we ever switch CXX to a c++ compile driver (e.g. via a custom - # TemplateVariableInfo shim), this assertion can be relaxed. + action_inputs = [f.path for f in build_actions[0].inputs.to_list()] + asserts.true( + env, + action_env.get("CXX") in action_inputs, + "CXX should come from the selected toolchain inputs", + ) + cc = action_env.get("CC") + driver_paths = compiler_driver_paths(cc, {path: True for path in action_inputs}) asserts.equals( env, - action_env.get("CC"), + driver_paths.cxx if driver_paths else cc, action_env.get("CXX"), - "CC and CXX should point at the same compiler driver", + "CXX should use the declared companion or selected compiler fallback", ) # JAR is constructed from $(JAVABASE)/bin/jar — sanity-check the suffix. @@ -104,3 +110,50 @@ def _toolchain_env_test_impl(ctx): return analysistest.end(env) pep517_native_whl_toolchain_env_test = analysistest.make(_toolchain_env_test_impl) + +def _compiler_driver_paths_test_impl(ctx): + env = unittest.begin(ctx) + exact = compiler_driver_paths("gcc", {"gcc": True, "g++": True}) + asserts.equals(env, "g++", exact.cxx) + + versioned = compiler_driver_paths( + "toolchain/bin/clang-22", + { + "toolchain/bin/clang-22": True, + "toolchain/bin/clang++-22": True, + }, + ) + asserts.equals(env, "toolchain/bin/clang++-22", versioned.cxx) + + for near_miss in ["clang-cl", "clang-format", "gcc-ar"]: + asserts.equals( + env, + None, + compiler_driver_paths(near_miss, {near_miss: True}), + "{} should not be treated as a compiler driver".format(near_miss), + ) + + fallback = compiler_driver_paths("toolchain/bin/gcc", {"toolchain/bin/gcc": True}) + asserts.equals(env, "toolchain/bin/gcc", fallback.cxx) + + for cxx_driver in [ + "g++", + "toolchain/bin/g++-12", + "clang++", + "toolchain/bin/clang++-22", + ]: + asserts.equals(env, cxx_driver, cxx_driver_fallback_path(cxx_driver)) + + for near_miss in ["g++-ar", "clang++-format", "clang++foo"]: + asserts.equals( + env, + None, + cxx_driver_fallback_path(near_miss), + "{} should not be treated as a C++ driver".format(near_miss), + ) + return unittest.end(env) + +compiler_driver_paths_test = unittest.make(_compiler_driver_paths_test_impl) + +def compiler_driver_test_suite(name): + unittest.suite(name, compiler_driver_paths_test) diff --git a/uv/private/pprint/defs.bzl b/uv/private/pprint/defs.bzl index fb1a1c915..dad185f85 100644 --- a/uv/private/pprint/defs.bzl +++ b/uv/private/pprint/defs.bzl @@ -1,3 +1,7 @@ +def indent(text, space): + """Prefix every line of `text` with `space`.""" + return "\n".join(["{}{}".format(space, l) for l in text.splitlines()]) + def pprint(val, indent = " "): # Each entry: [object, indent_level, state, optional_data] # States: diff --git a/uv/private/py_entrypoint_binary/search.py b/uv/private/py_entrypoint_binary/search.py index 35896c4c7..8bd123644 100644 --- a/uv/private/py_entrypoint_binary/search.py +++ b/uv/private/py_entrypoint_binary/search.py @@ -18,7 +18,7 @@ class CaseSensitiveConfigParser(configparser.ConfigParser): PARSER = argparse.ArgumentParser() PARSER.add_argument("--template") PARSER.add_argument("--script") -opts, args = PARSER.parse_known_args() +opts = PARSER.parse_args() entrypoint = None for e in sys.path: @@ -47,7 +47,6 @@ class CaseSensitiveConfigParser(configparser.ConfigParser): alias = "{fn} = {fn}.{tail}\n".format(fn = fn, tail = tail) else: fn = symbol - tail = "" alias = "" with open(opts.template, "r") as fp: diff --git a/uv/private/sdist_build/repository.bzl b/uv/private/sdist_build/repository.bzl index 450499506..356a821cd 100644 --- a/uv/private/sdist_build/repository.bzl +++ b/uv/private/sdist_build/repository.bzl @@ -101,9 +101,9 @@ def _resolve_extra_deps(repository_ctx, inspection): if unresolvable: fail( - "sdist configure tool for {} reported build deps that are not in " + - "the lockfile: {}. Add these packages to your lockfile or provide " + - "them via uv.unstable_annotate_packages().".format( + ("sdist configure tool for {} reported build deps that are not in " + + "the lockfile: {}. Add these packages to your lockfile or provide " + + "them via uv.unstable_annotate_packages().").format( repository_ctx.name, ", ".join(unresolvable), ), @@ -263,9 +263,8 @@ def _sdist_build_impl(repository_ctx): # the env values below are make-variable references resolved at # action analysis time. # - # CXX defaults to $(CC) because most clang/gcc-based toolchains use - # a single driver binary for both languages, and meson-python / - # cmake-based backends look for CXX independently of CC. + # CXX starts at $(CC); pep517_native_whl replaces it with a matching + # same-directory clang++ / g++ from the selected toolchain when present. # # `extra_toolchains` and `extra_env` augment (do not replace) the # defaults — set via `uv.override_package(toolchains = [...], diff --git a/uv/private/sdist_configure/BUILD.bazel b/uv/private/sdist_configure/BUILD.bazel index 64299fec5..3a26dfa6f 100644 --- a/uv/private/sdist_configure/BUILD.bazel +++ b/uv/private/sdist_configure/BUILD.bazel @@ -17,6 +17,9 @@ py_test( "detect_native_test.py", ], main = "detect_native_test.py", + # detect_native.py requires Python >= 3.11 (tomllib); at fetch time it + # runs under the PBS interpreter provisioned for sdist inspection. + python_version = "3.13", ) bzl_library( diff --git a/uv/private/sdist_configure/detect_native.py b/uv/private/sdist_configure/detect_native.py index f8e2aa7d7..c42379ddc 100644 --- a/uv/private/sdist_configure/detect_native.py +++ b/uv/private/sdist_configure/detect_native.py @@ -9,11 +9,11 @@ See //uv/private/sdist_configure:defs.bzl for the full interface contract. -Requires Python >= 3.11 (for tomllib). +Requires Python >= 3.11 (tomllib) to parse pyproject.toml; on older +interpreters [build-system] metadata is skipped with a warning. """ import configparser -import importlib import os import importlib.abc import importlib.machinery @@ -112,6 +112,12 @@ def _parse_pyproject_build_system(content): - backend_path: the backend-path list, or None """ if tomllib is None: + print( + "WARNING: pyproject.toml present but tomllib is unavailable " + "(Python < 3.11); [build-system] build requires will be missed. " + "Run the sdist configure tool with Python >= 3.11.", + file=sys.stderr, + ) return [], None, None data = tomllib.loads(content) build_system = data.get("build-system", {}) diff --git a/uv/private/sdist_configure/detect_native_test.py b/uv/private/sdist_configure/detect_native_test.py index 9d3aa1563..88b8dfe7a 100644 --- a/uv/private/sdist_configure/detect_native_test.py +++ b/uv/private/sdist_configure/detect_native_test.py @@ -1,7 +1,6 @@ """Tests for detect_native.py sdist configure tool.""" import io -import json import os import sys import tarfile @@ -10,26 +9,6 @@ from uv.private.sdist_configure.detect_native import detect -try: - import tomllib - HAS_TOMLLIB = True -except ModuleNotFoundError: - HAS_TOMLLIB = False - - -class _Skip(Exception): - """Raised to skip a test.""" - - -def requires_tomllib(fn): - """Skip test if tomllib is not available (Python < 3.11).""" - def wrapper(): - if not HAS_TOMLLIB: - raise _Skip("requires Python >= 3.11 (tomllib)") - return fn() - wrapper.__name__ = fn.__name__ - return wrapper - def _make_tar_gz(members): """Create a .tar.gz archive in a temp file from a dict of {name: content}. @@ -142,7 +121,6 @@ def test_rust(): # --- pyproject.toml parsing --- -@requires_tomllib def test_pyproject_build_requires(): pyproject = """\ [build-system] @@ -160,6 +138,25 @@ def test_pyproject_build_requires(): assert "cython" in result["build_requires"] +def test_pyproject_degrades_without_tomllib(): + """On a pre-3.11 interpreter, pyproject parsing is skipped with a warning + while the rest of the tool (native detection etc.) keeps working.""" + from uv.private.sdist_configure import detect_native + archive = _make_tar_gz({ + "pkg-1.0/": None, + "pkg-1.0/pyproject.toml": '[build-system]\nrequires = ["cython"]\n', + "pkg-1.0/pkg/fast.pyx": "# cython source", + }) + saved = detect_native.tomllib + detect_native.tomllib = None + try: + result = detect(archive, {}) + finally: + detect_native.tomllib = saved + assert result["build_requires"] == [] + assert result["is_native"] is True + + # --- setup.cfg parsing --- @@ -195,7 +192,6 @@ def test_legacy_setup_py_infers_setuptools(): assert "wheel" in result["build_requires"] -@requires_tomllib def test_pyproject_does_not_infer_setuptools(): """A package with pyproject.toml should NOT get implicit setuptools.""" archive = _make_tar_gz({ @@ -215,7 +211,6 @@ def test_pyproject_does_not_infer_setuptools(): # --- extra_deps resolution --- -@requires_tomllib def test_extra_deps_resolved_from_available(): """Declared build deps that exist in available_deps become extra_deps.""" pyproject = """\ @@ -240,7 +235,6 @@ def test_extra_deps_resolved_from_available(): assert "cython" in result["extra_deps"] -@requires_tomllib def test_extra_deps_excludes_already_provided(): """Deps already in the explicit deps list are not reported as extra.""" pyproject = """\ @@ -266,7 +260,6 @@ def test_extra_deps_excludes_already_provided(): assert "cython" in result["extra_deps"] -@requires_tomllib def test_extra_deps_unresolvable_not_included(): """Deps not in available_deps are silently omitted from extra_deps.""" pyproject = """\ @@ -324,7 +317,6 @@ def test_zip_archive(): assert "pkg-1.0/pkg/ext.c" in result["native_files"] -@requires_tomllib def test_zip_archive_with_pyproject(): archive = _make_zip({ "pkg-1.0/pkg/__init__.py": "", @@ -342,7 +334,6 @@ def test_zip_archive_with_pyproject(): # --- Config files at root (no top-level directory) --- -@requires_tomllib def test_flat_archive(): """Some archives don't have a top-level directory prefix.""" archive = _make_tar_gz({ @@ -757,22 +748,18 @@ def test_setup_cfg_and_setup_py_merged(): if __name__ == "__main__": failures = [] - skipped = [] test_fns = [v for k, v in sorted(globals().items()) if k.startswith("test_") and callable(v)] for fn in test_fns: try: fn() print(f" PASS {fn.__name__}") - except _Skip as e: - print(f" SKIP {fn.__name__}: {e}") - skipped.append(fn.__name__) except Exception as e: print(f" FAIL {fn.__name__}: {e}") failures.append(fn.__name__) total = len(test_fns) - passed = total - len(failures) - len(skipped) - print(f"\n{passed} passed, {len(skipped)} skipped, {len(failures)} failed (of {total})") + passed = total - len(failures) + print(f"\n{passed} passed, {len(failures)} failed (of {total})") if failures: print(f"Failures: {', '.join(failures)}") sys.exit(1) diff --git a/uv/private/sha1.bzl b/uv/private/sha1.bzl index 4193ae5e8..c7bd5f099 100644 --- a/uv/private/sha1.bzl +++ b/uv/private/sha1.bzl @@ -98,21 +98,18 @@ def sha1(input): e = h4 for t in range(80): - if 0 <= t and t <= 19: + if t <= 19: f = (b & c) | ((~b) & d) kt = k[0] - elif 20 <= t and t <= 39: + elif t <= 39: f = b ^ c ^ d kt = k[1] - elif 40 <= t and t <= 59: + elif t <= 59: f = (b & c) | (b & d) | (c & d) kt = k[2] - elif 60 <= t and t <= 79: + else: f = b ^ c ^ d kt = k[3] - else: - # FIXME: Error? - pass temp = (rotl32(a, 5) + f + e + kt + w[t]) & 0xFFFFFFFF diff --git a/uv/private/toolchain/BUILD.bazel b/uv/private/toolchain/BUILD.bazel index 3f49eb471..9c8b5e872 100644 --- a/uv/private/toolchain/BUILD.bazel +++ b/uv/private/toolchain/BUILD.bazel @@ -2,21 +2,11 @@ load("@bazel_lib//:bzl_library.bzl", "bzl_library") package(default_visibility = ["//visibility:public"]) -toolchain_type( - name = "toolchain_type", - visibility = ["//visibility:public"], -) - bzl_library( name = "repositories", srcs = ["repositories.bzl"], ) -bzl_library( - name = "types", - srcs = ["types.bzl"], -) - bzl_library( name = "versions", srcs = ["versions.bzl"], diff --git a/uv/private/toolchain/repositories.bzl b/uv/private/toolchain/repositories.bzl index be1449194..1654182eb 100644 --- a/uv/private/toolchain/repositories.bzl +++ b/uv/private/toolchain/repositories.bzl @@ -1,27 +1,5 @@ """Repository rules for downloading UV binaries.""" -def _platform_constraints(platform): - parts = platform.split("-") - arch = parts[0] - - if arch == "aarch64": - cpu = "@platforms//cpu:aarch64" - elif arch == "x86_64": - cpu = "@platforms//cpu:x86_64" - elif arch == "i686": - cpu = "@platforms//cpu:x86_32" - else: - cpu = "@platforms//cpu:{}".format(arch) - - if platform.endswith("apple-darwin"): - os_constraint = "@platforms//os:macos" - elif "windows" in platform: - os_constraint = "@platforms//os:windows" - else: - os_constraint = "@platforms//os:linux" - - return "[\"{}\", \"{}\"]".format(os_constraint, cpu) - def _detect_host_platform(rctx): arch_map = { "amd64": "x86_64", @@ -73,15 +51,7 @@ def _uv_repository_impl(ctx): stripPrefix = strip_prefix, ) - ctx.file("BUILD.bazel", '''load("@aspect_rules_py//uv/private/toolchain:types.bzl", "uv_tool_toolchain") - -exports_files(["{uv_binary}"]) - -uv_tool_toolchain( - name = "toolchain_impl", - bin = "{uv_binary}", - visibility = ["//visibility:public"], -) + ctx.file("BUILD.bazel", '''exports_files(["{uv_binary}"]) '''.format(uv_binary = uv_binary)) # Support bazel /BUILD.bazel — project-qualified labels + # (@hub//project/: scopes the select to one project, avoiding + # "multiple keys match" in multi-project hubs with shared package names.) + per_project = {} + for pkg_name, cfgs in packages.items(): + for cfg, target in cfgs.items(): + proj_id = target[1:].split("//")[0] # "@project__//:pkg" → "project__" + per_project.setdefault(proj_id, {}).setdefault(pkg_name, {})[cfg] = target + + for proj_id, proj_pkgs in sorted(per_project.items()): + stamp = proj_id[len("project__"):] + proj_cfg_set = {} + for pkg_cfgs in proj_pkgs.values(): + for cfg in pkg_cfgs.keys(): + proj_cfg_set[cfg] = 1 + proj_cfg_names = sorted(proj_cfg_set.keys()) + + p_content = [ + """\ +load("@aspect_rules_py//py:defs.bzl", "py_library") +load("//:defs.bzl", "compatible_with") +""", + ] + + for pkg_name, pkg_cfgs in sorted(proj_pkgs.items()): + select_spec = { + "//dep_group:{}".format(cfg): tgt + for cfg, tgt in pkg_cfgs.items() + } + p_content.append( + """ +alias( + name = "{name}", + actual = select({select}), + target_compatible_with = select(compatible_with({compat})), + visibility = ["//visibility:public"], +) +""".format( + name = pkg_name, + select = indent(pprint(select_spec), " ").lstrip(), + compat = repr(proj_cfg_names), + ), + ) + + repository_ctx.file( + "project/{}/BUILD.bazel".format(stamp), + "\n".join(p_content), + ) + ################################################################################ # Lay down //:defs.bzl @@ -280,10 +320,6 @@ def requirement(name): )) repository_ctx.file("requirements.bzl", content = "\n".join(content)) - ################################################################################ - # Lay down the hub aliases - entrypoints = {} - if not features.external_deps.extension_metadata_has_reproducible: return None return repository_ctx.repo_metadata(reproducible = True) diff --git a/uv/private/uv_hub/snapshots/pip_configurations.BUILD.bazel b/uv/private/uv_hub/snapshots/pip_configurations.BUILD.bazel index c641e2c47..4eaf46f18 100644 --- a/uv/private/uv_hub/snapshots/pip_configurations.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/pip_configurations.BUILD.bazel @@ -1,5 +1,4 @@ load("@bazel_skylib//lib:selects.bzl", "selects") -load("@aspect_rules_py//uv/private/markers:defs.bzl", "decide_marker") selects.config_setting_group( name = "py3-any-none", diff --git a/uv/private/uv_hub/snapshots/project.BUILD.bazel b/uv/private/uv_hub/snapshots/project.BUILD.bazel index b6beb46fd..4fb7c54f5 100644 --- a/uv/private/uv_hub/snapshots/project.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/project.BUILD.bazel @@ -1,5 +1,3 @@ -load("@aspect_rules_py//py:defs.bzl", "py_library") - # Fallback for `:{package}_whl` aliases on workspace / editable packages # (which have no underlying whl_install repo to point at). filegroup( @@ -13,7 +11,7 @@ filegroup( # arrow # { # "aspect_rules_py": { -# "66db1ee5578c91b3": { +# "arrow__1_3_0": { # "": 1, # }, # }, @@ -23,7 +21,7 @@ filegroup( alias( name = "_package_arrow_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:66db1ee5578c91b3", + "//conditions:default": "//private/sccs:arrow__1_3_0", }), visibility = ["//visibility:private"], ) @@ -59,7 +57,7 @@ alias( # asgiref # { # "aspect_rules_py": { -# "02c60fe71555dbc6": { +# "asgiref__3_8_1": { # "": 1, # }, # }, @@ -69,7 +67,7 @@ alias( alias( name = "_package_asgiref_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:02c60fe71555dbc6", + "//conditions:default": "//private/sccs:asgiref__3_8_1", }), visibility = ["//visibility:private"], ) @@ -105,7 +103,7 @@ alias( # aspect_rules_py # { # "aspect_rules_py": { -# "3bf90d5a8d65a96f": { +# "aspect_rules_py__0_0_0": { # "": 1, # }, # }, @@ -115,7 +113,7 @@ alias( alias( name = "_package_aspect_rules_py_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:3bf90d5a8d65a96f", + "//conditions:default": "//private/sccs:aspect_rules_py__0_0_0", }), visibility = ["//visibility:private"], ) @@ -151,7 +149,7 @@ alias( # attrs # { # "aspect_rules_py": { -# "7dc7776b98af97fb": { +# "attrs__23_2_0": { # "": 1, # }, # }, @@ -161,7 +159,7 @@ alias( alias( name = "_package_attrs_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:7dc7776b98af97fb", + "//conditions:default": "//private/sccs:attrs__23_2_0", }), visibility = ["//visibility:private"], ) @@ -197,7 +195,7 @@ alias( # bazel_runfiles # { # "aspect_rules_py": { -# "36263f2e745aec68": { +# "bazel_runfiles__1_1_0": { # "": 1, # }, # }, @@ -207,7 +205,7 @@ alias( alias( name = "_package_bazel_runfiles_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:36263f2e745aec68", + "//conditions:default": "//private/sccs:bazel_runfiles__1_1_0", }), visibility = ["//visibility:private"], ) @@ -243,7 +241,7 @@ alias( # boto3 # { # "aspect_rules_py": { -# "d062f9c8da4486d0": { +# "boto3__1_34_93": { # "": 1, # }, # }, @@ -253,7 +251,7 @@ alias( alias( name = "_package_boto3_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:d062f9c8da4486d0", + "//conditions:default": "//private/sccs:boto3__1_34_93", }), visibility = ["//visibility:private"], ) @@ -289,7 +287,7 @@ alias( # botocore # { # "aspect_rules_py": { -# "1a9692ca440d40f6": { +# "botocore__1_34_93": { # "": 1, # }, # }, @@ -299,7 +297,7 @@ alias( alias( name = "_package_botocore_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:1a9692ca440d40f6", + "//conditions:default": "//private/sccs:botocore__1_34_93", }), visibility = ["//visibility:private"], ) @@ -335,7 +333,7 @@ alias( # bravado # { # "aspect_rules_py": { -# "5ad4c33225a6c315": { +# "bravado__11_0_3": { # "": 1, # }, # }, @@ -345,7 +343,7 @@ alias( alias( name = "_package_bravado_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:5ad4c33225a6c315", + "//conditions:default": "//private/sccs:bravado__11_0_3", }), visibility = ["//visibility:private"], ) @@ -381,7 +379,7 @@ alias( # bravado_core # { # "aspect_rules_py": { -# "b852273138dfaef1": { +# "bravado_core__6_1_1": { # "": 1, # }, # }, @@ -391,7 +389,7 @@ alias( alias( name = "_package_bravado_core_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:b852273138dfaef1", + "//conditions:default": "//private/sccs:bravado_core__6_1_1", }), visibility = ["//visibility:private"], ) @@ -427,7 +425,7 @@ alias( # build # { # "aspect_rules_py": { -# "a6e543d0278612c3": { +# "build__1_3_0": { # "": 1, # }, # }, @@ -437,7 +435,7 @@ alias( alias( name = "_package_build_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:a6e543d0278612c3", + "//conditions:default": "//private/sccs:build__1_3_0", }), visibility = ["//visibility:private"], ) @@ -473,7 +471,7 @@ alias( # certifi # { # "aspect_rules_py": { -# "3d28b6e946c58648": { +# "certifi__2024_7_4": { # "": 1, # }, # }, @@ -483,7 +481,7 @@ alias( alias( name = "_package_certifi_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:3d28b6e946c58648", + "//conditions:default": "//private/sccs:certifi__2024_7_4", }), visibility = ["//visibility:private"], ) @@ -519,7 +517,7 @@ alias( # charset_normalizer # { # "aspect_rules_py": { -# "7a5508482ee7c7ef": { +# "charset_normalizer__3_3_2": { # "": 1, # }, # }, @@ -529,7 +527,7 @@ alias( alias( name = "_package_charset_normalizer_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:7a5508482ee7c7ef", + "//conditions:default": "//private/sccs:charset_normalizer__3_3_2", }), visibility = ["//visibility:private"], ) @@ -565,7 +563,7 @@ alias( # click # { # "aspect_rules_py": { -# "17569fac0688142c": { +# "click__8_1_7": { # "": 1, # }, # }, @@ -575,7 +573,7 @@ alias( alias( name = "_package_click_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:17569fac0688142c", + "//conditions:default": "//private/sccs:click__8_1_7", }), visibility = ["//visibility:private"], ) @@ -611,7 +609,7 @@ alias( # colorama # { # "aspect_rules_py": { -# "da61d1b3f896ca29": { +# "colorama__0_4_6": { # "": 1, # "os_name == 'nt'": 1, # "sys_platform == 'win32'": 1, @@ -623,7 +621,7 @@ alias( alias( name = "_package_colorama_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:da61d1b3f896ca29", + "//conditions:default": "//private/sccs:colorama__0_4_6", }), visibility = ["//visibility:private"], ) @@ -659,7 +657,7 @@ alias( # coverage # { # "aspect_rules_py": { -# "75d05c99d874710d": { +# "coverage__7_6_10": { # "": 1, # }, # }, @@ -669,7 +667,7 @@ alias( alias( name = "_package_coverage_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:75d05c99d874710d", + "//conditions:default": "//private/sccs:coverage__7_6_10", }), visibility = ["//visibility:private"], ) @@ -705,7 +703,7 @@ alias( # cowsay # { # "aspect_rules_py": { -# "47a07453022c3f00": { +# "cowsay__6_1": { # "": 1, # }, # }, @@ -715,7 +713,7 @@ alias( alias( name = "_package_cowsay_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:47a07453022c3f00", + "//conditions:default": "//private/sccs:cowsay__6_1", }), visibility = ["//visibility:private"], ) @@ -751,7 +749,7 @@ alias( # django # { # "aspect_rules_py": { -# "be4598f5093464bc": { +# "django__4_2_15": { # "": 1, # }, # }, @@ -761,7 +759,7 @@ alias( alias( name = "_package_django_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:be4598f5093464bc", + "//conditions:default": "//private/sccs:django__4_2_15", }), visibility = ["//visibility:private"], ) @@ -797,7 +795,7 @@ alias( # exceptiongroup # { # "aspect_rules_py": { -# "ba5e2f6d3abc42ae": { +# "exceptiongroup__1_3_1": { # "python_full_version < '3.11'": 1, # }, # }, @@ -807,7 +805,7 @@ alias( alias( name = "_package_exceptiongroup_aspect_rules_py", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//private/sccs:ba5e2f6d3abc42ae", + "//private/markers:marker_0": "//private/sccs:exceptiongroup__1_3_1", "//conditions:default": "//private/sccs:empty", }), visibility = ["//visibility:private"], @@ -817,7 +815,7 @@ alias( alias( name = "_package_exceptiongroup_aspect_rules_py_whl", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:whl", + "//private/markers:marker_0": "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:whl", "//conditions:default": ":empty_whl", }), visibility = ["//visibility:private"], @@ -845,7 +843,7 @@ alias( # fqdn # { # "aspect_rules_py": { -# "be422b5bb805eb81": { +# "fqdn__1_5_1": { # "": 1, # }, # }, @@ -855,7 +853,7 @@ alias( alias( name = "_package_fqdn_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:be422b5bb805eb81", + "//conditions:default": "//private/sccs:fqdn__1_5_1", }), visibility = ["//visibility:private"], ) @@ -891,7 +889,7 @@ alias( # ftfy # { # "aspect_rules_py": { -# "f3fc9e72edf46a94": { +# "ftfy__6_2_0": { # "": 1, # }, # }, @@ -901,7 +899,7 @@ alias( alias( name = "_package_ftfy_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:f3fc9e72edf46a94", + "//conditions:default": "//private/sccs:ftfy__6_2_0", }), visibility = ["//visibility:private"], ) @@ -937,7 +935,7 @@ alias( # future # { # "aspect_rules_py": { -# "0bf957689dc8a17a": { +# "future__1_0_0": { # "": 1, # }, # }, @@ -947,7 +945,7 @@ alias( alias( name = "_package_future_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:0bf957689dc8a17a", + "//conditions:default": "//private/sccs:future__1_0_0", }), visibility = ["//visibility:private"], ) @@ -983,7 +981,7 @@ alias( # gitdb # { # "aspect_rules_py": { -# "57bbb1e13328c57d": { +# "gitdb__4_0_12": { # "": 1, # }, # }, @@ -993,7 +991,7 @@ alias( alias( name = "_package_gitdb_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:57bbb1e13328c57d", + "//conditions:default": "//private/sccs:gitdb__4_0_12", }), visibility = ["//visibility:private"], ) @@ -1029,7 +1027,7 @@ alias( # gitpython # { # "aspect_rules_py": { -# "0b3eac9fa46ed553": { +# "gitpython__3_1_43": { # "": 1, # }, # }, @@ -1039,7 +1037,7 @@ alias( alias( name = "_package_gitpython_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:0b3eac9fa46ed553", + "//conditions:default": "//private/sccs:gitpython__3_1_43", }), visibility = ["//visibility:private"], ) @@ -1075,7 +1073,7 @@ alias( # idna # { # "aspect_rules_py": { -# "e32f72aa83d0aa19": { +# "idna__3_7": { # "": 1, # }, # }, @@ -1085,7 +1083,7 @@ alias( alias( name = "_package_idna_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:e32f72aa83d0aa19", + "//conditions:default": "//private/sccs:idna__3_7", }), visibility = ["//visibility:private"], ) @@ -1121,7 +1119,7 @@ alias( # importlib_metadata # { # "aspect_rules_py": { -# "755a2d8d1d107b02": { +# "importlib_metadata__8_7_1": { # "python_full_version < '3.10.2'": 1, # }, # }, @@ -1131,7 +1129,7 @@ alias( alias( name = "_package_importlib_metadata_aspect_rules_py", actual = select({ - "//private/markers:db384b5a67611795b7cf16442b57a34653387090": "//private/sccs:755a2d8d1d107b02", + "//private/markers:marker_1": "//private/sccs:importlib_metadata__8_7_1", "//conditions:default": "//private/sccs:empty", }), visibility = ["//visibility:private"], @@ -1141,7 +1139,7 @@ alias( alias( name = "_package_importlib_metadata_aspect_rules_py_whl", actual = select({ - "//private/markers:db384b5a67611795b7cf16442b57a34653387090": "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:whl", + "//private/markers:marker_1": "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:whl", "//conditions:default": ":empty_whl", }), visibility = ["//visibility:private"], @@ -1169,7 +1167,7 @@ alias( # iniconfig # { # "aspect_rules_py": { -# "a645893aac936c2f": { +# "iniconfig__2_0_0": { # "": 1, # }, # }, @@ -1179,7 +1177,7 @@ alias( alias( name = "_package_iniconfig_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:a645893aac936c2f", + "//conditions:default": "//private/sccs:iniconfig__2_0_0", }), visibility = ["//visibility:private"], ) @@ -1215,7 +1213,7 @@ alias( # isoduration # { # "aspect_rules_py": { -# "b614323508da0659": { +# "isoduration__20_11_0": { # "": 1, # }, # }, @@ -1225,7 +1223,7 @@ alias( alias( name = "_package_isoduration_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:b614323508da0659", + "//conditions:default": "//private/sccs:isoduration__20_11_0", }), visibility = ["//visibility:private"], ) @@ -1261,7 +1259,7 @@ alias( # jmespath # { # "aspect_rules_py": { -# "0122121f49196a45": { +# "jmespath__1_0_1": { # "": 1, # }, # }, @@ -1271,7 +1269,7 @@ alias( alias( name = "_package_jmespath_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:0122121f49196a45", + "//conditions:default": "//private/sccs:jmespath__1_0_1", }), visibility = ["//visibility:private"], ) @@ -1307,7 +1305,7 @@ alias( # jsonpointer # { # "aspect_rules_py": { -# "f562ebd179f2bb77": { +# "jsonpointer__2_4": { # "": 1, # }, # }, @@ -1317,7 +1315,7 @@ alias( alias( name = "_package_jsonpointer_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:f562ebd179f2bb77", + "//conditions:default": "//private/sccs:jsonpointer__2_4", }), visibility = ["//visibility:private"], ) @@ -1353,7 +1351,7 @@ alias( # jsonref # { # "aspect_rules_py": { -# "c9bd99220bf6a1cc": { +# "jsonref__1_1_0": { # "": 1, # }, # }, @@ -1363,7 +1361,7 @@ alias( alias( name = "_package_jsonref_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:c9bd99220bf6a1cc", + "//conditions:default": "//private/sccs:jsonref__1_1_0", }), visibility = ["//visibility:private"], ) @@ -1399,7 +1397,7 @@ alias( # jsonschema # { # "aspect_rules_py": { -# "83c2335691aac8c7": { +# "jsonschema__4_21_1": { # "": 1, # }, # }, @@ -1409,7 +1407,7 @@ alias( alias( name = "_package_jsonschema_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:83c2335691aac8c7", + "//conditions:default": "//private/sccs:jsonschema__4_21_1", }), visibility = ["//visibility:private"], ) @@ -1445,7 +1443,7 @@ alias( # jsonschema_specifications # { # "aspect_rules_py": { -# "7b750f6dabe77708": { +# "jsonschema_specifications__2023_12_1": { # "": 1, # }, # }, @@ -1455,7 +1453,7 @@ alias( alias( name = "_package_jsonschema_specifications_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:7b750f6dabe77708", + "//conditions:default": "//private/sccs:jsonschema_specifications__2023_12_1", }), visibility = ["//visibility:private"], ) @@ -1491,7 +1489,7 @@ alias( # maturin # { # "aspect_rules_py": { -# "3efdd519ba908a3d": { +# "maturin__1_11_5": { # "": 1, # }, # }, @@ -1501,7 +1499,7 @@ alias( alias( name = "_package_maturin_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:3efdd519ba908a3d", + "//conditions:default": "//private/sccs:maturin__1_11_5", }), visibility = ["//visibility:private"], ) @@ -1537,7 +1535,7 @@ alias( # monotonic # { # "aspect_rules_py": { -# "645e8b10704343f3": { +# "monotonic__1_6": { # "": 1, # }, # }, @@ -1547,7 +1545,7 @@ alias( alias( name = "_package_monotonic_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:645e8b10704343f3", + "//conditions:default": "//private/sccs:monotonic__1_6", }), visibility = ["//visibility:private"], ) @@ -1583,7 +1581,7 @@ alias( # msgpack # { # "aspect_rules_py": { -# "57db4c17774c1aff": { +# "msgpack__1_0_8": { # "": 1, # }, # }, @@ -1593,7 +1591,7 @@ alias( alias( name = "_package_msgpack_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:57db4c17774c1aff", + "//conditions:default": "//private/sccs:msgpack__1_0_8", }), visibility = ["//visibility:private"], ) @@ -1629,7 +1627,7 @@ alias( # neptune # { # "aspect_rules_py": { -# "0c448469fc42e513": { +# "neptune__1_10_2": { # "": 1, # }, # }, @@ -1639,7 +1637,7 @@ alias( alias( name = "_package_neptune_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:0c448469fc42e513", + "//conditions:default": "//private/sccs:neptune__1_10_2", }), visibility = ["//visibility:private"], ) @@ -1675,7 +1673,7 @@ alias( # numpy # { # "aspect_rules_py": { -# "f729005acfb43d98": { +# "numpy__1_26_4": { # "": 1, # }, # }, @@ -1685,7 +1683,7 @@ alias( alias( name = "_package_numpy_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:f729005acfb43d98", + "//conditions:default": "//private/sccs:numpy__1_26_4", }), visibility = ["//visibility:private"], ) @@ -1721,7 +1719,7 @@ alias( # oauthlib # { # "aspect_rules_py": { -# "abf028a68f5c5ef2": { +# "oauthlib__3_2_2": { # "": 1, # }, # }, @@ -1731,7 +1729,7 @@ alias( alias( name = "_package_oauthlib_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:abf028a68f5c5ef2", + "//conditions:default": "//private/sccs:oauthlib__3_2_2", }), visibility = ["//visibility:private"], ) @@ -1767,7 +1765,7 @@ alias( # packaging # { # "aspect_rules_py": { -# "faab7792fab0e0c3": { +# "packaging__24_0": { # "": 1, # }, # }, @@ -1777,7 +1775,7 @@ alias( alias( name = "_package_packaging_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:faab7792fab0e0c3", + "//conditions:default": "//private/sccs:packaging__24_0", }), visibility = ["//visibility:private"], ) @@ -1813,7 +1811,7 @@ alias( # pandas # { # "aspect_rules_py": { -# "e585531523a85c06": { +# "pandas__2_2_2": { # "": 1, # }, # }, @@ -1823,7 +1821,7 @@ alias( alias( name = "_package_pandas_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:e585531523a85c06", + "//conditions:default": "//private/sccs:pandas__2_2_2", }), visibility = ["//visibility:private"], ) @@ -1859,7 +1857,7 @@ alias( # pillow # { # "aspect_rules_py": { -# "1ab32a29e45cda88": { +# "pillow__10_3_0": { # "": 1, # }, # }, @@ -1869,7 +1867,7 @@ alias( alias( name = "_package_pillow_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:1ab32a29e45cda88", + "//conditions:default": "//private/sccs:pillow__10_3_0", }), visibility = ["//visibility:private"], ) @@ -1905,7 +1903,7 @@ alias( # pkg # { # "aspect_rules_py": { -# "b441bfc3c3fbed87": { +# "pkg__0_2": { # "": 1, # }, # }, @@ -1915,7 +1913,7 @@ alias( alias( name = "_package_pkg_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:b441bfc3c3fbed87", + "//conditions:default": "//private/sccs:pkg__0_2", }), visibility = ["//visibility:private"], ) @@ -1951,7 +1949,7 @@ alias( # pluggy # { # "aspect_rules_py": { -# "94204164e2a95885": { +# "pluggy__1_4_0": { # "": 1, # }, # }, @@ -1961,7 +1959,7 @@ alias( alias( name = "_package_pluggy_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:94204164e2a95885", + "//conditions:default": "//private/sccs:pluggy__1_4_0", }), visibility = ["//visibility:private"], ) @@ -1997,7 +1995,7 @@ alias( # psutil # { # "aspect_rules_py": { -# "605ce566dcea5c6e": { +# "psutil__5_9_8": { # "": 1, # }, # }, @@ -2007,7 +2005,7 @@ alias( alias( name = "_package_psutil_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:605ce566dcea5c6e", + "//conditions:default": "//private/sccs:psutil__5_9_8", }), visibility = ["//visibility:private"], ) @@ -2043,7 +2041,7 @@ alias( # pyjwt # { # "aspect_rules_py": { -# "188d1bae875e01c5": { +# "pyjwt__2_8_0": { # "": 1, # }, # }, @@ -2053,7 +2051,7 @@ alias( alias( name = "_package_pyjwt_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:188d1bae875e01c5", + "//conditions:default": "//private/sccs:pyjwt__2_8_0", }), visibility = ["//visibility:private"], ) @@ -2089,7 +2087,7 @@ alias( # pyproject_hooks # { # "aspect_rules_py": { -# "ee63e8df8d3acccd": { +# "pyproject_hooks__1_2_0": { # "": 1, # }, # }, @@ -2099,7 +2097,7 @@ alias( alias( name = "_package_pyproject_hooks_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:ee63e8df8d3acccd", + "//conditions:default": "//private/sccs:pyproject_hooks__1_2_0", }), visibility = ["//visibility:private"], ) @@ -2135,7 +2133,7 @@ alias( # pytest # { # "aspect_rules_py": { -# "1e0e56026e400a78": { +# "pytest__8_1_1": { # "": 1, # }, # }, @@ -2145,7 +2143,7 @@ alias( alias( name = "_package_pytest_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:1e0e56026e400a78", + "//conditions:default": "//private/sccs:pytest__8_1_1", }), visibility = ["//visibility:private"], ) @@ -2181,7 +2179,7 @@ alias( # python_dateutil # { # "aspect_rules_py": { -# "fe2c2ebbba7146e6": { +# "python_dateutil__2_9_0_post0": { # "": 1, # }, # }, @@ -2191,7 +2189,7 @@ alias( alias( name = "_package_python_dateutil_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:fe2c2ebbba7146e6", + "//conditions:default": "//private/sccs:python_dateutil__2_9_0_post0", }), visibility = ["//visibility:private"], ) @@ -2227,7 +2225,7 @@ alias( # pytz # { # "aspect_rules_py": { -# "e676cae8276d8ac5": { +# "pytz__2024_1": { # "": 1, # }, # }, @@ -2237,7 +2235,7 @@ alias( alias( name = "_package_pytz_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:e676cae8276d8ac5", + "//conditions:default": "//private/sccs:pytz__2024_1", }), visibility = ["//visibility:private"], ) @@ -2273,7 +2271,7 @@ alias( # pyyaml # { # "aspect_rules_py": { -# "0d90a0107911e2ee": { +# "pyyaml__6_0_1": { # "": 1, # }, # }, @@ -2283,7 +2281,7 @@ alias( alias( name = "_package_pyyaml_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:0d90a0107911e2ee", + "//conditions:default": "//private/sccs:pyyaml__6_0_1", }), visibility = ["//visibility:private"], ) @@ -2319,7 +2317,7 @@ alias( # referencing # { # "aspect_rules_py": { -# "79d80fb738204348": { +# "referencing__0_35_0": { # "": 1, # }, # }, @@ -2329,7 +2327,7 @@ alias( alias( name = "_package_referencing_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:79d80fb738204348", + "//conditions:default": "//private/sccs:referencing__0_35_0", }), visibility = ["//visibility:private"], ) @@ -2365,7 +2363,7 @@ alias( # requests # { # "aspect_rules_py": { -# "e5244e9a2665fdb2": { +# "requests__2_31_0": { # "": 1, # }, # }, @@ -2375,7 +2373,7 @@ alias( alias( name = "_package_requests_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:e5244e9a2665fdb2", + "//conditions:default": "//private/sccs:requests__2_31_0", }), visibility = ["//visibility:private"], ) @@ -2411,7 +2409,7 @@ alias( # requests_oauthlib # { # "aspect_rules_py": { -# "ad22749935bebfb1": { +# "requests_oauthlib__2_0_0": { # "": 1, # }, # }, @@ -2421,7 +2419,7 @@ alias( alias( name = "_package_requests_oauthlib_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:ad22749935bebfb1", + "//conditions:default": "//private/sccs:requests_oauthlib__2_0_0", }), visibility = ["//visibility:private"], ) @@ -2457,7 +2455,7 @@ alias( # rfc3339_validator # { # "aspect_rules_py": { -# "501678eadc2406c8": { +# "rfc3339_validator__0_1_4": { # "": 1, # }, # }, @@ -2467,7 +2465,7 @@ alias( alias( name = "_package_rfc3339_validator_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:501678eadc2406c8", + "//conditions:default": "//private/sccs:rfc3339_validator__0_1_4", }), visibility = ["//visibility:private"], ) @@ -2503,7 +2501,7 @@ alias( # rfc3986_validator # { # "aspect_rules_py": { -# "7e2655fa19c9381e": { +# "rfc3986_validator__0_1_1": { # "": 1, # }, # }, @@ -2513,7 +2511,7 @@ alias( alias( name = "_package_rfc3986_validator_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:7e2655fa19c9381e", + "//conditions:default": "//private/sccs:rfc3986_validator__0_1_1", }), visibility = ["//visibility:private"], ) @@ -2549,7 +2547,7 @@ alias( # rpds_py # { # "aspect_rules_py": { -# "daf8d376b4a8df52": { +# "rpds_py__0_18_0": { # "": 1, # }, # }, @@ -2559,7 +2557,7 @@ alias( alias( name = "_package_rpds_py_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:daf8d376b4a8df52", + "//conditions:default": "//private/sccs:rpds_py__0_18_0", }), visibility = ["//visibility:private"], ) @@ -2595,7 +2593,7 @@ alias( # s3transfer # { # "aspect_rules_py": { -# "b21aa6f0da345f65": { +# "s3transfer__0_10_1": { # "": 1, # }, # }, @@ -2605,7 +2603,7 @@ alias( alias( name = "_package_s3transfer_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:b21aa6f0da345f65", + "//conditions:default": "//private/sccs:s3transfer__0_10_1", }), visibility = ["//visibility:private"], ) @@ -2641,7 +2639,7 @@ alias( # setuptools # { # "aspect_rules_py": { -# "f16968e1474c15d5": { +# "setuptools__80_9_0": { # "": 1, # }, # }, @@ -2651,7 +2649,7 @@ alias( alias( name = "_package_setuptools_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:f16968e1474c15d5", + "//conditions:default": "//private/sccs:setuptools__80_9_0", }), visibility = ["//visibility:private"], ) @@ -2687,7 +2685,7 @@ alias( # simplejson # { # "aspect_rules_py": { -# "64670a6ca059db08": { +# "simplejson__3_19_2": { # "": 1, # }, # }, @@ -2697,7 +2695,7 @@ alias( alias( name = "_package_simplejson_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:64670a6ca059db08", + "//conditions:default": "//private/sccs:simplejson__3_19_2", }), visibility = ["//visibility:private"], ) @@ -2733,7 +2731,7 @@ alias( # six # { # "aspect_rules_py": { -# "4e0c8fcba708bfaa": { +# "six__1_16_0": { # "": 1, # }, # }, @@ -2743,7 +2741,7 @@ alias( alias( name = "_package_six_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:4e0c8fcba708bfaa", + "//conditions:default": "//private/sccs:six__1_16_0", }), visibility = ["//visibility:private"], ) @@ -2779,7 +2777,7 @@ alias( # smmap # { # "aspect_rules_py": { -# "d2e5aa217f8d6e1c": { +# "smmap__5_0_1": { # "": 1, # }, # }, @@ -2789,7 +2787,7 @@ alias( alias( name = "_package_smmap_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:d2e5aa217f8d6e1c", + "//conditions:default": "//private/sccs:smmap__5_0_1", }), visibility = ["//visibility:private"], ) @@ -2825,7 +2823,7 @@ alias( # snakesay # { # "aspect_rules_py": { -# "813a1389613cfa27": { +# "snakesay__0_10_3": { # "": 1, # }, # }, @@ -2835,7 +2833,7 @@ alias( alias( name = "_package_snakesay_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:813a1389613cfa27", + "//conditions:default": "//private/sccs:snakesay__0_10_3", }), visibility = ["//visibility:private"], ) @@ -2871,7 +2869,7 @@ alias( # sqlparse # { # "aspect_rules_py": { -# "f4309313f08dd20b": { +# "sqlparse__0_5_1": { # "": 1, # }, # }, @@ -2881,7 +2879,7 @@ alias( alias( name = "_package_sqlparse_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:f4309313f08dd20b", + "//conditions:default": "//private/sccs:sqlparse__0_5_1", }), visibility = ["//visibility:private"], ) @@ -2917,7 +2915,7 @@ alias( # swagger_spec_validator # { # "aspect_rules_py": { -# "cf43c11aa7568cfc": { +# "swagger_spec_validator__3_0_3": { # "": 1, # }, # }, @@ -2927,7 +2925,7 @@ alias( alias( name = "_package_swagger_spec_validator_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:cf43c11aa7568cfc", + "//conditions:default": "//private/sccs:swagger_spec_validator__3_0_3", }), visibility = ["//visibility:private"], ) @@ -2963,7 +2961,7 @@ alias( # tomli # { # "aspect_rules_py": { -# "c586b17b00ce1e93": { +# "tomli__2_4_0": { # "python_full_version < '3.11'": 1, # }, # }, @@ -2973,7 +2971,7 @@ alias( alias( name = "_package_tomli_aspect_rules_py", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//private/sccs:c586b17b00ce1e93", + "//private/markers:marker_0": "//private/sccs:tomli__2_4_0", "//conditions:default": "//private/sccs:empty", }), visibility = ["//visibility:private"], @@ -2983,7 +2981,7 @@ alias( alias( name = "_package_tomli_aspect_rules_py_whl", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "@whl_install__aspect_rules_py__tomli__2_4_0//:whl", + "//private/markers:marker_0": "@whl_install__aspect_rules_py__tomli__2_4_0//:whl", "//conditions:default": ":empty_whl", }), visibility = ["//visibility:private"], @@ -3011,7 +3009,7 @@ alias( # types_python_dateutil # { # "aspect_rules_py": { -# "1126c4a05de455bd": { +# "types_python_dateutil__2_9_0_20240316": { # "": 1, # }, # }, @@ -3021,7 +3019,7 @@ alias( alias( name = "_package_types_python_dateutil_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:1126c4a05de455bd", + "//conditions:default": "//private/sccs:types_python_dateutil__2_9_0_20240316", }), visibility = ["//visibility:private"], ) @@ -3057,7 +3055,7 @@ alias( # typing_extensions # { # "aspect_rules_py": { -# "532dae902462bf54": { +# "typing_extensions__4_12_2": { # "": 1, # "python_full_version < '3.11'": 1, # }, @@ -3068,7 +3066,7 @@ alias( alias( name = "_package_typing_extensions_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:532dae902462bf54", + "//conditions:default": "//private/sccs:typing_extensions__4_12_2", }), visibility = ["//visibility:private"], ) @@ -3104,7 +3102,7 @@ alias( # tzdata # { # "aspect_rules_py": { -# "e75ced7ea0bca451": { +# "tzdata__2024_1": { # "": 1, # "sys_platform == 'win32'": 1, # }, @@ -3115,7 +3113,7 @@ alias( alias( name = "_package_tzdata_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:e75ced7ea0bca451", + "//conditions:default": "//private/sccs:tzdata__2024_1", }), visibility = ["//visibility:private"], ) @@ -3151,7 +3149,7 @@ alias( # uri_template # { # "aspect_rules_py": { -# "8c7876aa6947b426": { +# "uri_template__1_3_0": { # "": 1, # }, # }, @@ -3161,7 +3159,7 @@ alias( alias( name = "_package_uri_template_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:8c7876aa6947b426", + "//conditions:default": "//private/sccs:uri_template__1_3_0", }), visibility = ["//visibility:private"], ) @@ -3197,7 +3195,7 @@ alias( # urllib3 # { # "aspect_rules_py": { -# "5fc6ecd45601013d": { +# "urllib3__1_26_19": { # "": 1, # }, # }, @@ -3207,7 +3205,7 @@ alias( alias( name = "_package_urllib3_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:5fc6ecd45601013d", + "//conditions:default": "//private/sccs:urllib3__1_26_19", }), visibility = ["//visibility:private"], ) @@ -3243,7 +3241,7 @@ alias( # wcwidth # { # "aspect_rules_py": { -# "a42101321901faea": { +# "wcwidth__0_2_13": { # "": 1, # }, # }, @@ -3253,7 +3251,7 @@ alias( alias( name = "_package_wcwidth_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:a42101321901faea", + "//conditions:default": "//private/sccs:wcwidth__0_2_13", }), visibility = ["//visibility:private"], ) @@ -3289,7 +3287,7 @@ alias( # webcolors # { # "aspect_rules_py": { -# "b2c4b8d6df4d741c": { +# "webcolors__1_13": { # "": 1, # }, # }, @@ -3299,7 +3297,7 @@ alias( alias( name = "_package_webcolors_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:b2c4b8d6df4d741c", + "//conditions:default": "//private/sccs:webcolors__1_13", }), visibility = ["//visibility:private"], ) @@ -3335,7 +3333,7 @@ alias( # websocket_client # { # "aspect_rules_py": { -# "c8fdcb8672c8c446": { +# "websocket_client__1_8_0": { # "": 1, # }, # }, @@ -3345,7 +3343,7 @@ alias( alias( name = "_package_websocket_client_aspect_rules_py", actual = select({ - "//conditions:default": "//private/sccs:c8fdcb8672c8c446", + "//conditions:default": "//private/sccs:websocket_client__1_8_0", }), visibility = ["//visibility:private"], ) @@ -3381,7 +3379,7 @@ alias( # zipp # { # "aspect_rules_py": { -# "0dfe8750086323f2": { +# "zipp__3_23_0": { # "python_full_version < '3.11'": 1, # }, # }, @@ -3391,7 +3389,7 @@ alias( alias( name = "_package_zipp_aspect_rules_py", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//private/sccs:0dfe8750086323f2", + "//private/markers:marker_0": "//private/sccs:zipp__3_23_0", "//conditions:default": "//private/sccs:empty", }), visibility = ["//visibility:private"], @@ -3401,7 +3399,7 @@ alias( alias( name = "_package_zipp_aspect_rules_py_whl", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "@whl_install__aspect_rules_py__zipp__3_23_0//:whl", + "//private/markers:marker_0": "@whl_install__aspect_rules_py__zipp__3_23_0//:whl", "//conditions:default": ":empty_whl", }), visibility = ["//visibility:private"], @@ -3511,79 +3509,79 @@ filegroup( filegroup( name = "gazelle_index_whls", srcs = [ - "@whl_install__aspect_rules_py__jmespath__1_0_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__arrow__1_3_0//:gazelle_index_whl", "@whl_install__aspect_rules_py__asgiref__3_8_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__gitpython__3_1_43//:gazelle_index_whl", - "@whl_install__aspect_rules_py__future__1_0_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__neptune__1_10_2//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pyyaml__6_0_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__zipp__3_23_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__types_python_dateutil__2_9_0_20240316//:gazelle_index_whl", - "@whl_install__aspect_rules_py__click__8_1_7//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pyjwt__2_8_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__botocore__1_34_93//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pillow__10_3_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pytest__8_1_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__attrs__23_2_0//:gazelle_index_whl", "@whl_install__aspect_rules_py__bazel_runfiles__1_1_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__boto3__1_34_93//:gazelle_index_whl", + "@whl_install__aspect_rules_py__botocore__1_34_93//:gazelle_index_whl", + "@whl_install__aspect_rules_py__bravado__11_0_3//:gazelle_index_whl", + "@whl_install__aspect_rules_py__bravado_core__6_1_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__build__1_3_0//:gazelle_index_whl", "@whl_install__aspect_rules_py__certifi__2024_7_4//:gazelle_index_whl", - "@whl_install__aspect_rules_py__maturin__1_11_5//:gazelle_index_whl", + "@whl_install__aspect_rules_py__charset_normalizer__3_3_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__click__8_1_7//:gazelle_index_whl", + "@whl_install__aspect_rules_py__colorama__0_4_6//:gazelle_index_whl", + "@whl_install__aspect_rules_py__coverage__7_6_10//:gazelle_index_whl", "@whl_install__aspect_rules_py__cowsay__6_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__six__1_16_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__rfc3339_validator__0_1_4//:gazelle_index_whl", - "@whl_install__aspect_rules_py__typing_extensions__4_12_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__django__4_2_15//:gazelle_index_whl", + "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__fqdn__1_5_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__ftfy__6_2_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__future__1_0_0//:gazelle_index_whl", "@whl_install__aspect_rules_py__gitdb__4_0_12//:gazelle_index_whl", + "@whl_install__aspect_rules_py__gitpython__3_1_43//:gazelle_index_whl", + "@whl_install__aspect_rules_py__idna__3_7//:gazelle_index_whl", + "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__iniconfig__2_0_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__isoduration__20_11_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__jmespath__1_0_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__jsonpointer__2_4//:gazelle_index_whl", + "@whl_install__aspect_rules_py__jsonref__1_1_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__jsonschema__4_21_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__jsonschema_specifications__2023_12_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__maturin__1_11_5//:gazelle_index_whl", + "@whl_install__aspect_rules_py__monotonic__1_6//:gazelle_index_whl", "@whl_install__aspect_rules_py__msgpack__1_0_8//:gazelle_index_whl", - "@whl_install__aspect_rules_py__bravado__11_0_3//:gazelle_index_whl", - "@whl_install__aspect_rules_py__urllib3__1_26_19//:gazelle_index_whl", + "@whl_install__aspect_rules_py__neptune__1_10_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__numpy__1_26_4//:gazelle_index_whl", + "@whl_install__aspect_rules_py__oauthlib__3_2_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__packaging__24_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pandas__2_2_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pillow__10_3_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pkg__0_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pluggy__1_4_0//:gazelle_index_whl", "@whl_install__aspect_rules_py__psutil__5_9_8//:gazelle_index_whl", - "@whl_install__aspect_rules_py__monotonic__1_6//:gazelle_index_whl", - "@whl_install__aspect_rules_py__simplejson__3_19_2//:gazelle_index_whl", - "@whl_install__aspect_rules_py__arrow__1_3_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__coverage__7_6_10//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pyjwt__2_8_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pyproject_hooks__1_2_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pytest__8_1_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__python_dateutil__2_9_0_post0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pytz__2024_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__pyyaml__6_0_1//:gazelle_index_whl", "@whl_install__aspect_rules_py__referencing__0_35_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__charset_normalizer__3_3_2//:gazelle_index_whl", - "@whl_install__aspect_rules_py__jsonschema_specifications__2023_12_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__attrs__23_2_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__requests__2_31_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__requests_oauthlib__2_0_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__rfc3339_validator__0_1_4//:gazelle_index_whl", "@whl_install__aspect_rules_py__rfc3986_validator__0_1_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__rpds_py__0_18_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__s3transfer__0_10_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__setuptools__80_9_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__simplejson__3_19_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__six__1_16_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__smmap__5_0_1//:gazelle_index_whl", "@whl_install__aspect_rules_py__snakesay__0_10_3//:gazelle_index_whl", - "@whl_install__aspect_rules_py__jsonschema__4_21_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__sqlparse__0_5_1//:gazelle_index_whl", + "@whl_install__aspect_rules_py__swagger_spec_validator__3_0_3//:gazelle_index_whl", + "@whl_install__aspect_rules_py__tomli__2_4_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__types_python_dateutil__2_9_0_20240316//:gazelle_index_whl", + "@whl_install__aspect_rules_py__typing_extensions__4_12_2//:gazelle_index_whl", + "@whl_install__aspect_rules_py__tzdata__2024_1//:gazelle_index_whl", "@whl_install__aspect_rules_py__uri_template__1_3_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pluggy__1_4_0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__urllib3__1_26_19//:gazelle_index_whl", "@whl_install__aspect_rules_py__wcwidth__0_2_13//:gazelle_index_whl", - "@whl_install__aspect_rules_py__iniconfig__2_0_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__build__1_3_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__oauthlib__3_2_2//:gazelle_index_whl", - "@whl_install__aspect_rules_py__requests_oauthlib__2_0_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__s3transfer__0_10_1//:gazelle_index_whl", "@whl_install__aspect_rules_py__webcolors__1_13//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pkg__0_2//:gazelle_index_whl", - "@whl_install__aspect_rules_py__isoduration__20_11_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__bravado_core__6_1_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__fqdn__1_5_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__django__4_2_15//:gazelle_index_whl", - "@whl_install__aspect_rules_py__tomli__2_4_0//:gazelle_index_whl", "@whl_install__aspect_rules_py__websocket_client__1_8_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__jsonref__1_1_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__swagger_spec_validator__3_0_3//:gazelle_index_whl", - "@whl_install__aspect_rules_py__boto3__1_34_93//:gazelle_index_whl", - "@whl_install__aspect_rules_py__smmap__5_0_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__colorama__0_4_6//:gazelle_index_whl", - "@whl_install__aspect_rules_py__rpds_py__0_18_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__idna__3_7//:gazelle_index_whl", - "@whl_install__aspect_rules_py__requests__2_31_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pandas__2_2_2//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pytz__2024_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__tzdata__2024_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__pyproject_hooks__1_2_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__setuptools__80_9_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__ftfy__6_2_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__sqlparse__0_5_1//:gazelle_index_whl", - "@whl_install__aspect_rules_py__jsonpointer__2_4//:gazelle_index_whl", - "@whl_install__aspect_rules_py__numpy__1_26_4//:gazelle_index_whl", - "@whl_install__aspect_rules_py__packaging__24_0//:gazelle_index_whl", - "@whl_install__aspect_rules_py__python_dateutil__2_9_0_post0//:gazelle_index_whl", + "@whl_install__aspect_rules_py__zipp__3_23_0//:gazelle_index_whl", ], visibility = ["//visibility:public"], ) diff --git a/uv/private/uv_hub/snapshots/project.private.markers.BUILD.bazel b/uv/private/uv_hub/snapshots/project.private.markers.BUILD.bazel index c3556f6a0..ce6614d9b 100644 --- a/uv/private/uv_hub/snapshots/project.private.markers.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/project.private.markers.BUILD.bazel @@ -4,43 +4,43 @@ load("@aspect_rules_py//uv/private/markers:defs.bzl", "decide_marker") decide_marker( - name = "f1406cfc2f85641e883d3ba9c27a964444fb80b1", + name = "marker_0", marker = "python_full_version < '3.11'", visibility = ["//:__subpackages__"], ) decide_marker( - name = "db384b5a67611795b7cf16442b57a34653387090", + name = "marker_1", marker = "python_full_version < '3.10.2'", visibility = ["//:__subpackages__"], ) decide_marker( - name = "3f86223bfcc789fb321ff9bf716d56b3833c02b4", - marker = "sys_platform == 'win32'", + name = "marker_2", + marker = "os_name == 'nt'", visibility = ["//:__subpackages__"], ) decide_marker( - name = "1ad1862a16d6a81b2e261b1afd5b12f09b7d1e6c", - marker = "(python_full_version < '3.10.2') and (python_full_version < '3.11')", + name = "marker_3", + marker = "sys_platform == 'win32'", visibility = ["//:__subpackages__"], ) decide_marker( - name = "12e4bc7c496178f88620c50eccb1bb90c24f7aff", - marker = "os_name == 'nt'", + name = "marker_4", + marker = "(python_full_version < '3.11') and (python_full_version < '3.11')", visibility = ["//:__subpackages__"], ) decide_marker( - name = "67b1edeb1aa91c0f50e1e49af7775f6d7837e291", - marker = "(python_full_version < '3.11') and (python_full_version < '3.11')", + name = "marker_5", + marker = "(python_full_version < '3.10.2') and (python_full_version < '3.11')", visibility = ["//:__subpackages__"], ) diff --git a/uv/private/uv_hub/snapshots/project.private.sccs.BUILD.bazel b/uv/private/uv_hub/snapshots/project.private.sccs.BUILD.bazel index b25ed0aa6..2495b83df 100644 --- a/uv/private/uv_hub/snapshots/project.private.sccs.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/project.private.sccs.BUILD.bazel @@ -9,27 +9,36 @@ py_library( ) -# scc: 0122121f49196a45 +# scc: arrow__1_3_0 # members: # { -# "@whl_install__aspect_rules_py__jmespath__1_0_1//:install": { +# "@whl_install__aspect_rules_py__arrow__1_3_0//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "python_dateutil": { +# "": 1, +# }, +# "types_python_dateutil": { +# "": 1, +# }, +# } py_library( - name = "0122121f49196a45", + name = "arrow__1_3_0", deps = [ - "@whl_install__aspect_rules_py__jmespath__1_0_1//:install", + "@whl_install__aspect_rules_py__arrow__1_3_0//:install", + "//:python_dateutil", + "//:types_python_dateutil", ], visibility = ["//:__subpackages__"], ) -# scc: 02c60fe71555dbc6 +# scc: asgiref__3_8_1 # members: # { # "@whl_install__aspect_rules_py__asgiref__3_8_1//:install": { @@ -45,9 +54,9 @@ py_library( alias( - name = "_maybe__02c60fe71555dbc6__406189b2fa92c520", + name = "_maybe__asgiref__3_8_1__typing_extensions", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:typing_extensions", + "//private/markers:marker_0": "//:typing_extensions", "//conditions:default": ":empty", }), visibility = ["//:__subpackages__"], @@ -55,44 +64,115 @@ alias( py_library( - name = "02c60fe71555dbc6", + name = "asgiref__3_8_1", deps = [ "@whl_install__aspect_rules_py__asgiref__3_8_1//:install", - ":_maybe__02c60fe71555dbc6__406189b2fa92c520", + ":_maybe__asgiref__3_8_1__typing_extensions", ], visibility = ["//:__subpackages__"], ) -# scc: 0b3eac9fa46ed553 +# scc: aspect_rules_py__0_0_0 # members: +# {} +# deps: # { -# "@whl_install__aspect_rules_py__gitpython__3_1_43//:install": { +# "bazel_runfiles": { +# "": 1, +# }, +# "build": { +# "": 1, +# }, +# "click": { +# "": 1, +# }, +# "colorama": { +# "": 1, +# }, +# "coverage": { +# "": 1, +# }, +# "cowsay": { +# "": 1, +# }, +# "django": { +# "": 1, +# }, +# "ftfy": { +# "": 1, +# }, +# "maturin": { +# "": 1, +# }, +# "neptune": { +# "": 1, +# }, +# "pkg": { +# "": 1, +# }, +# "pytest": { +# "": 1, +# }, +# "setuptools": { +# "": 1, +# }, +# "six": { +# "": 1, +# }, +# "snakesay": { # "": 1, # }, # } -# deps: + + +py_library( + name = "aspect_rules_py__0_0_0", + deps = [ + "//:bazel_runfiles", + "//:build", + "//:click", + "//:colorama", + "//:coverage", + "//:cowsay", + "//:django", + "//:ftfy", + "//:maturin", + "//:neptune", + "//:pkg", + "//:pytest", + "//:setuptools", + "//:six", + "//:snakesay", + ], + visibility = ["//:__subpackages__"], +) + + +# scc: attrs__23_2_0 +# members: # { -# "gitdb": { +# "@whl_install__aspect_rules_py__attrs__23_2_0//:install": { # "": 1, # }, # } +# deps: +# {} py_library( - name = "0b3eac9fa46ed553", + name = "attrs__23_2_0", deps = [ - "@whl_install__aspect_rules_py__gitpython__3_1_43//:install", - "//:gitdb", + "@whl_install__aspect_rules_py__attrs__23_2_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 0bf957689dc8a17a +# scc: bazel_runfiles__1_1_0 # members: # { -# "@whl_install__aspect_rules_py__future__1_0_0//:install": { +# "@whl_install__aspect_rules_py__bazel_runfiles__1_1_0//:install": { # "": 1, # }, # } @@ -101,131 +181,273 @@ py_library( py_library( - name = "0bf957689dc8a17a", + name = "bazel_runfiles__1_1_0", deps = [ - "@whl_install__aspect_rules_py__future__1_0_0//:install", + "@whl_install__aspect_rules_py__bazel_runfiles__1_1_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 0c448469fc42e513 +# scc: boto3__1_34_93 # members: # { -# "@whl_install__aspect_rules_py__neptune__1_10_2//:install": { +# "@whl_install__aspect_rules_py__boto3__1_34_93//:install": { # "": 1, # }, # } # deps: # { -# "boto3": { +# "botocore": { # "": 1, # }, -# "bravado": { +# "jmespath": { # "": 1, # }, -# "click": { +# "s3transfer": { # "": 1, # }, -# "future": { +# } + + +py_library( + name = "boto3__1_34_93", + deps = [ + "@whl_install__aspect_rules_py__boto3__1_34_93//:install", + "//:botocore", + "//:jmespath", + "//:s3transfer", + ], + visibility = ["//:__subpackages__"], +) + + +# scc: botocore__1_34_93 +# members: +# { +# "@whl_install__aspect_rules_py__botocore__1_34_93//:install": { # "": 1, # }, -# "gitpython": { +# } +# deps: +# { +# "jmespath": { # "": 1, # }, -# "oauthlib": { +# "python_dateutil": { # "": 1, # }, -# "packaging": { +# "urllib3": { # "": 1, # }, -# "pandas": { +# } + + +py_library( + name = "botocore__1_34_93", + deps = [ + "@whl_install__aspect_rules_py__botocore__1_34_93//:install", + "//:jmespath", + "//:python_dateutil", + "//:urllib3", + ], + visibility = ["//:__subpackages__"], +) + + +# scc: bravado__11_0_3 +# members: +# { +# "@whl_install__aspect_rules_py__bravado__11_0_3//:install": { # "": 1, # }, -# "pillow": { +# } +# deps: +# { +# "bravado_core": { # "": 1, # }, -# "psutil": { +# "monotonic": { # "": 1, # }, -# "pyjwt": { +# "msgpack": { +# "": 1, +# }, +# "python_dateutil": { +# "": 1, +# }, +# "pyyaml": { # "": 1, # }, # "requests": { # "": 1, # }, -# "requests_oauthlib": { +# "simplejson": { # "": 1, # }, # "six": { # "": 1, # }, -# "swagger_spec_validator": { +# "typing_extensions": { # "": 1, # }, -# "typing_extensions": { +# } + + +py_library( + name = "bravado__11_0_3", + deps = [ + "@whl_install__aspect_rules_py__bravado__11_0_3//:install", + "//:bravado_core", + "//:monotonic", + "//:msgpack", + "//:python_dateutil", + "//:pyyaml", + "//:requests", + "//:simplejson", + "//:six", + "//:typing_extensions", + ], + visibility = ["//:__subpackages__"], +) + + +# scc: bravado_core__6_1_1 +# members: +# { +# "@whl_install__aspect_rules_py__bravado_core__6_1_1//:install": { # "": 1, # }, -# "urllib3": { +# } +# deps: +# { +# "jsonref": { # "": 1, # }, -# "websocket_client": { +# "jsonschema": { +# "": 1, +# }, +# "msgpack": { +# "": 1, +# }, +# "python_dateutil": { +# "": 1, +# }, +# "pytz": { +# "": 1, +# }, +# "pyyaml": { +# "": 1, +# }, +# "requests": { +# "": 1, +# }, +# "simplejson": { +# "": 1, +# }, +# "six": { +# "": 1, +# }, +# "swagger_spec_validator": { # "": 1, # }, # } py_library( - name = "0c448469fc42e513", + name = "bravado_core__6_1_1", deps = [ - "@whl_install__aspect_rules_py__neptune__1_10_2//:install", - "//:boto3", - "//:bravado", - "//:click", - "//:future", - "//:gitpython", - "//:oauthlib", - "//:packaging", - "//:pandas", - "//:pillow", - "//:psutil", - "//:pyjwt", + "@whl_install__aspect_rules_py__bravado_core__6_1_1//:install", + "//:jsonref", + "//:jsonschema", + "//:msgpack", + "//:python_dateutil", + "//:pytz", + "//:pyyaml", "//:requests", - "//:requests_oauthlib", + "//:simplejson", "//:six", "//:swagger_spec_validator", - "//:typing_extensions", - "//:urllib3", - "//:websocket_client", ], visibility = ["//:__subpackages__"], ) -# scc: 0d90a0107911e2ee +# scc: build__1_3_0 # members: # { -# "@whl_install__aspect_rules_py__pyyaml__6_0_1//:install": { +# "@whl_install__aspect_rules_py__build__1_3_0//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "colorama": { +# "os_name == 'nt'": 1, +# }, +# "importlib_metadata": { +# "python_full_version < '3.10.2'": 1, +# }, +# "packaging": { +# "": 1, +# }, +# "pyproject_hooks": { +# "": 1, +# }, +# "tomli": { +# "python_full_version < '3.11'": 1, +# }, +# } + + +alias( + name = "_maybe__build__1_3_0__colorama", + actual = select({ + "//private/markers:marker_2": "//:colorama", + "//conditions:default": ":empty", + }), + visibility = ["//:__subpackages__"], +) + + +alias( + name = "_maybe__build__1_3_0__importlib_metadata", + actual = select({ + "//private/markers:marker_1": "//:importlib_metadata", + "//conditions:default": ":empty", + }), + visibility = ["//:__subpackages__"], +) + + +alias( + name = "_maybe__build__1_3_0__tomli", + actual = select({ + "//private/markers:marker_0": "//:tomli", + "//conditions:default": ":empty", + }), + visibility = ["//:__subpackages__"], +) py_library( - name = "0d90a0107911e2ee", + name = "build__1_3_0", deps = [ - "@whl_install__aspect_rules_py__pyyaml__6_0_1//:install", + "@whl_install__aspect_rules_py__build__1_3_0//:install", + ":_maybe__build__1_3_0__colorama", + ":_maybe__build__1_3_0__importlib_metadata", + "//:packaging", + "//:pyproject_hooks", + ":_maybe__build__1_3_0__tomli", ], visibility = ["//:__subpackages__"], ) -# scc: 0dfe8750086323f2 +# scc: certifi__2024_7_4 # members: # { -# "@whl_install__aspect_rules_py__zipp__3_23_0//:install": { +# "@whl_install__aspect_rules_py__certifi__2024_7_4//:install": { # "": 1, # }, # } @@ -234,18 +456,18 @@ py_library( py_library( - name = "0dfe8750086323f2", + name = "certifi__2024_7_4", deps = [ - "@whl_install__aspect_rules_py__zipp__3_23_0//:install", + "@whl_install__aspect_rules_py__certifi__2024_7_4//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 1126c4a05de455bd +# scc: charset_normalizer__3_3_2 # members: # { -# "@whl_install__aspect_rules_py__types_python_dateutil__2_9_0_20240316//:install": { +# "@whl_install__aspect_rules_py__charset_normalizer__3_3_2//:install": { # "": 1, # }, # } @@ -254,15 +476,15 @@ py_library( py_library( - name = "1126c4a05de455bd", + name = "charset_normalizer__3_3_2", deps = [ - "@whl_install__aspect_rules_py__types_python_dateutil__2_9_0_20240316//:install", + "@whl_install__aspect_rules_py__charset_normalizer__3_3_2//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 17569fac0688142c +# scc: click__8_1_7 # members: # { # "@whl_install__aspect_rules_py__click__8_1_7//:install": { @@ -278,9 +500,9 @@ py_library( alias( - name = "_maybe__17569fac0688142c__fd9b7770715c779f", + name = "_maybe__click__8_1_7__colorama", actual = select({ - "//private/markers:3f86223bfcc789fb321ff9bf716d56b3833c02b4": "//:colorama", + "//private/markers:marker_3": "//:colorama", "//conditions:default": ":empty", }), visibility = ["//:__subpackages__"], @@ -288,19 +510,19 @@ alias( py_library( - name = "17569fac0688142c", + name = "click__8_1_7", deps = [ "@whl_install__aspect_rules_py__click__8_1_7//:install", - ":_maybe__17569fac0688142c__fd9b7770715c779f", + ":_maybe__click__8_1_7__colorama", ], visibility = ["//:__subpackages__"], ) -# scc: 188d1bae875e01c5 +# scc: colorama__0_4_6 # members: # { -# "@whl_install__aspect_rules_py__pyjwt__2_8_0//:install": { +# "@whl_install__aspect_rules_py__colorama__0_4_6//:install": { # "": 1, # }, # } @@ -309,51 +531,38 @@ py_library( py_library( - name = "188d1bae875e01c5", + name = "colorama__0_4_6", deps = [ - "@whl_install__aspect_rules_py__pyjwt__2_8_0//:install", + "@whl_install__aspect_rules_py__colorama__0_4_6//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 1a9692ca440d40f6 +# scc: coverage__7_6_10 # members: # { -# "@whl_install__aspect_rules_py__botocore__1_34_93//:install": { +# "@whl_install__aspect_rules_py__coverage__7_6_10//:install": { # "": 1, # }, # } # deps: -# { -# "jmespath": { -# "": 1, -# }, -# "python_dateutil": { -# "": 1, -# }, -# "urllib3": { -# "": 1, -# }, -# } +# {} py_library( - name = "1a9692ca440d40f6", + name = "coverage__7_6_10", deps = [ - "@whl_install__aspect_rules_py__botocore__1_34_93//:install", - "//:jmespath", - "//:python_dateutil", - "//:urllib3", + "@whl_install__aspect_rules_py__coverage__7_6_10//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 1ab32a29e45cda88 +# scc: cowsay__6_1 # members: # { -# "@whl_install__aspect_rules_py__pillow__10_3_0//:install": { +# "@whl_install__aspect_rules_py__cowsay__6_1//:install": { # "": 1, # }, # } @@ -362,68 +571,39 @@ py_library( py_library( - name = "1ab32a29e45cda88", + name = "cowsay__6_1", deps = [ - "@whl_install__aspect_rules_py__pillow__10_3_0//:install", + "@whl_install__aspect_rules_py__cowsay__6_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 1e0e56026e400a78 +# scc: django__4_2_15 # members: # { -# "@whl_install__aspect_rules_py__pytest__8_1_1//:install": { +# "@whl_install__aspect_rules_py__django__4_2_15//:install": { # "": 1, # }, # } # deps: # { -# "colorama": { -# "sys_platform == 'win32'": 1, -# }, -# "exceptiongroup": { -# "python_full_version < '3.11'": 1, -# }, -# "iniconfig": { -# "": 1, -# }, -# "packaging": { +# "asgiref": { # "": 1, # }, -# "pluggy": { +# "sqlparse": { # "": 1, # }, -# "tomli": { -# "python_full_version < '3.11'": 1, +# "tzdata": { +# "sys_platform == 'win32'": 1, # }, # } alias( - name = "_maybe__1e0e56026e400a78__fd9b7770715c779f", - actual = select({ - "//private/markers:3f86223bfcc789fb321ff9bf716d56b3833c02b4": "//:colorama", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - -alias( - name = "_maybe__1e0e56026e400a78__520b4425048c4c29", - actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:exceptiongroup", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - -alias( - name = "_maybe__1e0e56026e400a78__b3bca24d7b58766c", + name = "_maybe__django__4_2_15__tzdata", actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:tomli", + "//private/markers:marker_3": "//:tzdata", "//conditions:default": ":empty", }), visibility = ["//:__subpackages__"], @@ -431,120 +611,58 @@ alias( py_library( - name = "1e0e56026e400a78", + name = "django__4_2_15", deps = [ - "@whl_install__aspect_rules_py__pytest__8_1_1//:install", - ":_maybe__1e0e56026e400a78__fd9b7770715c779f", - ":_maybe__1e0e56026e400a78__520b4425048c4c29", - "//:iniconfig", - "//:packaging", - "//:pluggy", - ":_maybe__1e0e56026e400a78__b3bca24d7b58766c", + "@whl_install__aspect_rules_py__django__4_2_15//:install", + "//:asgiref", + "//:sqlparse", + ":_maybe__django__4_2_15__tzdata", ], visibility = ["//:__subpackages__"], ) -# scc: 36263f2e745aec68 +# scc: exceptiongroup__1_3_1 # members: # { -# "@whl_install__aspect_rules_py__bazel_runfiles__1_1_0//:install": { +# "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "typing_extensions": { +# "(python_full_version < '3.11') and (python_full_version < '3.11')": 1, +# "python_full_version < '3.11'": 1, +# }, +# } -py_library( - name = "36263f2e745aec68", - deps = [ - "@whl_install__aspect_rules_py__bazel_runfiles__1_1_0//:install", - ], +alias( + name = "_maybe__exceptiongroup__1_3_1__typing_extensions", + actual = select({ + "//private/markers:marker_4": "//:typing_extensions", + "//private/markers:marker_0": "//:typing_extensions", + "//conditions:default": ":empty", + }), visibility = ["//:__subpackages__"], ) -# scc: 3bf90d5a8d65a96f -# members: -# {} -# deps: -# { -# "bazel_runfiles": { -# "": 1, -# }, -# "build": { -# "": 1, -# }, -# "click": { -# "": 1, -# }, -# "colorama": { -# "": 1, -# }, -# "coverage": { -# "": 1, -# }, -# "cowsay": { -# "": 1, -# }, -# "django": { -# "": 1, -# }, -# "ftfy": { -# "": 1, -# }, -# "maturin": { -# "": 1, -# }, -# "neptune": { -# "": 1, -# }, -# "pkg": { -# "": 1, -# }, -# "pytest": { -# "": 1, -# }, -# "setuptools": { -# "": 1, -# }, -# "six": { -# "": 1, -# }, -# "snakesay": { -# "": 1, -# }, -# } - - py_library( - name = "3bf90d5a8d65a96f", + name = "exceptiongroup__1_3_1", deps = [ - "//:bazel_runfiles", - "//:build", - "//:click", - "//:colorama", - "//:coverage", - "//:cowsay", - "//:django", - "//:ftfy", - "//:maturin", - "//:neptune", - "//:pkg", - "//:pytest", - "//:setuptools", - "//:six", - "//:snakesay", + "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:install", + ":_maybe__exceptiongroup__1_3_1__typing_extensions", ], visibility = ["//:__subpackages__"], ) -# scc: 3d28b6e946c58648 +# scc: fqdn__1_5_1 # members: # { -# "@whl_install__aspect_rules_py__certifi__2024_7_4//:install": { +# "@whl_install__aspect_rules_py__fqdn__1_5_1//:install": { # "": 1, # }, # } @@ -553,53 +671,43 @@ py_library( py_library( - name = "3d28b6e946c58648", + name = "fqdn__1_5_1", deps = [ - "@whl_install__aspect_rules_py__certifi__2024_7_4//:install", + "@whl_install__aspect_rules_py__fqdn__1_5_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 3efdd519ba908a3d +# scc: ftfy__6_2_0 # members: # { -# "@whl_install__aspect_rules_py__maturin__1_11_5//:install": { +# "@whl_install__aspect_rules_py__ftfy__6_2_0//:install": { # "": 1, # }, # } # deps: # { -# "tomli": { -# "python_full_version < '3.11'": 1, +# "wcwidth": { +# "": 1, # }, # } -alias( - name = "_maybe__3efdd519ba908a3d__b3bca24d7b58766c", - actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:tomli", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - py_library( - name = "3efdd519ba908a3d", + name = "ftfy__6_2_0", deps = [ - "@whl_install__aspect_rules_py__maturin__1_11_5//:install", - ":_maybe__3efdd519ba908a3d__b3bca24d7b58766c", + "@whl_install__aspect_rules_py__ftfy__6_2_0//:install", + "//:wcwidth", ], visibility = ["//:__subpackages__"], ) -# scc: 47a07453022c3f00 +# scc: future__1_0_0 # members: # { -# "@whl_install__aspect_rules_py__cowsay__6_1//:install": { +# "@whl_install__aspect_rules_py__future__1_0_0//:install": { # "": 1, # }, # } @@ -608,63 +716,68 @@ py_library( py_library( - name = "47a07453022c3f00", + name = "future__1_0_0", deps = [ - "@whl_install__aspect_rules_py__cowsay__6_1//:install", + "@whl_install__aspect_rules_py__future__1_0_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 4e0c8fcba708bfaa +# scc: gitdb__4_0_12 # members: # { -# "@whl_install__aspect_rules_py__six__1_16_0//:install": { +# "@whl_install__aspect_rules_py__gitdb__4_0_12//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "smmap": { +# "": 1, +# }, +# } py_library( - name = "4e0c8fcba708bfaa", + name = "gitdb__4_0_12", deps = [ - "@whl_install__aspect_rules_py__six__1_16_0//:install", + "@whl_install__aspect_rules_py__gitdb__4_0_12//:install", + "//:smmap", ], visibility = ["//:__subpackages__"], ) -# scc: 501678eadc2406c8 +# scc: gitpython__3_1_43 # members: # { -# "@whl_install__aspect_rules_py__rfc3339_validator__0_1_4//:install": { +# "@whl_install__aspect_rules_py__gitpython__3_1_43//:install": { # "": 1, # }, # } # deps: # { -# "six": { +# "gitdb": { # "": 1, # }, # } py_library( - name = "501678eadc2406c8", + name = "gitpython__3_1_43", deps = [ - "@whl_install__aspect_rules_py__rfc3339_validator__0_1_4//:install", - "//:six", + "@whl_install__aspect_rules_py__gitpython__3_1_43//:install", + "//:gitdb", ], visibility = ["//:__subpackages__"], ) -# scc: 532dae902462bf54 +# scc: idna__3_7 # members: # { -# "@whl_install__aspect_rules_py__typing_extensions__4_12_2//:install": { +# "@whl_install__aspect_rules_py__idna__3_7//:install": { # "": 1, # }, # } @@ -673,43 +786,55 @@ py_library( py_library( - name = "532dae902462bf54", + name = "idna__3_7", deps = [ - "@whl_install__aspect_rules_py__typing_extensions__4_12_2//:install", + "@whl_install__aspect_rules_py__idna__3_7//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 57bbb1e13328c57d +# scc: importlib_metadata__8_7_1 # members: # { -# "@whl_install__aspect_rules_py__gitdb__4_0_12//:install": { +# "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:install": { # "": 1, # }, # } # deps: # { -# "smmap": { -# "": 1, +# "zipp": { +# "(python_full_version < '3.10.2') and (python_full_version < '3.11')": 1, +# "python_full_version < '3.11'": 1, # }, # } +alias( + name = "_maybe__importlib_metadata__8_7_1__zipp", + actual = select({ + "//private/markers:marker_5": "//:zipp", + "//private/markers:marker_0": "//:zipp", + "//conditions:default": ":empty", + }), + visibility = ["//:__subpackages__"], +) + + py_library( - name = "57bbb1e13328c57d", + name = "importlib_metadata__8_7_1", deps = [ - "@whl_install__aspect_rules_py__gitdb__4_0_12//:install", - "//:smmap", + "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:install", + ":_maybe__importlib_metadata__8_7_1__zipp", ], visibility = ["//:__subpackages__"], ) -# scc: 57db4c17774c1aff +# scc: iniconfig__2_0_0 # members: # { -# "@whl_install__aspect_rules_py__msgpack__1_0_8//:install": { +# "@whl_install__aspect_rules_py__iniconfig__2_0_0//:install": { # "": 1, # }, # } @@ -718,75 +843,43 @@ py_library( py_library( - name = "57db4c17774c1aff", + name = "iniconfig__2_0_0", deps = [ - "@whl_install__aspect_rules_py__msgpack__1_0_8//:install", + "@whl_install__aspect_rules_py__iniconfig__2_0_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 5ad4c33225a6c315 +# scc: isoduration__20_11_0 # members: # { -# "@whl_install__aspect_rules_py__bravado__11_0_3//:install": { +# "@whl_install__aspect_rules_py__isoduration__20_11_0//:install": { # "": 1, # }, # } # deps: # { -# "bravado_core": { -# "": 1, -# }, -# "monotonic": { -# "": 1, -# }, -# "msgpack": { -# "": 1, -# }, -# "python_dateutil": { -# "": 1, -# }, -# "pyyaml": { -# "": 1, -# }, -# "requests": { -# "": 1, -# }, -# "simplejson": { -# "": 1, -# }, -# "six": { -# "": 1, -# }, -# "typing_extensions": { +# "arrow": { # "": 1, # }, # } py_library( - name = "5ad4c33225a6c315", + name = "isoduration__20_11_0", deps = [ - "@whl_install__aspect_rules_py__bravado__11_0_3//:install", - "//:bravado_core", - "//:monotonic", - "//:msgpack", - "//:python_dateutil", - "//:pyyaml", - "//:requests", - "//:simplejson", - "//:six", - "//:typing_extensions", + "@whl_install__aspect_rules_py__isoduration__20_11_0//:install", + "//:arrow", ], visibility = ["//:__subpackages__"], ) -# scc: 5fc6ecd45601013d +# scc: jmespath__1_0_1 # members: # { -# "@whl_install__aspect_rules_py__urllib3__1_26_19//:install": { +# "@whl_install__aspect_rules_py__jmespath__1_0_1//:install": { # "": 1, # }, # } @@ -795,18 +888,18 @@ py_library( py_library( - name = "5fc6ecd45601013d", + name = "jmespath__1_0_1", deps = [ - "@whl_install__aspect_rules_py__urllib3__1_26_19//:install", + "@whl_install__aspect_rules_py__jmespath__1_0_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 605ce566dcea5c6e +# scc: jsonpointer__2_4 # members: # { -# "@whl_install__aspect_rules_py__psutil__5_9_8//:install": { +# "@whl_install__aspect_rules_py__jsonpointer__2_4//:install": { # "": 1, # }, # } @@ -815,18 +908,18 @@ py_library( py_library( - name = "605ce566dcea5c6e", + name = "jsonpointer__2_4", deps = [ - "@whl_install__aspect_rules_py__psutil__5_9_8//:install", + "@whl_install__aspect_rules_py__jsonpointer__2_4//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 645e8b10704343f3 +# scc: jsonref__1_1_0 # members: # { -# "@whl_install__aspect_rules_py__monotonic__1_6//:install": { +# "@whl_install__aspect_rules_py__jsonref__1_1_0//:install": { # "": 1, # }, # } @@ -835,84 +928,127 @@ py_library( py_library( - name = "645e8b10704343f3", + name = "jsonref__1_1_0", deps = [ - "@whl_install__aspect_rules_py__monotonic__1_6//:install", + "@whl_install__aspect_rules_py__jsonref__1_1_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 64670a6ca059db08 +# scc: jsonschema__4_21_1 # members: # { -# "@whl_install__aspect_rules_py__simplejson__3_19_2//:install": { +# "@whl_install__aspect_rules_py__jsonschema__4_21_1//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "attrs": { +# "": 1, +# }, +# "fqdn": { +# "": 1, +# }, +# "idna": { +# "": 1, +# }, +# "isoduration": { +# "": 1, +# }, +# "jsonpointer": { +# "": 1, +# }, +# "jsonschema_specifications": { +# "": 1, +# }, +# "referencing": { +# "": 1, +# }, +# "rfc3339_validator": { +# "": 1, +# }, +# "rfc3986_validator": { +# "": 1, +# }, +# "rpds_py": { +# "": 1, +# }, +# "uri_template": { +# "": 1, +# }, +# "webcolors": { +# "": 1, +# }, +# } py_library( - name = "64670a6ca059db08", + name = "jsonschema__4_21_1", deps = [ - "@whl_install__aspect_rules_py__simplejson__3_19_2//:install", + "@whl_install__aspect_rules_py__jsonschema__4_21_1//:install", + "//:attrs", + "//:fqdn", + "//:idna", + "//:isoduration", + "//:jsonpointer", + "//:jsonschema_specifications", + "//:referencing", + "//:rfc3339_validator", + "//:rfc3986_validator", + "//:rpds_py", + "//:uri_template", + "//:webcolors", ], visibility = ["//:__subpackages__"], ) -# scc: 66db1ee5578c91b3 +# scc: jsonschema_specifications__2023_12_1 # members: # { -# "@whl_install__aspect_rules_py__arrow__1_3_0//:install": { +# "@whl_install__aspect_rules_py__jsonschema_specifications__2023_12_1//:install": { # "": 1, # }, # } # deps: # { -# "python_dateutil": { -# "": 1, -# }, -# "types_python_dateutil": { +# "referencing": { # "": 1, # }, # } py_library( - name = "66db1ee5578c91b3", + name = "jsonschema_specifications__2023_12_1", deps = [ - "@whl_install__aspect_rules_py__arrow__1_3_0//:install", - "//:python_dateutil", - "//:types_python_dateutil", + "@whl_install__aspect_rules_py__jsonschema_specifications__2023_12_1//:install", + "//:referencing", ], visibility = ["//:__subpackages__"], ) -# scc: 755a2d8d1d107b02 +# scc: maturin__1_11_5 # members: # { -# "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:install": { +# "@whl_install__aspect_rules_py__maturin__1_11_5//:install": { # "": 1, # }, # } # deps: # { -# "zipp": { -# "(python_full_version < '3.10.2') and (python_full_version < '3.11')": 1, +# "tomli": { # "python_full_version < '3.11'": 1, # }, # } alias( - name = "_maybe__755a2d8d1d107b02__f4aa5147405e1f10", + name = "_maybe__maturin__1_11_5__tomli", actual = select({ - "//private/markers:1ad1862a16d6a81b2e261b1afd5b12f09b7d1e6c": "//:zipp", - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:zipp", + "//private/markers:marker_0": "//:tomli", "//conditions:default": ":empty", }), visibility = ["//:__subpackages__"], @@ -920,19 +1056,19 @@ alias( py_library( - name = "755a2d8d1d107b02", + name = "maturin__1_11_5", deps = [ - "@whl_install__aspect_rules_py__importlib_metadata__8_7_1//:install", - ":_maybe__755a2d8d1d107b02__f4aa5147405e1f10", + "@whl_install__aspect_rules_py__maturin__1_11_5//:install", + ":_maybe__maturin__1_11_5__tomli", ], visibility = ["//:__subpackages__"], ) -# scc: 75d05c99d874710d +# scc: monotonic__1_6 # members: # { -# "@whl_install__aspect_rules_py__coverage__7_6_10//:install": { +# "@whl_install__aspect_rules_py__monotonic__1_6//:install": { # "": 1, # }, # } @@ -941,92 +1077,131 @@ py_library( py_library( - name = "75d05c99d874710d", + name = "monotonic__1_6", deps = [ - "@whl_install__aspect_rules_py__coverage__7_6_10//:install", + "@whl_install__aspect_rules_py__monotonic__1_6//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 79d80fb738204348 +# scc: msgpack__1_0_8 # members: # { -# "@whl_install__aspect_rules_py__referencing__0_35_0//:install": { +# "@whl_install__aspect_rules_py__msgpack__1_0_8//:install": { # "": 1, # }, # } # deps: -# { -# "attrs": { -# "": 1, -# }, -# "rpds_py": { -# "": 1, -# }, -# } +# {} py_library( - name = "79d80fb738204348", + name = "msgpack__1_0_8", deps = [ - "@whl_install__aspect_rules_py__referencing__0_35_0//:install", - "//:attrs", - "//:rpds_py", + "@whl_install__aspect_rules_py__msgpack__1_0_8//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 7a5508482ee7c7ef +# scc: neptune__1_10_2 # members: # { -# "@whl_install__aspect_rules_py__charset_normalizer__3_3_2//:install": { +# "@whl_install__aspect_rules_py__neptune__1_10_2//:install": { # "": 1, # }, # } # deps: -# {} - - -py_library( - name = "7a5508482ee7c7ef", - deps = [ - "@whl_install__aspect_rules_py__charset_normalizer__3_3_2//:install", - ], - visibility = ["//:__subpackages__"], -) - - -# scc: 7b750f6dabe77708 -# members: # { -# "@whl_install__aspect_rules_py__jsonschema_specifications__2023_12_1//:install": { +# "boto3": { # "": 1, # }, -# } -# deps: -# { -# "referencing": { +# "bravado": { +# "": 1, +# }, +# "click": { +# "": 1, +# }, +# "future": { +# "": 1, +# }, +# "gitpython": { +# "": 1, +# }, +# "oauthlib": { +# "": 1, +# }, +# "packaging": { +# "": 1, +# }, +# "pandas": { +# "": 1, +# }, +# "pillow": { +# "": 1, +# }, +# "psutil": { +# "": 1, +# }, +# "pyjwt": { +# "": 1, +# }, +# "requests": { +# "": 1, +# }, +# "requests_oauthlib": { +# "": 1, +# }, +# "six": { +# "": 1, +# }, +# "swagger_spec_validator": { +# "": 1, +# }, +# "typing_extensions": { +# "": 1, +# }, +# "urllib3": { +# "": 1, +# }, +# "websocket_client": { # "": 1, # }, # } py_library( - name = "7b750f6dabe77708", + name = "neptune__1_10_2", deps = [ - "@whl_install__aspect_rules_py__jsonschema_specifications__2023_12_1//:install", - "//:referencing", + "@whl_install__aspect_rules_py__neptune__1_10_2//:install", + "//:boto3", + "//:bravado", + "//:click", + "//:future", + "//:gitpython", + "//:oauthlib", + "//:packaging", + "//:pandas", + "//:pillow", + "//:psutil", + "//:pyjwt", + "//:requests", + "//:requests_oauthlib", + "//:six", + "//:swagger_spec_validator", + "//:typing_extensions", + "//:urllib3", + "//:websocket_client", ], visibility = ["//:__subpackages__"], ) -# scc: 7dc7776b98af97fb +# scc: numpy__1_26_4 # members: # { -# "@whl_install__aspect_rules_py__attrs__23_2_0//:install": { +# "@whl_install__aspect_rules_py__numpy__1_26_4//:install": { # "": 1, # }, # } @@ -1035,18 +1210,18 @@ py_library( py_library( - name = "7dc7776b98af97fb", + name = "numpy__1_26_4", deps = [ - "@whl_install__aspect_rules_py__attrs__23_2_0//:install", + "@whl_install__aspect_rules_py__numpy__1_26_4//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 7e2655fa19c9381e +# scc: oauthlib__3_2_2 # members: # { -# "@whl_install__aspect_rules_py__rfc3986_validator__0_1_1//:install": { +# "@whl_install__aspect_rules_py__oauthlib__3_2_2//:install": { # "": 1, # }, # } @@ -1055,18 +1230,18 @@ py_library( py_library( - name = "7e2655fa19c9381e", + name = "oauthlib__3_2_2", deps = [ - "@whl_install__aspect_rules_py__rfc3986_validator__0_1_1//:install", + "@whl_install__aspect_rules_py__oauthlib__3_2_2//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 813a1389613cfa27 +# scc: packaging__24_0 # members: # { -# "@whl_install__aspect_rules_py__snakesay__0_10_3//:install": { +# "@whl_install__aspect_rules_py__packaging__24_0//:install": { # "": 1, # }, # } @@ -1075,87 +1250,55 @@ py_library( py_library( - name = "813a1389613cfa27", + name = "packaging__24_0", deps = [ - "@whl_install__aspect_rules_py__snakesay__0_10_3//:install", + "@whl_install__aspect_rules_py__packaging__24_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 83c2335691aac8c7 +# scc: pandas__2_2_2 # members: # { -# "@whl_install__aspect_rules_py__jsonschema__4_21_1//:install": { +# "@whl_install__aspect_rules_py__pandas__2_2_2//:install": { # "": 1, # }, # } # deps: # { -# "attrs": { -# "": 1, -# }, -# "fqdn": { -# "": 1, -# }, -# "idna": { -# "": 1, -# }, -# "isoduration": { -# "": 1, -# }, -# "jsonpointer": { -# "": 1, -# }, -# "jsonschema_specifications": { -# "": 1, -# }, -# "referencing": { -# "": 1, -# }, -# "rfc3339_validator": { -# "": 1, -# }, -# "rfc3986_validator": { +# "numpy": { # "": 1, # }, -# "rpds_py": { +# "python_dateutil": { # "": 1, # }, -# "uri_template": { +# "pytz": { # "": 1, # }, -# "webcolors": { +# "tzdata": { # "": 1, # }, # } py_library( - name = "83c2335691aac8c7", + name = "pandas__2_2_2", deps = [ - "@whl_install__aspect_rules_py__jsonschema__4_21_1//:install", - "//:attrs", - "//:fqdn", - "//:idna", - "//:isoduration", - "//:jsonpointer", - "//:jsonschema_specifications", - "//:referencing", - "//:rfc3339_validator", - "//:rfc3986_validator", - "//:rpds_py", - "//:uri_template", - "//:webcolors", + "@whl_install__aspect_rules_py__pandas__2_2_2//:install", + "//:numpy", + "//:python_dateutil", + "//:pytz", + "//:tzdata", ], visibility = ["//:__subpackages__"], ) -# scc: 8c7876aa6947b426 +# scc: pillow__10_3_0 # members: # { -# "@whl_install__aspect_rules_py__uri_template__1_3_0//:install": { +# "@whl_install__aspect_rules_py__pillow__10_3_0//:install": { # "": 1, # }, # } @@ -1164,18 +1307,18 @@ py_library( py_library( - name = "8c7876aa6947b426", + name = "pillow__10_3_0", deps = [ - "@whl_install__aspect_rules_py__uri_template__1_3_0//:install", + "@whl_install__aspect_rules_py__pillow__10_3_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: 94204164e2a95885 +# scc: pkg__0_2 # members: # { -# "@whl_install__aspect_rules_py__pluggy__1_4_0//:install": { +# "@whl_install__aspect_rules_py__pkg__0_2//:install": { # "": 1, # }, # } @@ -1184,18 +1327,18 @@ py_library( py_library( - name = "94204164e2a95885", + name = "pkg__0_2", deps = [ - "@whl_install__aspect_rules_py__pluggy__1_4_0//:install", + "@whl_install__aspect_rules_py__pkg__0_2//:install", ], visibility = ["//:__subpackages__"], ) -# scc: a42101321901faea +# scc: pluggy__1_4_0 # members: # { -# "@whl_install__aspect_rules_py__wcwidth__0_2_13//:install": { +# "@whl_install__aspect_rules_py__pluggy__1_4_0//:install": { # "": 1, # }, # } @@ -1204,18 +1347,18 @@ py_library( py_library( - name = "a42101321901faea", + name = "pluggy__1_4_0", deps = [ - "@whl_install__aspect_rules_py__wcwidth__0_2_13//:install", + "@whl_install__aspect_rules_py__pluggy__1_4_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: a645893aac936c2f +# scc: psutil__5_9_8 # members: # { -# "@whl_install__aspect_rules_py__iniconfig__2_0_0//:install": { +# "@whl_install__aspect_rules_py__psutil__5_9_8//:install": { # "": 1, # }, # } @@ -1224,89 +1367,38 @@ py_library( py_library( - name = "a645893aac936c2f", + name = "psutil__5_9_8", deps = [ - "@whl_install__aspect_rules_py__iniconfig__2_0_0//:install", + "@whl_install__aspect_rules_py__psutil__5_9_8//:install", ], visibility = ["//:__subpackages__"], ) -# scc: a6e543d0278612c3 +# scc: pyjwt__2_8_0 # members: # { -# "@whl_install__aspect_rules_py__build__1_3_0//:install": { +# "@whl_install__aspect_rules_py__pyjwt__2_8_0//:install": { # "": 1, # }, # } # deps: -# { -# "colorama": { -# "os_name == 'nt'": 1, -# }, -# "importlib_metadata": { -# "python_full_version < '3.10.2'": 1, -# }, -# "packaging": { -# "": 1, -# }, -# "pyproject_hooks": { -# "": 1, -# }, -# "tomli": { -# "python_full_version < '3.11'": 1, -# }, -# } - - -alias( - name = "_maybe__a6e543d0278612c3__fd9b7770715c779f", - actual = select({ - "//private/markers:12e4bc7c496178f88620c50eccb1bb90c24f7aff": "//:colorama", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - -alias( - name = "_maybe__a6e543d0278612c3__f8dd3b4b139f76a6", - actual = select({ - "//private/markers:db384b5a67611795b7cf16442b57a34653387090": "//:importlib_metadata", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - -alias( - name = "_maybe__a6e543d0278612c3__b3bca24d7b58766c", - actual = select({ - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:tomli", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) +# {} py_library( - name = "a6e543d0278612c3", + name = "pyjwt__2_8_0", deps = [ - "@whl_install__aspect_rules_py__build__1_3_0//:install", - ":_maybe__a6e543d0278612c3__fd9b7770715c779f", - ":_maybe__a6e543d0278612c3__f8dd3b4b139f76a6", - "//:packaging", - "//:pyproject_hooks", - ":_maybe__a6e543d0278612c3__b3bca24d7b58766c", + "@whl_install__aspect_rules_py__pyjwt__2_8_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: abf028a68f5c5ef2 +# scc: pyproject_hooks__1_2_0 # members: # { -# "@whl_install__aspect_rules_py__oauthlib__3_2_2//:install": { +# "@whl_install__aspect_rules_py__pyproject_hooks__1_2_0//:install": { # "": 1, # }, # } @@ -1315,318 +1407,278 @@ py_library( py_library( - name = "abf028a68f5c5ef2", + name = "pyproject_hooks__1_2_0", deps = [ - "@whl_install__aspect_rules_py__oauthlib__3_2_2//:install", + "@whl_install__aspect_rules_py__pyproject_hooks__1_2_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: ad22749935bebfb1 +# scc: pytest__8_1_1 # members: # { -# "@whl_install__aspect_rules_py__requests_oauthlib__2_0_0//:install": { +# "@whl_install__aspect_rules_py__pytest__8_1_1//:install": { # "": 1, # }, # } # deps: # { -# "oauthlib": { -# "": 1, +# "colorama": { +# "sys_platform == 'win32'": 1, # }, -# "requests": { +# "exceptiongroup": { +# "python_full_version < '3.11'": 1, +# }, +# "iniconfig": { # "": 1, # }, -# } - - -py_library( - name = "ad22749935bebfb1", - deps = [ - "@whl_install__aspect_rules_py__requests_oauthlib__2_0_0//:install", - "//:oauthlib", - "//:requests", - ], - visibility = ["//:__subpackages__"], -) - - -# scc: b21aa6f0da345f65 -# members: -# { -# "@whl_install__aspect_rules_py__s3transfer__0_10_1//:install": { +# "packaging": { # "": 1, # }, -# } -# deps: -# { -# "botocore": { +# "pluggy": { # "": 1, # }, +# "tomli": { +# "python_full_version < '3.11'": 1, +# }, # } -py_library( - name = "b21aa6f0da345f65", - deps = [ - "@whl_install__aspect_rules_py__s3transfer__0_10_1//:install", - "//:botocore", - ], +alias( + name = "_maybe__pytest__8_1_1__colorama", + actual = select({ + "//private/markers:marker_3": "//:colorama", + "//conditions:default": ":empty", + }), visibility = ["//:__subpackages__"], ) -# scc: b2c4b8d6df4d741c -# members: -# { -# "@whl_install__aspect_rules_py__webcolors__1_13//:install": { -# "": 1, -# }, -# } -# deps: -# {} - - -py_library( - name = "b2c4b8d6df4d741c", - deps = [ - "@whl_install__aspect_rules_py__webcolors__1_13//:install", - ], +alias( + name = "_maybe__pytest__8_1_1__exceptiongroup", + actual = select({ + "//private/markers:marker_0": "//:exceptiongroup", + "//conditions:default": ":empty", + }), visibility = ["//:__subpackages__"], ) -# scc: b441bfc3c3fbed87 -# members: -# { -# "@whl_install__aspect_rules_py__pkg__0_2//:install": { -# "": 1, -# }, -# } -# deps: -# {} +alias( + name = "_maybe__pytest__8_1_1__tomli", + actual = select({ + "//private/markers:marker_0": "//:tomli", + "//conditions:default": ":empty", + }), + visibility = ["//:__subpackages__"], +) py_library( - name = "b441bfc3c3fbed87", + name = "pytest__8_1_1", deps = [ - "@whl_install__aspect_rules_py__pkg__0_2//:install", + "@whl_install__aspect_rules_py__pytest__8_1_1//:install", + ":_maybe__pytest__8_1_1__colorama", + ":_maybe__pytest__8_1_1__exceptiongroup", + "//:iniconfig", + "//:packaging", + "//:pluggy", + ":_maybe__pytest__8_1_1__tomli", ], visibility = ["//:__subpackages__"], ) -# scc: b614323508da0659 +# scc: python_dateutil__2_9_0_post0 # members: # { -# "@whl_install__aspect_rules_py__isoduration__20_11_0//:install": { +# "@whl_install__aspect_rules_py__python_dateutil__2_9_0_post0//:install": { # "": 1, # }, # } # deps: # { -# "arrow": { +# "six": { # "": 1, # }, # } py_library( - name = "b614323508da0659", + name = "python_dateutil__2_9_0_post0", deps = [ - "@whl_install__aspect_rules_py__isoduration__20_11_0//:install", - "//:arrow", + "@whl_install__aspect_rules_py__python_dateutil__2_9_0_post0//:install", + "//:six", ], visibility = ["//:__subpackages__"], ) -# scc: b852273138dfaef1 +# scc: pytz__2024_1 # members: # { -# "@whl_install__aspect_rules_py__bravado_core__6_1_1//:install": { +# "@whl_install__aspect_rules_py__pytz__2024_1//:install": { # "": 1, # }, # } # deps: -# { -# "jsonref": { -# "": 1, -# }, -# "jsonschema": { -# "": 1, -# }, -# "msgpack": { -# "": 1, -# }, -# "python_dateutil": { -# "": 1, -# }, -# "pytz": { -# "": 1, -# }, -# "pyyaml": { -# "": 1, -# }, -# "requests": { -# "": 1, -# }, -# "simplejson": { -# "": 1, -# }, -# "six": { -# "": 1, -# }, -# "swagger_spec_validator": { +# {} + + +py_library( + name = "pytz__2024_1", + deps = [ + "@whl_install__aspect_rules_py__pytz__2024_1//:install", + ], + visibility = ["//:__subpackages__"], +) + + +# scc: pyyaml__6_0_1 +# members: +# { +# "@whl_install__aspect_rules_py__pyyaml__6_0_1//:install": { # "": 1, # }, # } +# deps: +# {} py_library( - name = "b852273138dfaef1", + name = "pyyaml__6_0_1", deps = [ - "@whl_install__aspect_rules_py__bravado_core__6_1_1//:install", - "//:jsonref", - "//:jsonschema", - "//:msgpack", - "//:python_dateutil", - "//:pytz", - "//:pyyaml", - "//:requests", - "//:simplejson", - "//:six", - "//:swagger_spec_validator", + "@whl_install__aspect_rules_py__pyyaml__6_0_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: ba5e2f6d3abc42ae +# scc: referencing__0_35_0 # members: # { -# "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:install": { +# "@whl_install__aspect_rules_py__referencing__0_35_0//:install": { # "": 1, # }, # } # deps: # { -# "typing_extensions": { -# "(python_full_version < '3.11') and (python_full_version < '3.11')": 1, -# "python_full_version < '3.11'": 1, +# "attrs": { +# "": 1, +# }, +# "rpds_py": { +# "": 1, # }, # } -alias( - name = "_maybe__ba5e2f6d3abc42ae__406189b2fa92c520", - actual = select({ - "//private/markers:67b1edeb1aa91c0f50e1e49af7775f6d7837e291": "//:typing_extensions", - "//private/markers:f1406cfc2f85641e883d3ba9c27a964444fb80b1": "//:typing_extensions", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - py_library( - name = "ba5e2f6d3abc42ae", + name = "referencing__0_35_0", deps = [ - "@whl_install__aspect_rules_py__exceptiongroup__1_3_1//:install", - ":_maybe__ba5e2f6d3abc42ae__406189b2fa92c520", + "@whl_install__aspect_rules_py__referencing__0_35_0//:install", + "//:attrs", + "//:rpds_py", ], visibility = ["//:__subpackages__"], ) -# scc: be422b5bb805eb81 +# scc: requests__2_31_0 # members: # { -# "@whl_install__aspect_rules_py__fqdn__1_5_1//:install": { +# "@whl_install__aspect_rules_py__requests__2_31_0//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "certifi": { +# "": 1, +# }, +# "charset_normalizer": { +# "": 1, +# }, +# "idna": { +# "": 1, +# }, +# "urllib3": { +# "": 1, +# }, +# } py_library( - name = "be422b5bb805eb81", + name = "requests__2_31_0", deps = [ - "@whl_install__aspect_rules_py__fqdn__1_5_1//:install", + "@whl_install__aspect_rules_py__requests__2_31_0//:install", + "//:certifi", + "//:charset_normalizer", + "//:idna", + "//:urllib3", ], visibility = ["//:__subpackages__"], ) -# scc: be4598f5093464bc +# scc: requests_oauthlib__2_0_0 # members: # { -# "@whl_install__aspect_rules_py__django__4_2_15//:install": { +# "@whl_install__aspect_rules_py__requests_oauthlib__2_0_0//:install": { # "": 1, # }, # } # deps: # { -# "asgiref": { +# "oauthlib": { # "": 1, # }, -# "sqlparse": { +# "requests": { # "": 1, # }, -# "tzdata": { -# "sys_platform == 'win32'": 1, -# }, # } -alias( - name = "_maybe__be4598f5093464bc__0542fffb639f09e7", - actual = select({ - "//private/markers:3f86223bfcc789fb321ff9bf716d56b3833c02b4": "//:tzdata", - "//conditions:default": ":empty", - }), - visibility = ["//:__subpackages__"], -) - - py_library( - name = "be4598f5093464bc", + name = "requests_oauthlib__2_0_0", deps = [ - "@whl_install__aspect_rules_py__django__4_2_15//:install", - "//:asgiref", - "//:sqlparse", - ":_maybe__be4598f5093464bc__0542fffb639f09e7", + "@whl_install__aspect_rules_py__requests_oauthlib__2_0_0//:install", + "//:oauthlib", + "//:requests", ], visibility = ["//:__subpackages__"], ) -# scc: c586b17b00ce1e93 +# scc: rfc3339_validator__0_1_4 # members: # { -# "@whl_install__aspect_rules_py__tomli__2_4_0//:install": { +# "@whl_install__aspect_rules_py__rfc3339_validator__0_1_4//:install": { # "": 1, # }, # } # deps: -# {} +# { +# "six": { +# "": 1, +# }, +# } py_library( - name = "c586b17b00ce1e93", + name = "rfc3339_validator__0_1_4", deps = [ - "@whl_install__aspect_rules_py__tomli__2_4_0//:install", + "@whl_install__aspect_rules_py__rfc3339_validator__0_1_4//:install", + "//:six", ], visibility = ["//:__subpackages__"], ) -# scc: c8fdcb8672c8c446 +# scc: rfc3986_validator__0_1_1 # members: # { -# "@whl_install__aspect_rules_py__websocket_client__1_8_0//:install": { +# "@whl_install__aspect_rules_py__rfc3986_validator__0_1_1//:install": { # "": 1, # }, # } @@ -1635,18 +1687,18 @@ py_library( py_library( - name = "c8fdcb8672c8c446", + name = "rfc3986_validator__0_1_1", deps = [ - "@whl_install__aspect_rules_py__websocket_client__1_8_0//:install", + "@whl_install__aspect_rules_py__rfc3986_validator__0_1_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: c9bd99220bf6a1cc +# scc: rpds_py__0_18_0 # members: # { -# "@whl_install__aspect_rules_py__jsonref__1_1_0//:install": { +# "@whl_install__aspect_rules_py__rpds_py__0_18_0//:install": { # "": 1, # }, # } @@ -1655,84 +1707,63 @@ py_library( py_library( - name = "c9bd99220bf6a1cc", + name = "rpds_py__0_18_0", deps = [ - "@whl_install__aspect_rules_py__jsonref__1_1_0//:install", + "@whl_install__aspect_rules_py__rpds_py__0_18_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: cf43c11aa7568cfc +# scc: s3transfer__0_10_1 # members: # { -# "@whl_install__aspect_rules_py__swagger_spec_validator__3_0_3//:install": { +# "@whl_install__aspect_rules_py__s3transfer__0_10_1//:install": { # "": 1, # }, # } # deps: # { -# "jsonschema": { -# "": 1, -# }, -# "pyyaml": { -# "": 1, -# }, -# "typing_extensions": { +# "botocore": { # "": 1, # }, # } py_library( - name = "cf43c11aa7568cfc", + name = "s3transfer__0_10_1", deps = [ - "@whl_install__aspect_rules_py__swagger_spec_validator__3_0_3//:install", - "//:jsonschema", - "//:pyyaml", - "//:typing_extensions", + "@whl_install__aspect_rules_py__s3transfer__0_10_1//:install", + "//:botocore", ], visibility = ["//:__subpackages__"], ) -# scc: d062f9c8da4486d0 +# scc: setuptools__80_9_0 # members: # { -# "@whl_install__aspect_rules_py__boto3__1_34_93//:install": { +# "@whl_install__aspect_rules_py__setuptools__80_9_0//:install": { # "": 1, # }, # } # deps: -# { -# "botocore": { -# "": 1, -# }, -# "jmespath": { -# "": 1, -# }, -# "s3transfer": { -# "": 1, -# }, -# } +# {} py_library( - name = "d062f9c8da4486d0", + name = "setuptools__80_9_0", deps = [ - "@whl_install__aspect_rules_py__boto3__1_34_93//:install", - "//:botocore", - "//:jmespath", - "//:s3transfer", + "@whl_install__aspect_rules_py__setuptools__80_9_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: d2e5aa217f8d6e1c +# scc: simplejson__3_19_2 # members: # { -# "@whl_install__aspect_rules_py__smmap__5_0_1//:install": { +# "@whl_install__aspect_rules_py__simplejson__3_19_2//:install": { # "": 1, # }, # } @@ -1741,18 +1772,18 @@ py_library( py_library( - name = "d2e5aa217f8d6e1c", + name = "simplejson__3_19_2", deps = [ - "@whl_install__aspect_rules_py__smmap__5_0_1//:install", + "@whl_install__aspect_rules_py__simplejson__3_19_2//:install", ], visibility = ["//:__subpackages__"], ) -# scc: da61d1b3f896ca29 +# scc: six__1_16_0 # members: # { -# "@whl_install__aspect_rules_py__colorama__0_4_6//:install": { +# "@whl_install__aspect_rules_py__six__1_16_0//:install": { # "": 1, # }, # } @@ -1761,18 +1792,18 @@ py_library( py_library( - name = "da61d1b3f896ca29", + name = "six__1_16_0", deps = [ - "@whl_install__aspect_rules_py__colorama__0_4_6//:install", + "@whl_install__aspect_rules_py__six__1_16_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: daf8d376b4a8df52 +# scc: smmap__5_0_1 # members: # { -# "@whl_install__aspect_rules_py__rpds_py__0_18_0//:install": { +# "@whl_install__aspect_rules_py__smmap__5_0_1//:install": { # "": 1, # }, # } @@ -1781,18 +1812,18 @@ py_library( py_library( - name = "daf8d376b4a8df52", + name = "smmap__5_0_1", deps = [ - "@whl_install__aspect_rules_py__rpds_py__0_18_0//:install", + "@whl_install__aspect_rules_py__smmap__5_0_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: e32f72aa83d0aa19 +# scc: snakesay__0_10_3 # members: # { -# "@whl_install__aspect_rules_py__idna__3_7//:install": { +# "@whl_install__aspect_rules_py__snakesay__0_10_3//:install": { # "": 1, # }, # } @@ -1801,92 +1832,71 @@ py_library( py_library( - name = "e32f72aa83d0aa19", + name = "snakesay__0_10_3", deps = [ - "@whl_install__aspect_rules_py__idna__3_7//:install", + "@whl_install__aspect_rules_py__snakesay__0_10_3//:install", ], visibility = ["//:__subpackages__"], ) -# scc: e5244e9a2665fdb2 +# scc: sqlparse__0_5_1 # members: # { -# "@whl_install__aspect_rules_py__requests__2_31_0//:install": { +# "@whl_install__aspect_rules_py__sqlparse__0_5_1//:install": { # "": 1, # }, # } # deps: -# { -# "certifi": { -# "": 1, -# }, -# "charset_normalizer": { -# "": 1, -# }, -# "idna": { -# "": 1, -# }, -# "urllib3": { -# "": 1, -# }, -# } +# {} py_library( - name = "e5244e9a2665fdb2", + name = "sqlparse__0_5_1", deps = [ - "@whl_install__aspect_rules_py__requests__2_31_0//:install", - "//:certifi", - "//:charset_normalizer", - "//:idna", - "//:urllib3", + "@whl_install__aspect_rules_py__sqlparse__0_5_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: e585531523a85c06 +# scc: swagger_spec_validator__3_0_3 # members: # { -# "@whl_install__aspect_rules_py__pandas__2_2_2//:install": { +# "@whl_install__aspect_rules_py__swagger_spec_validator__3_0_3//:install": { # "": 1, # }, # } # deps: # { -# "numpy": { -# "": 1, -# }, -# "python_dateutil": { +# "jsonschema": { # "": 1, # }, -# "pytz": { +# "pyyaml": { # "": 1, # }, -# "tzdata": { +# "typing_extensions": { # "": 1, # }, # } py_library( - name = "e585531523a85c06", + name = "swagger_spec_validator__3_0_3", deps = [ - "@whl_install__aspect_rules_py__pandas__2_2_2//:install", - "//:numpy", - "//:python_dateutil", - "//:pytz", - "//:tzdata", + "@whl_install__aspect_rules_py__swagger_spec_validator__3_0_3//:install", + "//:jsonschema", + "//:pyyaml", + "//:typing_extensions", ], visibility = ["//:__subpackages__"], ) -# scc: e676cae8276d8ac5 +# scc: tomli__2_4_0 # members: # { -# "@whl_install__aspect_rules_py__pytz__2024_1//:install": { +# "@whl_install__aspect_rules_py__tomli__2_4_0//:install": { # "": 1, # }, # } @@ -1895,18 +1905,18 @@ py_library( py_library( - name = "e676cae8276d8ac5", + name = "tomli__2_4_0", deps = [ - "@whl_install__aspect_rules_py__pytz__2024_1//:install", + "@whl_install__aspect_rules_py__tomli__2_4_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: e75ced7ea0bca451 +# scc: types_python_dateutil__2_9_0_20240316 # members: # { -# "@whl_install__aspect_rules_py__tzdata__2024_1//:install": { +# "@whl_install__aspect_rules_py__types_python_dateutil__2_9_0_20240316//:install": { # "": 1, # }, # } @@ -1915,18 +1925,18 @@ py_library( py_library( - name = "e75ced7ea0bca451", + name = "types_python_dateutil__2_9_0_20240316", deps = [ - "@whl_install__aspect_rules_py__tzdata__2024_1//:install", + "@whl_install__aspect_rules_py__types_python_dateutil__2_9_0_20240316//:install", ], visibility = ["//:__subpackages__"], ) -# scc: ee63e8df8d3acccd +# scc: typing_extensions__4_12_2 # members: # { -# "@whl_install__aspect_rules_py__pyproject_hooks__1_2_0//:install": { +# "@whl_install__aspect_rules_py__typing_extensions__4_12_2//:install": { # "": 1, # }, # } @@ -1935,18 +1945,18 @@ py_library( py_library( - name = "ee63e8df8d3acccd", + name = "typing_extensions__4_12_2", deps = [ - "@whl_install__aspect_rules_py__pyproject_hooks__1_2_0//:install", + "@whl_install__aspect_rules_py__typing_extensions__4_12_2//:install", ], visibility = ["//:__subpackages__"], ) -# scc: f16968e1474c15d5 +# scc: tzdata__2024_1 # members: # { -# "@whl_install__aspect_rules_py__setuptools__80_9_0//:install": { +# "@whl_install__aspect_rules_py__tzdata__2024_1//:install": { # "": 1, # }, # } @@ -1955,43 +1965,38 @@ py_library( py_library( - name = "f16968e1474c15d5", + name = "tzdata__2024_1", deps = [ - "@whl_install__aspect_rules_py__setuptools__80_9_0//:install", + "@whl_install__aspect_rules_py__tzdata__2024_1//:install", ], visibility = ["//:__subpackages__"], ) -# scc: f3fc9e72edf46a94 +# scc: uri_template__1_3_0 # members: # { -# "@whl_install__aspect_rules_py__ftfy__6_2_0//:install": { +# "@whl_install__aspect_rules_py__uri_template__1_3_0//:install": { # "": 1, # }, # } # deps: -# { -# "wcwidth": { -# "": 1, -# }, -# } +# {} py_library( - name = "f3fc9e72edf46a94", + name = "uri_template__1_3_0", deps = [ - "@whl_install__aspect_rules_py__ftfy__6_2_0//:install", - "//:wcwidth", + "@whl_install__aspect_rules_py__uri_template__1_3_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: f4309313f08dd20b +# scc: urllib3__1_26_19 # members: # { -# "@whl_install__aspect_rules_py__sqlparse__0_5_1//:install": { +# "@whl_install__aspect_rules_py__urllib3__1_26_19//:install": { # "": 1, # }, # } @@ -2000,18 +2005,18 @@ py_library( py_library( - name = "f4309313f08dd20b", + name = "urllib3__1_26_19", deps = [ - "@whl_install__aspect_rules_py__sqlparse__0_5_1//:install", + "@whl_install__aspect_rules_py__urllib3__1_26_19//:install", ], visibility = ["//:__subpackages__"], ) -# scc: f562ebd179f2bb77 +# scc: wcwidth__0_2_13 # members: # { -# "@whl_install__aspect_rules_py__jsonpointer__2_4//:install": { +# "@whl_install__aspect_rules_py__wcwidth__0_2_13//:install": { # "": 1, # }, # } @@ -2020,18 +2025,18 @@ py_library( py_library( - name = "f562ebd179f2bb77", + name = "wcwidth__0_2_13", deps = [ - "@whl_install__aspect_rules_py__jsonpointer__2_4//:install", + "@whl_install__aspect_rules_py__wcwidth__0_2_13//:install", ], visibility = ["//:__subpackages__"], ) -# scc: f729005acfb43d98 +# scc: webcolors__1_13 # members: # { -# "@whl_install__aspect_rules_py__numpy__1_26_4//:install": { +# "@whl_install__aspect_rules_py__webcolors__1_13//:install": { # "": 1, # }, # } @@ -2040,18 +2045,18 @@ py_library( py_library( - name = "f729005acfb43d98", + name = "webcolors__1_13", deps = [ - "@whl_install__aspect_rules_py__numpy__1_26_4//:install", + "@whl_install__aspect_rules_py__webcolors__1_13//:install", ], visibility = ["//:__subpackages__"], ) -# scc: faab7792fab0e0c3 +# scc: websocket_client__1_8_0 # members: # { -# "@whl_install__aspect_rules_py__packaging__24_0//:install": { +# "@whl_install__aspect_rules_py__websocket_client__1_8_0//:install": { # "": 1, # }, # } @@ -2060,34 +2065,29 @@ py_library( py_library( - name = "faab7792fab0e0c3", + name = "websocket_client__1_8_0", deps = [ - "@whl_install__aspect_rules_py__packaging__24_0//:install", + "@whl_install__aspect_rules_py__websocket_client__1_8_0//:install", ], visibility = ["//:__subpackages__"], ) -# scc: fe2c2ebbba7146e6 +# scc: zipp__3_23_0 # members: # { -# "@whl_install__aspect_rules_py__python_dateutil__2_9_0_post0//:install": { +# "@whl_install__aspect_rules_py__zipp__3_23_0//:install": { # "": 1, # }, # } # deps: -# { -# "six": { -# "": 1, -# }, -# } +# {} py_library( - name = "fe2c2ebbba7146e6", + name = "zipp__3_23_0", deps = [ - "@whl_install__aspect_rules_py__python_dateutil__2_9_0_post0//:install", - "//:six", + "@whl_install__aspect_rules_py__zipp__3_23_0//:install", ], visibility = ["//:__subpackages__"], ) diff --git a/uv/private/uv_hub/snapshots/pypi.cowsay.BUILD.bazel b/uv/private/uv_hub/snapshots/pypi.cowsay.BUILD.bazel index bb5b94fc5..7276b56a9 100644 --- a/uv/private/uv_hub/snapshots/pypi.cowsay.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/pypi.cowsay.BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_rules_py//py:defs.bzl", "py_library") load("//:defs.bzl", "compatible_with") diff --git a/uv/private/uv_hub/snapshots/pypi.pkg.BUILD.bazel b/uv/private/uv_hub/snapshots/pypi.pkg.BUILD.bazel index 0511ac009..7349b1e22 100644 --- a/uv/private/uv_hub/snapshots/pypi.pkg.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/pypi.pkg.BUILD.bazel @@ -1,4 +1,3 @@ -load("@aspect_rules_py//py:defs.bzl", "py_library") load("//:defs.bzl", "compatible_with") diff --git a/uv/private/uv_hub/snapshots/whl_install.attrs.BUILD.bazel b/uv/private/uv_hub/snapshots/whl_install.attrs.BUILD.bazel index 9ebea9c38..e041d8d7b 100644 --- a/uv/private/uv_hub/snapshots/whl_install.attrs.BUILD.bazel +++ b/uv/private/uv_hub/snapshots/whl_install.attrs.BUILD.bazel @@ -1,7 +1,6 @@ load("@aspect_rules_py//py:defs.bzl", "py_library") load("@aspect_rules_py//uv/private/whl_install:defs.bzl", "select_chain") load("@aspect_rules_py//uv/private/whl_install:rule.bzl", "source_built_wheel", "whl_install") -load("@bazel_skylib//lib:selects.bzl", "selects") source_built_wheel( name = "source_built_wheel", @@ -14,7 +13,7 @@ source_built_wheel( select_chain( name = "whl", arms = { - "@aspect_rules_py_pip_configurations//:py3-any-none": "@whl__attrs__99b87a485a5820b2//file" + "@aspect_rules_py_pip_configurations//:py3-any-none": "@whl__attrs__99b87a485a5820b2//file", }, default_target = ":source_built_wheel", visibility = ["//visibility:public"], @@ -50,6 +49,12 @@ whl_install( }, namespace_top_levels = {}, console_scripts = {}, + top_level_dirs = { + "attrs-23.2.0-py3-none-any.whl": [ + "attr", + "attrs", + ], + }, visibility = ["//visibility:private"], ) diff --git a/uv/private/uv_project/repository.bzl b/uv/private/uv_project/repository.bzl index 76b582ba5..fbc4f98a5 100644 --- a/uv/private/uv_project/repository.bzl +++ b/uv/private/uv_project/repository.bzl @@ -3,20 +3,9 @@ """ load("@bazel_features//:features.bzl", features = "bazel_features") -load("//uv/private:sha1.bzl", "sha1") -load("//uv/private/pprint:defs.bzl", "pprint") +load("//uv/private/pprint:defs.bzl", "indent", "pprint") load("//uv/private/uv_project:select_gen.bzl", "build_package_select_arms") -def indent(text, space = " "): - return "\n".join(["{}{}".format(space, l) for l in text.splitlines()]) - -def name(quad): - _lock, package_name, package_version, package_extra = quad.split(",") - if package_extra == "__base__": - return "{}__{}".format(package_name, package_version) - else: - return "{}__{}__extra__{}".format(package_name, package_version, package_extra) - def _project_impl(repository_ctx): """Materializes the dependency graph for a single project. @@ -53,12 +42,21 @@ def _project_impl(repository_ctx): """ Given a marker expression, get a label for it. Interns the marker expression into the marker table as needed. + The id is only referenced within this generated repository, and the + decide_marker() it names carries the full expression. """ if expr not in marker_table: - marker_table[expr] = sha1(expr) + marker_table[expr] = "marker_{}".format(len(marker_table)) marker_id = marker_table[expr] return "//private/markers:" + marker_id + def _safe_name(s): + """Project a label or package string into a target-name-safe string.""" + acc = [] + for c in s.elems(): + acc.append(c if c.isalnum() or c in "._-" else "_") + return "".join(acc) + def _conditionalize(it, markers, cond_id_thunk, no_match = None): if "" in markers: return it @@ -113,8 +111,6 @@ config_setting( ################################################################################ # Lay down the surface-level targets content = ["""\ -load("@aspect_rules_py//py:defs.bzl", "py_library") - # Fallback for `:{package}_whl` aliases on workspace / editable packages # (which have no underlying whl_install repo to point at). filegroup( @@ -244,7 +240,7 @@ py_library( deps.append(_conditionalize( member, markers, - lambda: "_maybe__{}__{}".format(scc_id, sha1(member)[:16]), + lambda: "_maybe__{}__{}".format(scc_id, _safe_name(member)), no_match = ":empty", )) @@ -253,7 +249,7 @@ py_library( # Note that we map these back to surface packages "//:" + dep, markers, - lambda: "_maybe__{}__{}".format(scc_id, sha1(dep)[:16]), + lambda: "_maybe__{}__{}".format(scc_id, _safe_name(dep)), no_match = ":empty", )) diff --git a/uv/private/versions/BUILD.bazel b/uv/private/versions/BUILD.bazel index 82ac130f6..1158f1cc9 100644 --- a/uv/private/versions/BUILD.bazel +++ b/uv/private/versions/BUILD.bazel @@ -1,17 +1,8 @@ load("@bazel_lib//:bzl_library.bzl", "bzl_library") load(":versions_test.bzl", "versions_test_suite") -exports_files(["defs.bzl"]) - versions_test_suite() -bzl_library( - name = "defs", - srcs = ["defs.bzl"], - visibility = ["//uv:__subpackages__"], - deps = [":versions"], -) - bzl_library( name = "versions", srcs = ["versions.bzl"], diff --git a/uv/private/versions/defs.bzl b/uv/private/versions/defs.bzl deleted file mode 100644 index 8d149acae..000000000 --- a/uv/private/versions/defs.bzl +++ /dev/null @@ -1,8 +0,0 @@ -load(":versions.bzl", _find_matching_version = "find_matching_version", _parse_version = "parse_version", _version_cmp = "version_cmp", _version_satisfies = "version_satisfies") - -versions = struct( - parse = _parse_version, - cmp = _version_cmp, - satisfies = _version_satisfies, - find_match = _find_matching_version, -) diff --git a/uv/private/whl_install/repository.bzl b/uv/private/whl_install/repository.bzl index 54a7d9a26..b41137ae5 100644 --- a/uv/private/whl_install/repository.bzl +++ b/uv/private/whl_install/repository.bzl @@ -12,7 +12,7 @@ load("//uv/private:parse_whl_name.bzl", "parse_whl_name") load("//uv/private/constraints:defs.bzl", "MAJORS", "MINORS") load("//uv/private/constraints/platform:defs.bzl", "supported_platform") load("//uv/private/constraints/python:defs.bzl", "supported_python") -load("//uv/private/pprint:defs.bzl", "pprint") +load("//uv/private/pprint:defs.bzl", "indent", "pprint") def parse_record_path(line): """Return the path field from one CSV-encoded wheel RECORD row. @@ -79,6 +79,35 @@ def site_packages_segments(path, data_directory): return [] return segments[2:] +def native_roots_for_segments(segments, collision_roots = ()): + """Return collision roots whose relocation can break a native file. + + A native library resolves sibling assets from its on-disk origin. Every + top-level directory containing one is collision-relevant, as is any + RECORD-derived namespace directory or regular root beneath a namespace + that contains it. + Top-level native modules have no directory root and never participate in + directory merges. + """ + if len(segments) < 2: + return [] + filename = segments[-1] + _, so_separator, so_version = filename.partition(".so.") + if not ( + filename.endswith(".so") or + (so_separator and so_version and so_version[0] in "0123456789") or + filename.endswith(".pyd") or + filename.endswith(".dylib") or + filename.endswith(".dll") + ): + return [] + path = "/".join(segments) + roots = [segments[0]] + for root in collision_roots: + if path.startswith(root + "/"): + roots.append(root) + return roots + def parse_console_script(line): """Parse one `[console_scripts]` entry into a canonical `name=module:func`. @@ -118,6 +147,32 @@ def _find_whl_file(repository_ctx, whl_label): return entry return None +def _whl_file_label_keys(whl_file_label): + """Returns the set of label strings a wheel-file label can be looked up by. + + `whl_files` labels stringify to canonical form (`@@repo+...//pkg:target`), + but the `prebuilds` target strings we match against may use the apparent + repo name (`@repo//pkg:target`) or the abbreviated form that drops a + target name equal to the package basename (`@repo//pkg`). Emit a key for + each equivalent form so lookups succeed regardless of which one appears. + """ + label_str = str(whl_file_label) + keys = {label_str: True} + if not label_str.startswith("@@") or "//" not in label_str: + return keys + + repo, pkg_target = label_str[len("@@"):].split("//", 1) + apparent_repo = repo.split("+")[-1] + apparent_label = "@{}//{}".format(apparent_repo, pkg_target) + keys[apparent_label] = True + + if ":" in pkg_target: + pkg, target_name = pkg_target.rsplit(":", 1) + if pkg == target_name: + keys["@{}//{}".format(apparent_repo, pkg)] = True + + return keys + def _extract_wheel_metadata(repository_ctx, whl_label): """Peek inside a wheel to discover top-level names and console scripts. @@ -140,7 +195,8 @@ def _extract_wheel_metadata(repository_ctx, whl_label): Returns: Tuple (top_levels_set, regular_top_levels_set, console_scripts_set, - namespace_entries_set, dirs_set, init_dirs_set): + namespace_entries_set, dirs_set, init_dirs_set, + native_segments_list): * top_levels_set: dict[name → True] — all first-path-segment names in RECORD (excluding `*.data/` staging entries). * regular_top_levels_set: subset that had an `__init__.py` at @@ -161,6 +217,10 @@ def _extract_wheel_metadata(repository_ctx, whl_label): directly contain an `__init__.py` (regular packages). Powers the per-wheel namespace_dirs / regular_roots derivation, which venv assembly uses to detect regular packages spanning wheels. + * native_segments_list: list[list[str]] — site-packages segments for + RECORD files with native-library suffixes. The caller combines these + with the wheel's namespace directories and regular roots to emit only + collision-relevant roots. """ whl_path = _find_whl_file(repository_ctx, whl_label) if whl_path == None: @@ -225,6 +285,7 @@ def _extract_wheel_metadata(repository_ctx, whl_label): record_segments = [] dirs_set = {} init_dirs = {} + native_segments = [] if record: for line in record.splitlines(): path = parse_record_path(line) @@ -257,6 +318,8 @@ def _extract_wheel_metadata(repository_ctx, whl_label): regular_top_levels[first_segment] = True record_segments.append(segments) + if native_roots_for_segments(segments): + native_segments.append(segments) # Record every directory along the path, and which of them # directly contain an `__init__.py`. @@ -309,7 +372,7 @@ def _extract_wheel_metadata(repository_ctx, whl_label): name, normalised = entry console_scripts[name] = normalised - return whl_path.basename, top_levels_set, regular_top_levels, console_scripts, namespace_entries, dirs_set, init_dirs + return whl_path.basename, top_levels_set, regular_top_levels, console_scripts, namespace_entries, dirs_set, init_dirs, native_segments def _namespace_dirs_and_roots(dirs_set, init_dirs, namespace_top_levels_set): """Split a wheel's directory skeleton into the implicit-namespace dirs @@ -357,14 +420,6 @@ def _namespace_dirs_and_roots(dirs_set, init_dirs, namespace_top_levels_set): regular_roots.append(d) return namespace_dirs, regular_roots -def indent(text, space = " "): - return "\n".join(["{}{}".format(space, l) for l in text.splitlines()]) - -def _format_arms(d): - content = [" \"{}\": \"{}\"".format(k, v) for k, v in d.items()] - content = ",\n".join(content) - return "{\n" + content + "\n }" - def select_key(triple): """Force (triple, target) pairs into a orderable form. @@ -426,19 +481,9 @@ def compatible_python_tags(python_tag, abi_tag): major = int(python_tag[2]) minor = int(python_tag[3:]) if python_tag[3:] else 0 - compatible = [] - for candidate_major in MAJORS: - if candidate_major != major: - continue - for candidate_minor in MINORS: - if candidate_minor < minor: - continue - - candidate = "cp{}{}".format(candidate_major, candidate_minor) - if supported_python(candidate): - compatible.append(candidate) - - return compatible if compatible else [python_tag] + if major not in MAJORS: + return [python_tag] + return ["cp{}{}".format(major, m) for m in MINORS if m >= minor] or [python_tag] def source_specificity(python_tag): """Score how specific a wheel's source python_tag is. @@ -491,7 +536,6 @@ def _whl_install_impl(repository_ctx): "load(\"@aspect_rules_py//py:defs.bzl\", \"py_library\")", "load(\"@aspect_rules_py//uv/private/whl_install:defs.bzl\", \"select_chain\")", "load(\"@aspect_rules_py//uv/private/whl_install:rule.bzl\", \"source_built_wheel\", \"whl_install\")", - "load(\"@bazel_skylib//lib:selects.bzl\", \"selects\")", ] # During expansion the value is (source_specificity, target). When two @@ -567,9 +611,8 @@ def _whl_install_impl(repository_ctx): } sbuild_target = str(repository_ctx.attr.sbuild) if repository_ctx.attr.sbuild else None - default_target = sbuild_target + default_target = ":source_built_wheel" if sbuild_target else None if sbuild_target: - default_target = ":source_built_wheel" content.append( """ source_built_wheel( @@ -584,7 +627,8 @@ source_built_wheel( ), ) - if (select_arms or prebuilds) and not default_target: + # select_arms derives from prebuilds, so prebuilds alone decides. + if prebuilds and not default_target: default_target = ":whl_missing" content.append( """ @@ -619,7 +663,7 @@ filegroup( visibility = ["//visibility:public"], ) """.format( - arms = _format_arms(select_arms), + arms = indent(pprint(select_arms), " ").lstrip(), default_target = repr(default_target), index_whl = indent(pprint([str(gazelle_index_whl)]), " " * 4).lstrip(), ), @@ -669,37 +713,56 @@ filegroup( # the installed wheel tree. # # We read from `whl_files` (a real label_list) rather than `whls` (a - # JSON-encoded string of labels) because only the former adds the - # wheel repos to our visibility so `rctx.path(Label(...))` can - # resolve. `whl_files` mirrors the truthy `whls` values in order, so - # pair them up by index to recover the target ↔ label association. - # Both lists are generated together by the hub rule from the same - # source data, so the ordering invariant is maintained at the point - # of production and does not depend on runtime dict iteration order. + # JSON-encoded string of labels) because only the former adds the wheel + # repos to our visibility so `rctx.path(Label(...))` can resolve. Multiple + # lockfile wheel entries can resolve to the same target, but Bazel label_list + # attrs reject duplicates, so map the deduplicated labels back by canonical + # label string instead of pairing by list index. whl_file_labels = {} - whl_file_index = 0 - for target in prebuilds.values(): - if not target: - continue - whl_file_labels[target] = repository_ctx.attr.whl_files[whl_file_index] - whl_file_index += 1 + for whl_file_label in repository_ctx.attr.whl_files: + for key in _whl_file_label_keys(whl_file_label): + whl_file_labels[key] = whl_file_label top_levels_by_whl = {} + top_level_dirs_by_whl = {} namespace_top_levels_by_whl = {} namespace_entries_by_whl = {} namespace_dirs_by_whl = {} regular_roots_by_whl = {} + native_roots_by_whl = {} console_scripts_by_whl = {} - for target, whl_file_label in whl_file_labels.items(): - if target not in arm_targets: + + # `prebuilds.values()` can repeat a target when several lockfile wheel + # entries resolve to the same wheel repo, so track which targets we've + # already peeked at to keep metadata extraction once-per-unique-wheel. + extracted_targets = {} + for target in prebuilds.values(): + if target not in arm_targets or target in extracted_targets: continue - whl_name, tls, regular, css, ns_entries, dirs_set, init_dirs = _extract_wheel_metadata( + extracted_targets[target] = True + whl_file_label = whl_file_labels[target] + whl_name, tls, regular, css, ns_entries, dirs_set, init_dirs, native_segments = _extract_wheel_metadata( repository_ctx, whl_file_label, ) + ndirs = [] + rroots = [] if tls: top_levels_by_whl[whl_name] = sorted(tls.keys()) + # The RECORD-derived directory skeleton distinguishes + # directory-valued top-levels from single-file modules without + # changing the separate regular-vs-namespace classification. + top_level_dirs = sorted([ + tl + for tl in tls + if (tl in dirs_set and + not tl.endswith(".dist-info") and + not tl.endswith(".egg-info")) + ]) + if top_level_dirs: + top_level_dirs_by_whl[whl_name] = top_level_dirs + # A top-level counts as a PEP 420 namespace for this wheel if # its RECORD shows no `/__init__.py` at depth 1. namespaces = sorted([ @@ -733,6 +796,12 @@ filegroup( namespace_dirs_by_whl[whl_name] = ndirs if rroots: regular_roots_by_whl[whl_name] = rroots + native_roots = {} + for segments in native_segments: + for root in native_roots_for_segments(segments, ndirs + rroots): + native_roots[root] = True + if native_roots: + native_roots_by_whl[whl_name] = sorted(native_roots.keys()) if css: console_scripts_by_whl[whl_name] = sorted(css.values()) @@ -750,6 +819,12 @@ filegroup( console_scripts = indent(pprint(console_scripts_by_whl), " " * 4).lstrip(), ) + if top_level_dirs_by_whl: + install_attrs += """ + top_level_dirs = {top_level_dirs},""".format( + top_level_dirs = indent(pprint(top_level_dirs_by_whl), " " * 4).lstrip(), + ) + # Only emitted for wheels that contribute to a namespace — keeps the # generated BUILD files (and their e2e snapshots) unchanged for the # common regular-top-level-only case. @@ -765,6 +840,11 @@ filegroup( namespace_dirs = indent(pprint(namespace_dirs_by_whl), " " * 4).lstrip(), regular_roots = indent(pprint(regular_roots_by_whl), " " * 4).lstrip(), ) + if native_roots_by_whl: + install_attrs += """ + native_roots = {native_roots},""".format( + native_roots = indent(pprint(native_roots_by_whl), " " * 4).lstrip(), + ) if post_install_patches: install_attrs += """ diff --git a/uv/private/whl_install/rule.bzl b/uv/private/whl_install/rule.bzl index 9cf75bbd8..5fa3b9bba 100644 --- a/uv/private/whl_install/rule.bzl +++ b/uv/private/whl_install/rule.bzl @@ -1,7 +1,7 @@ """ """ -load("//py/private:providers.bzl", "PyWheelsInfo") +load("//py/private:providers.bzl", "PyWheelsInfo", "make_wheel_record") load("//py/private:py_info.bzl", "PyInfo") load("//py/private/toolchain:types.bzl", "EXEC_TOOLS_TOOLCHAIN", "PY_TOOLCHAIN") @@ -58,18 +58,22 @@ def _whl_install(ctx): # configuration; metadata from inactive platform wheels must not leak in. if SourceBuiltWheelInfo in ctx.attr.src: top_levels = [] + top_level_dirs = [] namespace_top_levels = [] namespace_entries = [] namespace_dirs = [] regular_roots = [] + native_roots = [] console_scripts = ctx.attr.src[SourceBuiltWheelInfo].console_scripts else: whl_basename = archive.basename top_levels = ctx.attr.top_levels.get(whl_basename, []) + top_level_dirs = ctx.attr.top_level_dirs.get(whl_basename, []) namespace_top_levels = ctx.attr.namespace_top_levels.get(whl_basename, []) namespace_entries = ctx.attr.namespace_entries.get(whl_basename, []) namespace_dirs = ctx.attr.namespace_dirs.get(whl_basename, []) regular_roots = ctx.attr.regular_roots.get(whl_basename, []) + native_roots = ctx.attr.native_roots.get(whl_basename, []) console_scripts = ctx.attr.console_scripts.get(whl_basename, []) arguments = ctx.actions.args() @@ -164,44 +168,21 @@ def _whl_install(ctx): ] providers.append(PyWheelsInfo( - wheels = depset(direct = [struct( - top_levels = tuple(top_levels), - # PEP 420 namespace packages this wheel contributes to. - # When multiple wheels claim the same top-level and ALL of - # them flag it as namespace, py_binary merges the namespace - # CONCRETELY from `namespace_entries` per-entry symlinks - # (so tools that inspect site-packages directly — mypy, - # pyright — see the packages and their py.typed markers), - # unless a regular package spans the wheels (detected via - # `regular_roots` × `namespace_dirs`), which needs a - # physical merge instead. Falls back to .pth-based - # resolution when entry metadata is missing. - namespace_top_levels = tuple(namespace_top_levels), - # Concrete per-wheel paths beneath namespace top-levels - # (e.g. `jaraco/functools`) that venv assembly symlinks - # individually to materialise a merged namespace directory. - namespace_entries = tuple(namespace_entries), - # Directory skeleton under namespace top-levels: which dirs - # are implicit-namespace portions (`namespace_dirs`) and - # which are the minimal regular-package roots - # (`regular_roots`). venv assembly cross-references these - # across wheels to detect a regular package spanning wheels - # (Python can't merge a regular package's __path__ at - # runtime, so the subtree is physically merged). - namespace_dirs = tuple(namespace_dirs), - regular_roots = tuple(regular_roots), + # See make_wheel_record / the PyWheelsInfo field docs for each + # field's semantics. `install_tree` holds the installed file tree + # (`install/`, internally `lib/python./site-packages/...`); + # venv assembly's per-top-level symlinks reference each wheel by + # its natural runfiles path rather than through this File. + wheels = depset(direct = [make_wheel_record( + top_levels = top_levels, + top_level_dirs = top_level_dirs, + namespace_top_levels = namespace_top_levels, + namespace_entries = namespace_entries, + namespace_dirs = namespace_dirs, + regular_roots = regular_roots, + native_roots = native_roots, site_packages_rfpath = site_packages_rfpath, - # Each entry is "name=module:func"; py_binary parses into - # wrapper scripts at /bin/ at analysis time. - console_scripts = tuple(console_scripts), - # Tree artifact holding this wheel's installed file tree - # (`install/`, whose internal shape is - # `lib/python./site-packages/...`). Consumed by - # venv assembly's physical merge action (regular packages - # spanning wheels) and by py_image_layer's pip-package - # layer; the per-top-level venv symlinks reference each - # wheel by its natural runfiles path rather than through - # this File. + console_scripts = console_scripts, install_tree = install_dir, )]), )) @@ -275,6 +256,16 @@ Populated from each wheel's `*.dist-info/entry_points.txt` time. Only the entry matching the selected wheel (see `top_levels`) is used. `py_binary` consumes these via `PyWheelsInfo` to generate executable wrappers under `/bin/` so `subprocess.run(["", ...])` works. +""", + default = {}, + ), + "top_level_dirs": attr.string_list_dict( + doc = """Per-wheel subset of non-metadata top_levels that are directories, keyed by wheel file basename. + +The wheel RECORD must contain an entry below the top-level directory. +Single-file modules are not included. venv assembly uses this distinction to +physically merge only colliding directories while preserving ordinary +file-collision precedence. """, default = {}, ), @@ -325,6 +316,16 @@ root shows up in another wheel's `namespace_dirs`, that other wheel grafts content inside this regular package — venv assembly must physically merge the subtree since Python locks a regular package's `__path__` to one directory. +""", + default = {}, + ), + "native_roots": attr.string_list_dict( + doc = """Per-wheel collision roots containing native-library RECORD entries, keyed by wheel file basename. + +Each value is a top-level directory, namespace directory, or regular-package +root containing a file ending in `.so`, versioned `.so.*`, `.pyd`, `.dylib`, +or `.dll`. venv assembly avoids physically merging a colliding root listed +here because relocation can break the library's origin-relative sibling lookup. """, default = {}, ), diff --git a/uv/private/whl_install/test.bzl b/uv/private/whl_install/test.bzl index 7bb65a230..53bf6a6ca 100644 --- a/uv/private/whl_install/test.bzl +++ b/uv/private/whl_install/test.bzl @@ -3,7 +3,7 @@ load("@bazel_skylib//lib:unittest.bzl", "analysistest", "asserts", "unittest") load("@bazel_skylib//rules:write_file.bzl", "write_file") load("//py/private:providers.bzl", "PyWheelsInfo") -load(":repository.bzl", "compatible_python_tags", "parse_console_script", "parse_record_path", "select_key", "site_packages_segments", "sort_select_arms", "source_specificity") +load(":repository.bzl", "compatible_python_tags", "native_roots_for_segments", "parse_console_script", "parse_record_path", "select_key", "site_packages_segments", "sort_select_arms", "source_specificity") load(":rule.bzl", "source_built_wheel", "whl_install") def _whl_sorting_test_impl(ctx): @@ -147,6 +147,51 @@ def _site_packages_segments_test_impl(ctx): site_packages_segments_test = unittest.make(_site_packages_segments_test_impl) +def _native_roots_test_impl(ctx): + env = unittest.begin(ctx) + asserts.equals( + env, + ["cv2"], + native_roots_for_segments(["cv2", "cv2.abi3.so"]), + ) + asserts.equals( + env, + ["pkg"], + native_roots_for_segments(["pkg", "native", "libfoo.so.1"]), + ) + + # Keep only roots exposed to collision planning. These stand in for a + # namespace skeleton root and a nested regular root; arbitrary directory + # ancestors are intentionally not emitted. + asserts.equals( + env, + ["pkg", "pkg/native", "pkg/native/deeper"], + native_roots_for_segments( + ["pkg", "native", "deeper", "libfoo.so.1"], + ["pkg/native", "pkg/native/deeper"], + ), + ) + asserts.equals( + env, + ["pkg"], + native_roots_for_segments(["pkg", "native.pyd"]), + ) + asserts.equals( + env, + ["pkg"], + native_roots_for_segments(["pkg", "native.dylib"]), + ) + asserts.equals( + env, + ["pkg"], + native_roots_for_segments(["pkg", "native.dll"]), + ) + asserts.equals(env, [], native_roots_for_segments(["native.so"])) + asserts.equals(env, [], native_roots_for_segments(["pkg", "native.so.txt"])) + return unittest.end(env) + +native_roots_test = unittest.make(_native_roots_test_impl) + def _console_script_test_impl(ctx): env = unittest.begin(ctx) @@ -222,6 +267,11 @@ _TOP_LEVELS = { ], } +_TOP_LEVEL_DIRS = { + _LINUX_WHL: ["demo"], + _MACOS_WHL: ["demo", "demo_ns"], +} + _NAMESPACE_TOP_LEVELS = { _MACOS_WHL: ["demo_ns"], } @@ -251,6 +301,14 @@ _REGULAR_ROOTS = { _MACOS_WHL: ["demo_ns/part"], } +_NATIVE_ROOTS = { + _LINUX_WHL: ["demo"], + _MACOS_WHL: [ + "demo_ns", + "demo_ns/nested", + ], +} + _PATCHED_TOP_LEVELS = { _MACOS_WHL: _TOP_LEVELS[_MACOS_WHL] + ["demo.egg-info"], } @@ -282,7 +340,9 @@ def _metadata_selection_test_impl(ctx): wheel = wheels[0] asserts.true(env, wheel.install_tree != None, "wheel record must retain its install tree") asserts.equals(env, tuple(ctx.attr.expected_top_levels), wheel.top_levels) + asserts.equals(env, tuple(ctx.attr.expected_top_level_dirs), wheel.top_level_dirs) asserts.equals(env, tuple(ctx.attr.expected_namespace_top_levels), wheel.namespace_top_levels) + asserts.equals(env, tuple(ctx.attr.expected_native_roots), wheel.native_roots) asserts.equals(env, tuple(ctx.attr.expected_console_scripts), wheel.console_scripts) # Explicit leak checks: surface belonging to the OTHER (inactive) @@ -299,6 +359,12 @@ def _metadata_selection_test_impl(ctx): leaked in wheel.console_scripts, "console script '{}' from an inactive platform wheel leaked into the selected wheel's surface".format(leaked), ) + for leaked in ctx.attr.leaked_native_roots: + asserts.false( + env, + leaked in wheel.native_roots, + "native root '{}' from an inactive platform wheel leaked into the selected wheel's surface".format(leaked), + ) if ctx.attr.expected_preserve_paths: build_actions = [a for a in target.actions if a.mnemonic == "WhlInstall"] @@ -317,9 +383,12 @@ _metadata_selection_test = analysistest.make( _metadata_selection_test_impl, attrs = { "expected_top_levels": attr.string_list(), + "expected_top_level_dirs": attr.string_list(), "expected_namespace_top_levels": attr.string_list(), + "expected_native_roots": attr.string_list(), "expected_console_scripts": attr.string_list(), "leaked_top_levels": attr.string_list(), + "leaked_native_roots": attr.string_list(), "leaked_console_scripts": attr.string_list(), "expected_preserve_paths": attr.string_list(), }, @@ -371,7 +440,9 @@ def metadata_selection_test_suite(name): namespace_dirs = _NAMESPACE_DIRS, namespace_entries = _PATCHED_NAMESPACE_ENTRIES, namespace_top_levels = _NAMESPACE_TOP_LEVELS, + native_roots = _NATIVE_ROOTS, patches = [":__metadata_noop_patch"], + top_level_dirs = _TOP_LEVEL_DIRS, regular_roots = _REGULAR_ROOTS, tags = ["manual"], top_levels = _PATCHED_TOP_LEVELS, @@ -387,7 +458,9 @@ def metadata_selection_test_suite(name): testonly = True, src = src, top_levels = _TOP_LEVELS, + top_level_dirs = _TOP_LEVEL_DIRS, namespace_top_levels = _NAMESPACE_TOP_LEVELS, + native_roots = _NATIVE_ROOTS, console_scripts = _CONSOLE_SCRIPTS, tags = ["manual"], ) @@ -397,7 +470,9 @@ def metadata_selection_test_suite(name): testonly = True, src = ":__metadata_declared_sbuild_wheel", top_levels = _TOP_LEVELS, + top_level_dirs = _TOP_LEVEL_DIRS, namespace_top_levels = _NAMESPACE_TOP_LEVELS, + native_roots = _NATIVE_ROOTS, console_scripts = _CONSOLE_SCRIPTS, tags = ["manual"], ) @@ -406,12 +481,15 @@ def metadata_selection_test_suite(name): name = name + "_linux_test", target_under_test = ":__metadata_linux_fixture", expected_top_levels = _TOP_LEVELS[_LINUX_WHL], + expected_top_level_dirs = _TOP_LEVEL_DIRS[_LINUX_WHL], expected_namespace_top_levels = [], + expected_native_roots = _NATIVE_ROOTS[_LINUX_WHL], expected_console_scripts = _CONSOLE_SCRIPTS[_LINUX_WHL], leaked_top_levels = [ "_demo_backend.cpython-311-darwin.so", "demo_ns", ], + leaked_native_roots = ["demo_ns/nested"], leaked_console_scripts = ["demo-mac=demo.cli:mac_main"], ) @@ -419,9 +497,12 @@ def metadata_selection_test_suite(name): name = name + "_macos_test", target_under_test = ":__metadata_macos_fixture", expected_top_levels = _TOP_LEVELS[_MACOS_WHL], + expected_top_level_dirs = _TOP_LEVEL_DIRS[_MACOS_WHL], expected_namespace_top_levels = _NAMESPACE_TOP_LEVELS[_MACOS_WHL], + expected_native_roots = _NATIVE_ROOTS[_MACOS_WHL], expected_console_scripts = _CONSOLE_SCRIPTS[_MACOS_WHL], leaked_top_levels = ["_demo_backend.cpython-311-x86_64-linux-gnu.so"], + leaked_native_roots = ["demo"], leaked_console_scripts = [], ) @@ -429,9 +510,12 @@ def metadata_selection_test_suite(name): name = name + "_sbuild_fallback_test", target_under_test = ":__metadata_sbuild_fixture", expected_top_levels = [], + expected_top_level_dirs = [], expected_namespace_top_levels = [], + expected_native_roots = [], expected_console_scripts = [], leaked_top_levels = [], + leaked_native_roots = [], leaked_console_scripts = [], ) @@ -439,9 +523,12 @@ def metadata_selection_test_suite(name): name = name + "_declared_sbuild_test", target_under_test = ":__metadata_declared_sbuild_fixture", expected_top_levels = [], + expected_top_level_dirs = [], expected_namespace_top_levels = [], + expected_native_roots = [], expected_console_scripts = _DECLARED_SBUILD_CONSOLE_SCRIPTS, leaked_top_levels = _TOP_LEVELS[_LINUX_WHL], + leaked_native_roots = _NATIVE_ROOTS[_LINUX_WHL], leaked_console_scripts = _CONSOLE_SCRIPTS[_LINUX_WHL], ) @@ -450,9 +537,12 @@ def metadata_selection_test_suite(name): target_under_test = ":__metadata_patched_fixture", expected_console_scripts = _CONSOLE_SCRIPTS[_MACOS_WHL], expected_namespace_top_levels = _NAMESPACE_TOP_LEVELS[_MACOS_WHL], + expected_native_roots = _NATIVE_ROOTS[_MACOS_WHL], expected_preserve_paths = _PATCHED_PRESERVE_PATHS, expected_top_levels = _PATCHED_TOP_LEVELS[_MACOS_WHL], + expected_top_level_dirs = _TOP_LEVEL_DIRS[_MACOS_WHL], leaked_console_scripts = [], + leaked_native_roots = [], leaked_top_levels = [], ) @@ -477,6 +567,10 @@ def whl_install_suite(): "site_packages_segments_tests", site_packages_segments_test, ) + unittest.suite( + "native_roots_tests", + native_roots_test, + ) unittest.suite( "console_script_tests", console_script_test,