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

bazel_dep(name = "bazel_features", version = "1.21.0")
bazel_dep(name = "bazel_skylib", version = "1.8.2")
bazel_dep(name = "package_metadata", version = "0.0.7")
bazel_dep(name = "platforms", version = "0.0.11")
bazel_dep(name = "rules_cc", version = "0.2.17")
bazel_dep(name = "toml.bzl", version = "0.4.1")

# Those are loaded only when using py_proto_library
# Use py_proto_library directly from protobuf repository
bazel_dep(name = "protobuf", version = "29.0-rc2", repo_name = "com_google_protobuf")

rules_python_config = use_extension("//python/extensions:config.bzl", "config")
use_repo(
    rules_python_config,
    "pypi__build",
    "pypi__click",
    "pypi__colorama",
    "pypi__importlib_metadata",
    "pypi__installer",
    "pypi__more_itertools",
    "pypi__packaging",
    "pypi__pep517",
    "pypi__pip",
    "pypi__pip_tools",
    "pypi__pyproject_hooks",
    "pypi__setuptools",
    "pypi__tomli",
    "pypi__wheel",
    "pypi__zipp",
    "rules_python_internal",
)

# We need to do another use_extension call to expose the "pythons_hub"
# repo.
python = use_extension("//python/extensions:python.bzl", "python")

# The default toolchain to use if nobody configures a toolchain.
# NOTE: This is not a stable version. It is provided for convenience, but will
# change frequently to track the most recent Python version.
# NOTE: The root module can override this.
# NOTE: There must be a corresponding `python.toolchain()` call for the version
# specified here.
python.defaults(
    python_version = "3.14",
)
python.toolchain(
    python_version = "3.14",
)
use_repo(
    python,
    "python_3_14",
    "pythons_hub",
    python = "python_versions",
)

# This call registers the Python toolchains.
register_toolchains("@pythons_hub//:all")

#####################
# Install twine for our own runfiles wheel publishing and allow bzlmod users to use it.

pip = use_extension("//python/extensions:pip.bzl", "pip")
pip.parse(
    hub_name = "rules_python_publish_deps",
    python_version = "3.14",
    requirements_by_platform = {
        "//tools/publish:requirements_darwin.txt": "osx_*",
        "//tools/publish:requirements_linux.txt": "linux_*",
        "//tools/publish:requirements_windows.txt": "windows_*",
    },
    target_platforms = [
        "linux_aarch64",
        "linux_x86_64",
        "osx_aarch64",
        "osx_x86_64",
        "windows_aarch64",
        "windows_x86_64",
    ],
)
use_repo(pip, "rules_python_publish_deps")

# ===== DEV ONLY DEPS AND SETUP BELOW HERE =====
bazel_dep(name = "sphinxdocs", version = "0.0.0", dev_dependency = True)
local_path_override(
    module_name = "sphinxdocs",
    path = "sphinxdocs",
)

bazel_dep(name = "rules_bazel_integration_test", version = "0.27.0", dev_dependency = True)
bazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True)
bazel_dep(name = "rules_shell", version = "0.3.0", dev_dependency = True)
bazel_dep(name = "rules_multirun", version = "0.9.0", dev_dependency = True)
bazel_dep(name = "bazel_ci_rules", version = "1.0.0", dev_dependency = True)
bazel_dep(name = "rules_pkg", version = "1.2.0", dev_dependency = True)
bazel_dep(name = "rules_rust", version = "0.73.0", dev_dependency = True)

rust_crates = use_extension(
    "@rules_rust//crate_universe:extensions.bzl",
    "crate",
    dev_dependency = True,
)
rust_crates.spec(
    package = "sha2",
    version = "0.10.8",
)
rust_crates.from_specs()
use_repo(rust_crates, "crates")

bazel_dep(name = "other", version = "0", dev_dependency = True)
bazel_dep(name = "another_module", version = "0", dev_dependency = True)

# Extra gazelle plugin deps so that WORKSPACE.bzlmod can continue including it for e2e tests.
# We use `WORKSPACE.bzlmod` because it is impossible to have dev-only local overrides.
bazel_dep(name = "rules_go", version = "0.60.0", dev_dependency = True, repo_name = "io_bazel_rules_go")
bazel_dep(name = "gazelle", version = "0.40.0", dev_dependency = True, repo_name = "bazel_gazelle")
bazel_dep(name = "bazel_skylib_gazelle_plugin", version = "1.8.2", dev_dependency = True)
bazel_dep(name = "rules_pyrefly", version = "0.1.0", dev_dependency = True)

pyrefly = use_extension(
    "@rules_pyrefly//pyrefly:extensions.bzl",
    "pyrefly",
    dev_dependency = True,
)
pyrefly.toolchain(version = "1.2.0")
use_repo(pyrefly, "pyrefly_toolchains")

register_toolchains(
    "@pyrefly_toolchains//:all",
    dev_dependency = True,
)

internal_dev_deps = use_extension(
    "//python/private:internal_dev_deps.bzl",
    "internal_dev_deps",
    dev_dependency = True,
)
use_repo(
    internal_dev_deps,
    "buildkite_config",
    "implicit_namespace_ns_sub1",
    "implicit_namespace_ns_sub2",
    "patch_whl_pkg",
    "pkgutil_nspkg1",
    "pkgutil_nspkg2",
    "rules_python_runtime_env_tc_info",
    "somepkg_with_build_files",
    "whl_library_extras_direct_dep",
    "whl_with_build_files",
    "whl_with_data1",
    "whl_with_data2",
)

dev_rules_python_config = use_extension(
    "//python/extensions:config.bzl",
    "config",
    dev_dependency = True,
)
dev_rules_python_config.add_transition_setting(
    # Intentionally add a setting already present for testing
    setting = "//python/config_settings:python_version",
)
dev_rules_python_config.add_transition_setting(
    setting = "//tests/multi_pypi:external_deps_name",
)

