"Keith" wrote: > Is there a function for comparing version numbers? > > E.g. > > 0.1.0 < 0.1.2 > 1.876b < 1.876c > 3.2.2 < 3.4
the following works for many common cases: import re def cmpver(a, b): def fixup(i): try: return int(i) except ValueError: return i a = map(fixup, re.findall("\d+|\w+", a)) b = map(fixup, re.findall("\d+|\w+", b)) return cmp(a, b) # -1 if a<b, 0 if a=b, 1 if a>b >>> cmpver("0.1.0", "0.1.2") -1 >>> cmpver("1.876b", "1.876c") -1 >>> cmpver("3.2.2", "3.4") -1 ymmv. </F> -- http://mail.python.org/mailman/listinfo/python-list