[FIX] Upgrade the version parser

bzr revid: stephane@tinyerp.com-20081222182729-w1a482m5yq89330d
This commit is contained in:
Stephane Wirtel 2008-12-22 19:27:29 +01:00
parent 611d11e4ee
commit 9070ac9bec
1 changed files with 13 additions and 12 deletions

View File

@ -1,7 +1,7 @@
# -*- encoding: utf-8 -*- # -*- encoding: utf-8 -*-
############################################################################## ##############################################################################
# #
# OpenERP, Open Source Management Solution # OpenERP, Open Source Management Solution
# Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved # Copyright (C) 2004-2008 Tiny SPRL (<http://tiny.be>). All Rights Reserved
# $Id$ # $Id$
# #
@ -26,7 +26,7 @@
import re import re
component_re = re.compile(r'(\d+ | [a-z]+ | \.| -)', re.VERBOSE) component_re = re.compile(r'(\d+ | [a-z]+ | \.| -)', re.VERBOSE)
replace = {'pre':'c', 'preview':'c','-':'final-','rc':'c','dev':'@'}.get replace = {'pre':'c', 'preview':'c','-':'final-','_':'final-','rc':'c','dev':'@'}.get
def _parse_version_parts(s): def _parse_version_parts(s):
for part in component_re.split(s): for part in component_re.split(s):
@ -82,15 +82,16 @@ def parse_version(s):
return tuple(parts) return tuple(parts)
if __name__ == '__main__': if __name__ == '__main__':
pvs = [] pvs = []
for v in ('0', '4.2', '4.2.3.4', '5.0.0-alpha', '5.0.0-rc1', '5.0.0-rc1.1', '5.0.0'): for v in ('0', '4.2', '4.2.3.4', '5.0.0-alpha', '5.0.0-rc1', '5.0.0-rc1.1', '5.0.0_rc2', '5.0.0'):
pv = parse_version(v) pv = parse_version(v)
print v, pv print v, pv
pvs.append(pv) pvs.append(pv)
def cmp(a, b): def cmp(a, b):
assert(a < b) print a, b
return b assert(a < b)
return b
reduce(cmp, pvs) reduce(cmp, pvs)