xref: /aosp_15_r20/external/bazelbuild-rules_python/MODULE.bazel (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1*60517a1eSAndroid Build Coastguard Workermodule(
2*60517a1eSAndroid Build Coastguard Worker    name = "rules_python",
3*60517a1eSAndroid Build Coastguard Worker    version = "0.0.0",
4*60517a1eSAndroid Build Coastguard Worker    compatibility_level = 1,
5*60517a1eSAndroid Build Coastguard Worker)
6*60517a1eSAndroid Build Coastguard Worker
7*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "bazel_features", version = "1.9.1")
8*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "bazel_skylib", version = "1.6.1")
9*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "rules_cc", version = "0.0.9")
10*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "platforms", version = "0.0.4")
11*60517a1eSAndroid Build Coastguard Worker
12*60517a1eSAndroid Build Coastguard Worker# Those are loaded only when using py_proto_library
13*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "rules_proto", version = "6.0.0-rc1")
14*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "protobuf", version = "24.4", repo_name = "com_google_protobuf")
15*60517a1eSAndroid Build Coastguard Worker
16*60517a1eSAndroid Build Coastguard Workerinternal_deps = use_extension("//python/private:internal_deps.bzl", "internal_deps")
17*60517a1eSAndroid Build Coastguard Workeruse_repo(
18*60517a1eSAndroid Build Coastguard Worker    internal_deps,
19*60517a1eSAndroid Build Coastguard Worker    "pypi__build",
20*60517a1eSAndroid Build Coastguard Worker    "pypi__click",
21*60517a1eSAndroid Build Coastguard Worker    "pypi__colorama",
22*60517a1eSAndroid Build Coastguard Worker    "pypi__importlib_metadata",
23*60517a1eSAndroid Build Coastguard Worker    "pypi__installer",
24*60517a1eSAndroid Build Coastguard Worker    "pypi__more_itertools",
25*60517a1eSAndroid Build Coastguard Worker    "pypi__packaging",
26*60517a1eSAndroid Build Coastguard Worker    "pypi__pep517",
27*60517a1eSAndroid Build Coastguard Worker    "pypi__pip",
28*60517a1eSAndroid Build Coastguard Worker    "pypi__pip_tools",
29*60517a1eSAndroid Build Coastguard Worker    "pypi__pyproject_hooks",
30*60517a1eSAndroid Build Coastguard Worker    "pypi__setuptools",
31*60517a1eSAndroid Build Coastguard Worker    "pypi__tomli",
32*60517a1eSAndroid Build Coastguard Worker    "pypi__wheel",
33*60517a1eSAndroid Build Coastguard Worker    "pypi__zipp",
34*60517a1eSAndroid Build Coastguard Worker    "rules_python_internal",
35*60517a1eSAndroid Build Coastguard Worker)
36*60517a1eSAndroid Build Coastguard Worker
37*60517a1eSAndroid Build Coastguard Worker# We need to do another use_extension call to expose the "pythons_hub"
38*60517a1eSAndroid Build Coastguard Worker# repo.
39*60517a1eSAndroid Build Coastguard Workerpython = use_extension("//python/extensions:python.bzl", "python")
40*60517a1eSAndroid Build Coastguard Worker
41*60517a1eSAndroid Build Coastguard Worker# The default toolchain to use if nobody configures a toolchain.
42*60517a1eSAndroid Build Coastguard Worker# NOTE: This is not a stable version. It is provided for convenience, but will
43*60517a1eSAndroid Build Coastguard Worker# change frequently to track the most recent Python version.
44*60517a1eSAndroid Build Coastguard Worker# NOTE: The root module can override this.
45*60517a1eSAndroid Build Coastguard Workerpython.toolchain(
46*60517a1eSAndroid Build Coastguard Worker    is_default = True,
47*60517a1eSAndroid Build Coastguard Worker    python_version = "3.11",
48*60517a1eSAndroid Build Coastguard Worker)
49*60517a1eSAndroid Build Coastguard Workeruse_repo(python, "python_3_11", "python_versions", "pythons_hub")
50*60517a1eSAndroid Build Coastguard Worker
51*60517a1eSAndroid Build Coastguard Worker# This call registers the Python toolchains.
52*60517a1eSAndroid Build Coastguard Workerregister_toolchains("@pythons_hub//:all")
53*60517a1eSAndroid Build Coastguard Worker
54*60517a1eSAndroid Build Coastguard Worker#####################
55*60517a1eSAndroid Build Coastguard Worker# Install twine for our own runfiles wheel publishing and allow bzlmod users to use it.
56*60517a1eSAndroid Build Coastguard Worker
57*60517a1eSAndroid Build Coastguard Workerpip = use_extension("//python/private/pypi:pip.bzl", "pip_internal")
58*60517a1eSAndroid Build Coastguard Workerpip.parse(
59*60517a1eSAndroid Build Coastguard Worker    hub_name = "rules_python_publish_deps",
60*60517a1eSAndroid Build Coastguard Worker    python_version = "3.11",
61*60517a1eSAndroid Build Coastguard Worker    requirements_by_platform = {
62*60517a1eSAndroid Build Coastguard Worker        "//tools/publish:requirements.txt": "linux_*",
63*60517a1eSAndroid Build Coastguard Worker        "//tools/publish:requirements_darwin.txt": "osx_*",
64*60517a1eSAndroid Build Coastguard Worker        "//tools/publish:requirements_windows.txt": "windows_*",
65*60517a1eSAndroid Build Coastguard Worker    },
66*60517a1eSAndroid Build Coastguard Worker)
67*60517a1eSAndroid Build Coastguard Workeruse_repo(pip, "rules_python_publish_deps")
68*60517a1eSAndroid Build Coastguard Worker
69*60517a1eSAndroid Build Coastguard Worker# ===== DEV ONLY DEPS AND SETUP BELOW HERE =====
70*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "stardoc", version = "0.6.2", dev_dependency = True, repo_name = "io_bazel_stardoc")
71*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "rules_bazel_integration_test", version = "0.20.0", dev_dependency = True)
72*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "rules_testing", version = "0.6.0", dev_dependency = True)
73*60517a1eSAndroid Build Coastguard Worker
74*60517a1eSAndroid Build Coastguard Worker# Extra gazelle plugin deps so that WORKSPACE.bzlmod can continue including it for e2e tests.
75*60517a1eSAndroid Build Coastguard Worker# We use `WORKSPACE.bzlmod` because it is impossible to have dev-only local overrides.
76*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "rules_go", version = "0.41.0", dev_dependency = True, repo_name = "io_bazel_rules_go")
77*60517a1eSAndroid Build Coastguard Workerbazel_dep(name = "gazelle", version = "0.33.0", dev_dependency = True, repo_name = "bazel_gazelle")
78*60517a1eSAndroid Build Coastguard Worker
79*60517a1eSAndroid Build Coastguard Workerdev_python = use_extension(
80*60517a1eSAndroid Build Coastguard Worker    "//python/extensions:python.bzl",
81*60517a1eSAndroid Build Coastguard Worker    "python",
82*60517a1eSAndroid Build Coastguard Worker    dev_dependency = True,
83*60517a1eSAndroid Build Coastguard Worker)
84*60517a1eSAndroid Build Coastguard Workerdev_python.override(
85*60517a1eSAndroid Build Coastguard Worker    register_all_versions = True,
86*60517a1eSAndroid Build Coastguard Worker)
87*60517a1eSAndroid Build Coastguard Worker
88*60517a1eSAndroid Build Coastguard Workerdev_pip = use_extension(
89*60517a1eSAndroid Build Coastguard Worker    "//python/private/pypi:pip.bzl",
90*60517a1eSAndroid Build Coastguard Worker    "pip_internal",
91*60517a1eSAndroid Build Coastguard Worker    dev_dependency = True,
92*60517a1eSAndroid Build Coastguard Worker)
93*60517a1eSAndroid Build Coastguard Workerdev_pip.parse(
94*60517a1eSAndroid Build Coastguard Worker    hub_name = "dev_pip",
95*60517a1eSAndroid Build Coastguard Worker    python_version = "3.11",
96*60517a1eSAndroid Build Coastguard Worker    requirements_lock = "//docs:requirements.txt",
97*60517a1eSAndroid Build Coastguard Worker)
98*60517a1eSAndroid Build Coastguard Workerdev_pip.parse(
99*60517a1eSAndroid Build Coastguard Worker    hub_name = "pypiserver",
100*60517a1eSAndroid Build Coastguard Worker    python_version = "3.11",
101*60517a1eSAndroid Build Coastguard Worker    requirements_lock = "//examples/wheel:requirements_server.txt",
102*60517a1eSAndroid Build Coastguard Worker)
103*60517a1eSAndroid Build Coastguard Workeruse_repo(dev_pip, "dev_pip", "pypiserver")
104*60517a1eSAndroid Build Coastguard Worker
105*60517a1eSAndroid Build Coastguard Worker# Bazel integration test setup below
106*60517a1eSAndroid Build Coastguard Worker
107*60517a1eSAndroid Build Coastguard Workerbazel_binaries = use_extension(
108*60517a1eSAndroid Build Coastguard Worker    "@rules_bazel_integration_test//:extensions.bzl",
109*60517a1eSAndroid Build Coastguard Worker    "bazel_binaries",
110*60517a1eSAndroid Build Coastguard Worker    dev_dependency = True,
111*60517a1eSAndroid Build Coastguard Worker)
112*60517a1eSAndroid Build Coastguard Worker
113*60517a1eSAndroid Build Coastguard Worker# Keep in sync with //:version.bzl
114*60517a1eSAndroid Build Coastguard Workerbazel_binaries.local(
115*60517a1eSAndroid Build Coastguard Worker    name = "self",
116*60517a1eSAndroid Build Coastguard Worker    path = "tests/integration/bazel_from_env",
117*60517a1eSAndroid Build Coastguard Worker)
118*60517a1eSAndroid Build Coastguard Workerbazel_binaries.download(version = "6.4.0")
119*60517a1eSAndroid Build Coastguard Workerbazel_binaries.download(version = "7.3.1")
120*60517a1eSAndroid Build Coastguard Workerbazel_binaries.download(version = "rolling")
121*60517a1eSAndroid Build Coastguard Workeruse_repo(
122*60517a1eSAndroid Build Coastguard Worker    bazel_binaries,
123*60517a1eSAndroid Build Coastguard Worker    "bazel_binaries",
124*60517a1eSAndroid Build Coastguard Worker    # These don't appear necessary, but are reported as direct dependencies
125*60517a1eSAndroid Build Coastguard Worker    # that should be use_repo()'d, so we add them as requested
126*60517a1eSAndroid Build Coastguard Worker    "bazel_binaries_bazelisk",
127*60517a1eSAndroid Build Coastguard Worker    "build_bazel_bazel_6_4_0",
128*60517a1eSAndroid Build Coastguard Worker    "build_bazel_bazel_7_3_1",
129*60517a1eSAndroid Build Coastguard Worker    "build_bazel_bazel_rolling",
130*60517a1eSAndroid Build Coastguard Worker    "build_bazel_bazel_self",
131*60517a1eSAndroid Build Coastguard Worker)
132*60517a1eSAndroid Build Coastguard Worker
133*60517a1eSAndroid Build Coastguard Worker# EXPERIMENTAL: This is experimental and may be removed without notice
134*60517a1eSAndroid Build Coastguard Workeruv = use_extension(
135*60517a1eSAndroid Build Coastguard Worker    "//python/uv:extensions.bzl",
136*60517a1eSAndroid Build Coastguard Worker    "uv",
137*60517a1eSAndroid Build Coastguard Worker    dev_dependency = True,
138*60517a1eSAndroid Build Coastguard Worker)
139*60517a1eSAndroid Build Coastguard Workeruv.toolchain(uv_version = "0.2.23")
140*60517a1eSAndroid Build Coastguard Workeruse_repo(uv, "uv_toolchains")
141*60517a1eSAndroid Build Coastguard Worker
142*60517a1eSAndroid Build Coastguard Workerregister_toolchains(
143*60517a1eSAndroid Build Coastguard Worker    "@uv_toolchains//:all",
144*60517a1eSAndroid Build Coastguard Worker    dev_dependency = True,
145*60517a1eSAndroid Build Coastguard Worker)
146