refactor: use common_labels.bzl for labels used across files (#3263)

Cleanup after the PR introducing the common labels file.

Testing related labels (those starting with `//tests`) are left in
`tests/support/support.bzl`.

Only labels that are used in two or more files are moved into
common_labels. This avoids
obscuring otherwise simple assignments like defaults for attributes. It
also acts as a
signal that, if something is in common_labels.bzl, be ware it's used in
multiple places.

Only non-testing related labels (those not under `//tests`) are moved
into common_labels.
diff --git a/python/BUILD.bazel b/python/BUILD.bazel
index 58cff5b..76fa5dd 100644
--- a/python/BUILD.bazel
+++ b/python/BUILD.bazel
@@ -56,6 +56,7 @@
 bzl_library(
     name = "current_py_toolchain_bzl",
     srcs = ["current_py_toolchain.bzl"],
+    deps = ["//python/private:toolchain_types_bzl"],
 )
 
 bzl_library(
@@ -91,11 +92,9 @@
     deps = [
         ":py_binary_bzl",
         "//python/private:bzlmod_enabled_bzl",
-        "//python/private:py_package.bzl",
+        "//python/private:py_package_bzl",
         "//python/private:py_wheel_bzl",
-        "//python/private:stamp_bzl",
         "//python/private:util_bzl",
-        "//python/private:version.bzl",
         "@bazel_skylib//rules:native_binary",
     ],
 )
@@ -215,7 +214,6 @@
     deps = [
         "//python/private:py_runtime_info_bzl",
         "//python/private:reexports_bzl",
-        "//python/private:util_bzl",
         "@rules_python_internal//:rules_python_config_bzl",
     ],
 )
diff --git a/python/extensions/BUILD.bazel b/python/extensions/BUILD.bazel
index e6c876c..12c0f24 100644
--- a/python/extensions/BUILD.bazel
+++ b/python/extensions/BUILD.bazel
@@ -46,5 +46,6 @@
     visibility = ["//:__subpackages__"],
     deps = [
         "//python/private:internal_config_repo_bzl",
+        "//python/private/pypi:deps_bzl",
     ],
 )
