diff --git a/hgdemandimport/__init__.py b/hgdemandimport/__init__.py index 778dc37ce6832122e9c5624b5f7b197e4b1241c5_aGdkZW1hbmRpbXBvcnQvX19pbml0X18ucHk=..f37f9499fea8038487dcb1791eccd78ee8ae3c62_aGdkZW1hbmRpbXBvcnQvX19pbml0X18ucHk= 100644 --- a/hgdemandimport/__init__.py +++ b/hgdemandimport/__init__.py @@ -13,5 +13,7 @@ from __future__ import absolute_import +import sys + from . import demandimportpy2 as demandimport @@ -16,3 +18,49 @@ from . import demandimportpy2 as demandimport +# Extensions can add to this list if necessary. +ignore = [ + '__future__', + '_hashlib', + # ImportError during pkg_resources/__init__.py:fixup_namespace_package + '_imp', + '_xmlplus', + 'fcntl', + 'nt', # pathlib2 tests the existence of built-in 'nt' module + 'win32com.gen_py', + 'win32com.shell', # 'appdirs' tries to import win32com.shell + '_winreg', # 2.7 mimetypes needs immediate ImportError + 'pythoncom', + # imported by tarfile, not available under Windows + 'pwd', + 'grp', + # imported by profile, itself imported by hotshot.stats, + # not available under Windows + 'resource', + # this trips up many extension authors + 'gtk', + # setuptools' pkg_resources.py expects "from __main__ import x" to + # raise ImportError if x not defined + '__main__', + '_ssl', # conditional imports in the stdlib, issue1964 + '_sre', # issue4920 + 'rfc822', + 'mimetools', + 'sqlalchemy.events', # has import-time side effects (issue5085) + # setuptools 8 expects this module to explode early when not on windows + 'distutils.msvc9compiler', + '__builtin__', + 'builtins', + 'urwid.command_map', # for pudb + ] + +_pypy = '__pypy__' in sys.builtin_module_names + +if _pypy: + ignore.extend([ + # _ctypes.pointer is shadowed by "from ... import pointer" (PyPy 5) + '_ctypes.pointer', + ]) + +demandimport.init(ignore) + # Re-export. @@ -18,5 +66,4 @@ # Re-export. -ignore = demandimport.ignore isenabled = demandimport.isenabled enable = demandimport.enable disable = demandimport.disable diff --git a/hgdemandimport/demandimportpy2.py b/hgdemandimport/demandimportpy2.py index 778dc37ce6832122e9c5624b5f7b197e4b1241c5_aGdkZW1hbmRpbXBvcnQvZGVtYW5kaW1wb3J0cHkyLnB5..f37f9499fea8038487dcb1791eccd78ee8ae3c62_aGdkZW1hbmRpbXBvcnQvZGVtYW5kaW1wb3J0cHkyLnB5 100644 --- a/hgdemandimport/demandimportpy2.py +++ b/hgdemandimport/demandimportpy2.py @@ -265,38 +265,5 @@ return mod -ignore = [ - '__future__', - '_hashlib', - # ImportError during pkg_resources/__init__.py:fixup_namespace_package - '_imp', - '_xmlplus', - 'fcntl', - 'nt', # pathlib2 tests the existence of built-in 'nt' module - 'win32com.gen_py', - 'win32com.shell', # 'appdirs' tries to import win32com.shell - '_winreg', # 2.7 mimetypes needs immediate ImportError - 'pythoncom', - # imported by tarfile, not available under Windows - 'pwd', - 'grp', - # imported by profile, itself imported by hotshot.stats, - # not available under Windows - 'resource', - # this trips up many extension authors - 'gtk', - # setuptools' pkg_resources.py expects "from __main__ import x" to - # raise ImportError if x not defined - '__main__', - '_ssl', # conditional imports in the stdlib, issue1964 - '_sre', # issue4920 - 'rfc822', - 'mimetools', - 'sqlalchemy.events', # has import-time side effects (issue5085) - # setuptools 8 expects this module to explode early when not on windows - 'distutils.msvc9compiler', - '__builtin__', - 'builtins', - 'urwid.command_map', # for pudb - ] +ignore = [] @@ -302,9 +269,7 @@ -if _pypy: - ignore.extend([ - # _ctypes.pointer is shadowed by "from ... import pointer" (PyPy 5) - '_ctypes.pointer', - ]) +def init(ignorelist): + global ignore + ignore = ignorelist def isenabled(): return builtins.__import__ == _demandimport