From 90f0c8c8db6f16e2586c2739091b85031e395ce5 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 23 Nov 2018 17:37:42 +0100 Subject: Deduplicate version_mangle_re --- gbp/deb/git.py | 5 +---- gbp/pkg/pkgpolicy.py | 16 ++++++++-------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/gbp/deb/git.py b/gbp/deb/git.py index 85c9da5e..12ad34d2 100644 --- a/gbp/deb/git.py +++ b/gbp/deb/git.py @@ -32,10 +32,7 @@ import gbp.log class DebianGitRepository(PkgGitRepository): """A git repository that holds the source of a Debian package""" - version_mangle_re = (r'%\(version' - r'%(?P[^%])' - r'%(?P([^%]|\\%))+' - r'\)s') + version_mangle_re = PkgPolicy.version_mangle_re def __init__(self, *args, **kwargs): super(DebianGitRepository, self).__init__(*args, **kwargs) diff --git a/gbp/pkg/pkgpolicy.py b/gbp/pkg/pkgpolicy.py index b525ce20..a81c9ec5 100644 --- a/gbp/pkg/pkgpolicy.py +++ b/gbp/pkg/pkgpolicy.py @@ -27,6 +27,10 @@ class PkgPolicy(object): """ Common helpers for packaging policy. """ + version_mangle_re = (r'%\(version' + r'%(?P[^%])' + r'%(?P([^%]|\\%))+' + r'\)s') packagename_re = None packagename_msg = None upstreamversion_re = None @@ -167,8 +171,8 @@ class PkgPolicy(object): def symlink_orig(cls, orig_file, orig_dir, output_dir, force=False): return cls.symlink_origs([orig_file], orig_dir, output_dir, force=force) - @staticmethod - def version_subst(format, version, sanitizer=lambda arg: arg): + @classmethod + def version_subst(cls, format, version, sanitizer=lambda arg: arg): """Generate a string from a given format and a version. The extracted version can be passed through the sanitizer function argument before being formatted into a string. @@ -193,13 +197,9 @@ class PkgPolicy(object): >>> PkgPolicy.version_subst(r'%(version%-%\\%)s', "0-1.2.3") '0%1.2.3' """ - version_mangle_re = (r'%\(version' - r'%(?P[^%])' - r'%(?P([^%]|\\%))+' - r'\)s') - r = re.search(version_mangle_re, format) + r = re.search(cls.version_mangle_re, format) if r: - format = re.sub(version_mangle_re, "%(version)s", format) + format = re.sub(cls.version_mangle_re, "%(version)s", format) version = version.replace(r.group('M'), r.group('R').replace(r'\%', '%')) return format_str(format, dict(version=sanitizer(version), hversion=sanitizer(version).replace('.', '-'))) -- cgit v1.2.3