[pypy-commit] pypy py3k: help translation
pjenvey
noreply at buildbot.pypy.org
Thu Mar 15 06:26:58 CET 2012
Author: Philip Jenvey <pjenvey at underboss.org>
Branch: py3k
Changeset: r53672:9feca115d4d1
Date: 2012-03-14 22:25 -0700
http://bitbucket.org/pypy/pypy/changeset/9feca115d4d1/
Log: help translation
diff --git a/pypy/module/cpyext/import_.py b/pypy/module/cpyext/import_.py
--- a/pypy/module/cpyext/import_.py
+++ b/pypy/module/cpyext/import_.py
@@ -121,5 +121,5 @@
pathname = code.co_filename
w_mod = importing.add_module(space, w_name)
space.setattr(w_mod, space.wrap('__file__'), space.wrap(pathname))
- importing.exec_code_module(space, w_mod, code)
+ importing.exec_code_module(space, w_mod, code, pathname)
return w_mod
diff --git a/pypy/module/imp/importing.py b/pypy/module/imp/importing.py
--- a/pypy/module/imp/importing.py
+++ b/pypy/module/imp/importing.py
@@ -860,8 +860,8 @@
space.wrap(space.builtin))
if pathname is not None:
w_pathname = get_sourcefile(space, pathname)
- if w_pathname is None:
- w_pathname = code_w.w_filename
+ else:
+ w_pathname = space.wrap(code_w.co_filename)
space.setitem(w_dict, space.wrap("__file__"), w_pathname)
space.setitem(w_dict, space.wrap("__cached__"), space.wrap(cpathname))
code_w.exec_code(space, w_dict, w_dict)
@@ -925,8 +925,9 @@
return result
def get_sourcefile(space, filename):
- l = len(filename)
- if l < 5 or filename[-4:-1].lower() != ".py":
+ start = len(filename) - 4
+ stop = len(filename) - 1
+ if not 0 <= start <= stop or filename[start:stop].lower() != ".py":
return space.wrap(filename)
py = make_source_pathname(filename)
if py is None:
diff --git a/pypy/module/imp/test/test_import.py b/pypy/module/imp/test/test_import.py
--- a/pypy/module/imp/test/test_import.py
+++ b/pypy/module/imp/test/test_import.py
@@ -768,6 +768,29 @@
ret = space.int_w(w_ret)
assert ret == 42
+ def test_load_compiled_module_nopathname(self):
+ space = self.space
+ mtime = 12345
+ co = compile('x = 42', '?', 'exec')
+ cpathname = _testfile(space, importing.get_pyc_magic(space), mtime, co)
+ w_modulename = space.wrap('somemodule')
+ stream = streamio.open_file_as_stream(cpathname, "rb")
+ try:
+ w_mod = space.wrap(Module(space, w_modulename))
+ magic = importing._r_long(stream)
+ timestamp = importing._r_long(stream)
+ w_ret = importing.load_compiled_module(space,
+ w_modulename,
+ w_mod,
+ None,
+ magic,
+ timestamp,
+ stream.readall())
+ finally:
+ stream.close()
+ filename = space.getattr(w_ret, space.wrap('__file__'))
+ assert space.str_w(filename) == u'?'
+
def test_parse_source_module(self):
space = self.space
pathname = _testfilesource()
diff --git a/pypy/module/zipimport/interp_zipimport.py b/pypy/module/zipimport/interp_zipimport.py
--- a/pypy/module/zipimport/interp_zipimport.py
+++ b/pypy/module/zipimport/interp_zipimport.py
@@ -150,7 +150,7 @@
importing._prepare_module(space, w_mod, real_name, pkgpath)
co_filename = self.make_co_filename(filename)
code_w = importing.parse_source_module(space, co_filename, buf)
- importing.exec_code_module(space, w_mod, code_w)
+ importing.exec_code_module(space, w_mod, code_w, co_filename, None)
return w_mod
def _parse_mtime(self, space, filename):
More information about the pypy-commit
mailing list