Subversion Repositories KardasA Overlay

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
88 kardasa 1
--- Ft/Lib/DistExt/Version.py
2
+++ Ft/Lib/DistExt/Version.py
3
@@ -1,4 +1,5 @@
4
 import re
5
+import warnings
6
 from distutils.version import Version, StrictVersion
7
 
8
 __all__ = ['CommonVersion', 'VersionPredicate', 'SplitProvision',
9
@@ -40,6 +41,7 @@
10
     def parse(self, vstring):
11
         # save the original string for use by __str__
12
         self._original = vstring
13
+        vstring = vstring.rstrip('+')
14
 
15
         def versiontuple(vstring):
16
             """
17
@@ -53,9 +55,12 @@
18
 
19
         # Get the version number
20
         match = self.version_re.match(vstring)
21
-        if not match:
22
-            raise ValueError("invalid version number: %r" % vstring)
23
-        self.version = versiontuple(match.group())
24
+        if match:
25
+            self.version = versiontuple(match.group())
26
+        else:
27
+            warnings.filterwarnings("always", "invalid version number: .*, treating it as '0'", Warning)
28
+            warnings.warn("invalid version number: %r, treating it as '0'" % vstring, Warning)
29
+            self.version = (0,)
30
 
31
         # Check for pre- and post-release tags
32
         tags = []
33
@@ -64,7 +69,9 @@
34
         while start < end:
35
             match = self.tag_re.match(vstring, start)
36
             if not match:
37
-                raise ValueError("invalid release tag: %r" % vstring[start:])
38
+                warnings.filterwarnings("always", "invalid release tag: .*, ignoring it", Warning)
39
+                warnings.warn("invalid release tag: %r, ignoring it" % vstring[start:], Warning)
40
+                break
41
             tag, version = match.groups()
42
             tag = tag and tag.lower()
43
             if tag in self.tag_aliases: