[pypy-commit] pypy default: delay checking fromlist values till later, allows ImportError to happen first
mattip
pypy.commits at gmail.com
Wed Mar 29 15:34:10 EDT 2017
Author: Matti Picus <matti.picus at gmail.com>
Branch:
Changeset: r90866:9df4aced5d6e
Date: 2017-03-29 22:31 +0300
http://bitbucket.org/pypy/pypy/changeset/9df4aced5d6e/
Log: delay checking fromlist values till later, allows ImportError to
happen first
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
@@ -362,11 +362,6 @@
# to get a better trace. if it is unwrapped, the immutability of the
# tuple is lost
length = space.len_w(w_fromlist)
- for i in range(length):
- w_name = space.getitem(w_fromlist, space.newint(i))
- if not space.isinstance_w(w_name, space.w_text):
- raise oefmt(space.w_TypeError,
- "'fromlist' items must be str, not %T", w_name)
if w_path is not None:
if length == 1 and space.eq_w(
space.getitem(w_fromlist, space.newint(0)),
@@ -384,6 +379,9 @@
if w_fromlist is not None:
for i in range(length):
w_name = space.getitem(w_fromlist, space.newint(i))
+ if not space.isinstance_w(w_name, space.w_text):
+ raise oefmt(space.w_TypeError,
+ "'Item in ``fromlist'' not a string")
if try_getattr(space, w_mod, w_name) is None:
return None
return w_mod
@@ -430,6 +428,9 @@
if w_fromlist is not None:
for i in range(length):
w_name = space.getitem(w_fromlist, space.newint(i))
+ if not space.isinstance_w(w_name, space.w_text):
+ raise oefmt(space.w_TypeError,
+ "'Item in ``fromlist'' not a string")
if try_getattr(space, w_mod, w_name) is None:
load_part(space, w_path, prefix, space.text0_w(w_name),
w_mod, tentative=1)
More information about the pypy-commit
mailing list