用于处理软件版本的python模块

时间:2012-02-27 13:53:51

标签: java python maven continuous-integration version

我正在寻找一个python模块/库,它将在'软件版本'上运行......这意味着,例如:

  • 比较版本“1.0-SNAPSHOT”和“1.1-SNAPSHOT”并告诉哪个更新
  • 将“1.0.1-SNAPSHOT”增加到“1.0.2-SNAPSHOT”
  • 从“1.0-SNAPSHOT”制作“1.0”并与“-RELEASE”相同

是的,版本命名来自java(maven)世界 - 我的python部分应该对它们进行操作..

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

distutils对此有一些支持。

>>> from distutils.version import LooseVersion  # or StrictVersion
>>> LooseVersion("1.0-SNAPSHOT") < LooseVersion("1.1-SNAPSHOT")
True
>>> v = LooseVersion("1.0.1-SNAPSHOT")
>>> v.version
[1, 0, 1, '-SNAPSHOT']

你必须自己进行递增和其他操作。

答案 1 :(得分:3)

distutils / disutils2包中包含一个名为version的模块,它提供了有用的类:

import distutils
>>> vs1 = distutils.version.LooseVersion("1.0-SNAPSHOT")
>>> vs2 = distutils.version.LooseVersion("1.1-SNAPSHOT")
>>> vs1 < vs2
True

希望有所帮助!