[pypy-svn] r70167 - in pypy/branch/import-builtin/pypy/module: __builtin__ zipimport zipimport/test
afa at codespeak.net
afa at codespeak.net
Thu Dec 17 11:28:04 CET 2009
Author: afa
Date: Thu Dec 17 11:28:02 2009
New Revision: 70167
Modified:
pypy/branch/import-builtin/pypy/module/__builtin__/__init__.py
pypy/branch/import-builtin/pypy/module/zipimport/__init__.py
pypy/branch/import-builtin/pypy/module/zipimport/test/test_zipimport.py
Log:
Have zipimport install itselfs in sys.path_hooks.
Ensure that this is done only once
Modified: pypy/branch/import-builtin/pypy/module/__builtin__/__init__.py
==============================================================================
--- pypy/branch/import-builtin/pypy/module/__builtin__/__init__.py (original)
+++ pypy/branch/import-builtin/pypy/module/__builtin__/__init__.py Thu Dec 17 11:28:02 2009
@@ -151,16 +151,3 @@
space.exception_is_valid_obj_as_class_w = ab.exception_is_valid_obj_as_class_w.__get__(space)
space.exception_getclass = ab.exception_getclass.__get__(space)
space.exception_issubclass_w = ab.exception_issubclass_w.__get__(space)
-
- def startup(self, space):
- # install zipimport hook if --withmod-zipimport is used
- if space.config.objspace.usemodules.zipimport:
- w_import = space.builtin.get('__import__')
- w_zipimport = space.call(w_import, space.newlist(
- [space.wrap('zipimport')]))
- w_sys = space.getbuiltinmodule('sys')
- w_path_hooks = space.getattr(w_sys, space.wrap('path_hooks'))
- w_append = space.getattr(w_path_hooks, space.wrap('append'))
- w_zipimporter = space.getattr(w_zipimport,
- space.wrap('zipimporter'))
- space.call(w_append, space.newlist([w_zipimporter]))
Modified: pypy/branch/import-builtin/pypy/module/zipimport/__init__.py
==============================================================================
--- pypy/branch/import-builtin/pypy/module/zipimport/__init__.py (original)
+++ pypy/branch/import-builtin/pypy/module/zipimport/__init__.py Thu Dec 17 11:28:02 2009
@@ -14,4 +14,12 @@
appleveldefs = {
'ZipImportError' : 'app_zipimport.ZipImportError',
}
-
+
+ def setup_after_space_initialization(self):
+ """NOT_RPYTHON"""
+ space = self.space
+ # install zipimport hook
+ w_path_hooks = space.sys.get('path_hooks')
+ from pypy.module.zipimport.interp_zipimport import W_ZipImporter
+ w_zipimporter = space.gettypefor(W_ZipImporter)
+ space.call_method(w_path_hooks, 'append', w_zipimporter)
Modified: pypy/branch/import-builtin/pypy/module/zipimport/test/test_zipimport.py
==============================================================================
--- pypy/branch/import-builtin/pypy/module/zipimport/test/test_zipimport.py (original)
+++ pypy/branch/import-builtin/pypy/module/zipimport/test/test_zipimport.py Thu Dec 17 11:28:02 2009
@@ -255,6 +255,11 @@
l = [i for i in zipimport._zip_directory_cache]
assert len(l)
+ def test_path_hooks(self):
+ import sys
+ import zipimport
+ assert sys.path_hooks.count(zipimport.zipimporter) == 1
+
class AppTestZipimportDeflated(AppTestZipimport):
compression = ZIP_DEFLATED
More information about the Pypy-commit
mailing list