diff --git a/python/private/BUILD.bazel b/python/private/BUILD.bazel
index f31b56e..916c14f 100644
--- a/python/private/BUILD.bazel
+++ b/python/private/BUILD.bazel
@@ -66,6 +66,7 @@
     deps = [
         ":attr_builders_bzl",
         ":common_bzl",
+        ":common_labels_bzl",
         ":enum_bzl",
         ":flags_bzl",
         ":py_info_bzl",
@@ -356,6 +357,7 @@
     name = "py_cc_toolchain_rule_bzl",
     srcs = ["py_cc_toolchain_rule.bzl"],
     deps = [
+        ":common_labels.bzl",
         ":py_cc_toolchain_info_bzl",
         ":rules_cc_srcs_bzl",
         ":util_bzl",
@@ -390,6 +392,7 @@
     srcs = ["py_exec_tools_toolchain.bzl"],
     deps = [
         ":common_bzl",
+        ":common_labels_bzl",
         ":py_exec_tools_info_bzl",
         ":sentinel_bzl",
         ":toolchain_types_bzl",
@@ -405,6 +408,7 @@
         ":attributes_bzl",
         ":cc_helper_bzl",
         ":common_bzl",
+        ":common_labels_bzl",
         ":flags_bzl",
         ":precompile_bzl",
         ":py_cc_link_params_info_bzl",
@@ -456,6 +460,7 @@
     deps = [
         ":attributes_bzl",
         ":common_bzl",
+        ":common_labels_bzl",
         ":flags_bzl",
         ":normalize_name_bzl",
         ":precompile_bzl",
@@ -479,6 +484,7 @@
     name = "py_library_rule_bzl",
     srcs = ["py_library_rule.bzl"],
     deps = [
+        ":common_labels_bzl",
         ":py_library_bzl",
     ],
 )
@@ -522,6 +528,7 @@
     srcs = ["py_runtime_rule.bzl"],
     deps = [
         ":attributes_bzl",
+        ":common_labels_bzl",
         ":flags_bzl",
         ":py_internal_bzl",
         ":py_runtime_info_bzl",
@@ -545,6 +552,7 @@
     name = "py_runtime_pair_rule_bzl",
     srcs = ["py_runtime_pair_rule.bzl"],
     deps = [
+        ":common_labels_bzl",
         "//python:py_runtime_bzl",
         "//python:py_runtime_info_bzl",
         "@bazel_skylib//rules:common_settings",
@@ -591,6 +599,7 @@
         ":py_package_bzl",
         ":stamp_bzl",
         ":transition_labels_bzl",
+        ":version_bzl",
     ],
 )
 
@@ -661,7 +670,7 @@
     name = "transition_labels_bzl",
     srcs = ["transition_labels.bzl"],
     deps = [
-        "common_labels_bzl",
+        ":common_labels_bzl",
         "@bazel_skylib//lib:collections",
         "@rules_python_internal//:extra_transition_settings_bzl",
     ],
diff --git a/python/private/attributes.bzl b/python/private/attributes.bzl
index 0ff92e3..8151a30 100644
--- a/python/private/attributes.bzl
+++ b/python/private/attributes.bzl
@@ -17,6 +17,7 @@
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
 load("@rules_cc//cc/common:cc_info.bzl", "CcInfo")
 load(":attr_builders.bzl", "attrb")
+load(":common_labels.bzl", "labels")
 load(":enum.bzl", "enum")
 load(":flags.bzl", "PrecompileFlag", "PrecompileSourceRetentionFlag")
 load(":py_info.bzl", "PyInfo")
@@ -370,11 +371,11 @@
             doc = "Defunct, unused, does nothing.",
         ),
         "_precompile_flag": lambda: attrb.Label(
-            default = "//python/config_settings:precompile",
+            default = labels.PRECOMPILE,
             providers = [BuildSettingInfo],
         ),
         "_precompile_source_retention_flag": lambda: attrb.Label(
-            default = "//python/config_settings:precompile_source_retention",
+            default = labels.PRECOMPILE_SOURCE_RETENTION,
             providers = [BuildSettingInfo],
         ),
         # Force enabling auto exec groups, see
diff --git a/python/private/common_labels.bzl b/python/private/common_labels.bzl
index a55b594..4a6f6d3 100644
--- a/python/private/common_labels.bzl
+++ b/python/private/common_labels.bzl
@@ -9,13 +9,15 @@
     BOOTSTRAP_IMPL = str(Label("//python/config_settings:bootstrap_impl")),
     EXEC_TOOLS_TOOLCHAIN = str(Label("//python/config_settings:exec_tools_toolchain")),
     PIP_ENV_MARKER_CONFIG = str(Label("//python/config_settings:pip_env_marker_config")),
-    PIP_WHL_MUSLC_VERSION = str(Label("//python/config_settings:pip_whl_muslc_version")),
+    NONE = str(Label("//python:none")),
     PIP_WHL = str(Label("//python/config_settings:pip_whl")),
     PIP_WHL_GLIBC_VERSION = str(Label("//python/config_settings:pip_whl_glibc_version")),
+    PIP_WHL_MUSLC_VERSION = str(Label("//python/config_settings:pip_whl_muslc_version")),
     PIP_WHL_OSX_ARCH = str(Label("//python/config_settings:pip_whl_osx_arch")),
     PIP_WHL_OSX_VERSION = str(Label("//python/config_settings:pip_whl_osx_version")),
     PRECOMPILE = str(Label("//python/config_settings:precompile")),
     PRECOMPILE_SOURCE_RETENTION = str(Label("//python/config_settings:precompile_source_retention")),
+    PYC_COLLECTION = str(Label("//python/config_settings:pyc_collection")),
     PYTHON_SRC = str(Label("//python/bin:python_src")),
     PYTHON_VERSION = str(Label("//python/config_settings:python_version")),
     PYTHON_VERSION_MAJOR_MINOR = str(Label("//python/config_settings:python_version_major_minor")),
@@ -24,4 +26,5 @@
     REPL_DEP = str(Label("//python/bin:repl_dep")),
     VENVS_SITE_PACKAGES = str(Label("//python/config_settings:venvs_site_packages")),
     VENVS_USE_DECLARE_SYMLINK = str(Label("//python/config_settings:venvs_use_declare_symlink")),
+    VISIBLE_FOR_TESTING = str(Label("//python/private:visible_for_testing")),
 )
diff --git a/python/private/py_cc_toolchain_rule.bzl b/python/private/py_cc_toolchain_rule.bzl
index f12933e..8adf73c 100644
--- a/python/private/py_cc_toolchain_rule.bzl
+++ b/python/private/py_cc_toolchain_rule.bzl
@@ -20,6 +20,7 @@
 
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
 load("@rules_cc//cc/common:cc_info.bzl", "CcInfo")
+load(":common_labels.bzl", "labels")
 load(":py_cc_toolchain_info.bzl", "PyCcToolchainInfo")
 
 def _py_cc_toolchain_impl(ctx):
@@ -70,7 +71,7 @@
             mandatory = True,
         ),
         "_visible_for_testing": attr.label(
-            default = "//python/private:visible_for_testing",
+            default = labels.VISIBLE_FOR_TESTING,
         ),
     },
     doc = """\
diff --git a/python/private/py_exec_tools_toolchain.bzl b/python/private/py_exec_tools_toolchain.bzl
index 332570b..00ad807 100644
--- a/python/private/py_exec_tools_toolchain.bzl
+++ b/python/private/py_exec_tools_toolchain.bzl
@@ -16,6 +16,7 @@
 
 load("@bazel_skylib//lib:paths.bzl", "paths")
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
+load(":common_labels.bzl", "labels")
 load(":py_exec_tools_info.bzl", "PyExecToolsInfo")
 load(":sentinel.bzl", "SentinelInfo")
 load(":toolchain_types.bzl", "TARGET_TOOLCHAIN_TYPE")
@@ -89,7 +90,7 @@
             doc = "See {obj}`PyExecToolsInfo.precompiler`",
         ),
         "_visible_for_testing": attr.label(
-            default = "//python/private:visible_for_testing",
+            default = labels.VISIBLE_FOR_TESTING,
         ),
     },
 )
diff --git a/python/private/py_executable.bzl b/python/private/py_executable.bzl
index fa80ea5..59800da 100644
--- a/python/private/py_executable.bzl
+++ b/python/private/py_executable.bzl
@@ -51,6 +51,7 @@
     "runfiles_root_path",
     "target_platform_has_any_constraint",
 )
+load(":common_labels.bzl", "labels")
 load(":flags.bzl", "BootstrapImplFlag", "VenvsUseDeclareSymlinkFlag")
 load(":precompile.bzl", "maybe_precompile")
 load(":py_cc_link_params_info.bzl", "PyCcLinkParamsInfo")
@@ -60,18 +61,12 @@
 load(":py_runtime_info.bzl", "DEFAULT_STUB_SHEBANG", "PyRuntimeInfo")
 load(":reexports.bzl", "BuiltinPyInfo", "BuiltinPyRuntimeInfo")
 load(":rule_builders.bzl", "ruleb")
-load(
-    ":toolchain_types.bzl",
-    "EXEC_TOOLS_TOOLCHAIN_TYPE",
-    "TARGET_TOOLCHAIN_TYPE",
-    TOOLCHAIN_TYPE = "TARGET_TOOLCHAIN_TYPE",
-)
+load(":toolchain_types.bzl", "EXEC_TOOLS_TOOLCHAIN_TYPE", "TARGET_TOOLCHAIN_TYPE", TOOLCHAIN_TYPE = "TARGET_TOOLCHAIN_TYPE")
 load(":transition_labels.bzl", "TRANSITION_LABELS")
 
 _py_builtins = py_internal
 _EXTERNAL_PATH_PREFIX = "external"
 _ZIP_RUNFILES_DIRECTORY_NAME = "runfiles"
-_PYTHON_VERSION_FLAG = str(Label("//python/config_settings:python_version"))
 
 # Non-Google-specific attributes for executables
 # These attributes are for rules that accept Python sources.
@@ -192,7 +187,7 @@
             default = "@bazel_tools//tools/allowlists/function_transition_allowlist",
         ),
         "_bootstrap_impl_flag": lambda: attrb.Label(
-            default = "//python/config_settings:bootstrap_impl",
+            default = labels.BOOTSTRAP_IMPL,
             providers = [BuildSettingInfo],
         ),
         "_bootstrap_template": lambda: attrb.Label(
@@ -222,10 +217,10 @@
             default = TARGET_TOOLCHAIN_TYPE,
         ),
         "_python_version_flag": lambda: attrb.Label(
-            default = "//python/config_settings:python_version",
+            default = labels.PYTHON_VERSION,
         ),
         "_venvs_use_declare_symlink_flag": lambda: attrb.Label(
-            default = "//python/config_settings:venvs_use_declare_symlink",
+            default = labels.VENVS_USE_DECLARE_SYMLINK,
             providers = [BuildSettingInfo],
         ),
         "_windows_constraints": lambda: attrb.LabelList(
@@ -1910,7 +1905,7 @@
     apply_config_settings_attr(settings, attr)
 
     if attr.python_version and attr.python_version not in ("PY2", "PY3"):
-        settings[_PYTHON_VERSION_FLAG] = attr.python_version
+        settings[labels.PYTHON_VERSION] = attr.python_version
     return settings
 
 def create_executable_rule(*, attrs, **kwargs):
@@ -1961,8 +1956,8 @@
         ],
         cfg = dict(
             implementation = _transition_executable_impl,
-            inputs = TRANSITION_LABELS + [_PYTHON_VERSION_FLAG],
-            outputs = TRANSITION_LABELS + [_PYTHON_VERSION_FLAG],
+            inputs = TRANSITION_LABELS + [labels.PYTHON_VERSION],
+            outputs = TRANSITION_LABELS + [labels.PYTHON_VERSION],
         ),
         **kwargs
     )
diff --git a/python/private/py_library.bzl b/python/private/py_library.bzl
index 1f3e4d8..fc8e583 100644
--- a/python/private/py_library.bzl
+++ b/python/private/py_library.bzl
@@ -40,6 +40,7 @@
     "get_imports",
     "runfiles_root_path",
 )
+load(":common_labels.bzl", "labels")
 load(":flags.bzl", "AddSrcsToRunfilesFlag", "PrecompileFlag", "VenvsSitePackages")
 load(":normalize_name.bzl", "normalize_name")
 load(":precompile.bzl", "maybe_precompile")
@@ -102,7 +103,7 @@
 """,
         ),
         "_add_srcs_to_runfiles_flag": lambda: attrb.Label(
-            default = "//python/config_settings:add_srcs_to_runfiles",
+            default = labels.ADD_SRCS_TO_RUNFILES,
         ),
     },
 )
