raise ImportError('importlib requires posix or nt')
setattr(self_module, '_os', os_module)
setattr(self_module, 'path_sep', path_sep)
-
-
-
-def _setup(sys_module, imp_module):
- """Setup importlib by importing needed built-in modules and injecting them
- into the global namespace.
-
- As sys is needed for sys.modules access and imp is needed to load built-in
- modules those two modules must be explicitly passed in.
-
- """
- global imp, sys
- imp = imp_module
- sys = sys_module
-
- for module in (imp, sys):
- if not hasattr(module, '__loader__'):
- module.__loader__ = BuiltinImporter
-
- self_module = sys.modules[__name__]
- for builtin_name in ('_io', '_warnings', 'builtins', 'marshal'):
- if builtin_name not in sys.modules:
- builtin_module = BuiltinImporter.load_module(builtin_name)
- else:
- builtin_module = sys.modules[builtin_name]
- setattr(self_module, builtin_name, builtin_module)
-
- for builtin_os, path_sep in [('posix', '/'), ('nt', '\\'), ('os2', '\\')]:
- if builtin_os in sys.modules:
- os_module = sys.modules[builtin_os]
- break
- else:
- try:
- os_module = BuiltinImporter.load_module(builtin_os)
- # TODO: rip out os2 code after 3.3 is released as per PEP 11
- if builtin_os == 'os2' and 'EMX GCC' in sys.version:
- path_sep = '/'
- break
- except ImportError:
- continue
- else:
- raise ImportError('importlib requires posix or nt')
- setattr(self_module, '_os', os_module)
- setattr(self_module, 'path_sep', path_sep)