解析wheel文件名
项目描述
wheel-filename 允许您验证 wheel 文件名并将它们解析为其组件字段。
此包严格遵守相关PEP,但有以下例外
与其他文件名组件不同,版本组件可能包含字符 ! 和 + 以实现完全PEP 440支持。
版本组件可以是相关字符集中的任何序列;它们不会验证PEP 440合规性。
匹配 .whl 文件扩展名时不区分大小写。
安装
wheel-filename 需要 Python 3.6 或更高版本。只需使用 Python 3 的 pip(您有 pip 吗?)来安装 wheel-filename
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']
API
- parse_wheel_filename(filename)
解析 wheel 文件名(一个 str、bytes 或 os.PathLike)并返回一个 ParsedWheelFilename 实例。在处理之前,将任何前导目录组件从参数中删除。如果文件名不是有效的 wheel 文件名,则引发一个 InvalidFilenameError。
- ParsedWheelFilename
一个表示 wheel 文件名组件的 named tuple。它具有以下属性和方法
- project: str
由 wheel 分发的项目的名称
- version: str
由 wheel 分发的项目的版本
- build: Optional[str]
wheel 的构建标签(如果未定义则为 None)
- python_tags: List[str]
wheel 的 Python 标签列表
- abi_tags: List[str]
wheel 的 ABI 标签列表
- platform_tags: List[str]
wheel 的平台标签列表
- str(pwf)
将 ParsedWheelFilename 转换为字符串返回原始文件名
- tag_triples() -> Iterator[str]
返回一个迭代器,其中包含从文件名中的兼容性标签生成的所有简单标签三元组
- InvalidFilenameError
当将无效的 wheel 文件名传递给 parse_wheel_filename() 时引发的一个 ValueError 子类。它有一个包含无效文件名基本名称的 filename 属性。
命令
自版本 1.4.0 以来新增
wheel-filename 还提供了一个同名的命令,该命令接受 wheel 文件名(实际的 wheel 不必存在)并将文件名组件以 JSON 格式输出。
示例
$ 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" ] }