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中是否有数字的默认类型   java调用一个类的方法来使用另一个类的实例   java HtmlUnit不适用于javascript处理   java需要帮助才能连接MongoDB   java如何从Maven中的src/main/resources复制文件?   java保存Int值(共享首选项)   从另一个类调用方法时,java Autowired组件出现空指针异常   java Spring JPA:PropertyAccessException 1:。。。MethodInvocationException:。'driverClassName'。。。org/postgresql/Driver:不支持的专业。次要版本52.0   java使用增强的JDO模型类在Eclipse中运行Junit测试   java如何使用eclipse IDE为junit创建可运行的jar文件   java如何在安卓中检测应用程序的启动和退出   java在其他线程可以访问静态映射时从数据库更新静态映射   java@Entitty和@EntityScan不起作用。我正在使用SpringBoot和jpa存储库,发生了很多次   java如何与google日历集成?