[Pkg-mailman-hackers] Pkg-mailman commit - rev 133 - branches/pkg-split/core/debian/snippets
Bernd S. Brentrup
bsb@haydn.debian.org
Tue, 18 May 2004 10:50:28 -0600
Author: bsb
Date: 2004-05-18 10:50:26 -0600 (Tue, 18 May 2004)
New Revision: 133
Added:
branches/pkg-split/core/debian/snippets/deb_versions.py
Log:
Initial imperfect attempt at version comparision.
Added: branches/pkg-split/core/debian/snippets/deb_versions.py
===================================================================
--- branches/pkg-split/core/debian/snippets/deb_versions.py 2004-05-18 16:45:59 UTC (rev 132)
+++ branches/pkg-split/core/debian/snippets/deb_versions.py 2004-05-18 16:50:26 UTC (rev 133)
@@ -0,0 +1,57 @@
+#! /usr/bin/python -O
+# $URL$
+# $Id$
+
+
+def _int(v):
+ try:
+ v = int(v)
+ except ValueError:
+ pass
+ return v
+
+class DebianVersion:
+
+ def __init__(self, ver):
+ """
+ TBD: add epoch support
+ """#
+ version = ver.split('-')
+ if len(version) == 1:
+ ups = version[0]
+ elif len(version) == 2:
+ ups, rev = version
+ else:
+ raise ValueError(ver)
+ self._ups = [ _int(c) for c in ups.split('.') ]
+ self._rev = [ _int(c) for c in rev.split('.') ]
+
+ def __cmp__(self, other):
+ diff = cmp(self._ups, other._ups)
+ if diff == 0:
+ diff = cmp(self._rev, other._rev)
+ return diff
+
+ def __str__(self):
+ ups = '.'.join([ str(i) for i in self._ups])
+ rev = '.'.join([ str(i) for i in self._rev])
+ return '-'.join((ups, rev))
+
+
+if __name__ == '__main__':
+ DV = DebianVersion
+
+ ancient = DV('2.0.11-1woody8')
+ old = DV('2.1.3-2')
+ current = DV('2.1.4.dfsg-4')
+ next = DV('2.1.4-4split0')
+ print ancient, old, current, next
+
+ def compare(a,b):
+ if a < b: print '%(a)s < %(b)s' % locals()
+ elif a > b: print '%(a)s > %(b)s' % locals()
+ elif a == b: print '%(a)s == %(b)s' % locals()
+ else: print '%(a)s and %(b)s don\'t compare!' % locals()
+
+ compare(ancient, next)
+ compare(next, current)
Property changes on: branches/pkg-split/core/debian/snippets/deb_versions.py
___________________________________________________________________
Name: svn:keywords
+ Id URL