| workspace( | |
| name = "module_under_test", | |
| ) | |
| local_repository( | |
| name = "rules_python", | |
| path = "../../..", | |
| ) | |
| load("@rules_python//python:repositories.bzl", "py_repositories") | |
| py_repositories( | |
| transition_settings = [ | |
| "@//:py", | |
| ], | |
| ) | |
| load("@rules_python//python/local_toolchains:repos.bzl", "local_runtime_repo", "local_runtime_toolchains_repo") | |
| # Step 1: Define the python runtime. | |
| local_runtime_repo( | |
| name = "local_python3", | |
| interpreter_path = "python3", | |
| on_failure = "fail", | |
| # or interpreter_path = "C:\\path\\to\\python.exe" | |
| ) | |
| load("//:pbs_archive.bzl", "pbs_archive") | |
| pbs_archive( | |
| name = "pbs_runtime", | |
| sha256 = { | |
| "linux": "0a01bad99fd4a165a11335c29eb43015dfdb8bd5ba8e305538ebb54f3bf3146d", | |
| "mac os x": "4fb42ffc8aad2a42ca7646715b8926bc6b2e0d31f13d2fec25943dc236a6fd60", | |
| "windows": "005cb2abf4cfa4aaa48fb10ce4e33fe4335ea4d1f55202dbe4e20c852e45e0f9", | |
| }, | |
| urls = { | |
| "linux": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-x86_64-unknown-linux-gnu-install_only.tar.gz", | |
| "mac os x": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-x86_64-apple-darwin-install_only.tar.gz", | |
| "windows server 2022": "https://github.com/astral-sh/python-build-standalone/releases/download/20250918/cpython-3.13.7+20250918-x86_64-pc-windows-msvc-install_only.tar.gz", | |
| }, | |
| ) | |
| local_runtime_repo( | |
| name = "repo_python3", | |
| interpreter_target = "@pbs_runtime//:python/bin/python3", | |
| on_failure = "fail", | |
| ) | |
| # Step 2: Create toolchains for the runtimes | |
| local_runtime_toolchains_repo( | |
| name = "local_toolchains", | |
| runtimes = [ | |
| "local_python3", | |
| "repo_python3", | |
| ], | |
| target_compatible_with = { | |
| "local_python3": [ | |
| "HOST_CONSTRAINTS", | |
| ], | |
| "repo_python3": [ | |
| "HOST_CONSTRAINTS", | |
| ], | |
| }, | |
| target_settings = { | |
| "local_python3": [ | |
| "@//:is_py_local", | |
| ], | |
| "repo_python3": [ | |
| "@//:is_py_repo", | |
| ], | |
| }, | |
| ) | |
| # Step 3: Register the toolchains | |
| register_toolchains("@local_toolchains//:all") |