Skip to content

Commit

Permalink
chore: rely on packaging to parse wheel filename
Browse files Browse the repository at this point in the history
  • Loading branch information
mayeut committed Sep 9, 2023
1 parent 76b18b6 commit 8c5c828
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 11 deletions.
1 change: 1 addition & 0 deletions setup.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ classifier =
[options]
include_package_data = True
install_requires =
packaging>=20.9
pyelftools>=0.24
importlib_metadata; python_version < "3.8"
packages = find:
Expand Down
7 changes: 4 additions & 3 deletions src/auditwheel/main_addtag.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ def configure_parser(sub_parsers):
def execute(args, p):
import os

from ._vendor.wheel.wheelfile import WHEEL_INFO_RE
from packaging.utils import parse_wheel_filename

from .wheel_abi import NonPlatformWheel, analyze_wheel_abi
from .wheeltools import InWheelCtx, WheelToolsError, add_platforms

Expand All @@ -35,8 +36,8 @@ def execute(args, p):
logger.info(NonPlatformWheel.LOG_MESSAGE)
return 1

parsed_fname = WHEEL_INFO_RE.search(basename(args.WHEEL_FILE))
in_fname_tags = parsed_fname.groupdict()["plat"].split(".")
_, _, _, in_tags = parse_wheel_filename(basename(args.WHEEL_FILE))
in_fname_tags = {tag.platform for tag in in_tags}

logger.info(
'%s receives the following tag: "%s".',
Expand Down
18 changes: 10 additions & 8 deletions src/auditwheel/wheeltools.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,9 @@
from types import TracebackType
from typing import Generator, Iterable

from packaging.utils import parse_wheel_filename

from ._vendor.wheel.pkginfo import read_pkg_info, write_pkg_info
from ._vendor.wheel.wheelfile import WHEEL_INFO_RE
from .tmpdirs import InTemporaryDirectory
from .tools import dir2zip, unique_by_index, zip2dir

Expand Down Expand Up @@ -223,9 +224,8 @@ def add_platforms(
out_dir = "."
wheel_fname = basename(wheel_ctx.in_wheel)

parsed_fname = WHEEL_INFO_RE.match(wheel_fname)
fparts = parsed_fname.groupdict()
original_fname_tags = fparts["plat"].split(".")
wheel_components = parse_wheel_filename(wheel_fname)
original_fname_tags = sorted({tag.platform for tag in wheel_components[3]})
logger.info("Previous filename tags: %s", ", ".join(original_fname_tags))
fname_tags = [tag for tag in original_fname_tags if tag not in remove_platforms]
fname_tags = unique_by_index(fname_tags + platforms)
Expand All @@ -241,10 +241,12 @@ def add_platforms(
else:
logger.info("No filename tags change needed.")

_, ext = splitext(wheel_fname)
fparts["plat"] = ".".join(fname_tags)
fparts["ext"] = ext
out_wheel_fname = "{namever}-{pyver}-{abi}-{plat}{ext}".format(**fparts)
fparts = {
"prefix": wheel_fname.rsplit("-", maxsplit=1)[0],
"plat": ".".join(fname_tags),
"ext": splitext(wheel_fname)[1],
}
out_wheel_fname = "{prefix}-{plat}{ext}".format(**fparts)
out_wheel = pjoin(out_dir, out_wheel_fname)

in_info_tags = [tag for name, tag in info.items() if name == "Tag"]
Expand Down

0 comments on commit 8c5c828

Please sign in to comment.