Mercurial > hg
changeset 32509:a025ec43856c
import-checker: guess names of C extension modules
Since extension modules aren't included in the list of source files, they
need to be populated somehow. Otherwise the import from cext/cffi would be
treated as a global one.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Tue, 02 May 2017 22:28:18 +0900 |
parents | 4c712b90c60a |
children | 50eaccb8353f |
files | contrib/import-checker.py |
diffstat | 1 files changed, 11 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/contrib/import-checker.py Sun May 28 15:21:18 2017 +0900 +++ b/contrib/import-checker.py Tue May 02 22:28:18 2017 +0900 @@ -170,6 +170,16 @@ return False return fromlocal +def populateextmods(localmods): + """Populate C extension modules based on pure modules""" + newlocalmods = set(localmods) + for n in localmods: + if n.startswith('mercurial.pure.'): + m = n[len('mercurial.pure.'):] + newlocalmods.add('mercurial.cext.' + m) + newlocalmods.add('mercurial.cffi._' + m) + return newlocalmods + def list_stdlib_modules(): """List the modules present in the stdlib. @@ -701,7 +711,7 @@ for source_path in argv[1:]: modname = dotted_name_of_path(source_path) localmodpaths[modname] = source_path - localmods = set(localmodpaths) + localmods = populateextmods(localmodpaths) for localmodname, source_path in sorted(localmodpaths.items()): for src, modname, name, line in sources(source_path, localmodname): try: