From 35113d299dfb253bf5878d03337564461a5a8fef Mon Sep 17 00:00:00 2001 From: thesayyn Date: Thu, 9 Jul 2026 13:37:19 -0700 Subject: [PATCH 1/2] fix: do not set MANIFEST_FILE since we set --build_runfile_links explicitly --- .../builtins/aspect/private/lib/runnable.axl | 63 +- .../aspect/private/lib/runnable_test.axl | 40 +- examples/py_runnable/.bazelrc | 2 + examples/py_runnable/.bazelversion | 1 + examples/py_runnable/BUILD.bazel | 13 + examples/py_runnable/MODULE.bazel | 24 + examples/py_runnable/MODULE.bazel.lock | 1395 +++++++++++++++++ examples/py_runnable/hello.py | 11 + examples/py_runnable/pyproject.toml | 7 + examples/py_runnable/uv.lock | 22 + 10 files changed, 1565 insertions(+), 13 deletions(-) create mode 100644 examples/py_runnable/.bazelrc create mode 100644 examples/py_runnable/.bazelversion create mode 100644 examples/py_runnable/BUILD.bazel create mode 100644 examples/py_runnable/MODULE.bazel create mode 100644 examples/py_runnable/MODULE.bazel.lock create mode 100644 examples/py_runnable/hello.py create mode 100644 examples/py_runnable/pyproject.toml create mode 100644 examples/py_runnable/uv.lock diff --git a/crates/aspect-cli/src/builtins/aspect/private/lib/runnable.axl b/crates/aspect-cli/src/builtins/aspect/private/lib/runnable.axl index 660cda1b6..ef6993e89 100644 --- a/crates/aspect-cli/src/builtins/aspect/private/lib/runnable.axl +++ b/crates/aspect-cli/src/builtins/aspect/private/lib/runnable.axl @@ -583,12 +583,11 @@ def _spawn(ctx: TaskContext, state: struct, ep: struct, args: list[str], capture wrappers can locate the workspace, and the four ASPECT_* variables for tools that prefer aspect-native conventions. - When `ep.runfiles_dir` is set, also injects RUNFILES_DIR / - RUNFILES_MANIFEST_FILE / JAVA_RUNFILES so `rlocation` in sh_binary wrappers - and the bash runfiles library resolve data deps regardless of cwd, plus - RUNFILES_WORKSPACE_DIR (the cwd `bazel run` uses, `runfiles_dir/`) - for tools that want the canonical workspace root inside runfiles without - re-deriving it from RUNFILES_DIR. + When `ep.runfiles_dir` is set, also applies the `runfiles_env(ep)` vars + (RUNFILES_DIR / JAVA_RUNFILES / RUNFILES_WORKSPACE_DIR) so `rlocation` in + sh_binary wrappers and the bash runfiles library resolve data deps regardless + of cwd, and unsets RUNFILES_MANIFEST_FILE — see `runfiles_env` for why the + manifest var must be actively removed from the spawned env. Working directory defaults to `runfiles_dir/` (matching `bazel run`) when a runfiles tree is present, falling back to the aspect invocation directory @@ -610,16 +609,56 @@ def _spawn(ctx: TaskContext, state: struct, ep: struct, args: list[str], capture .env("ASPECT_BAZEL_ROOT_DIRECTORY", ctx.std.env.bazel_root_dir()) \ .env("ASPECT_GIT_ROOT_DIRECTORY", ctx.std.env.git_root_dir() or "") \ .args(getattr(ep, "args", []) + list(args)) - if ep.runfiles_dir: - cmd = cmd \ - .env("RUNFILES_DIR", ep.runfiles_dir) \ - .env("JAVA_RUNFILES", ep.runfiles_dir) \ - .env("RUNFILES_MANIFEST_FILE", ep.runfiles_dir + "_manifest") \ - .env("RUNFILES_WORKSPACE_DIR", ep.runfiles_workspace_dir) + for k, v in runfiles_env(ep).items(): + cmd = cmd.env(k, v) if capture: cmd = cmd.stdout("piped").stderr("piped") return cmd.spawn() +def runfiles_env(ep: struct) -> dict: + """The RUNFILES_* environment `_spawn` exports for entrypoint `ep`. + + Empty when `ep` has no materialized runfiles tree (`runfiles_dir` is None). + Otherwise RUNFILES_DIR / JAVA_RUNFILES (the runfiles root) plus + RUNFILES_WORKSPACE_DIR (the cwd `bazel run` uses, `runfiles_dir/`, + for tools that want the canonical workspace root without re-deriving it), and + RUNFILES_MANIFEST_FILE mapped to `None` to REMOVE it from the spawned env. + + RUNFILES_MANIFEST_FILE must be actively unset, not merely left unset by us. + The standard runfiles libraries resolve manifest-first, then directory: + whenever RUNFILES_MANIFEST_FILE is present they take manifest mode, which + resolves a runfile to its real (symlink-target) path rather than its in-tree + path. rules_py's `hermetic_launcher` binary then resolves the venv's + `bin/python` through the manifest to the underlying interpreter, so Python + computes `sys.prefix` from the interpreter repo, never reads the venv's + `pyvenv.cfg`, and the venv's site-packages (its third-party deps) never land + on `sys.path`. The spawned child inherits aspect-cli's own environment, so + when aspect-cli is itself launched from a Bazel binary/test (which exports + RUNFILES_MANIFEST_FILE pointing at aspect-cli's OWN manifest), simply not + adding the var isn't enough — the child would inherit the parent's manifest + and resolve the wrong tree. Mapping it to `None` (the local process wrapper + removes vars set to None) forces directory mode off RUNFILES_DIR, matching + how `bazel run` launches top-level binaries (no manifest; the launcher + self-discovers its tree from argv[0]). `--build_runfile_links` (always in + `_LOCAL_SPAWN_FLAGS`) guarantees the tree is materialized, so directory mode + always resolves. + + TODO(windows): with `--noenable_runfiles` (Windows default) there is no + symlink tree, so `runfiles_dir` is None and this returns empty — a spawned + binary that doesn't self-discover its runfiles then can't resolve data deps. + The fix there is RUNFILES_MANIFEST_FILE, but setting it re-triggers the + hermetic_launcher manifest-mode breakage above, so the manifest path needs + its own (launcher-safe) handling rather than reusing this branch. + """ + if not ep.runfiles_dir: + return {} + return { + "RUNFILES_DIR": ep.runfiles_dir, + "JAVA_RUNFILES": ep.runfiles_dir, + "RUNFILES_WORKSPACE_DIR": ep.runfiles_workspace_dir, + "RUNFILES_MANIFEST_FILE": None, + } + def runnable(ctx, targets: list[str], rc = None) -> struct: """Build a BES event tracker that resolves entrypoints for `targets`. diff --git a/crates/aspect-cli/src/builtins/aspect/private/lib/runnable_test.axl b/crates/aspect-cli/src/builtins/aspect/private/lib/runnable_test.axl index d84d73c9d..3e521e588 100644 --- a/crates/aspect-cli/src/builtins/aspect/private/lib/runnable_test.axl +++ b/crates/aspect-cli/src/builtins/aspect/private/lib/runnable_test.axl @@ -1,7 +1,7 @@ """Unit tests for lib/runnable.axl: apparent_label normalization, BES matching, entrypoint selection (passes 1–3), and runfiles directory detection.""" -load("./runnable.axl", "apparent_label", "download_outputs_sufficient", "effective_download_outputs", "resolve_run_in", "runnable") +load("./runnable.axl", "apparent_label", "download_outputs_sufficient", "effective_download_outputs", "resolve_run_in", "runfiles_env", "runnable") def _eq(label, got, want): if got != want: @@ -650,6 +650,42 @@ def _test_no_runinfo_yields_empty_args_env(ctx): _eq("no-runinfo: env empty", ep.environment, {}) _eq("no-runinfo: inherited empty", ep.inherited_environment, []) +# runfiles_env — the RUNFILES_* env `_spawn` applies. RUNFILES_MANIFEST_FILE is +# mapped to None (actively removed): if present it forces manifest-mode +# resolution in rules_py's hermetic_launcher, which follows the venv's +# bin/python symlink to the real interpreter and drops the venv's site-packages +# (the venv's third-party deps). It must be removed, not merely left unset, +# because the spawned child inherits aspect-cli's env — an aspect-cli launched +# from a Bazel binary/test carries the parent's RUNFILES_MANIFEST_FILE. + +def _spawn_ep(runfiles_dir): + """An entrypoint struct shaped like `determine_entrypoint`'s return, with + only the fields `runfiles_env` reads populated.""" + return struct( + runfiles_dir = runfiles_dir, + runfiles_workspace_dir = (runfiles_dir + "/_main") if runfiles_dir else None, + ) + +def _test_runfiles_env_unsets_manifest_file(ctx): + """With a runfiles tree: RUNFILES_DIR / JAVA_RUNFILES / RUNFILES_WORKSPACE_DIR + are exported (directory mode), and RUNFILES_MANIFEST_FILE is mapped to None + so `_spawn` removes any inherited manifest — leaving it would force + hermetic_launcher's symlink-following manifest mode and break the venv.""" + env = runfiles_env(_spawn_ep("/out/bin/pkg/hello.runfiles")) + if "RUNFILES_MANIFEST_FILE" not in env: + fail("runfiles_env: RUNFILES_MANIFEST_FILE must be present and mapped to None so an inherited manifest is removed") + if env["RUNFILES_MANIFEST_FILE"] != None: + fail("runfiles_env: RUNFILES_MANIFEST_FILE must be None (removes an inherited manifest); got %r" % env["RUNFILES_MANIFEST_FILE"]) + _eq("runfiles_env: RUNFILES_DIR", env.get("RUNFILES_DIR"), "/out/bin/pkg/hello.runfiles") + _eq("runfiles_env: JAVA_RUNFILES", env.get("JAVA_RUNFILES"), "/out/bin/pkg/hello.runfiles") + _eq("runfiles_env: RUNFILES_WORKSPACE_DIR", env.get("RUNFILES_WORKSPACE_DIR"), "/out/bin/pkg/hello.runfiles/_main") + +def _test_runfiles_env_empty_without_tree(ctx): + """No runfiles tree (`runfiles_dir` is None) → empty dict: none of the + RUNFILES_* vars are set (and no manifest unset, since directory mode isn't + in play).""" + _eq("runfiles_env: empty without tree", runfiles_env(_spawn_ep(None)), {}) + # flags — runinfo injection + the --remote_download_outputs floor. # Exercised through `runnable(rc=...).flags`; the helpers are private. @@ -876,6 +912,8 @@ _UNIT_TESTS = [ _test_runinfo_selects_executable_over_heuristic, _test_runinfo_attaches_args_and_env, _test_no_runinfo_yields_empty_args_env, + _test_runfiles_env_unsets_manifest_file, + _test_runfiles_env_empty_without_tree, _test_download_floor_forced_when_unset, _test_download_floor_forced_when_minimal, _test_download_floor_forced_when_minimal_alias, diff --git a/examples/py_runnable/.bazelrc b/examples/py_runnable/.bazelrc new file mode 100644 index 000000000..88bc0de55 --- /dev/null +++ b/examples/py_runnable/.bazelrc @@ -0,0 +1,2 @@ +# Activate this project's dependency group so @pypi// targets are selected. +common --@pypi//dep_group=py-binary-example diff --git a/examples/py_runnable/.bazelversion b/examples/py_runnable/.bazelversion new file mode 100644 index 000000000..37ad5c8b1 --- /dev/null +++ b/examples/py_runnable/.bazelversion @@ -0,0 +1 @@ +9.0.1 diff --git a/examples/py_runnable/BUILD.bazel b/examples/py_runnable/BUILD.bazel new file mode 100644 index 000000000..0f6613c9a --- /dev/null +++ b/examples/py_runnable/BUILD.bazel @@ -0,0 +1,13 @@ +load("@aspect_rules_py//py:defs.bzl", "py_binary") + +# py_binary whose launcher is the hermetic_launcher native stub, with a +# third-party pypi dep in its venv — the fixture for `aspect run` +# executing a rules_py binary. +py_binary( + name = "hello", + srcs = ["hello.py"], + main = "hello.py", + deps = [ + "@pypi//cowsay", + ], +) diff --git a/examples/py_runnable/MODULE.bazel b/examples/py_runnable/MODULE.bazel new file mode 100644 index 000000000..aef35e200 --- /dev/null +++ b/examples/py_runnable/MODULE.bazel @@ -0,0 +1,24 @@ +"""Standalone workspace: `aspect run` over a rules_py py_binary whose +launcher is the hermetic_launcher native stub.""" + +module(name = "py_runnable_example") + +bazel_dep(name = "aspect_rules_py", version = "2.0.0-alpha.4") +bazel_dep(name = "bazel_lib", version = "3.0.0") +bazel_dep(name = "bazel_skylib", version = "1.4.2") +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 = "//:uv.lock", + pyproject = "//:pyproject.toml", +) +use_repo(uv, "pypi") diff --git a/examples/py_runnable/MODULE.bazel.lock b/examples/py_runnable/MODULE.bazel.lock new file mode 100644 index 000000000..9d9d93051 --- /dev/null +++ b/examples/py_runnable/MODULE.bazel.lock @@ -0,0 +1,1395 @@ +{ + "lockFileVersion": 26, + "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/20250814.1/MODULE.bazel": "51f2312901470cdab0dbdf3b88c40cd21c62a7ed58a3de45b365ddc5b11bcab2", + "https://bcr.bazel.build/modules/abseil-cpp/20250814.1/source.json": "cea3901d7e299da7320700abbaafe57a65d039f10d0d7ea601c4a66938ea4b0c", + "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.21.0/MODULE.bazel": "ac1824ed5edf17dee2fdd4927ada30c9f8c3b520be1b5fd02a5da15bc10bff3e", + "https://bcr.bazel.build/modules/apple_support/1.21.1/MODULE.bazel": "5809fa3efab15d1f3c3c635af6974044bac8a4919c62238cce06acee8a8c11f1", + "https://bcr.bazel.build/modules/apple_support/1.24.2/MODULE.bazel": "0e62471818affb9f0b26f128831d5c40b074d32e6dda5a0d3852847215a41ca4", + "https://bcr.bazel.build/modules/apple_support/1.24.2/source.json": "2c22c9827093250406c5568da6c54e6fdf0ef06238def3d99c71b12feb057a8d", + "https://bcr.bazel.build/modules/aspect_rules_py/2.0.0-alpha.4/MODULE.bazel": "4d9f393a947c01809556659cc4b07b76b25d98f25a8062280e506b5c296b89cf", + "https://bcr.bazel.build/modules/aspect_rules_py/2.0.0-alpha.4/source.json": "fcf828898c74224aff425d991755e5bc6346e9ff4da74e0b286f9bc19c5424c4", + "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.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.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.42.1/MODULE.bazel": "275a59b5406ff18c01739860aa70ad7ccb3cfb474579411decca11c93b951080", + "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/8.5.1/MODULE.bazel": "a35d9561b3fc5b18797c330793e99e3b834a473d5fbd3d7d7634aafc9bdb6f8f", + "https://bcr.bazel.build/modules/buildozer/8.5.1/source.json": "e3386e6ff4529f2442800dee47ad28d3e6487f36a1f75ae39ae56c70f0cd2fbd", + "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.1/MODULE.bazel": "557c3457560ff49e122ed76c0bc3397a64af9574691cb8201b4e46d4ab2ecb95", + "https://bcr.bazel.build/modules/protobuf/3.19.0/MODULE.bazel": "6b5fbb433f760a99a22b18b6850ed5784ef0e9928a72668b66e4d7ccd47db9b0", + "https://bcr.bazel.build/modules/protobuf/32.1/MODULE.bazel": "89cd2866a9cb07fee9ff74c41ceace11554f32e0d849de4e23ac55515cfada4d", + "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/4.1.0/MODULE.bazel": "76e10fd4a48038d3fc7c5dc6e63b7063bbf5304a2e3bd42edda6ec660eebea68", + "https://bcr.bazel.build/modules/rules_apple/4.1.0/source.json": "8ee81e1708756f81b343a5eb2b2f0b953f1d25c4ab3d4a68dc02754872e80715", + "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.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.2/MODULE.bazel": "557ddc3a96858ec0d465a87c0a931054d7dcfd6583af2c7ed3baf494407fd8d0", + "https://bcr.bazel.build/modules/rules_cc/0.1.5/MODULE.bazel": "88dfc9361e8b5ae1008ac38f7cdfd45ad738e4fa676a3ad67d19204f045a1fd8", + "https://bcr.bazel.build/modules/rules_cc/0.2.0/MODULE.bazel": "b5c17f90458caae90d2ccd114c81970062946f49f355610ed89bebf954f5783c", + "https://bcr.bazel.build/modules/rules_cc/0.2.13/MODULE.bazel": "eecdd666eda6be16a8d9dc15e44b5c75133405e820f620a234acc4b1fdc5aa37", + "https://bcr.bazel.build/modules/rules_cc/0.2.16/MODULE.bazel": "9242fa89f950c6ef7702801ab53922e99c69b02310c39fb6e62b2bd30df2a1d4", + "https://bcr.bazel.build/modules/rules_cc/0.2.17/MODULE.bazel": "1849602c86cb60da8613d2de887f9566a6d354a6df6d7009f9d04a14402f9a84", + "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_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.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.6.1/MODULE.bazel": "2f14b7e8a1aa2f67ae92bc69d1ec0fa8d9f827c4e17ff5e5f02e91caa3b2d0fe", + "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_java/9.0.3/MODULE.bazel": "1f98ed015f7e744a745e0df6e898a7c5e83562d6b759dfd475c76456dda5ccea", + "https://bcr.bazel.build/modules/rules_java/9.0.3/source.json": "b038c0c07e12e658135bbc32cc1a2ded6e33785105c9d41958014c592de4593e", + "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/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.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/1.0.0/MODULE.bazel": "898a3d999c22caa585eb062b600f88654bf92efb204fa346fb55f6f8edffca43", + "https://bcr.bazel.build/modules/rules_python/1.3.0/MODULE.bazel": "8361d57eafb67c09b75bf4bbe6be360e1b8f4f18118ab48037f2bd50aa2ccb13", + "https://bcr.bazel.build/modules/rules_python/1.4.1/MODULE.bazel": "8991ad45bdc25018301d6b7e1d3626afc3c8af8aaf4bc04f23d0b99c938b73a6", + "https://bcr.bazel.build/modules/rules_python/1.6.0/MODULE.bazel": "7e04ad8f8d5bea40451cf80b1bd8262552aa73f841415d20db96b7241bd027d8", + "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.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.4.0/MODULE.bazel": "1639617eb1ede28d774d967a738b4a68b0accb40650beadb57c21846beab5efd", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/MODULE.bazel": "72c8f5cf9d26427cee6c76c8e3853eb46ce6b0412a081b2b6db6e8ad56267400", + "https://bcr.bazel.build/modules/rules_swift/3.1.2/source.json": "e85761f3098a6faf40b8187695e3de6d97944e98abd0d8ce579cb2daf6319a66", + "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.7.0/MODULE.bazel": "05e3d6d30c099b6770e97da986c53bd31844d7f13d41412480ea265ac9e8079c", + "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.2/MODULE.bazel": "75aab2373a4bbe2a1260b9bf2a1ebbdbf872d3bd36f80bff058dccd82e89422f", + "https://bcr.bazel.build/modules/swift_argument_parser/1.3.1.2/source.json": "5fba48bbe0ba48761f9e9f75f92876cafb5d07c0ce059cc7a8027416de94a05b", + "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": "kqQBy77VGMZA0qEiCyGKY3JKPhKrjzzyMVYd0SUIw30=", + "recordedInputs": [ + "REPO_MAPPING:aspect_tools_telemetry+,bazel_lib bazel_lib+", + "REPO_MAPPING:aspect_tools_telemetry+,bazel_skylib bazel_skylib+" + ], + "generatedRepoSpecs": { + "aspect_tools_telemetry_report": { + "repoRuleId": "@@aspect_tools_telemetry+//:extension.bzl%tel_repository", + "attributes": { + "deps": { + "aspect_rules_py": "2.0.0-alpha.4", + "aspect_tools_telemetry": "0.3.3" + } + } + } + } + } + }, + "@@rules_kotlin+//src/main/starlark/core/repositories:bzlmod_setup.bzl%rules_kotlin_extensions": { + "general": { + "bzlTransitiveDigest": "ABI1D/sbS1ovwaW/kHDoj8nnXjQ0oKU9fzmzEG4iT8o=", + "usagesDigest": "QI2z8ZUR+mqtbwsf2fLqYdJAkPOHdOV+tF2yVAUgRzw=", + "recordedInputs": [ + "REPO_MAPPING:rules_kotlin+,bazel_tools bazel_tools" + ], + "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" + ] + } + } + } + } + }, + "@@rules_python+//python/uv:uv.bzl%uv": { + "general": { + "bzlTransitiveDigest": "yG9F6L2IZXKRbD/aIUa6sU7uITLUTBKOMWPbIvl1VdM=", + "usagesDigest": "6MjoD3H+netDdhklgMWks3NARpHVXxy8kfsMe9XXPa8=", + "recordedInputs": [ + "REPO_MAPPING:rules_python+,bazel_tools bazel_tools", + "REPO_MAPPING:rules_python+,platforms platforms" + ], + "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": {} + } + } + } + } + } + }, + "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_runnable/hello.py b/examples/py_runnable/hello.py new file mode 100644 index 000000000..c2dacf9d2 --- /dev/null +++ b/examples/py_runnable/hello.py @@ -0,0 +1,11 @@ +import sys + +import cowsay + + +def main() -> None: + cowsay.cow("hello from py_runnable, args=%r" % (sys.argv[1:],)) + + +if __name__ == "__main__": + main() diff --git a/examples/py_runnable/pyproject.toml b/examples/py_runnable/pyproject.toml new file mode 100644 index 000000000..434a44b5d --- /dev/null +++ b/examples/py_runnable/pyproject.toml @@ -0,0 +1,7 @@ +[project] +name = "py-binary-example" +version = "0.0.0" +requires-python = ">=3.11" +dependencies = [ + "cowsay", +] diff --git a/examples/py_runnable/uv.lock b/examples/py_runnable/uv.lock new file mode 100644 index 000000000..28b60bc8f --- /dev/null +++ b/examples/py_runnable/uv.lock @@ -0,0 +1,22 @@ +version = 1 +revision = 3 +requires-python = ">=3.11" + +[[package]] +name = "cowsay" +version = "6.1" +source = { registry = "https://pypi.org/simple" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f1/13/63c0a02c44024ee16f664e0b36eefeb22d54e93531630bd99e237986f534/cowsay-6.1-py3-none-any.whl", hash = "sha256:274b1e6fc1b966d53976333eb90ac94cb07a450a700b455af9fbdf882244b30a", size = 25560, upload-time = "2023-09-25T16:30:01.619Z" }, +] + +[[package]] +name = "py-binary-example" +version = "0.0.0" +source = { virtual = "." } +dependencies = [ + { name = "cowsay" }, +] + +[package.metadata] +requires-dist = [{ name = "cowsay" }] From 1e22f8c7f001812911acc85fe1a59c8838738fba Mon Sep 17 00:00:00 2001 From: Sahin Yort Date: Thu, 9 Jul 2026 14:49:04 -0700 Subject: [PATCH 2/2] ignore --- .bazelignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.bazelignore b/.bazelignore index 1e100cbc3..c6628bff0 100644 --- a/.bazelignore +++ b/.bazelignore @@ -4,4 +4,5 @@ bazel/proto/ examples/large_bes examples/slow_build examples/cache-diff +examples/py_runnable .claude/ \ No newline at end of file