跳转到主要内容

Python包的核心工具。Fork以支持LegacyVersion

项目描述

packvers是packaging的一个友好分支,旨在解决LegacyVersion支持的取消。参见https://github.com/pypa/packaging/issues/530

用于各种Python打包互操作性规范的可重用核心工具。

此库提供了实现互操作性规范的工具,这些规范具有明确且唯一正确的行为(例如:PEP 440)或从具有单个共享实现中受益很大(例如:PEP 425)。

packvers项目包括以下内容:版本处理、指定符、标记、需求、标签、工具。

文档

文档提供了以下信息

  • 版本处理

  • 指定符

  • 标记

  • 需求

  • 标签

  • 工具

安装

使用 pip 安装这些工具

pip install packvers

讨论

如果您遇到错误,可以在我们的 问题追踪器 中提交。

行为准则

所有与包装项目代码库、问题追踪器、聊天室和邮件列表互动的人都应遵守 PSF 行为准则

贡献

CONTRIBUTING.rst 文件概述了如何为此项目做出贡献以及如何报告潜在的安全问题。此项目的文档还涵盖了有关 项目开发安全 的信息。

项目历史

请查看 CHANGELOG.rst 文件或 变更日志文档 以了解最近的变化和项目历史。

变更日志

21.5 - 2022-12-22

  • 重命名为 packvers 以避免混淆

21.4 - 2022-12-22

