| load(":python_version.bzl", "define_python_version_flag") |
| |
| package(default_visibility = ["//visibility:public"]) |
| |
| sh_binary( |
| name = "2to3", |
| srcs = ["2to3.sh"], |
| ) |
| |
| filegroup( |
| name = "srcs", |
| srcs = glob(["**"]) + [ |
| "//tools/python/runfiles:srcs", |
| ], |
| ) |
| |
| # For exposing the Python version Starlark flag to tests. |
| filegroup( |
| name = "python_version_srcs", |
| srcs = [ |
| "python_version.bzl", |
| ], |
| ) |
| |
| filegroup( |
| name = "embedded_tools", |
| srcs = glob(["**"]) + [ |
| "//tools/python/runfiles:embedded_tools", |
| ], |
| visibility = ["//tools:__pkg__"], |
| ) |
| |
| test_suite( |
| name = "all_windows_tests", |
| tests = [ |
| "//tools/python/runfiles:all_windows_tests", |
| ], |
| visibility = ["//tools:__pkg__"], |
| ) |
| |
| # This target can be used to inspect the current Python major version. To use, |
| # put it in the `flag_values` attribute of a `config_setting` and test it |
| # against the values "PY2" or "PY3". It will always match one or the other. |
| # |
| # If you do not need to test any other flags in combination with the Python |
| # version, then as a convenience you may use the predefined `config_setting`s |
| # `@bazel_tools//tools/python:PY2` and `@bazel_tools//tools/python:PY3`. |
| # |
| # Example usage: |
| # |
| # config_setting( |
| # name = "py3_on_arm", |
| # values = {"cpu": "arm"}, |
| # flag_values = {"@bazel_tools//tools/python:python_version": "PY3"}, |
| # ) |
| # |
| # my_target( |
| # ... |
| # some_attr = select({ |
| # ":py3_on_arm": ..., |
| # ... |
| # }), |
| # ... |
| # ) |
| # |
| # Caution: Do not `select()` on the built-in command-line flags `--force_python` |
| # or `--python_version`, as they do not always reflect the true Python version |
| # of the current target. `select()`-ing on them can lead to action conflicts and |
| # will be disallowed. |
| define_python_version_flag( |
| name = "python_version", |
| ) |
| |
| config_setting( |
| name = "PY2", |
| flag_values = {":python_version": "PY2"}, |
| visibility = ["//visibility:public"], |
| ) |
| |
| config_setting( |
| name = "PY3", |
| flag_values = {":python_version": "PY3"}, |
| visibility = ["//visibility:public"], |
| ) |