This is an automated email from the git hooks/post-receive script. lunar pushed a commit to branch pu/reproducible_builds in repository dh-python.
commit 81a5b891b11b3bbf7a8527ea886942296569741b Author: Piotr Ożarowski <pi...@debian.org> Date: Sat Jun 29 23:53:49 2013 +0200 add Interpreter.should_ignore method --- dh_python2 | 9 ++------- dh_python3 | 12 ++---------- dhpython/__init__.py | 7 ++++++- dhpython/interpreter.py | 13 ++++++++++++- 4 files changed, 22 insertions(+), 19 deletions(-) diff --git a/dh_python2 b/dh_python2 index b45a755..566b9b2 100755 --- a/dh_python2 +++ b/dh_python2 @@ -277,13 +277,8 @@ def scan(package, dname=None, options=None): private_to_check = [dname] for root, dirs, file_names in os.walk(proot): - # ignore Python 3.X locations - if '/usr/lib/python3' in root or\ - '/usr/local/lib/python3' in root: - # warn only once - if root[root.find('/lib/python'):].count('/') == 2: - log.warning('Python 3.x location detected, ' - 'please use dh_python3: %s', root) + if interpreter.should_ignore(root): + del dirs[:] continue bin_dir = private_dir = None diff --git a/dh_python3 b/dh_python3 index 9bea7de..fe2e578 100755 --- a/dh_python3 +++ b/dh_python3 @@ -75,16 +75,8 @@ def scan(package, dname=None, options=None): private_to_check = [dname] for root, dirs, file_names in os.walk(proot): - # ignore Python 2.X locations - if '/usr/lib/python2' in root or\ - '/usr/local/lib/python2' in root or\ - '/usr/share/pyshared/' in root or\ - '/usr/lib/pyshared/' in root: - # warn only once - tmp = root.replace('/local', '').split('/') - if len(tmp) == 5: # debian/package/usr/foo/bar - log.warning('Python 2.x location detected, ' - 'please use dh_python2: %s', root) + if interpreter.should_ignore(root): + del dirs[:] continue bin_dir = private_dir = None diff --git a/dhpython/__init__.py b/dhpython/__init__.py index a4bce83..cd6bcf5 100644 --- a/dhpython/__init__.py +++ b/dhpython/__init__.py @@ -24,7 +24,7 @@ PKG_PREFIX_MAP = {'cpython2': 'python', 'cpython3': 'python3', 'pypy': 'pypy'} -# minimum version required for py3compile/py3clean: +# minimum version required for compile/clean scripts: MINPYCDEP = {'cpython2': 'python (>= 2.6.6-3)', 'cpython3': 'python3 (>= 3.2.3-3~)', 'pypy': 'pypy'} @@ -34,6 +34,11 @@ PUBLIC_DIR_RE = { 'cpython3': re.compile(r'.*?/usr/lib/python(3(?:\.\d+)?)/dist-packages'), 'pypy': re.compile(r'.*?/usr/lib/pypy/dist-packages')} +INTERPRETER_DIR_TPLS = { + 'cpython2': r'.*/python2\.\d/', + 'cpython3': r'.*/python3(?:\.\d+)?/', + 'pypy': r'.*/pypy/'} + # Interpreter site-directories OLD_SITE_DIRS = { 'cpython2': [ diff --git a/dhpython/interpreter.py b/dhpython/interpreter.py index 7d39d27..73c2a76 100644 --- a/dhpython/interpreter.py +++ b/dhpython/interpreter.py @@ -22,7 +22,7 @@ import logging import os import re from os.path import join, split -from dhpython import OLD_SITE_DIRS, PUBLIC_DIR_RE +from dhpython import INTERPRETER_DIR_TPLS, PUBLIC_DIR_RE, OLD_SITE_DIRS SHEBANG_RE = re.compile(r''' (?:\#!\s*){0,1} # shebang prefix @@ -263,6 +263,17 @@ class Interpreter: if match: return Version(match.groups(0)) + def should_ignore(self, path): + """Return True if path is used by another interpreter implementation.""" + cache_key = 'should_ignore_{}'.format(self.impl) + if cache_key not in self.__class__._cache: + expr = [v for k, v in INTERPRETER_DIR_TPLS.items() if k != self.impl] + regexp = re.compile('|'.join('({})'.format(i) for i in expr)) + self.__class__._cache[cache_key] = regexp + else: + regexp = self.__class__._cache[cache_key] + return regexp.search(path) + def cache_file(self, fpath, version=None): """Given path to a .py file, return path to its .pyc/.pyo file. -- Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/dh-python.git _______________________________________________ Reproducible-builds mailing list Reproducible-builds@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/reproducible-builds