diff --git a/python/private/py_runtime_pair_rule.bzl b/python/private/py_runtime_pair_rule.bzl
index b3b7a4e..775d53a 100644
--- a/python/private/py_runtime_pair_rule.bzl
+++ b/python/private/py_runtime_pair_rule.bzl
@@ -16,6 +16,7 @@
 
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
 load("//python:py_runtime_info.bzl", "PyRuntimeInfo")
+load(":common_labels.bzl", "labels")
 load(":reexports.bzl", "BuiltinPyRuntimeInfo")
 load(":util.bzl", "IS_BAZEL_7_OR_HIGHER")
 
@@ -94,7 +95,7 @@
 """,
         ),
         "_visible_for_testing": attr.label(
-            default = "//python/private:visible_for_testing",
+            default = labels.VISIBLE_FOR_TESTING,
         ),
     },
     fragments = ["py"],
diff --git a/python/private/py_runtime_rule.bzl b/python/private/py_runtime_rule.bzl
index 861014e..a511a0e 100644
--- a/python/private/py_runtime_rule.bzl
+++ b/python/private/py_runtime_rule.bzl
@@ -17,6 +17,7 @@
 load("@bazel_skylib//lib:paths.bzl", "paths")
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
 load(":attributes.bzl", "NATIVE_RULES_ALLOWLIST_ATTRS")
+load(":common_labels.bzl", "labels")
 load(":flags.bzl", "FreeThreadedFlag")
 load(":py_internal.bzl", "py_internal")
 load(":py_runtime_info.bzl", "DEFAULT_STUB_SHEBANG", "PyRuntimeInfo")
@@ -379,10 +380,10 @@
 """,
             ),
             "_py_freethreaded_flag": attr.label(
-                default = "//python/config_settings:py_freethreaded",
+                default = labels.PY_FREETHREADED,
             ),
             "_python_version_flag": attr.label(
-                default = "//python/config_settings:python_version",
+                default = labels.PYTHON_VERSION,
             ),
         },
     ),
diff --git a/python/private/pypi/BUILD.bazel b/python/private/pypi/BUILD.bazel
index c7a74ee..0d2f73f 100644
--- a/python/private/pypi/BUILD.bazel
+++ b/python/private/pypi/BUILD.bazel
@@ -63,6 +63,7 @@
     srcs = ["config_settings.bzl"],
     deps = [
         ":flags_bzl",
+        "//python/private:common_labels_bzl",
         "//python/private:flags_bzl",
         "@bazel_skylib//lib:selects",
     ],
@@ -89,6 +90,7 @@
         ":env_marker_info_bzl",
         ":pep508_env_bzl",
         ":pep508_evaluate_bzl",
+        "//python/private:common_labels_bzl",
         "//python/private:toolchain_types_bzl",
         "@bazel_skylib//rules:common_settings",
     ],
@@ -337,6 +339,7 @@
     srcs = ["pkg_aliases.bzl"],
     deps = [
         ":labels_bzl",
+        "//python/private:common_labels_bzl",
         "//python/private:text_util_bzl",
         "@bazel_skylib//lib:selects",
     ],
