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: |