Package dogtail :: Module version
[hide private]
[frames] | no frames]

Source Code for Module dogtail.version

 1  """Handles versioning of software packages 
 2   
 3  Author: Dave Malcolm <dmalcolm@redhat.com>""" 
 4  __author__ = 'Dave Malcolm <dmalcolm@redhat.com>' 
 5   
 6   
7 -class Version(object):
8 9 """ 10 Class representing a version of a software package. 11 Stored internally as a list of subversions, from major to minor. 12 Overloaded comparison operators ought to work sanely. 13 """ 14
15 - def __init__(self, versionList):
16 self.versionList = versionList
17
18 - def fromString(versionString):
19 """ 20 Parse a string of the form number.number.number 21 """ 22 return Version(map(int, versionString.split(".")))
23 fromString = staticmethod(fromString) 24
25 - def __str__(self):
26 return ".".join(map(str, self.versionList))
27
28 - def __getNum(self):
29 tmpList = list(self.versionList) 30 31 while len(tmpList) < 5: 32 tmpList += [0] 33 34 num = 0 35 for i in range(len(tmpList)): 36 num *= 1000 37 num += tmpList[i] 38 return num
39
40 - def __lt__(self, other):
41 return self.__getNum() < other.__getNum()
42
43 - def __le__(self, other):
44 return self.__getNum() <= other.__getNum()
45
46 - def __eq__(self, other):
47 return self.__getNum() == other.__getNum()
48
49 - def __ne__(self, other):
50 return self.__getNum() != other.__getNum()
51
52 - def __gt__(self, other):
53 return self.__getNum() > other.__getNum()
54
55 - def __ge__(self, other):
56 return self.__getNum() >= other.__getNum()
57