diff options
author | Ben Hutchings <ben@decadent.org.uk> | 2018-07-01 19:04:12 +0100 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2018-07-01 19:37:25 +0100 |
commit | 6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d (patch) | |
tree | 6638f0561cd162d87c7678d99c2cf42ce5dd0bd4 /debian/lib/python/debian_linux/debian.py | |
parent | 6a3bb899a3b7b318a9fc4387dab8956866dd53d4 (diff) | |
download | kernel_replicant_linux-6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d.tar.gz kernel_replicant_linux-6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d.tar.bz2 kernel_replicant_linux-6afe0a945ac97551cdf8e6d1f23e5d96fe29c18d.zip |
debian/lib/python/debian_linux/debian.py: Let superclass split version string
The Version class already parses the version into upstream and Debian
revision parts. Match the results of that against two separate
regexps rather than matching the whole version string and potentially
parsing it inconsistently.
As a result we no longer have to explicitly exclude '-' in the
revision_other group.
Diffstat (limited to 'debian/lib/python/debian_linux/debian.py')
-rw-r--r-- | debian/lib/python/debian_linux/debian.py | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/debian/lib/python/debian_linux/debian.py b/debian/lib/python/debian_linux/debian.py index 692e81abb728..afc956ef002a 100644 --- a/debian/lib/python/debian_linux/debian.py +++ b/debian/lib/python/debian_linux/debian.py @@ -214,8 +214,7 @@ class _VersionTest(unittest.TestCase): class VersionLinux(Version): - _version_linux_rules = r""" -^ + _upstream_re = re.compile(r""" (?P<version> \d+\.\d+ ) @@ -235,7 +234,9 @@ class VersionLinux(Version): \d+ ) )? -- +$ + """, re.X) + _revision_re = re.compile(r""" \d+ (\.\d+)? (?: @@ -251,20 +252,20 @@ class VersionLinux(Version): )? | (?P<revision_other> - [^-]+? + .+? ) ) (?:\+b\d+)? $ -""" - _version_linux_re = re.compile(_version_linux_rules, re.X) + """, re.X) def __init__(self, version): super(VersionLinux, self).__init__(version) - match = self._version_linux_re.match(version) - if match is None: + up_match = self._upstream_re.match(self.upstream) + rev_match = self._revision_re.match(self.revision) + if up_match is None or rev_match is None: raise RuntimeError(u"Invalid debian linux version") - d = match.groupdict() + d = up_match.groupdict() self.linux_modifier = d['modifier'] self.linux_version = d['version'] if d['modifier'] is not None: @@ -274,10 +275,11 @@ $ self.linux_upstream = d['version'] self.linux_upstream_full = self.linux_upstream + d['update'] self.linux_dfsg = d['dfsg'] - self.linux_revision_experimental = match.group('revision_experimental') and True - self.linux_revision_security = match.group('revision_security') and True - self.linux_revision_backports = match.group('revision_backports') and True - self.linux_revision_other = match.group('revision_other') and True + d = rev_match.groupdict() + self.linux_revision_experimental = d['revision_experimental'] and True + self.linux_revision_security = d['revision_security'] and True + self.linux_revision_backports = d['revision_backports'] and True + self.linux_revision_other = d['revision_other'] and True class _VersionLinuxTest(unittest.TestCase): |