跳过主要内容

一个Python版本号和指定符的库,实现PEP 440

项目描述

rust中的PEP440

一个Python版本号和指定符的库,实现PEP 440

pip install pep440_rs
from pep440_rs import Version, VersionSpecifier

assert Version("1.1a1").any_prerelease()
assert Version("1.1.dev2").any_prerelease()
assert not Version("1.1").any_prerelease()
assert VersionSpecifier(">=1.0").contains(Version("1.1a1"))
assert not VersionSpecifier(">=1.1").contains(Version("1.1a1"))
assert Version("2.0") in VersionSpecifier("==2")

pypa/packaging不同,此库始终匹配预发布版。要仅匹配最终发布版,请先使用.any_prelease()进行过滤。

PEP 440有很多不直观的功能,包括

  • 一个纪元,您可以将它作为版本的前缀,例如1!1.2.3。较低的纪元始终意味着较低的版本(1.0 <=2!0.1
  • 后版本,它可以附加到稳定发布版和预发布版上
  • 开发版本,它可以附加到sbpth表发布版和预发布版上。当附加到预发布版时,开发版本在正常预发布版之后排序,然而当附加到稳定版本时,开发版本在预发布版之前排序
  • 预发布处理是一团糟:“所有类型的预发布版,包括开发版本,默认情况下都从所有版本指定符中排除,除非它们已经在系统上存在、被用户明确请求,或者如果唯一满足版本指定符的版本是预发布版。”这意味着我们无法说指定符是否匹配,而不同时查看环境
  • 预发布与预发布(包括开发版)模糊不清
  • 在所有其他版本之上的是本地版本,它们通过加号添加,具有隐式类型化的字符串和数字段
  • 没有semver-caret(^),但有一个伪semver波浪号(~=
  • 排序与匹配相矛盾:例如,在排序时我们有1.0+local > 1.0,但==1.0匹配1.0+local。虽然版本的排序本身是一个全序,但版本匹配需要捕获所有各种特殊情况

项目详情


下载文件

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

源代码分发

pep440_rs-0.6.5.tar.gz (47.8 kB 查看哈希值)

上传时间 源代码

构建分发

pep440_rs-0.6.5-cp38-abi3-win_amd64.whl (173.0 kB 查看哈希值)

上传时间 CPython 3.8+ Windows x86-64

pep440_rs-0.6.5-cp38-abi3-win32.whl (165.2 kB 查看哈希值)

上传时间 CPython 3.8+ Windows x86

pep440_rs-0.6.5-cp38-abi3-musllinux_1_2_x86_64.whl (476.0 kB 查看哈希值)

上传时间 CPython 3.8+ musllinux: musl 1.2+ x86-64

pep440_rs-0.6.5-cp38-abi3-musllinux_1_2_i686.whl (500.0 kB 查看哈希值)

上传时间 CPython 3.8+ musllinux: musl 1.2+ i686

pep440_rs-0.6.5-cp38-abi3-musllinux_1_2_armv7l.whl (578.7 kB 查看哈希值)

上传时间 CPython 3.8+ musllinux: musl 1.2+ ARMv7l

pep440_rs-0.6.5-cp38-abi3-musllinux_1_2_aarch64.whl (493.3 kB 查看哈希值)

上传时间 CPython 3.8+ musllinux: musl 1.2+ ARM64

pep440_rs-0.6.5-cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (305.6 kB 查看哈希值)

上传时间 CPython 3.8+ manylinux: glibc 2.17+ x86-64

pep440_rs-0.6.5-cp38-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl (357.8 kB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ s390x

pep440_rs-0.6.5-cp38-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl (343.4 kB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ ppc64le

pep440_rs-0.6.5-cp38-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (316.4 kB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ ARMv7l

pep440_rs-0.6.5-cp38-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (315.4 kB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.17+ ARM64

pep440_rs-0.6.5-cp38-abi3-manylinux_2_5_i686.manylinux1_i686.whl (323.7 kB 查看哈希值)

上传于 CPython 3.8+ manylinux: glibc 2.5+ i686

pep440_rs-0.6.5-cp38-abi3-macosx_11_0_arm64.whl (264.8 kB 查看哈希值)

上传于 CPython 3.8+ macOS 11.0+ ARM64

pep440_rs-0.6.5-cp38-abi3-macosx_10_12_x86_64.whl (272.5 kB 查看哈希值)

上传于 CPython 3.8+ macOS 10.12+ x86-64

支持者

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