local_path_override(
    module_name = "other",
    path = "tests/modules/other",
)

local_path_override(
    module_name = "another_module",
    path = "tests/modules/another_module",
)

dev_python = use_extension(
    "//python/extensions:python.bzl",
    "python",
    dev_dependency = True,
)
dev_python.override(
    register_all_versions = True,
)

# For testing an arbitrary runtime triggered by a custom flag.
# See //tests/toolchains:custom_platform_toolchain_test
dev_python.single_version_platform_override(
    platform = "linux-x86-install-only-stripped",
    python_version = "3.13.1",
    sha256 = "56817aa976e4886bec1677699c136cb01c1cdfe0495104c0d8ef546541864bbb",
    target_compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    target_settings = [
        "@@//tests/support:is_custom_runtime_linux-x86-install-only-stripped",
    ],
    urls = ["https://github.com/astral-sh/python-build-standalone/releases/download/20250115/cpython-3.13.1+20250115-x86_64-unknown-linux-gnu-install_only_stripped.tar.gz"],
)

dev_pip = use_extension(
    "//python/extensions:pip.bzl",
    "pip",
    dev_dependency = True,
)

[
    dev_pip.parse(
        download_only = True,
        hub_name = "dev_pip",
        parallel_download = False,
        python_version = python_version,
        requirements_lock = "//dev:requirements.txt",
        # Ensure that we are setting up the following platforms
        target_platforms = [
            "{os}_{arch}",
            "{os}_{arch}_freethreaded",
        ],
        uv_lock = "//dev:uv.lock",
    )
    for python_version in [
        "3.10",
        "3.11",
        "3.12",
        "3.13",
        "3.14",
    ]
]

dev_pip.parse(
    download_only = True,
    hub_name = "pypiserver",
    python_version = "3.14",
    requirements_lock = "//examples/wheel:requirements_server.txt",
)
dev_pip.parse(
    hub_name = "pypi_alpha",
    python_version = "3.14",
    requirements_lock = "//tests/multi_pypi/alpha:requirements.txt",
)
dev_pip.parse(
    hub_name = "pypi_beta",
    python_version = "3.14",
    requirements_lock = "//tests/multi_pypi/beta:requirements.txt",
)
use_repo(dev_pip, "dev_pip", "pypi", "pypi_alpha", "pypi_beta", "pypiserver")

# Bazel integration test setup below

bazel_binaries = use_extension(
    "@rules_bazel_integration_test//:extensions.bzl",
    "bazel_binaries",
    dev_dependency = True,
)

# Keep in sync with //:version.bzl
bazel_binaries.local(
    name = "self",
    path = "tests/integration/bazel_from_env",
)
bazel_binaries.download(version = "7.7.0")
bazel_binaries.download(version = "8.5.1")
bazel_binaries.download(version = "9.1.0")
use_repo(
    bazel_binaries,
    "bazel_binaries",
    # These don't appear necessary, but are reported as direct dependencies
    # that should be use_repo()'d, so we add them as requested
    "bazel_binaries_bazelisk",
    "build_bazel_bazel_7_7_0",
    "build_bazel_bazel_8_5_1",
    "build_bazel_bazel_9_1_0",
    # "build_bazel_bazel_rolling",
    "build_bazel_bazel_self",
)

# TODO @aignas 2025-01-27: should this be moved to `//python/extensions:uv.bzl` or should
# it stay as it is? I think I may prefer to move it.
uv = use_extension("//python/uv:uv.bzl", "uv")

# Here is how we can define platforms for the `uv` binaries - this will affect
# all of the downstream callers because we are using the extension without
# `dev_dependency = True`.
uv.default(
    base_url = "https://github.com/astral-sh/uv/releases/download",
    manifest_filename = "dist-manifest.json",
    version = "0.11.2",
)
uv.default(
    compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:aarch64",
    ],
    platform = "aarch64-apple-darwin",
)
uv.default(
    compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:aarch64",
    ],
    platform = "aarch64-unknown-linux-gnu",
)
uv.default(
    compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:ppc64le",
    ],
    platform = "powerpc64le-unknown-linux-gnu",
)
uv.default(
    compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:s390x",
    ],
    platform = "s390x-unknown-linux-gnu",
)
uv.default(
    compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:riscv64",
    ],
    platform = "riscv64-unknown-linux-gnu",
)
uv.default(
    compatible_with = [
        "@platforms//os:macos",
        "@platforms//cpu:x86_64",
    ],
    platform = "x86_64-apple-darwin",
)
uv.default(
    compatible_with = [
        "@platforms//os:windows",
        "@platforms//cpu:x86_64",
    ],
    platform = "x86_64-pc-windows-msvc",
)
uv.default(
    compatible_with = [
        "@platforms//os:linux",
        "@platforms//cpu:x86_64",
    ],
    platform = "x86_64-unknown-linux-gnu",
)
use_repo(uv, "uv")

register_toolchains("@uv//:all")

uv_dev = use_extension(
    "//python/uv:uv.bzl",
    "uv",
    dev_dependency = True,
)
uv_dev.configure(
    version = "0.11.2",
)

flag_alias(
    name = "build_python_zip",
    starlark_flag = "//python/config_settings:build_python_zip",
)

flag_alias(
    name = "incompatible_default_to_explicit_init_py",
    starlark_flag = "//python/config_settings:incompatible_default_to_explicit_init_py",
)

flag_alias(
    name = "python_path",
    starlark_flag = "//python/config_settings:python_path",
)

flag_alias(
    name = "experimental_python_import_all_repositories",
    starlark_flag = "//python/config_settings:experimental_python_import_all_repositories",
)