diff --git a/python/private/pypi/env_marker_setting.bzl b/python/private/pypi/env_marker_setting.bzl
index 2bfdf42..71c6b41 100644
--- a/python/private/pypi/env_marker_setting.bzl
+++ b/python/private/pypi/env_marker_setting.bzl
@@ -1,6 +1,7 @@
 """Implement a flag for matching the dependency specifiers at analysis time."""
 
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo")
+load("//python/private:common_labels.bzl", "labels")
 load("//python/private:toolchain_types.bzl", "TARGET_TOOLCHAIN_TYPE")
 load(":env_marker_info.bzl", "EnvMarkerInfo")
 load(":pep508_env.bzl", "create_env", "set_missing_env_defaults")
@@ -85,15 +86,15 @@
             doc = "Environment marker expression to evaluate.",
         ),
         "_env_marker_config_flag": attr.label(
-            default = "//python/config_settings:pip_env_marker_config",
+            default = labels.PIP_ENV_MARKER_CONFIG,
             providers = [EnvMarkerInfo],
         ),
         "_python_full_version_flag": attr.label(
-            default = "//python/config_settings:python_version",
+            default = labels.PYTHON_VERSION,
             providers = [config_common.FeatureFlagInfo],
         ),
         "_python_version_major_minor_flag": attr.label(
-            default = "//python/config_settings:python_version_major_minor",
+            default = labels.PYTHON_VERSION_MAJOR_MINOR,
             providers = [config_common.FeatureFlagInfo],
         ),
     },
diff --git a/python/private/pypi/flags.bzl b/python/private/pypi/flags.bzl
index 0373839..f88690d 100644
--- a/python/private/pypi/flags.bzl
+++ b/python/private/pypi/flags.bzl
@@ -19,6 +19,7 @@
 """
 
 load("@bazel_skylib//rules:common_settings.bzl", "BuildSettingInfo", "string_flag")
+load("//python/private:common_labels.bzl", "labels")
 load("//python/private:enum.bzl", "enum")
 load(":env_marker_info.bzl", "EnvMarkerInfo")
 load(
@@ -103,9 +104,9 @@
 _allow_wheels_flag = rule(
     implementation = _allow_wheels_flag_impl,
     attrs = {
-        "_setting": attr.label(default = "//python/config_settings:pip_whl"),
+        "_setting": attr.label(default = labels.PIP_WHL),
     },
-    doc = """\
+    doc = """
 This rule allows us to greatly reduce the number of config setting targets at no cost even
 if we are duplicating some of the functionality of the `native.config_setting`.
 """,
@@ -153,7 +154,7 @@
         "platform_system": attr.string(),
         "sys_platform": attr.string(),
         "_pip_whl_osx_version_flag": attr.label(
-            default = "//python/config_settings:pip_whl_osx_version",
+            default = labels.PIP_WHL_OSX_VERSION,
             providers = [[BuildSettingInfo], [config_common.FeatureFlagInfo]],
         ),
     },
diff --git a/python/private/pypi/pkg_aliases.bzl b/python/private/pypi/pkg_aliases.bzl
index 67ce297..ac063fa 100644
--- a/python/private/pypi/pkg_aliases.bzl
+++ b/python/private/pypi/pkg_aliases.bzl
@@ -32,6 +32,7 @@
 """
 
 load("@bazel_skylib//lib:selects.bzl", "selects")
+load("//python/private:common_labels.bzl", "labels")
 load("//python/private:text_util.bzl", "render")
 load(
     ":labels.bzl",
@@ -63,7 +64,7 @@
 However, the command above will hide the `bazel config <config id>` message.
 """
 
-_LABEL_NONE = Label("//python:none")
+_LABEL_NONE = labels.NONE
 _LABEL_CURRENT_CONFIG = Label("//python/config_settings:current_config")
 _LABEL_CURRENT_CONFIG_NO_MATCH = Label("//python/config_settings:is_not_matching_current_config")
 _INCOMPATIBLE = "_no_matching_repository"
diff --git a/python/uv/private/BUILD.bazel b/python/uv/private/BUILD.bazel
index a07d859..3e4d6c7 100644
--- a/python/uv/private/BUILD.bazel
+++ b/python/uv/private/BUILD.bazel
@@ -43,6 +43,7 @@
         ":toolchain_types_bzl",
         "//python:py_binary_bzl",
         "//python/private:bzlmod_enabled_bzl",
+        "//python/private:common_labels_bzl",
         "//python/private:toolchain_types_bzl",
         "@bazel_skylib//lib:shell",
     ],
@@ -63,6 +64,7 @@
         ":uv_repository_bzl",
         ":uv_toolchains_repo_bzl",
         "//python/private:auth_bzl",
+        "//python/private:common_labels_bzl",
     ],
 )
 
diff --git a/python/uv/private/lock.bzl b/python/uv/private/lock.bzl
index 2731d6b..281a0de 100644
--- a/python/uv/private/lock.bzl
+++ b/python/uv/private/lock.bzl
@@ -18,13 +18,12 @@
 load("@bazel_skylib//lib:shell.bzl", "shell")
 load("//python:py_binary.bzl", "py_binary")
 load("//python/private:bzlmod_enabled.bzl", "BZLMOD_ENABLED")  # buildifier: disable=bzl-visibility
+load("//python/private:common_labels.bzl", "labels")
 load("//python/private:toolchain_types.bzl", "EXEC_TOOLS_TOOLCHAIN_TYPE")  # buildifier: disable=bzl-visibility
 load(":toolchain_types.bzl", "UV_TOOLCHAIN_TYPE")
 
 visibility(["//..."])
 
