Skip to content

Commit 5c4c2f3

Browse files
committed
Replace pyproject specific logic
1 parent 097d5a7 commit 5c4c2f3

File tree

1 file changed

+18
-19
lines changed

1 file changed

+18
-19
lines changed

python/private/python.bzl

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,7 @@ def parse_modules(*, module_ctx, logger, _fail = fail):
8989
mod = mod,
9090
seen_versions = seen_versions,
9191
config = config,
92-
module_ctx = module_ctx,
93-
logger = logger,
92+
default_python_version = default_python_version,
9493
)
9594

9695
for toolchain_attr in toolchain_attr_structs:
@@ -962,25 +961,25 @@ def _create_defaults_attr_struct(*, tag):
962961
pyproject_toml = getattr(tag, "pyproject_toml", None),
963962
)
964963

965-
def _create_toolchain_attr_structs(*, mod, config, seen_versions, module_ctx, logger):
964+
def _create_toolchain_attr_structs(*, mod, config, seen_versions, default_python_version):
966965
arg_structs = []
967966

968-
# Check if pyproject_toml was specified in defaults
969-
# If so, register a toolchain for it
970-
for tag in mod.tags.defaults:
971-
pyproject_toml = getattr(tag, "pyproject_toml", None)
972-
if pyproject_toml:
973-
pyproject_version = read_pyproject_version(
974-
module_ctx,
975-
pyproject_toml,
976-
logger,
977-
)
978-
if pyproject_version and pyproject_version not in seen_versions:
979-
arg_structs.append(_create_toolchain_attrs_struct(
980-
python_version = pyproject_version,
981-
toolchain_tag_count = 1,
982-
))
983-
seen_versions[pyproject_version] = True
967+
# Auto-register a toolchain for the default version if not already
968+
# registered via an explicit python.toolchain() call.
969+
# This works for any default source: pyproject_toml, python_version_file,
970+
# python_version_env, or python_version.
971+
has_explicit_toolchain = default_python_version and any([
972+
tag.python_version == default_python_version
973+
for tag in mod.tags.toolchain
974+
])
975+
if (default_python_version and
976+
default_python_version not in seen_versions and
977+
mod.is_root and not has_explicit_toolchain):
978+
arg_structs.append(_create_toolchain_attrs_struct(
979+
python_version = default_python_version,
980+
toolchain_tag_count = 1,
981+
))
982+
seen_versions[default_python_version] = True
984983

985984
for tag in mod.tags.toolchain:
986985
arg_structs.append(_create_toolchain_attrs_struct(

0 commit comments

Comments
 (0)