GitHub | PyPI | Issues | Changelog
wheel-filename
lets you verify wheel filenames and parse them into their component fields.
This package adheres strictly to the standard, with the following exceptions:
- Version components may be any sequence of the relevant set of characters; they are not verified for PEP 440 compliance.
- The
.whl
file extension is matched case-insensitively.
wheel-filename
requires Python 3.8 or higher. Just use pip for Python 3 (You have pip, right?) to install it:
python3 -m pip install wheel-filename
>>> from wheel_filename import parse_wheel_filename >>> pwf = parse_wheel_filename('pip-18.0-py2.py3-none-any.whl') >>> str(pwf) 'pip-18.0-py2.py3-none-any.whl' >>> pwf.project 'pip' >>> pwf.version '18.0' >>> pwf.build is None True >>> pwf.python_tags ['py2', 'py3'] >>> pwf.abi_tags ['none'] >>> pwf.platform_tags ['any'] >>> list(pwf.tag_triples()) ['py2-none-any', 'py3-none-any']
parse_wheel_filename(filename)
Parses a wheel filename (a
str
,bytes
, oros.PathLike
) and returns aParsedWheelFilename
instance. Any leading directory components are stripped from the argument before processing. If the filename is not a valid wheel filename, raises anInvalidFilenameError
.ParsedWheelFilename
A namedtuple representing the components of a wheel filename. It has the following attributes and methods:
project: str
The name of the project distributed by the wheel
version: str
The version of the project distributed by the wheel
build: Optional[str]
The wheel's build tag (
None
if not defined)python_tags: List[str]
A list of Python tags for the wheel
abi_tags: List[str]
A list of ABI tags for the wheel
platform_tags: List[str]
A list of platform tags for the wheel
str(pwf)
Stringifying a
ParsedWheelFilename
returns the original filenametag_triples() -> Iterator[str]
Returns an iterator of all simple tag triples formed from the compatibility tags in the filename
InvalidFilenameError
A subclass of
ValueError
raised when an invalid wheel filename is passed toparse_wheel_filename()
. It has afilename
attribute containing the basename of the invalid filename.
New in version 1.4.0
wheel-filename
also provides a command of the same name that takes a wheel filename (The actual wheel does not have to exist) and outputs the filename components as JSON.
Example:
$ wheel-filename pip-18.0-py2.py3-none-any.whl
{
"project": "pip",
"version": "18.0",
"build": null,
"python_tags": [
"py2",
"py3"
],
"abi_tags": [
"none"
],
"platform_tags": [
"any"
]
}