demandimport: move ignore list to __init__.py
We're going to use the same ignore list for Python 3.
--- a/hgdemandimport/__init__.py Sun May 21 13:44:26 2017 -0700
+++ b/hgdemandimport/__init__.py Sun May 21 12:10:53 2017 -0700
@@ -13,10 +13,57 @@
from __future__ import absolute_import
+import sys
+
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.
-ignore = demandimport.ignore
isenabled = demandimport.isenabled
enable = demandimport.enable
disable = demandimport.disable
--- a/hgdemandimport/demandimportpy2.py Sun May 21 13:44:26 2017 -0700
+++ b/hgdemandimport/demandimportpy2.py Sun May 21 12:10:53 2017 -0700
@@ -265,46 +265,11 @@
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 = []
-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