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