跳转到主要内容

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

撤销此版本的原因

由基于https://github.com/pypa/packaging/issues/530#issuecomment-1362652137的packvers替代

项目描述

packaging2是packaging的一个友好Fork,旨在解决LegacyVersion支持的删除问题。请参阅https://github.com/pypa/packaging/issues/530

为各种Python打包互操作性规范提供可重复使用的核心工具。

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

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

文档

文档(此处)提供了以下信息和API

  • 版本处理

  • 指定符

  • 标记

  • 要求

  • 标签

  • 实用工具

安装

使用pip安装这些实用工具

pip install packaging2

讨论

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

行为准则

包装项目代码库、问题跟踪器、聊天室和邮件列表中互动的每个人应遵守Python软件基金会行为准则

贡献

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

项目历史

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

变更日志

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

  • 将pyparsing的pin更新为排除3.0.0

21.0 - 2021-07-03

  • PEP 656:musllinux支持(#411

  • 停止支持Python 2.7、Python 3.4和Python 3.5

  • 使用sysconfig替换distutils的使用(#396

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

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

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

  • 在packaging.tags中正确实现仅关键字“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

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

20.7 - 2020-11-28

没有未发布的变化。

20.6 - 2020-11-28

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

  • intel 设为 macOS 平台标记 universal 识别的 CPU 架构(#361

  • packaging.requirements 添加一些缺失的类型提示(问题: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(例如 ARM-v8, aarch64)上运行的 32 位操作系统报告错误位数的错误。

20.1 - 2020-01-24

  • 修复了由于重复使用耗尽的迭代器而引起的错误。(#257

20.0 - 2020-01-06

  • 添加类型提示(#191

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

  • 根据 manylinux 支持检测减少对 ctypes 的依赖(#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 文件,正确标记 packaging 已完全类型化(#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

  • 正确处理 python_version 中的两位数版本(#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(《https://github.com/pypa/packaging/issues/91》#91)。

  • VersionLegacyVersion添加epochreleasepredevpost属性(《https://github.com/pypa/packaging/issues/34》#34)。

  • 添加Version().is_devreleaseLegacyVersion().is_devrelease,以便更容易地确定一个发布版本是否是开发版本。

  • 添加utils.canonicalize_version以规范化版本字符串或Version实例(《https://github.com/pypa/packaging/issues/121》#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。

  • 修复存在前缀和本地版本时的==比较问题(《https://github.com/pypa/packaging/issues/41》#41)。

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

15.3 - 2015-08-01

  • 对rev/r前缀进行发布后拼写的规范化。《https://github.com/pypa/packaging/issues/35》#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

  • 初始发布。

项目详情


下载文件

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

源分发

packaging2-21.4.tar.gz (84.8 kB 查看哈希)

上传时间

构建分发

packaging2-21.4-py3-none-any.whl (40.8 kB 查看哈希)

上传时间 Python 3

支持者:

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页