Каков стандартный порядок сортировки номеров выпусков / версий Python? - PullRequest
3 голосов
/ 14 декабря 2009

Python pip и easy_install следуют некоторым правилам для сортировки пакетов по номерам релизов. Каковы правила нумерации бета-версий / выпусков / исправлений ошибок, чтобы эти инструменты знали, какая из них самая новая?

Ответы [ 3 ]

8 голосов
/ 14 декабря 2009

Это больной вопрос для многих людей. setuptools и easy_install имеют несколько довольно причудливых правил в попытке поиграть со всеми. Вы можете прочитать полные правила в методе setuptools parse_version, но вот краткое изложение:

  • Номера версий разбиты точками на кортеж из множества сегментов. 4.5.6.7 разбирается в кортеж, равный ("4", "5", "6", "7").

  • Замкнутые нули между тире или буквенно-цифровыми цифрами подавляются. 2.4.0 совпадает с 2.4; 2.4.05 - это то же самое, что и 2.4.5.

  • Буквенно-цифровые детали в нижнем регистре. 2.4.a5 равен 2.4.A5.

  • Предполагается, что строки, предшествующие алфавиту «final», являются предварительными версиями, поэтому 2.4.5b предшествует, а не после 2.4.5.

  • Наконец, «pre», «preview» и «rc» обрабатываются так, как если бы они были «c». Слово «dev» заменяется на «@», так что оно стоит перед чем-либо еще с той же версией. То есть x.y.z-dev гарантированно будет предшествовать любой другой версии x.y.z.

Существует несколько предложений по организации вещей, из которых наиболее популярными являются, вероятно, PEP 386 .

2 голосов
/ 14 декабря 2009
2 голосов
/ 14 декабря 2009

См. Документацию или посмотрите строку source: doc в функции pkg_resources.py parse_version ().

...