модуль Python для обработки версии программного обеспечения - PullRequest
3 голосов
/ 27 февраля 2012

Я ищу модуль / библиотеку Python, который будет работать на «версиях программного обеспечения» ... Что означает, например:

  • сравнить версии "1.0-SNAPSHOT" и "1.1-SNAPSHOT" и сказать, что новее
  • увеличить "1.0.1-SNAPSHOT" до "1.0.2-SNAPSHOT"
  • сделать "1.0" из "1.0-SNAPSHOT" и то же самое с '-RELEASE'

Да, названия версий происходят из мира java (maven) - моя часть Python должна работать с ними ..

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 27 февраля 2012

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']

Вы должны будете сами делать приращения и другие манипуляции.

3 голосов
/ 27 февраля 2012

пакет distutils / disutils2 содержит модуль с именем version, который предоставляет полезные классы:

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

Надеюсь, это поможет!

...