Skip to content

Commit

Permalink
rework to better use generator in the loop
Browse files Browse the repository at this point in the history
  • Loading branch information
mattip committed Apr 11, 2020
1 parent f432bcd commit c7d1851
Showing 1 changed file with 23 additions and 22 deletions.
45 changes: 23 additions & 22 deletions packaging/tags.py
Original file line number Diff line number Diff line change
Expand Up @@ -662,39 +662,40 @@ def _linux_platforms(is_32bit=_32_BIT_INTERPRETER):
linux = "linux_i686"
elif linux == "linux_aarch64":
linux = "linux_armv7l"
manylinux_support = []
_, arch = linux.split("_", 1)
if _have_compatible_manylinux_abi(arch):
map_glibc_to_manylinux = {}
# glibc in manylinux2014 is 2.17
min_minor = 16
if arch in {"x86_64", "i686", "aarch64", "armv7l", "ppc64", "ppc64le", "s390x"}:
# CentOS 7 w/ glibc 2.17 (PEP 599)
map_glibc_to_manylinux = {(2, 17): "manylinux2014"}
map_glibc_to_manylinux[(2, 17)] = "manylinux2014"
if arch in {"x86_64", "i686"}:
# CentOS 6 w/ glibc 2.12 (PEP 571)
map_glibc_to_manylinux[(2, 12)] = "manylinux2010"
# CentOS 5 w/ glibc 2.5 (PEP 513)
map_glibc_to_manylinux[(2, 5)] = "manylinux1"
# glibc in manylinux1 is 2.5
min_minor = 4
else:
# glibc in manylinux2014 is 2.17
min_minor = 16
cur_glibc = _get_glibc_version()
for glibc_minor in range(cur_glibc[1], min_minor, -1):
if _have_compatible_glibc(2, glibc_minor):
manylinux_support.append(
("manylinux_2_{}".format(glibc_minor), (2, glibc_minor))
)
if (2, glibc_minor) in map_glibc_to_manylinux:
manylinux_support.append(
(map_glibc_to_manylinux[(2, glibc_minor)], (2, glibc_minor))
)
manylinux_support_iter = iter(manylinux_support)
for name, glibc_version in manylinux_support_iter:
if _is_manylinux_compatible(name, glibc_version):
yield linux.replace("linux", name)
break
for name, _ in manylinux_support_iter:
yield linux.replace("linux", name)
cur_glibc = _get_glibc_version()
manylinux_compat = False
for glibc_minor in range(cur_glibc[1], min_minor, -1):
plat = "manylinux_2_{}".format(glibc_minor)
# Once _is_manylinux_compatible() is True, it is True for any
# lower manylinux tag.
manylinux_compat = manylinux_compat or _is_manylinux_compatible(
plat, (2, glibc_minor)
)
if manylinux_compat:
yield linux.replace("linux", plat)
# Handle the manylinux1, manylinux2010, manylinux2014 tags
if (2, glibc_minor) in map_glibc_to_manylinux:
plat = map_glibc_to_manylinux[(2, glibc_minor)]
manylinux_compat = manylinux_compat or _is_manylinux_compatible(
plat, (2, glibc_minor)
)
if manylinux_compat:
yield linux.replace("linux", plat)
yield linux


Expand Down

0 comments on commit c7d1851

Please sign in to comment.