xref: /aosp_15_r20/external/bazelbuild-rules_python/python/BUILD.bazel (revision 60517a1edbc8ecf509223e9af94a7adec7d736b8)
1*60517a1eSAndroid Build Coastguard Worker# Copyright 2017 The Bazel Authors. All rights reserved.
2*60517a1eSAndroid Build Coastguard Worker#
3*60517a1eSAndroid Build Coastguard Worker# Licensed under the Apache License, Version 2.0 (the "License");
4*60517a1eSAndroid Build Coastguard Worker# you may not use this file except in compliance with the License.
5*60517a1eSAndroid Build Coastguard Worker# You may obtain a copy of the License at
6*60517a1eSAndroid Build Coastguard Worker#
7*60517a1eSAndroid Build Coastguard Worker#    http://www.apache.org/licenses/LICENSE-2.0
8*60517a1eSAndroid Build Coastguard Worker#
9*60517a1eSAndroid Build Coastguard Worker# Unless required by applicable law or agreed to in writing, software
10*60517a1eSAndroid Build Coastguard Worker# distributed under the License is distributed on an "AS IS" BASIS,
11*60517a1eSAndroid Build Coastguard Worker# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*60517a1eSAndroid Build Coastguard Worker# See the License for the specific language governing permissions and
13*60517a1eSAndroid Build Coastguard Worker# limitations under the License.
14*60517a1eSAndroid Build Coastguard Worker
15*60517a1eSAndroid Build Coastguard Worker"""This package contains two sets of rules:
16*60517a1eSAndroid Build Coastguard Worker
17*60517a1eSAndroid Build Coastguard Worker    1) the "core" Python rules, which were historically bundled with Bazel and
18*60517a1eSAndroid Build Coastguard Worker       are now either re-exported or copied into this repository; and
19*60517a1eSAndroid Build Coastguard Worker
20*60517a1eSAndroid Build Coastguard Worker    2) the packaging rules, which were historically simply known as
21*60517a1eSAndroid Build Coastguard Worker       rules_python.
22*60517a1eSAndroid Build Coastguard Worker
23*60517a1eSAndroid Build Coastguard WorkerIn an ideal renaming, we'd move the packaging rules to a different package so
24*60517a1eSAndroid Build Coastguard Workerthat @rules_python//python is only concerned with the core rules.
25*60517a1eSAndroid Build Coastguard Worker"""
26*60517a1eSAndroid Build Coastguard Worker
27*60517a1eSAndroid Build Coastguard Workerload("@bazel_skylib//:bzl_library.bzl", "bzl_library")
28*60517a1eSAndroid Build Coastguard Workerload(":current_py_toolchain.bzl", "current_py_toolchain")
29*60517a1eSAndroid Build Coastguard Worker
30*60517a1eSAndroid Build Coastguard Workerpackage(default_visibility = ["//visibility:public"])
31*60517a1eSAndroid Build Coastguard Worker
32*60517a1eSAndroid Build Coastguard Workerlicenses(["notice"])
33*60517a1eSAndroid Build Coastguard Worker
34*60517a1eSAndroid Build Coastguard Workerfilegroup(
35*60517a1eSAndroid Build Coastguard Worker    name = "distribution",
36*60517a1eSAndroid Build Coastguard Worker    srcs = glob(["**"]) + [
37*60517a1eSAndroid Build Coastguard Worker        "//python/cc:distribution",
38*60517a1eSAndroid Build Coastguard Worker        "//python/config_settings:distribution",
39*60517a1eSAndroid Build Coastguard Worker        "//python/constraints:distribution",
40*60517a1eSAndroid Build Coastguard Worker        "//python/entry_points:distribution",
41*60517a1eSAndroid Build Coastguard Worker        "//python/extensions:distribution",
42*60517a1eSAndroid Build Coastguard Worker        "//python/pip_install:distribution",
43*60517a1eSAndroid Build Coastguard Worker        "//python/private:distribution",
44*60517a1eSAndroid Build Coastguard Worker        "//python/runfiles:distribution",
45*60517a1eSAndroid Build Coastguard Worker        "//python/uv:distribution",
46*60517a1eSAndroid Build Coastguard Worker    ],
47*60517a1eSAndroid Build Coastguard Worker    visibility = ["//:__pkg__"],
48*60517a1eSAndroid Build Coastguard Worker)
49*60517a1eSAndroid Build Coastguard Worker
50*60517a1eSAndroid Build Coastguard Worker# ========= bzl_library targets end =========
51*60517a1eSAndroid Build Coastguard Worker
52*60517a1eSAndroid Build Coastguard Workerbzl_library(
53*60517a1eSAndroid Build Coastguard Worker    name = "current_py_toolchain_bzl",
54*60517a1eSAndroid Build Coastguard Worker    srcs = ["current_py_toolchain.bzl"],
55*60517a1eSAndroid Build Coastguard Worker)
56*60517a1eSAndroid Build Coastguard Worker
57*60517a1eSAndroid Build Coastguard Workerbzl_library(
58*60517a1eSAndroid Build Coastguard Worker    name = "defs_bzl",
59*60517a1eSAndroid Build Coastguard Worker    srcs = [
60*60517a1eSAndroid Build Coastguard Worker        "defs.bzl",
61*60517a1eSAndroid Build Coastguard Worker    ],
62*60517a1eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
63*60517a1eSAndroid Build Coastguard Worker    deps = [
64*60517a1eSAndroid Build Coastguard Worker        ":current_py_toolchain_bzl",
65*60517a1eSAndroid Build Coastguard Worker        ":py_binary_bzl",
66*60517a1eSAndroid Build Coastguard Worker        ":py_import_bzl",
67*60517a1eSAndroid Build Coastguard Worker        ":py_info_bzl",
68*60517a1eSAndroid Build Coastguard Worker        ":py_library_bzl",
69*60517a1eSAndroid Build Coastguard Worker        ":py_runtime_bzl",
70*60517a1eSAndroid Build Coastguard Worker        ":py_runtime_info_bzl",
71*60517a1eSAndroid Build Coastguard Worker        ":py_runtime_pair_bzl",
72*60517a1eSAndroid Build Coastguard Worker        ":py_test_bzl",
73*60517a1eSAndroid Build Coastguard Worker        "//python/private:bazel_tools_bzl",
74*60517a1eSAndroid Build Coastguard Worker    ],
75*60517a1eSAndroid Build Coastguard Worker)
76*60517a1eSAndroid Build Coastguard Worker
77*60517a1eSAndroid Build Coastguard Workerbzl_library(
78*60517a1eSAndroid Build Coastguard Worker    name = "features_bzl",
79*60517a1eSAndroid Build Coastguard Worker    srcs = ["features.bzl"],
80*60517a1eSAndroid Build Coastguard Worker)
81*60517a1eSAndroid Build Coastguard Worker
82*60517a1eSAndroid Build Coastguard Workerbzl_library(
83*60517a1eSAndroid Build Coastguard Worker    name = "packaging_bzl",
84*60517a1eSAndroid Build Coastguard Worker    srcs = ["packaging.bzl"],
85*60517a1eSAndroid Build Coastguard Worker    deps = [
86*60517a1eSAndroid Build Coastguard Worker        ":py_binary_bzl",
87*60517a1eSAndroid Build Coastguard Worker        "//python/private:bzlmod_enabled_bzl",
88*60517a1eSAndroid Build Coastguard Worker        "//python/private:py_package.bzl",
89*60517a1eSAndroid Build Coastguard Worker        "//python/private:py_wheel_bzl",
90*60517a1eSAndroid Build Coastguard Worker        "//python/private:py_wheel_normalize_pep440.bzl",
91*60517a1eSAndroid Build Coastguard Worker        "//python/private:stamp_bzl",
92*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
93*60517a1eSAndroid Build Coastguard Worker        "@bazel_skylib//rules:native_binary",
94*60517a1eSAndroid Build Coastguard Worker    ],
95*60517a1eSAndroid Build Coastguard Worker)
96*60517a1eSAndroid Build Coastguard Worker
97*60517a1eSAndroid Build Coastguard Workerbzl_library(
98*60517a1eSAndroid Build Coastguard Worker    name = "pip_bzl",
99*60517a1eSAndroid Build Coastguard Worker    srcs = ["pip.bzl"],
100*60517a1eSAndroid Build Coastguard Worker    deps = [
101*60517a1eSAndroid Build Coastguard Worker        "//python/private:normalize_name_bzl",
102*60517a1eSAndroid Build Coastguard Worker        "//python/private/pypi:multi_pip_parse_bzl",
103*60517a1eSAndroid Build Coastguard Worker        "//python/private/pypi:package_annotation_bzl",
104*60517a1eSAndroid Build Coastguard Worker        "//python/private/pypi:pip_compile_bzl",
105*60517a1eSAndroid Build Coastguard Worker        "//python/private/pypi:pip_repository_bzl",
106*60517a1eSAndroid Build Coastguard Worker        "//python/private/pypi:whl_library_alias_bzl",
107*60517a1eSAndroid Build Coastguard Worker        "//python/private/whl_filegroup:whl_filegroup_bzl",
108*60517a1eSAndroid Build Coastguard Worker    ],
109*60517a1eSAndroid Build Coastguard Worker)
110*60517a1eSAndroid Build Coastguard Worker
111*60517a1eSAndroid Build Coastguard Workerbzl_library(
112*60517a1eSAndroid Build Coastguard Worker    name = "proto_bzl",
113*60517a1eSAndroid Build Coastguard Worker    srcs = [
114*60517a1eSAndroid Build Coastguard Worker        "proto.bzl",
115*60517a1eSAndroid Build Coastguard Worker    ],
116*60517a1eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
117*60517a1eSAndroid Build Coastguard Worker    deps = [
118*60517a1eSAndroid Build Coastguard Worker        "//python/private/proto:py_proto_library_bzl",
119*60517a1eSAndroid Build Coastguard Worker    ],
120*60517a1eSAndroid Build Coastguard Worker)
121*60517a1eSAndroid Build Coastguard Worker
122*60517a1eSAndroid Build Coastguard Workerbzl_library(
123*60517a1eSAndroid Build Coastguard Worker    name = "py_binary_bzl",
124*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_binary.bzl"],
125*60517a1eSAndroid Build Coastguard Worker    deps = [
126*60517a1eSAndroid Build Coastguard Worker        "//python/private:register_extension_info_bzl",
127*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
128*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:py_binary_macro_bazel_bzl",
129*60517a1eSAndroid Build Coastguard Worker        "@rules_python_internal//:rules_python_config_bzl",
130*60517a1eSAndroid Build Coastguard Worker    ],
131*60517a1eSAndroid Build Coastguard Worker)
132*60517a1eSAndroid Build Coastguard Worker
133*60517a1eSAndroid Build Coastguard Workerbzl_library(
134*60517a1eSAndroid Build Coastguard Worker    name = "py_cc_link_params_info_bzl",
135*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_cc_link_params_info.bzl"],
136*60517a1eSAndroid Build Coastguard Worker    deps = [
137*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:providers_bzl",
138*60517a1eSAndroid Build Coastguard Worker        "@rules_python_internal//:rules_python_config_bzl",
139*60517a1eSAndroid Build Coastguard Worker    ],
140*60517a1eSAndroid Build Coastguard Worker)
141*60517a1eSAndroid Build Coastguard Worker
142*60517a1eSAndroid Build Coastguard Workerbzl_library(
143*60517a1eSAndroid Build Coastguard Worker    name = "py_exec_tools_info_bzl",
144*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_exec_tools_info.bzl"],
145*60517a1eSAndroid Build Coastguard Worker    deps = ["//python/private:py_exec_tools_info_bzl"],
146*60517a1eSAndroid Build Coastguard Worker)
147*60517a1eSAndroid Build Coastguard Worker
148*60517a1eSAndroid Build Coastguard Workerbzl_library(
149*60517a1eSAndroid Build Coastguard Worker    name = "py_exec_tools_toolchain_bzl",
150*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_exec_tools_toolchain.bzl"],
151*60517a1eSAndroid Build Coastguard Worker    deps = ["//python/private:py_exec_tools_toolchain_bzl"],
152*60517a1eSAndroid Build Coastguard Worker)
153*60517a1eSAndroid Build Coastguard Worker
154*60517a1eSAndroid Build Coastguard Workerbzl_library(
155*60517a1eSAndroid Build Coastguard Worker    name = "py_executable_info_bzl",
156*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_executable_info.bzl"],
157*60517a1eSAndroid Build Coastguard Worker    deps = ["//python/private:py_executable_info_bzl"],
158*60517a1eSAndroid Build Coastguard Worker)
159*60517a1eSAndroid Build Coastguard Worker
160*60517a1eSAndroid Build Coastguard Workerbzl_library(
161*60517a1eSAndroid Build Coastguard Worker    name = "py_import_bzl",
162*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_import.bzl"],
163*60517a1eSAndroid Build Coastguard Worker    deps = [":py_info_bzl"],
164*60517a1eSAndroid Build Coastguard Worker)
165*60517a1eSAndroid Build Coastguard Worker
166*60517a1eSAndroid Build Coastguard Workerbzl_library(
167*60517a1eSAndroid Build Coastguard Worker    name = "py_info_bzl",
168*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_info.bzl"],
169*60517a1eSAndroid Build Coastguard Worker    deps = [
170*60517a1eSAndroid Build Coastguard Worker        "//python/private:reexports_bzl",
171*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:providers_bzl",
172*60517a1eSAndroid Build Coastguard Worker        "@rules_python_internal//:rules_python_config_bzl",
173*60517a1eSAndroid Build Coastguard Worker    ],
174*60517a1eSAndroid Build Coastguard Worker)
175*60517a1eSAndroid Build Coastguard Worker
176*60517a1eSAndroid Build Coastguard Workerbzl_library(
177*60517a1eSAndroid Build Coastguard Worker    name = "py_library_bzl",
178*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_library.bzl"],
179*60517a1eSAndroid Build Coastguard Worker    deps = [
180*60517a1eSAndroid Build Coastguard Worker        "//python/private:register_extension_info_bzl",
181*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
182*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:py_library_macro_bazel_bzl",
183*60517a1eSAndroid Build Coastguard Worker        "@rules_python_internal//:rules_python_config_bzl",
184*60517a1eSAndroid Build Coastguard Worker    ],
185*60517a1eSAndroid Build Coastguard Worker)
186*60517a1eSAndroid Build Coastguard Worker
187*60517a1eSAndroid Build Coastguard Workerbzl_library(
188*60517a1eSAndroid Build Coastguard Worker    name = "py_runtime_bzl",
189*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_runtime.bzl"],
190*60517a1eSAndroid Build Coastguard Worker    deps = [
191*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
192*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:py_runtime_macro_bzl",
193*60517a1eSAndroid Build Coastguard Worker    ],
194*60517a1eSAndroid Build Coastguard Worker)
195*60517a1eSAndroid Build Coastguard Worker
196*60517a1eSAndroid Build Coastguard Workerbzl_library(
197*60517a1eSAndroid Build Coastguard Worker    name = "py_runtime_pair_bzl",
198*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_runtime_pair.bzl"],
199*60517a1eSAndroid Build Coastguard Worker    deps = [
200*60517a1eSAndroid Build Coastguard Worker        "//python/private:bazel_tools_bzl",
201*60517a1eSAndroid Build Coastguard Worker        "//python/private:py_runtime_pair_macro_bzl",
202*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
203*60517a1eSAndroid Build Coastguard Worker    ],
204*60517a1eSAndroid Build Coastguard Worker)
205*60517a1eSAndroid Build Coastguard Worker
206*60517a1eSAndroid Build Coastguard Workerbzl_library(
207*60517a1eSAndroid Build Coastguard Worker    name = "py_runtime_info_bzl",
208*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_runtime_info.bzl"],
209*60517a1eSAndroid Build Coastguard Worker    deps = [
210*60517a1eSAndroid Build Coastguard Worker        "//python/private:reexports_bzl",
211*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
212*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:providers_bzl",
213*60517a1eSAndroid Build Coastguard Worker        "@rules_python_internal//:rules_python_config_bzl",
214*60517a1eSAndroid Build Coastguard Worker    ],
215*60517a1eSAndroid Build Coastguard Worker)
216*60517a1eSAndroid Build Coastguard Worker
217*60517a1eSAndroid Build Coastguard Workerbzl_library(
218*60517a1eSAndroid Build Coastguard Worker    name = "py_test_bzl",
219*60517a1eSAndroid Build Coastguard Worker    srcs = ["py_test.bzl"],
220*60517a1eSAndroid Build Coastguard Worker    deps = [
221*60517a1eSAndroid Build Coastguard Worker        "//python/private:register_extension_info_bzl",
222*60517a1eSAndroid Build Coastguard Worker        "//python/private:util_bzl",
223*60517a1eSAndroid Build Coastguard Worker        "//python/private/common:py_test_macro_bazel_bzl",
224*60517a1eSAndroid Build Coastguard Worker        "@rules_python_internal//:rules_python_config_bzl",
225*60517a1eSAndroid Build Coastguard Worker    ],
226*60517a1eSAndroid Build Coastguard Worker)
227*60517a1eSAndroid Build Coastguard Worker
228*60517a1eSAndroid Build Coastguard Workerbzl_library(
229*60517a1eSAndroid Build Coastguard Worker    name = "repositories_bzl",
230*60517a1eSAndroid Build Coastguard Worker    srcs = ["repositories.bzl"],
231*60517a1eSAndroid Build Coastguard Worker    deps = [
232*60517a1eSAndroid Build Coastguard Worker        "//python/private:is_standalone_interpreter_bzl",
233*60517a1eSAndroid Build Coastguard Worker        "//python/private:py_repositories_bzl",
234*60517a1eSAndroid Build Coastguard Worker        "//python/private:python_register_multi_toolchains_bzl",
235*60517a1eSAndroid Build Coastguard Worker        "//python/private:python_register_toolchains_bzl",
236*60517a1eSAndroid Build Coastguard Worker        "//python/private:python_repository_bzl",
237*60517a1eSAndroid Build Coastguard Worker    ],
238*60517a1eSAndroid Build Coastguard Worker)
239*60517a1eSAndroid Build Coastguard Worker
240*60517a1eSAndroid Build Coastguard Workerbzl_library(
241*60517a1eSAndroid Build Coastguard Worker    name = "versions_bzl",
242*60517a1eSAndroid Build Coastguard Worker    srcs = ["versions.bzl"],
243*60517a1eSAndroid Build Coastguard Worker    visibility = ["//:__subpackages__"],
244*60517a1eSAndroid Build Coastguard Worker)
245*60517a1eSAndroid Build Coastguard Worker
246*60517a1eSAndroid Build Coastguard Worker# NOTE: Remember to add bzl_library targets to //tests:bzl_libraries
247*60517a1eSAndroid Build Coastguard Worker# ========= bzl_library targets end =========
248*60517a1eSAndroid Build Coastguard Worker
249*60517a1eSAndroid Build Coastguard Worker# Filegroup of bzl files that can be used by downstream rules for documentation generation
250*60517a1eSAndroid Build Coastguard Workerfilegroup(
251*60517a1eSAndroid Build Coastguard Worker    name = "bzl",
252*60517a1eSAndroid Build Coastguard Worker    srcs = [
253*60517a1eSAndroid Build Coastguard Worker        "defs.bzl",
254*60517a1eSAndroid Build Coastguard Worker        "packaging.bzl",
255*60517a1eSAndroid Build Coastguard Worker        "pip.bzl",
256*60517a1eSAndroid Build Coastguard Worker        "repositories.bzl",
257*60517a1eSAndroid Build Coastguard Worker        "versions.bzl",
258*60517a1eSAndroid Build Coastguard Worker        "//python/pip_install:bzl",
259*60517a1eSAndroid Build Coastguard Worker        "//python/private:bzl",
260*60517a1eSAndroid Build Coastguard Worker    ],
261*60517a1eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
262*60517a1eSAndroid Build Coastguard Worker)
263*60517a1eSAndroid Build Coastguard Worker
264*60517a1eSAndroid Build Coastguard Worker# ========= Core rules =========
265*60517a1eSAndroid Build Coastguard Worker
266*60517a1eSAndroid Build Coastguard Workerexports_files([
267*60517a1eSAndroid Build Coastguard Worker    "defs.bzl",
268*60517a1eSAndroid Build Coastguard Worker    "python.bzl",  # Deprecated, please use defs.bzl
269*60517a1eSAndroid Build Coastguard Worker])
270*60517a1eSAndroid Build Coastguard Worker
271*60517a1eSAndroid Build Coastguard Worker# This target can be used to inspect the current Python major version. To use,
272*60517a1eSAndroid Build Coastguard Worker# put it in the `flag_values` attribute of a `config_setting` and test it
273*60517a1eSAndroid Build Coastguard Worker# against the values "PY2" or "PY3". It will always match one or the other.
274*60517a1eSAndroid Build Coastguard Worker#
275*60517a1eSAndroid Build Coastguard Worker# If you do not need to test any other flags in combination with the Python
276*60517a1eSAndroid Build Coastguard Worker# version, then as a convenience you may use the predefined `config_setting`s
277*60517a1eSAndroid Build Coastguard Worker# `@rules_python//python:PY2` and `@rules_python//python:PY3`.
278*60517a1eSAndroid Build Coastguard Worker#
279*60517a1eSAndroid Build Coastguard Worker# Example usage:
280*60517a1eSAndroid Build Coastguard Worker#
281*60517a1eSAndroid Build Coastguard Worker#     config_setting(
282*60517a1eSAndroid Build Coastguard Worker#         name = "py3_on_arm",
283*60517a1eSAndroid Build Coastguard Worker#         values = {"cpu": "arm"},
284*60517a1eSAndroid Build Coastguard Worker#         flag_values = {"@rules_python//python:python_version": "PY3"},
285*60517a1eSAndroid Build Coastguard Worker#     )
286*60517a1eSAndroid Build Coastguard Worker#
287*60517a1eSAndroid Build Coastguard Worker#     my_target(
288*60517a1eSAndroid Build Coastguard Worker#         ...
289*60517a1eSAndroid Build Coastguard Worker#         some_attr = select({
290*60517a1eSAndroid Build Coastguard Worker#             ":py3_on_arm": ...,
291*60517a1eSAndroid Build Coastguard Worker#             ...
292*60517a1eSAndroid Build Coastguard Worker#         }),
293*60517a1eSAndroid Build Coastguard Worker#         ...
294*60517a1eSAndroid Build Coastguard Worker#     )
295*60517a1eSAndroid Build Coastguard Worker#
296*60517a1eSAndroid Build Coastguard Worker# Caution: Do not `select()` on the built-in command-line flags `--force_python`
297*60517a1eSAndroid Build Coastguard Worker# or `--python_version`, as they do not always reflect the true Python version
298*60517a1eSAndroid Build Coastguard Worker# of the current target. `select()`-ing on them can lead to action conflicts and
299*60517a1eSAndroid Build Coastguard Worker# will be disallowed.
300*60517a1eSAndroid Build Coastguard Workeralias(
301*60517a1eSAndroid Build Coastguard Worker    name = "python_version",
302*60517a1eSAndroid Build Coastguard Worker    actual = "@bazel_tools//tools/python:python_version",
303*60517a1eSAndroid Build Coastguard Worker)
304*60517a1eSAndroid Build Coastguard Worker
305*60517a1eSAndroid Build Coastguard Workeralias(
306*60517a1eSAndroid Build Coastguard Worker    name = "PY2",
307*60517a1eSAndroid Build Coastguard Worker    actual = "@bazel_tools//tools/python:PY2",
308*60517a1eSAndroid Build Coastguard Worker)
309*60517a1eSAndroid Build Coastguard Worker
310*60517a1eSAndroid Build Coastguard Workeralias(
311*60517a1eSAndroid Build Coastguard Worker    name = "PY3",
312*60517a1eSAndroid Build Coastguard Worker    actual = "@bazel_tools//tools/python:PY3",
313*60517a1eSAndroid Build Coastguard Worker)
314*60517a1eSAndroid Build Coastguard Worker
315*60517a1eSAndroid Build Coastguard Worker# The toolchain type for Python rules. Provides a Python 2 and/or Python 3
316*60517a1eSAndroid Build Coastguard Worker# runtime.
317*60517a1eSAndroid Build Coastguard Workeralias(
318*60517a1eSAndroid Build Coastguard Worker    name = "toolchain_type",
319*60517a1eSAndroid Build Coastguard Worker    actual = "@bazel_tools//tools/python:toolchain_type",
320*60517a1eSAndroid Build Coastguard Worker)
321*60517a1eSAndroid Build Coastguard Worker
322*60517a1eSAndroid Build Coastguard Workertoolchain_type(
323*60517a1eSAndroid Build Coastguard Worker    name = "exec_tools_toolchain_type",
324*60517a1eSAndroid Build Coastguard Worker    visibility = ["//visibility:public"],
325*60517a1eSAndroid Build Coastguard Worker)
326*60517a1eSAndroid Build Coastguard Worker
327*60517a1eSAndroid Build Coastguard Worker# Special target to indicate `None` for label attributes a default value.
328*60517a1eSAndroid Build Coastguard Workeralias(
329*60517a1eSAndroid Build Coastguard Worker    name = "none",
330*60517a1eSAndroid Build Coastguard Worker    actual = "//python/private:sentinel",
331*60517a1eSAndroid Build Coastguard Worker)
332*60517a1eSAndroid Build Coastguard Worker
333*60517a1eSAndroid Build Coastguard Worker# Definitions for a Python toolchain that, at execution time, attempts to detect
334*60517a1eSAndroid Build Coastguard Worker# a platform runtime having the appropriate major Python version. Consider this
335*60517a1eSAndroid Build Coastguard Worker# a toolchain of last resort.
336*60517a1eSAndroid Build Coastguard Worker#
337*60517a1eSAndroid Build Coastguard Worker# The non-strict version allows using a Python 2 interpreter for PY3 targets,
338*60517a1eSAndroid Build Coastguard Worker# and vice versa. The only reason to use this is if you're working around
339*60517a1eSAndroid Build Coastguard Worker# spurious failures due to PY2 vs PY3 validation. Even then, using this is only
340*60517a1eSAndroid Build Coastguard Worker# safe if you know for a fact that your build is completely compatible with the
341*60517a1eSAndroid Build Coastguard Worker# version of the `python` command installed on the target platform.
342*60517a1eSAndroid Build Coastguard Worker
343*60517a1eSAndroid Build Coastguard Workeralias(
344*60517a1eSAndroid Build Coastguard Worker    name = "autodetecting_toolchain",
345*60517a1eSAndroid Build Coastguard Worker    actual = "//python/runtime_env_toolchains:runtime_env_toolchain",
346*60517a1eSAndroid Build Coastguard Worker    deprecation = "Use //python/runtime_env_toolchains:all instead",
347*60517a1eSAndroid Build Coastguard Worker)
348*60517a1eSAndroid Build Coastguard Worker
349*60517a1eSAndroid Build Coastguard Workeralias(
350*60517a1eSAndroid Build Coastguard Worker    name = "autodetecting_toolchain_nonstrict",
351*60517a1eSAndroid Build Coastguard Worker    actual = "//python/runtime_env_toolchains:runtime_env_toolchain",
352*60517a1eSAndroid Build Coastguard Worker    deprecation = "Use //python/runtime_env_toolchains:all instead",
353*60517a1eSAndroid Build Coastguard Worker)
354*60517a1eSAndroid Build Coastguard Worker
355*60517a1eSAndroid Build Coastguard Worker# ========= Packaging rules =========
356*60517a1eSAndroid Build Coastguard Worker
357*60517a1eSAndroid Build Coastguard Workerexports_files([
358*60517a1eSAndroid Build Coastguard Worker    "packaging.bzl",
359*60517a1eSAndroid Build Coastguard Worker    "pip.bzl",
360*60517a1eSAndroid Build Coastguard Worker])
361*60517a1eSAndroid Build Coastguard Worker
362*60517a1eSAndroid Build Coastguard Workercurrent_py_toolchain(
363*60517a1eSAndroid Build Coastguard Worker    name = "current_py_toolchain",
364*60517a1eSAndroid Build Coastguard Worker)
365