libversion的python绑定

libversion的Python项目详细描述


libversion的python绑定

py-libversion packaging status

Build StatusPyPI downloadsPyPI versionPyPI pythonsGithub commits (since latest release)

目的

libversion的python绑定,它提供了fastpowerful 以及correct通用版本字符串比较算法。

参见libversion存储库 关于算法的更多细节。

性能

libversion比其他版本快10到100倍 在python世界中广泛使用的工具。

Facilitycomps/sec
libversion.version_compare23492.81K
libversion.version_compare3219.02K
libversion.Version374.08K
tuple(map(int, (v.split('.'))))206.02K
cmp_version.cmp_version189.15K
cmp_version.VersionString156.42K
distutils.version.StrictVersion75.00K
version.Version71.39K
distutils.version.LooseVersion51.38K
pkg_resources.parse_version22.26K

正确性

libversion比其他版本更好地处理某些复杂版本的情况 版本比较工具。下面是一些例子 失败:

Test caselibversiontupleStrictVersionLooseVersionparse_versioncmp_version
1.0 == 1.0.0okincorrect (<)okincorrect (<)okok
1.2_3 == 1.2-3okfailfailincorrect (>)incorrect (<)ok
1.2.3 == 1.2-3okfailfailfailincorrect (>)incorrect (<)
1.0alpha1 == 1.0.alpha1okfailfailokokincorrect (>)
1.0rc1 < 1.0okfailfailincorrect (>)okincorrect (>)
1.0 < 1.0patch1okfailfailokincorrect (>)ok
1.0.2a < 1.0.2gokfailfailokincorrect (>)ok

注1:fail表示尝试比较版本时 异常,通常是因为库无法分析特定版本 弦。

注2:version模块无法完成任何测试 一个严格的语义版本实现,需要3个版本 组件。另外,它不支持未经修改的python 3。

python包装特性

  • 提供类似于c库的api,version_compare(a, b)函数
  • 提供更多pythonic(但速度较慢)Version类 比较运算符

要求

示例代码

fromlibversionimportVersion,version_compareassert(version_compare("0.9","1.1")<0)assert(version_compare("1.0","1.0.0")==0)assert(version_compare("1.1","0.9")>0)assert(Version("0.9")<Version("1.1"))assert(Version("1.0")==Version("1.0.0"))assert(Version("1.1")>Version("0.9"))assert(Version("0.999")<Version("1.0alpha1"))assert(Version("1.0alpha1")<Version("1.0alpha2"))assert(Version("1.0alpha2")<Version("1.0beta1"))assert(Version("1.0beta1")<Version("1.0pre1"))assert(Version("1.0pre1")<Version("1.0rc1"))assert(Version("1.0rc1")<Version("1.0"))assert(Version("1.0")<Version("1.0patch1"))

许可证

麻省理工学院许可证,版权所有(c)2017-2018 dmitry marakasovamdmi3@amdmi3.ru

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
在Java中,我需要读取一个文本文件,并将每一行放在一个单独的数组中。但每次我读文本文件时,我都无法拆分行   SpringJavaservlet返回不正确的用户代理   java如何在spring测试中动态设置环境变量   绑定后的java关闭通道   java我想在设置方法中使用selenium执行多用户登录操作,我没有使用testng。xml我正在使用maven pom。仅xml   java foreach 2d数组分配   我想用java编写prim算法   java如何在Spring Boot中验证Rest请求   JavaJScrollPane问题   java将一个节点与另一个节点关联起来   java获取错误:范围内无法访问Polyline类型的封闭实例   字节[]到int,反之为java