module(
    name = "rules_python",
    version = "0.22.1",
    compatibility_level = 1,
)

bazel_dep(name = "platforms", version = "0.0.4")
bazel_dep(name = "bazel_skylib", version = "1.3.0")

# Those are loaded only when using py_proto_library
bazel_dep(name = "rules_proto", version = "5.3.0-21.7")
bazel_dep(name = "protobuf", version = "21.7", repo_name = "com_google_protobuf")

internal_deps = use_extension("@rules_python//python/extensions/private:internal_deps.bzl", "internal_deps")
internal_deps.install()
use_repo(
    internal_deps,
    "pypi__build",
    "pypi__click",
    "pypi__colorama",
    "pypi__importlib_metadata",
    "pypi__installer",
    "pypi__more_itertools",
    "pypi__packaging",
    "pypi__pep517",
    "pypi__pip",
    "pypi__pip_tools",
    "pypi__setuptools",
    "pypi__tomli",
    "pypi__wheel",
    "pypi__zipp",
    # coverage_deps managed by running ./tools/update_coverage_deps.py <version>
    "pypi__coverage_cp310_aarch64-apple-darwin",
    "pypi__coverage_cp310_aarch64-unknown-linux-gnu",
    "pypi__coverage_cp310_x86_64-apple-darwin",
    "pypi__coverage_cp310_x86_64-unknown-linux-gnu",
    "pypi__coverage_cp311_aarch64-unknown-linux-gnu",
    "pypi__coverage_cp311_x86_64-apple-darwin",
    "pypi__coverage_cp311_x86_64-unknown-linux-gnu",
    "pypi__coverage_cp38_aarch64-apple-darwin",
    "pypi__coverage_cp38_aarch64-unknown-linux-gnu",
    "pypi__coverage_cp38_x86_64-apple-darwin",
    "pypi__coverage_cp38_x86_64-unknown-linux-gnu",
    "pypi__coverage_cp39_aarch64-apple-darwin",
    "pypi__coverage_cp39_aarch64-unknown-linux-gnu",
    "pypi__coverage_cp39_x86_64-apple-darwin",
    "pypi__coverage_cp39_x86_64-unknown-linux-gnu",
)

python = use_extension("@rules_python//python/extensions:python.bzl", "python")
use_repo(python, "pythons_hub")

# Necessary so that some toolchain is available so that the Python rules
# work in some minimal capacity.
# The @bazel_tools repo depends on rules_python, so expects rules_python
# to register a toolchain. @bazel_tools can't register a Python toolchain
# itself because @bazel_tools will typically come sooner in the module
# graph BFS order (it is an implicit dep of every module), and would thus
# override any toolchain rules_python registers.
register_toolchains("@bazel_tools//tools/python:autodetecting_toolchain")