-_PYTHON_VERSION_FLAG = "//python/config_settings:python_version"
-
 _RunLockInfo = provider(
     doc = "",
     fields = {
@@ -161,16 +160,16 @@
 
 def _transition_impl(input_settings, attr):
     settings = {
-        _PYTHON_VERSION_FLAG: input_settings[_PYTHON_VERSION_FLAG],
+        labels.PYTHON_VERSION: input_settings[labels.PYTHON_VERSION],
     }
     if attr.python_version:
-        settings[_PYTHON_VERSION_FLAG] = attr.python_version
+        settings[labels.PYTHON_VERSION] = attr.python_version
     return settings
 
 _python_version_transition = transition(
     implementation = _transition_impl,
-    inputs = [_PYTHON_VERSION_FLAG],
-    outputs = [_PYTHON_VERSION_FLAG],
+    inputs = [labels.PYTHON_VERSION],
+    outputs = [labels.PYTHON_VERSION],
 )
 
 _lock = rule(
diff --git a/python/uv/private/uv.bzl b/python/uv/private/uv.bzl
index 2cc2df1..fe0911e 100644
--- a/python/uv/private/uv.bzl
+++ b/python/uv/private/uv.bzl
@@ -19,6 +19,7 @@
 """
 
 load("//python/private:auth.bzl", "AUTH_ATTRS", "get_auth")
+load("//python/private:common_labels.bzl", "labels")
 load(":toolchain_types.bzl", "UV_TOOLCHAIN_TYPE")
 load(":uv_repository.bzl", "uv_repository")
 load(":uv_toolchains_repo.bzl", "uv_toolchains_repo")
@@ -288,7 +289,7 @@
             toolchain_names = ["none"],
             toolchain_implementations = {
                 # NOTE @aignas 2025-02-24: the label to the toolchain can be anything
-                "none": str(Label("//python:none")),
+                "none": labels.NONE,
             },
             toolchain_compatible_with = {
                 "none": ["@platforms//:incompatible"],
diff --git a/tests/base_rules/precompile/precompile_tests.bzl b/tests/base_rules/precompile/precompile_tests.bzl
index 895f2d3..fe5c165 100644
--- a/tests/base_rules/precompile/precompile_tests.bzl
+++ b/tests/base_rules/precompile/precompile_tests.bzl
@@ -23,13 +23,11 @@
 load("//python:py_info.bzl", "PyInfo")
 load("//python:py_library.bzl", "py_library")
 load("//python:py_test.bzl", "py_test")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//tests/support:py_info_subject.bzl", "py_info_subject")
 load(
     "//tests/support:support.bzl",
-    "ADD_SRCS_TO_RUNFILES",
     "CC_TOOLCHAIN",
-    "EXEC_TOOLS_TOOLCHAIN",
-    "PRECOMPILE",
     "PY_TOOLCHAINS",
 )
 
@@ -38,7 +36,7 @@
     # it for conformity.
     "//command_line_option:allow_unresolved_symlinks": True,
     "//command_line_option:extra_toolchains": [PY_TOOLCHAINS, CC_TOOLCHAIN],
-    EXEC_TOOLS_TOOLCHAIN: "enabled",
+    labels.EXEC_TOOLS_TOOLCHAIN: "enabled",
 }
 
 _tests = []
@@ -150,7 +148,7 @@
         name = name,
         impl = _test_precompile_enabled_py_library_add_to_runfiles_disabled_impl,
         config_settings = {
-            ADD_SRCS_TO_RUNFILES: "disabled",
+            labels.ADD_SRCS_TO_RUNFILES: "disabled",
         },
     )
 
@@ -166,7 +164,7 @@
         name = name,
         impl = _test_precompile_enabled_py_library_add_to_runfiles_enabled_impl,
         config_settings = {
-            ADD_SRCS_TO_RUNFILES: "enabled",
+            labels.ADD_SRCS_TO_RUNFILES: "enabled",
         },
     )
 
@@ -203,7 +201,7 @@
         name = name,
         impl = _test_pyc_only_impl,
         config_settings = _COMMON_CONFIG_SETTINGS | {
-            PRECOMPILE: "enabled",
+            labels.PRECOMPILE: "enabled",
         },
         target = name + "_subject",
     )
@@ -310,7 +308,7 @@
         impl = test_impl,
         target = name + "_bin",
         config_settings = _COMMON_CONFIG_SETTINGS | {
-            PRECOMPILE: precompile_flag,
+            labels.PRECOMPILE: precompile_flag,
         },
     )
 
@@ -531,7 +529,7 @@
         impl = _test_precompile_attr_inherit_pyc_collection_disabled_precompile_flag_enabled_impl,
         target = name + "_subject",
         config_settings = _COMMON_CONFIG_SETTINGS | {
-            PRECOMPILE: "enabled",
+            labels.PRECOMPILE: "enabled",
         },
     )
 
diff --git a/tests/base_rules/py_executable_base_tests.bzl b/tests/base_rules/py_executable_base_tests.bzl
index 2b96451..4e45128 100644
--- a/tests/base_rules/py_executable_base_tests.bzl
+++ b/tests/base_rules/py_executable_base_tests.bzl
@@ -19,12 +19,13 @@
 load("@rules_testing//lib:truth.bzl", "matching")
 load("@rules_testing//lib:util.bzl", rt_util = "util")
 load("//python:py_executable_info.bzl", "PyExecutableInfo")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private:reexports.bzl", "BuiltinPyRuntimeInfo")  # buildifier: disable=bzl-visibility
 load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER")  # buildifier: disable=bzl-visibility
 load("//tests/base_rules:base_tests.bzl", "create_base_tests")
 load("//tests/base_rules:util.bzl", "WINDOWS_ATTR", pt_util = "util")
 load("//tests/support:py_executable_info_subject.bzl", "PyExecutableInfoSubject")
-load("//tests/support:support.bzl", "BOOTSTRAP_IMPL", "CC_TOOLCHAIN", "CROSSTOOL_TOP", "LINUX_X86_64", "WINDOWS_X86_64")
+load("//tests/support:support.bzl", "CC_TOOLCHAIN", "CROSSTOOL_TOP", "LINUX_X86_64", "WINDOWS_X86_64")
 
 _tests = []
 
@@ -355,7 +356,7 @@
         impl = _test_main_module_bootstrap_system_python_impl,
         target = name + "_subject",
         config_settings = {
-            BOOTSTRAP_IMPL: "system_python",
+            labels.BOOTSTRAP_IMPL: "system_python",
             "//command_line_option:extra_execution_platforms": ["@bazel_tools//tools:host_platform", LINUX_X86_64],
             "//command_line_option:platforms": [LINUX_X86_64],
         },
@@ -379,7 +380,7 @@
         impl = _test_main_module_bootstrap_script_impl,
         target = name + "_subject",
         config_settings = {
-            BOOTSTRAP_IMPL: "script",
+            labels.BOOTSTRAP_IMPL: "script",
             "//command_line_option:extra_execution_platforms": ["@bazel_tools//tools:host_platform", LINUX_X86_64],
             "//command_line_option:platforms": [LINUX_X86_64],
         },
diff --git a/tests/base_rules/py_test/py_test_tests.bzl b/tests/base_rules/py_test/py_test_tests.bzl
index c51aa53..1ec1dc4 100644
--- a/tests/base_rules/py_test/py_test_tests.bzl
+++ b/tests/base_rules/py_test/py_test_tests.bzl
@@ -60,7 +60,7 @@
             "//command_line_option:cpu": "darwin_x86_64",
             "//command_line_option:crosstool_top": CROSSTOOL_TOP,
             "//command_line_option:extra_execution_platforms": [MAC_X86_64],
-            "//command_line_option:extra_toolchains": CC_TOOLCHAIN,
+            "//command_line_option:extra_toolchains": [CC_TOOLCHAIN],
             "//command_line_option:platforms": [MAC_X86_64],
         },
         attr_values = _SKIP_WINDOWS,
@@ -94,7 +94,7 @@
             "//command_line_option:cpu": "k8",
             "//command_line_option:crosstool_top": CROSSTOOL_TOP,
             "//command_line_option:extra_execution_platforms": [LINUX_X86_64],
-            "//command_line_option:extra_toolchains": CC_TOOLCHAIN,
+            "//command_line_option:extra_toolchains": [CC_TOOLCHAIN],
             "//command_line_option:platforms": [LINUX_X86_64],
         },
         attr_values = _SKIP_WINDOWS,
diff --git a/tests/builders/attr_builders_tests.bzl b/tests/builders/attr_builders_tests.bzl
index e92ba2a..3a771af 100644
--- a/tests/builders/attr_builders_tests.bzl
+++ b/tests/builders/attr_builders_tests.bzl
@@ -18,6 +18,7 @@
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
 load("@rules_testing//lib:truth.bzl", "truth")
 load("//python/private:attr_builders.bzl", "attrb")  # buildifier: disable=bzl-visibility
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 
 def _expect_cfg_defaults(expect, cfg):
     expect.where(expr = "cfg.outputs").that_collection(cfg.outputs()).contains_exactly([])
@@ -41,7 +42,7 @@
 
     analysis_test(
         name = name,
-        target = "//python:none",
+        target = labels.NONE,
         impl = _report_failures_impl,
     )
 
diff --git a/tests/builders/rule_builders_tests.bzl b/tests/builders/rule_builders_tests.bzl
index 3f14832..a8ac31f 100644
--- a/tests/builders/rule_builders_tests.bzl
+++ b/tests/builders/rule_builders_tests.bzl
@@ -18,6 +18,7 @@
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
 load("@rules_testing//lib:util.bzl", "TestingAspectInfo")
 load("//python/private:attr_builders.bzl", "attrb")  # buildifier: disable=bzl-visibility
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private:rule_builders.bzl", "ruleb")  # buildifier: disable=bzl-visibility
 
 RuleInfo = provider(doc = "test provider", fields = [])
@@ -49,7 +50,7 @@
         flavors = ["spicy", "sweet"],
         organic = True,
         size = 5,
-        origin = "//python:none",
+        origin = labels.NONE,
         fertilizers = [
             "nitrogen.txt",
             "phosphorus.txt",
@@ -169,7 +170,7 @@
     env.expect.that_collection(subject.exec_compatible_with()).contains_exactly([])
     env.expect.that_str(str(subject.build())).contains("ExecGroup")
 
-    subject.toolchains().append(ruleb.ToolchainType("//python:none"))
+    subject.toolchains().append(ruleb.ToolchainType(labels.NONE))
     subject.exec_compatible_with().append("//some:constraint")
     env.expect.that_str(str(subject.build())).contains("ExecGroup")
 
diff --git a/tests/exec_toolchain_matching/exec_toolchain_matching_tests.bzl b/tests/exec_toolchain_matching/exec_toolchain_matching_tests.bzl
index f6eae5a..43a9717 100644
--- a/tests/exec_toolchain_matching/exec_toolchain_matching_tests.bzl
+++ b/tests/exec_toolchain_matching/exec_toolchain_matching_tests.bzl
@@ -18,9 +18,10 @@
 load("@rules_testing//lib:util.bzl", rt_util = "util")
 load("//python:py_runtime.bzl", "py_runtime")
 load("//python:py_runtime_pair.bzl", "py_runtime_pair")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private:toolchain_types.bzl", "EXEC_TOOLS_TOOLCHAIN_TYPE", "TARGET_TOOLCHAIN_TYPE")  # buildifier: disable=bzl-visibility
 load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER")  # buildifier: disable=bzl-visibility
-load("//tests/support:support.bzl", "LINUX", "MAC", "PYTHON_VERSION")
+load("//tests/support:support.bzl", "LINUX", "MAC")
 
 _LookupInfo = provider()  # buildifier: disable=provider-params
 
@@ -129,7 +130,7 @@
             "//command_line_option:extra_execution_platforms": [str(MAC)],
             "//command_line_option:extra_toolchains": ["//tests/exec_toolchain_matching:all"],
             "//command_line_option:platforms": [str(LINUX)],
-            PYTHON_VERSION: "3.12",
+            labels.PYTHON_VERSION: "3.12",
         },
     )
 
diff --git a/tests/py_runtime/py_runtime_tests.bzl b/tests/py_runtime/py_runtime_tests.bzl
index d5a6076..4ec7590 100644
--- a/tests/py_runtime/py_runtime_tests.bzl
+++ b/tests/py_runtime/py_runtime_tests.bzl
@@ -20,9 +20,9 @@
 load("@rules_testing//lib:util.bzl", rt_util = "util")
 load("//python:py_runtime.bzl", "py_runtime")
 load("//python:py_runtime_info.bzl", "PyRuntimeInfo")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//tests/base_rules:util.bzl", br_util = "util")
 load("//tests/support:py_runtime_info_subject.bzl", "py_runtime_info_subject")
-load("//tests/support:support.bzl", "PYTHON_VERSION")
 
 _tests = []
 
@@ -543,7 +543,7 @@
         target = name + "_subject",
         impl = _test_version_info_from_flag_impl,
         config_settings = {
-            PYTHON_VERSION: "3.12",
+            labels.PYTHON_VERSION: "3.12",
         },
     )
 
diff --git a/tests/pypi/env_marker_setting/env_marker_setting_tests.bzl b/tests/pypi/env_marker_setting/env_marker_setting_tests.bzl
index e16f2c8..c5b3f72 100644
--- a/tests/pypi/env_marker_setting/env_marker_setting_tests.bzl
+++ b/tests/pypi/env_marker_setting/env_marker_setting_tests.bzl
@@ -3,9 +3,9 @@
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test")
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
 load("@rules_testing//lib:util.bzl", "TestingAspectInfo")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private/pypi:env_marker_info.bzl", "EnvMarkerInfo")  # buildifier: disable=bzl-visibility
 load("//python/private/pypi:env_marker_setting.bzl", "env_marker_setting")  # buildifier: disable=bzl-visibility
-load("//tests/support:support.bzl", "PIP_ENV_MARKER_CONFIG", "PYTHON_VERSION")
 
 def _custom_env_markers_impl(ctx):
     _ = ctx  # @unused
@@ -37,7 +37,7 @@
         impl = _impl,
         target = name + "_subject",
         config_settings = {
-            PIP_ENV_MARKER_CONFIG: str(Label(name + "_env")),
+            labels.PIP_ENV_MARKER_CONFIG: str(Label(name + "_env")),
         },
     )
 
@@ -56,14 +56,14 @@
     cases = {
         "python_full_version_lt_negative": {
             "config_settings": {
-                PYTHON_VERSION: "3.12.0",
+                labels.PYTHON_VERSION: "3.12.0",
             },
             "expected": "FALSE",
             "expression": "python_full_version < '3.8'",
         },
         "python_version_gte": {
             "config_settings": {
-                PYTHON_VERSION: "3.12.0",
+                labels.PYTHON_VERSION: "3.12.0",
             },
             "expected": "TRUE",
             "expression": "python_version >= '3.12.0'",
diff --git a/tests/pypi/pkg_aliases/pkg_aliases_test.bzl b/tests/pypi/pkg_aliases/pkg_aliases_test.bzl
index 6248261..32be6ba 100644
--- a/tests/pypi/pkg_aliases/pkg_aliases_test.bzl
+++ b/tests/pypi/pkg_aliases/pkg_aliases_test.bzl
@@ -15,6 +15,7 @@
 """pkg_aliases tests"""
 
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private/pypi:config_settings.bzl", "config_settings")  # buildifier: disable=bzl-visibility
 load(
     "//python/private/pypi:pkg_aliases.bzl",
@@ -81,7 +82,7 @@
         },
         # This will be printing the current config values and will make sure we
         # have an error.
-        "_no_matching_repository": {Label("//python/config_settings:is_not_matching_current_config"): Label("//python:none")},
+        "_no_matching_repository": {Label("//python/config_settings:is_not_matching_current_config"): labels.NONE},
     }
     env.expect.that_dict(got).contains_at_least(want)
     env.expect.that_collection(actual_no_match_error).has_size(1)
diff --git a/tests/runtime_env_toolchain/runtime_env_toolchain_tests.bzl b/tests/runtime_env_toolchain/runtime_env_toolchain_tests.bzl
index 9885a1e..aa4d1c7 100644
--- a/tests/runtime_env_toolchain/runtime_env_toolchain_tests.bzl
+++ b/tests/runtime_env_toolchain/runtime_env_toolchain_tests.bzl
@@ -17,6 +17,7 @@
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test")
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
 load("@rules_testing//lib:util.bzl", rt_util = "util")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load(
     "//python/private:toolchain_types.bzl",
     "EXEC_TOOLS_TOOLCHAIN_TYPE",
@@ -24,7 +25,7 @@
     "TARGET_TOOLCHAIN_TYPE",
 )  # buildifier: disable=bzl-visibility
 load("//python/private:util.bzl", "IS_BAZEL_7_OR_HIGHER")  # buildifier: disable=bzl-visibility
-load("//tests/support:support.bzl", "CC_TOOLCHAIN", "EXEC_TOOLS_TOOLCHAIN", "VISIBLE_FOR_TESTING")
+load("//tests/support:support.bzl", "CC_TOOLCHAIN")
 
 _LookupInfo = provider()  # buildifier: disable=provider-params
 
@@ -79,8 +80,8 @@
         target = name + "_subject",
         config_settings = {
             "//command_line_option:extra_toolchains": extra_toolchains,
-            EXEC_TOOLS_TOOLCHAIN: "enabled",
-            VISIBLE_FOR_TESTING: True,
+            labels.EXEC_TOOLS_TOOLCHAIN: "enabled",
+            labels.VISIBLE_FOR_TESTING: True,
         },
     )
 
diff --git a/tests/support/py_reconfig.bzl b/tests/support/py_reconfig.bzl
index 38d5366..d52cc5d 100644
--- a/tests/support/py_reconfig.bzl
+++ b/tests/support/py_reconfig.bzl
@@ -23,13 +23,13 @@
 load("//python/private:py_binary_rule.bzl", "create_py_binary_rule_builder")  # buildifier: disable=bzl-visibility
 load("//python/private:py_test_macro.bzl", "py_test_macro")  # buildifier: disable=bzl-visibility
 load("//python/private:py_test_rule.bzl", "create_py_test_rule_builder")  # buildifier: disable=bzl-visibility
-load("//tests/support:support.bzl", "CUSTOM_RUNTIME", "VISIBLE_FOR_TESTING")
+load("//tests/support:support.bzl", "CUSTOM_RUNTIME")
 
 def _perform_transition_impl(input_settings, attr, base_impl):
     settings = {k: input_settings[k] for k in _RECONFIG_INHERITED_OUTPUTS if k in input_settings}
     settings.update(base_impl(input_settings, attr))
 
-    settings[VISIBLE_FOR_TESTING] = True
+    settings[labels.VISIBLE_FOR_TESTING] = True
     settings["//command_line_option:build_python_zip"] = attr.build_python_zip
     if attr.bootstrap_impl:
         settings[labels.BOOTSTRAP_IMPL] = attr.bootstrap_impl
@@ -58,7 +58,7 @@
 ]
 _RECONFIG_OUTPUTS = _RECONFIG_INPUTS + [
     "//command_line_option:build_python_zip",
-    VISIBLE_FOR_TESTING,
+    labels.VISIBLE_FOR_TESTING,
 ]
 _RECONFIG_INHERITED_OUTPUTS = [v for v in _RECONFIG_OUTPUTS if v in _RECONFIG_INPUTS]
 
diff --git a/tests/support/sh_py_run_test.bzl b/tests/support/sh_py_run_test.bzl
index 83ac2c8..7dff667 100644
--- a/tests/support/sh_py_run_test.bzl
+++ b/tests/support/sh_py_run_test.bzl
@@ -18,6 +18,7 @@
 """
 
 load("@rules_shell//shell:sh_test.bzl", "sh_test")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private:toolchain_types.bzl", "TARGET_TOOLCHAIN_TYPE")  # buildifier: disable=bzl-visibility
 load(":py_reconfig.bzl", "py_reconfig_binary")
 
@@ -79,7 +80,7 @@
     implementation = _current_build_settings_impl,
     attrs = {
         "_bootstrap_impl_flag": attr.label(
-            default = "//python/config_settings:bootstrap_impl",
+            default = labels.BOOTSTRAP_IMPL,
         ),
     },
     toolchains = [
diff --git a/tests/support/support.bzl b/tests/support/support.bzl
index 28cab0d..37d3488 100644
--- a/tests/support/support.bzl
+++ b/tests/support/support.bzl
@@ -35,15 +35,6 @@
 
 # str() around Label() is necessary because rules_testing's config_settings
 # doesn't accept yet Label objects.
-ADD_SRCS_TO_RUNFILES = str(Label("//python/config_settings:add_srcs_to_runfiles"))
-BOOTSTRAP_IMPL = str(Label("//python/config_settings:bootstrap_impl"))
-EXEC_TOOLS_TOOLCHAIN = str(Label("//python/config_settings:exec_tools_toolchain"))
-PIP_ENV_MARKER_CONFIG = str(Label("//python/config_settings:pip_env_marker_config"))
-PRECOMPILE = str(Label("//python/config_settings:precompile"))
-PRECOMPILE_SOURCE_RETENTION = str(Label("//python/config_settings:precompile_source_retention"))
-PYC_COLLECTION = str(Label("//python/config_settings:pyc_collection"))
-PYTHON_VERSION = str(Label("//python/config_settings:python_version"))
-VISIBLE_FOR_TESTING = str(Label("//python/private:visible_for_testing"))
 CUSTOM_RUNTIME = str(Label("//tests/support:custom_runtime"))
 
 SUPPORTS_BOOTSTRAP_SCRIPT = select({
diff --git a/tests/toolchains/transitions/transitions_tests.bzl b/tests/toolchains/transitions/transitions_tests.bzl
index 0f1db2e..0cd79b3 100644
--- a/tests/toolchains/transitions/transitions_tests.bzl
+++ b/tests/toolchains/transitions/transitions_tests.bzl
@@ -20,9 +20,9 @@
 load("@rules_testing//lib:util.bzl", rt_util = "util")
 load("//python:versions.bzl", "TOOL_VERSIONS")
 load("//python/private:bzlmod_enabled.bzl", "BZLMOD_ENABLED")  # buildifier: disable=bzl-visibility
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/private:full_version.bzl", "full_version")  # buildifier: disable=bzl-visibility
 load("//python/private:toolchain_types.bzl", "EXEC_TOOLS_TOOLCHAIN_TYPE")  # buildifier: disable=bzl-visibility
-load("//tests/support:support.bzl", "PYTHON_VERSION")
 
 _analysis_tests = []
 
@@ -33,16 +33,16 @@
     for their own rule.
     """
     settings = {
-        PYTHON_VERSION: input_settings[PYTHON_VERSION],
+        labels.PYTHON_VERSION: input_settings[labels.PYTHON_VERSION],
     }
     if attr.python_version:
-        settings[PYTHON_VERSION] = attr.python_version
+        settings[labels.PYTHON_VERSION] = attr.python_version
     return settings
 
 _python_version_transition = transition(
     implementation = _transition_impl,
-    inputs = [PYTHON_VERSION],
-    outputs = [PYTHON_VERSION],
+    inputs = [labels.PYTHON_VERSION],
+    outputs = [labels.PYTHON_VERSION],
 )
 
 TestInfo = provider(
diff --git a/tests/uv/uv/uv_tests.bzl b/tests/uv/uv/uv_tests.bzl
index b464dab..8009405 100644
--- a/tests/uv/uv/uv_tests.bzl
+++ b/tests/uv/uv/uv_tests.bzl
@@ -17,6 +17,7 @@
 load("@rules_testing//lib:analysis_test.bzl", "analysis_test")
 load("@rules_testing//lib:test_suite.bzl", "test_suite")
 load("@rules_testing//lib:truth.bzl", "subjects")
+load("//python/private:common_labels.bzl", "labels")  # buildifier: disable=bzl-visibility
 load("//python/uv:uv_toolchain_info.bzl", "UvToolchainInfo")
 load("//python/uv/private:uv.bzl", "process_modules")  # buildifier: disable=bzl-visibility
 load("//python/uv/private:uv_toolchain.bzl", "uv_toolchain")  # buildifier: disable=bzl-visibility
@@ -166,7 +167,7 @@
         "none",
     ])
     uv.implementations().contains_exactly({
-        "none": str(Label("//python:none")),
+        "none": labels.NONE,
     })
     uv.compatible_with().contains_exactly({
         "none": ["@platforms//:incompatible"],