https://github.com/wheelodex/wheel-filename
Parse wheel filenames
https://github.com/wheelodex/wheel-filename
available-on-pypi filename pep427 python wheel
Last synced: 2 months ago
JSON representation
Parse wheel filenames
- Host: GitHub
- URL: https://github.com/wheelodex/wheel-filename
- Owner: wheelodex
- License: mit
- Created: 2020-03-23T20:54:42.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-12-11T13:05:23.000Z (over 1 year ago)
- Last Synced: 2023-12-21T10:42:08.963Z (over 1 year ago)
- Topics: available-on-pypi, filename, pep427, python, wheel
- Language: Python
- Size: 49.8 KB
- Stars: 14
- Watchers: 3
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
|repostatus| |ci-status| |coverage| |pyversions| |license|
.. |repostatus| image:: https://www.repostatus.org/badges/latest/active.svg
:target: https://www.repostatus.org/#active
:alt: Project Status: Active — The project has reached a stable, usable
state and is being actively developed... |ci-status| image:: https://github.com/wheelodex/wheel-filename/actions/workflows/test.yml/badge.svg
:target: https://github.com/wheelodex/wheel-filename/actions/workflows/test.yml
:alt: CI Status.. |coverage| image:: https://codecov.io/gh/wheelodex/wheel-filename/branch/master/graph/badge.svg
:target: https://codecov.io/gh/wheelodex/wheel-filename.. |pyversions| image:: https://img.shields.io/pypi/pyversions/wheel-filename.svg
:target: https://pypi.org/project/wheel-filename/.. |license| image:: https://img.shields.io/github/license/wheelodex/wheel-filename.svg
:target: https://opensource.org/licenses/MIT
:alt: MIT License`GitHub `_
| `PyPI `_
| `Issues `_
| `Changelog `_``wheel-filename`` lets you verify wheel_ filenames and parse them into their
component fields... _wheel: https://packaging.python.org/en/latest/specifications
/binary-distribution-format/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.
Installation
============
``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
Example
=======>>> 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']API
===``parse_wheel_filename(filename)``
Parses a wheel filename (a ``str``, ``bytes``, or ``os.PathLike``) and
returns a ``ParsedWheelFilename`` instance. Any leading directory
components are stripped from the argument before processing. If the
filename is not a valid wheel filename, raises an ``InvalidFilenameError``.``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 filename``tag_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
to ``parse_wheel_filename()``. It has a ``filename`` attribute containing
the basename of the invalid filename.Command
=======*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"
]
}