21.3 - 2021-11-17

  • 添加一个 pp3-none-any 标签 (#311)

  • 将空白的 pyparsing 3 排除替换为 3.0.5 排除 (#481#486)

  • 修复一个拼写错误 (#479)

21.2 - 2021-10-29

  • 更新 21.1 的文档条目。

21.1 - 2021-10-29

  • 将 pin 更新到 pyparsing 以排除 3.0.0。

21.0 - 2021-07-03

  • PEP 656: musllinux 支持 (#411)

  • 放弃对 Python 2.7、Python 3.4 和 Python 3.5 的支持。

  • 将 distutils 使用替换为 sysconfig (#396)

  • parse_sdist_filename 中添加对 zip 文件的支持 (#429)

  • 使用缓存的 _hash 属性来短路标签等价比较 (#417)

  • SpecifierSetspecifier 参数指定默认值 (#437)

  • packaging.tags 中的适当关键字-only "warn" 参数 (#403)

  • 正确地从 ~= 检查中移除预发布后缀 (#366)

  • 修复 Version.postVersion.dev 的类型提示 (#393)

  • 使用类型别名 UnparsedVersion (#398)

  • 改进 packaging.specifiers.filter() 的类型推断 (#430)

  • 收紧 canonicalize_version() 的返回类型 (#402)

20.9 - 2021-01-29

  • 在代码库上运行 isort (#377)

  • 添加对 macosx_10_*_universal2 平台标签的支持 (#379)

  • 引入 packaging.utils.parse_wheel_filename()parse_sdist_filename() (#387#389)

20.8 - 2020-12-11

  • 为某些 Linux 发行版兼容性目的改回 setuptools (#363)

  • 当解释器版本号超过两位数时,在 wheel 标签中不要插入下划线 (#372)

20.7 - 2020-11-28

没有未发布的更改。

20.6 - 2020-11-28

  • 修复flit配置,包括LICENSE文件(#357

  • intel设置为通用macOS平台标签的已知CPU架构(#361

  • 添加一些缺失的类型提示(问题:350

20.5 - 2020-11-27

  • 正式支持Python 3.9(#343

  • 弃用LegacyVersionLegacySpecifier类(#321

  • 在尝试解析glibc版本字符串时处理非动态可执行文件的OSError

20.4 - 2020-05-19

  • 在比较规范之前规范化版本。(#282

  • canonicalize_name的类型提示更改为返回packaging.utils.NormalizedName。这使静态类型工具(如mypy)能够检测规范化名称和非规范化名称的混合。

20.3 - 2020-03-05

  • 修复20.2的变更日志。

20.2 - 2020-03-05

  • 修复一个导致在64位ARM CPU上运行的32位操作系统(例如ARM-v8、aarch64)报告错误位数的bug。

20.1 - 2020-01-24

  • 修复由重复使用耗尽的迭代器引起的bug。(#257

20.0 - 2020-01-06

  • 添加类型提示(#191

  • 为PyPy支持添加适当的trove分类器(#198

  • 根据对manylinux支持检测的依赖关系缩减(#171

  • 在适当的位置使用sys.implementation.name用于packaging.tags#193

  • 扩展由packaging.tags提供的API:interpreter_name()mac_platforms()compatible_tags()cpython_tags()generic_tags()#187

  • 正式支持Python 3.8(#232

  • majorminormicro别名添加到packaging.version.Version#226

  • 通过添加一个py.typed文件来正确标记已被完全类型化(#226

19.2 - 2019-09-18

  • 删除对attrs的依赖(#178#179

  • 为CPython ABI标签使用适当的回退(#181#185

  • 添加对manylinux2014的支持(#186

  • 改进ABI检测(#181

  • 正确处理Python 3.8的调试wheel(#172

  • 改进Windows上调试构建的检测(#194

19.1 - 2019-07-30

  • 添加packaging.tags模块。(#156

  • 正确处理中的两位数版本(#119

19.0 - 2019-01-20

  • 修复带有标记的PEP 508直接URL要求的字符串表示。

  • 更好地处理文件URL

    这允许使用file:///absolute/path,之前由于缺少netloc而被阻止。

    这允许所有被urlunparse转换回原始URL的文件URL都有效。

18.0 - 2018-09-26

  • 当给出无效的要求时,改进错误消息。(#129

17.1 - 2017-02-28

  • 修复当提供非PEP 440版本时 utils.canonicalize_version 的问题。

17.0 - 2017-02-28

  • 取消支持python 2.6,3.2和3.3。

  • 将最小pyparsing版本定义为2.0.2(《#91》)。

  • epochreleasepredevpost 属性添加到 VersionLegacyVersion(《#34》)。

  • 添加 Version().is_devreleaseLegacyVersion().is_devrelease 以便于判断一个发布版本是否为开发版本。

  • 添加 utils.canonicalize_version 以标准化版本字符串或 Version 实例(《#121》)。

16.8 - 2016-10-29

  • 修复使用 in 的标记符渲染不正确的问题。

  • 修复Python RC版本测试中的错误。

16.7 - 2016-04-23

  • 添加对已弃用的 python_implementation 标记的支持,它是除较新的标记外的未记录setuptools标记。

16.6 - 2016-03-29

  • 添加对已弃用的PEP 345环境标记的支持,包括较新的标记。

16.5 - 2016-02-26

  • 修复解析带有逗号分隔符之间空白符的要求时的回归问题。

16.4 - 2016-02-22

  • 修复解析类似于 foo (==4) 的要求时的回归问题。

16.3 - 2016-02-21

  • 修复 packaging.requirements:Requirement 在匹配旧要求时过于严格的问题。

16.2 - 2016-02-09

  • 添加一个实现PEP 503中名称规范化的函数。

16.1 - 2016-02-07

  • 实现PEP 508中的要求规范。

16.0 - 2016-01-19

  • 重新授权,使packaging可以在Apache License,Version 2.0或2条款BSD许可证下使用。

  • 支持在只有distutils可用的情况下安装packaging。

  • 修复存在前缀和本地版本时 == 比较的问题(《#41》)。

  • 实现PEP 508中的环境标记。

15.3 - 2015-08-01

  • 规范化rev/r前缀的后发布拼写。#35

15.2 - 2015-05-13

  • 修复在使用时未正确允许预发布版本的任意指定符(===)的错误。

  • 通过 Specifier 类的属性公开指定符和版本部分。

  • 允许遍历 SpecifierSet 以获取对所有 Specifier 实例的访问。

  • 允许通过 in 操作符测试版本是否包含在指定符中。

15.1 - 2015-04-13

  • 修复导致关于预发布版本是否包含在 SpecifierSet 中的不一致答案的逻辑错误。

15.0 - 2015-01-02

  • 添加 Version().is_postreleaseLegacyVersion().is_postrelease 以便于判断一个发布版本是否为后发布版本。

  • 添加 Version().base_versionLegacyVersion().base_version 以便于获取不带任何预或后发布标记的公共版本。

  • 支持更新PEP 440,它移除了使用 >V<V 时隐含的 !=V.*,而是对预发布版本、后发布版本和本地版本在 >V<V 下的处理进行特殊处理。

14.5 - 2014-12-17

  • 将发布候选者规范化为 rc 而不是 c

  • 公开 VERSION_PATTERN 常量,这是一个匹配有效版本的正则表达式。

14.4 - 2014-12-15

  • 在使用小于(<)或大于(>)运算符的指定符中,确保版本在比较前已经标准化。

14.3 - 2014-11-19

  • 向后不兼容 重构指定符支持,使其能够合理地处理旧版指定符以及PEP 440指定符。

  • 向后不兼容 将指定符支持从packaging.version移动到packaging.specifiers

14.2 - 2014-09-10

  • Specifier添加预发布支持。

  • 移除在Specifier()中执行item的能力,并用Specifier().contains(item)替换,以便允许标志来指示是否接受预发布版本。

  • 添加一个方法Specifier().filter(),它将接受一个可迭代对象,并返回一个不匹配指定符的项目已被过滤的可迭代对象。

14.1 - 2014-09-08

  • 允许LegacyVersionVersion一起排序。

  • 添加packaging.version.parse()以方便地将版本字符串解析为VersionLegacyVersion,具体取决于其PEP 440的有效性。

14.0 - 2014-09-05

  • 首次发布。

项目详情


下载文件

下载您平台上的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

packvers-21.5.tar.gz (84.9 kB 查看哈希)

上传时间

构建分发

packvers-21.5-py3-none-any.whl (40.8 kB 查看哈希)

上传时间 Python 3

由以下机构支持