Author: Antonio Cuni <anto.c...@gmail.com> Branch: py3k Changeset: r52737:4224a1520aa4 Date: 2012-02-21 16:06 +0100 http://bitbucket.org/pypy/pypy/changeset/4224a1520aa4/
Log: merge heads diff --git a/pypy/interpreter/astcompiler/test/test_compiler.py b/pypy/interpreter/astcompiler/test/test_compiler.py --- a/pypy/interpreter/astcompiler/test/test_compiler.py +++ b/pypy/interpreter/astcompiler/test/test_compiler.py @@ -528,7 +528,7 @@ else: # line 5 if 1: pass # line 6 import dis - co = ireturn_example.func_code + co = ireturn_example.__code__ linestarts = list(dis.findlinestarts(co)) addrreturn = linestarts[-1][0] x = [addrreturn == (len(co.co_code) - 4)] diff --git a/pypy/interpreter/test/test_appinterp.py b/pypy/interpreter/test/test_appinterp.py --- a/pypy/interpreter/test/test_appinterp.py +++ b/pypy/interpreter/test/test_appinterp.py @@ -29,7 +29,7 @@ app = appdef("""app(x,y): return x + y """) - assert app.func_name == 'app' + assert app.__name__ == 'app' w_result = app(space, space.wrap(41), space.wrap(1)) assert space.eq_w(w_result, space.wrap(42)) @@ -37,7 +37,7 @@ app = appdef("""app(x,y=1): return x + y """) - assert app.func_name == 'app' + assert app.__name__ == 'app' w_result = app(space, space.wrap(41)) assert space.eq_w(w_result, space.wrap(42)) @@ -59,7 +59,7 @@ app = appdef("""app(): return 42 """) - assert app.func_name == 'app' + assert app.__name__ == 'app' w_result = app(space) assert space.eq_w(w_result, space.wrap(42)) diff --git a/pypy/interpreter/test/test_compiler.py b/pypy/interpreter/test/test_compiler.py --- a/pypy/interpreter/test/test_compiler.py +++ b/pypy/interpreter/test/test_compiler.py @@ -381,8 +381,8 @@ (4 and 5): def g(): "line 6" - fline = f.func_code.co_firstlineno - gline = g.func_code.co_firstlineno + fline = f.__code__.co_firstlineno + gline = g.__code__.co_firstlineno ''')) code = self.compiler.compile(snippet, '<tmp>', 'exec', 0) space = self.space @@ -400,7 +400,7 @@ @foo # line 4 def f(): # line 5 pass # line 6 - fline = f.func_code.co_firstlineno + fline = f.__code__.co_firstlineno ''')) code = self.compiler.compile(snippet, '<tmp>', 'exec', 0) space = self.space @@ -766,7 +766,7 @@ """ ns = {} exec(source, ns) - code = ns['f'].func_code + code = ns['f'].__code__ import dis, sys from io import StringIO s = StringIO() @@ -873,7 +873,7 @@ """ ns = {} exec(source, ns) - code = ns['_f'].func_code + code = ns['_f'].__code__ import sys, dis from io import StringIO @@ -893,7 +893,7 @@ """ ns = {} exec(source, ns) - code = ns['_f'].func_code + code = ns['_f'].__code__ import sys, dis from io import StringIO diff --git a/pypy/interpreter/test/test_descrtypecheck.py b/pypy/interpreter/test/test_descrtypecheck.py --- a/pypy/interpreter/test/test_descrtypecheck.py +++ b/pypy/interpreter/test/test_descrtypecheck.py @@ -5,11 +5,11 @@ def test_getsetprop_get(self): def f(): pass - getter = type(f).__dict__['func_code'].__get__ + getter = type(f).__dict__['__code__'].__get__ getter = getattr(getter, 'im_func', getter) # neutralizes pypy/cpython diff raises(TypeError, getter, 1, None) def test_func_code_get(self): def f(): pass - raises(TypeError, type(f).func_code.__get__,1) + raises(TypeError, type(f).__code__.__get__,1) diff --git a/pypy/interpreter/test/test_eval.py b/pypy/interpreter/test/test_eval.py --- a/pypy/interpreter/test/test_eval.py +++ b/pypy/interpreter/test/test_eval.py @@ -7,7 +7,7 @@ def setup_method(self, method): def c(x, y, *args): pass - code = PyCode._from_code(self.space, c.func_code) + code = PyCode._from_code(self.space, c.__code__) class ConcreteFastscopeFrame(Frame): diff --git a/pypy/interpreter/test/test_function.py b/pypy/interpreter/test/test_function.py --- a/pypy/interpreter/test/test_function.py +++ b/pypy/interpreter/test/test_function.py @@ -682,5 +682,5 @@ app_g = gateway.interp2app_temp(g) space = self.space w_g = space.wrap(app_g) - w_defs = space.getattr(w_g, space.wrap("func_defaults")) + w_defs = space.getattr(w_g, space.wrap("__defaults__")) assert space.is_w(w_defs, space.w_None) diff --git a/pypy/interpreter/test/test_gateway.py b/pypy/interpreter/test/test_gateway.py --- a/pypy/interpreter/test/test_gateway.py +++ b/pypy/interpreter/test/test_gateway.py @@ -715,7 +715,7 @@ class X(object): def __init__(self, **kw): pass - clash = type.__call__.func_code.co_varnames[0] + clash = type.__call__.__code__.co_varnames[0] X(**{clash: 33}) type.__call__(X, **{clash: 33}) @@ -724,28 +724,28 @@ class X(object): def __init__(self, **kw): pass - clash = object.__new__.func_code.co_varnames[0] + clash = object.__new__.__code__.co_varnames[0] X(**{clash: 33}) object.__new__(X, **{clash: 33}) def test_dict_new(self): - clash = dict.__new__.func_code.co_varnames[0] + clash = dict.__new__.__code__.co_varnames[0] dict(**{clash: 33}) dict.__new__(dict, **{clash: 33}) def test_dict_init(self): d = {} - clash = dict.__init__.func_code.co_varnames[0] + clash = dict.__init__.__code__.co_varnames[0] d.__init__(**{clash: 33}) dict.__init__(d, **{clash: 33}) def test_dict_update(self): d = {} - clash = dict.update.func_code.co_varnames[0] + clash = dict.update.__code__.co_varnames[0] d.update(**{clash: 33}) dict.update(d, **{clash: 33}) diff --git a/pypy/interpreter/test/test_generator.py b/pypy/interpreter/test/test_generator.py --- a/pypy/interpreter/test/test_generator.py +++ b/pypy/interpreter/test/test_generator.py @@ -17,7 +17,7 @@ yield 1 assert g.gi_running g = f() - assert g.gi_code is f.func_code + assert g.gi_code is f.__code__ assert g.__name__ == 'f' assert g.gi_frame is not None assert not g.gi_running @@ -26,7 +26,7 @@ raises(StopIteration, next, g) assert not g.gi_running assert g.gi_frame is None - assert g.gi_code is f.func_code + assert g.gi_code is f.__code__ assert g.__name__ == 'f' def test_generator3(self): diff --git a/pypy/interpreter/test/test_nestedscope.py b/pypy/interpreter/test/test_nestedscope.py --- a/pypy/interpreter/test/test_nestedscope.py +++ b/pypy/interpreter/test/test_nestedscope.py @@ -66,7 +66,7 @@ return f g = f(10) - assert g.func_closure[0].cell_contents == 10 + assert g.__closure__[0].cell_contents == 10 def test_empty_cell_contents(self): @@ -77,7 +77,7 @@ x = 1 g = f() - raises(ValueError, "g.func_closure[0].cell_contents") + raises(ValueError, "g.__closure__[0].cell_contents") def test_compare_cells(self): def f(n): @@ -87,8 +87,8 @@ return x + y return f - g0 = f(0).func_closure[0] - g1 = f(1).func_closure[0] + g0 = f(0).__closure__[0] + g1 = f(1).__closure__[0] assert cmp(g0, g1) == -1 def test_leaking_class_locals(self): diff --git a/pypy/interpreter/test/test_pyframe.py b/pypy/interpreter/test/test_pyframe.py --- a/pypy/interpreter/test/test_pyframe.py +++ b/pypy/interpreter/test/test_pyframe.py @@ -36,7 +36,7 @@ import sys f = sys._getframe() return f.f_code - assert g() is g.func_code + assert g() is g.__code__ def test_f_trace_del(self): import sys @@ -52,7 +52,7 @@ y = f.f_lineno z = f.f_lineno return [x, y, z] - origin = g.func_code.co_firstlineno + origin = g.__code__.co_firstlineno assert g() == [origin+3, origin+4, origin+5] def test_f_lineno_set(self): @@ -457,7 +457,7 @@ len(seen) # take one line del f.f_trace len(seen) # take one line - firstline = set_the_trace.func_code.co_firstlineno + firstline = set_the_trace.__code__.co_firstlineno assert seen == [(1, f, firstline + 6, 'line', None), (1, f, firstline + 7, 'line', None), (1, f, firstline + 8, 'line', None)] diff --git a/pypy/interpreter/test/test_typedef.py b/pypy/interpreter/test/test_typedef.py --- a/pypy/interpreter/test/test_typedef.py +++ b/pypy/interpreter/test/test_typedef.py @@ -313,20 +313,22 @@ cls.w_path = cls.space.wrap(str(path)) def test_destructor(self): - import gc, os + import gc, array seen = [] - class MyFile(file): + class MyArray(array.array): def __del__(self): + # here we check that we can still access the array, i.e. that + # the interp-level __del__ has not been called yet seen.append(10) - seen.append(os.lseek(self.fileno(), 2, 0)) - f = MyFile(self.path, 'r') - fd = f.fileno() - seen.append(os.lseek(fd, 5, 0)) - del f + seen.append(self[0]) + a = MyArray('i') + a.append(42) + seen.append(a[0]) + del a gc.collect(); gc.collect(); gc.collect() lst = seen[:] - assert lst == [5, 10, 2] - raises(OSError, os.lseek, fd, 7, 0) + print(lst) + assert lst == [42, 10, 42] def test_method_attrs(self): import sys diff --git a/pypy/interpreter/test/test_zpy.py b/pypy/interpreter/test/test_zpy.py --- a/pypy/interpreter/test/test_zpy.py +++ b/pypy/interpreter/test/test_zpy.py @@ -11,6 +11,12 @@ argslist = map(str, args) popen = subprocess.Popen(argslist, stdout=subprocess.PIPE) stdout, stderr = popen.communicate() + print '--- stdout ---' + print stdout + print + print '--- stderr ---' + print stderr + print return stdout @@ -18,19 +24,19 @@ """Ensures sys.executable points to the py.py script""" # TODO : watch out for spaces/special chars in pypypath output = run(sys.executable, pypypath, - "-c", "import sys;print sys.executable") + "-c", "import sys;print(sys.executable)") assert output.splitlines()[-1] == pypypath def test_special_names(): """Test the __name__ and __file__ special global names""" - cmd = "print __name__; print '__file__' in globals()" + cmd = "print(__name__); print('__file__' in globals())" output = run(sys.executable, pypypath, '-c', cmd) assert output.splitlines()[-2] == '__main__' assert output.splitlines()[-1] == 'False' tmpfilepath = str(udir.join("test_py_script_1.py")) tmpfile = file( tmpfilepath, "w" ) - tmpfile.write("print __name__; print __file__\n") + tmpfile.write("print(__name__); print(__file__)\n") tmpfile.close() output = run(sys.executable, pypypath, tmpfilepath) @@ -41,22 +47,22 @@ """Some tests on argv""" # test 1 : no arguments output = run(sys.executable, pypypath, - "-c", "import sys;print sys.argv") + "-c", "import sys;print(sys.argv)") assert output.splitlines()[-1] == str(['-c']) # test 2 : some arguments after output = run(sys.executable, pypypath, - "-c", "import sys;print sys.argv", "hello") + "-c", "import sys;print(sys.argv)", "hello") assert output.splitlines()[-1] == str(['-c','hello']) # test 3 : additionnal pypy parameters output = run(sys.executable, pypypath, - "-O", "-c", "import sys;print sys.argv", "hello") + "-O", "-c", "import sys;print(sys.argv)", "hello") assert output.splitlines()[-1] == str(['-c','hello']) SCRIPT_1 = """ import sys -print sys.argv +print(sys.argv) """ def test_scripts(): tmpfilepath = str(udir.join("test_py_script.py")) diff --git a/pypy/interpreter/test/test_zzpickle_and_slow.py b/pypy/interpreter/test/test_zzpickle_and_slow.py --- a/pypy/interpreter/test/test_zzpickle_and_slow.py +++ b/pypy/interpreter/test/test_zzpickle_and_slow.py @@ -22,7 +22,7 @@ if not hasattr(len, 'func_code'): skip("Cannot run this test if builtins have no func_code") import inspect - args, varargs, varkw = inspect.getargs(len.func_code) + args, varargs, varkw = inspect.getargs(len.__code__) assert args == ['obj'] assert varargs is None assert varkw is None @@ -84,7 +84,7 @@ def f(): return 42 import pickle - code = f.func_code + code = f.__code__ pckl = pickle.dumps(code) result = pickle.loads(pckl) assert code == result @@ -131,13 +131,13 @@ import pickle pckl = pickle.dumps(func) result = pickle.loads(pckl) - assert func.func_name == result.func_name - assert func.func_closure == result.func_closure - assert func.func_code == result.func_code - assert func.func_defaults == result.func_defaults - assert func.func_dict == result.func_dict - assert func.func_doc == result.func_doc - assert func.func_globals == result.func_globals + assert func.__name__ == result.__name__ + assert func.__closure__ == result.__closure__ + assert func.__code__ == result.__code__ + assert func.__defaults__ == result.__defaults__ + assert func.__dict__ == result.__dict__ + assert func.__doc__ == result.__doc__ + assert func.__globals__ == result.__globals__ def test_pickle_cell(self): def g(): @@ -145,7 +145,7 @@ def f(): x[0] += 1 return x - return f.func_closure[0] + return f.__closure__[0] import pickle cell = g() pckl = pickle.dumps(cell) diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py --- a/pypy/interpreter/typedef.py +++ b/pypy/interpreter/typedef.py @@ -772,19 +772,13 @@ __repr__ = interp2app(Function.descr_function_repr, descrmismatch='__repr__'), __reduce__ = interp2app(Function.descr_function__reduce__), __setstate__ = interp2app(Function.descr_function__setstate__), - func_code = getset_func_code, - func_doc = getset_func_doc, - func_name = getset_func_name, - func_dict = getset_func_dict, - func_defaults = getset_func_defaults, - func_globals = interp_attrproperty_w('w_func_globals', cls=Function), - func_closure = GetSetProperty( Function.fget_func_closure ), __code__ = getset_func_code, __doc__ = getset_func_doc, __name__ = getset_func_name, __dict__ = getset_func_dict, __defaults__ = getset_func_defaults, __globals__ = interp_attrproperty_w('w_func_globals', cls=Function), + __closure__ = GetSetProperty( Function.fget_func_closure ), __module__ = getset___module__, __weakref__ = make_weakref_descr(Function), ) diff --git a/pypy/module/__builtin__/test/test_descriptor.py b/pypy/module/__builtin__/test/test_descriptor.py --- a/pypy/module/__builtin__/test/test_descriptor.py +++ b/pypy/module/__builtin__/test/test_descriptor.py @@ -259,10 +259,10 @@ assert ff.__get__(0, int)(42) == (int, 42) assert ff.__get__(0)(42) == (int, 42) - assert C.goo.im_self is C - assert D.goo.im_self is D - assert super(D,D).goo.im_self is D - assert super(D,d).goo.im_self is D + assert C.goo.__self__ is C + assert D.goo.__self__ is D + assert super(D,D).goo.__self__ is D + assert super(D,d).goo.__self__ is D assert super(D,D).goo() == (D,) assert super(D,d).goo() == (D,) diff --git a/pypy/module/_collections/app_defaultdict.py b/pypy/module/_collections/app_defaultdict.py --- a/pypy/module/_collections/app_defaultdict.py +++ b/pypy/module/_collections/app_defaultdict.py @@ -25,7 +25,7 @@ def __missing__(self, key): pass # this method is written at interp-level - __missing__.func_code = _collections.__missing__.func_code + __missing__.__code__ = _collections.__missing__.__code__ def __repr__(self, recurse=set()): # XXX not thread-safe, but good enough diff --git a/pypy/module/_collections/test/test_deque.py b/pypy/module/_collections/test/test_deque.py --- a/pypy/module/_collections/test/test_deque.py +++ b/pypy/module/_collections/test/test_deque.py @@ -7,20 +7,20 @@ def test_basics(self): from _collections import deque - d = deque(xrange(-5125, -5000)) - d.__init__(xrange(200)) - for i in xrange(200, 400): + d = deque(range(-5125, -5000)) + d.__init__(range(200)) + for i in range(200, 400): d.append(i) - for i in reversed(xrange(-200, 0)): + for i in reversed(range(-200, 0)): d.appendleft(i) assert list(d) == range(-200, 400) assert len(d) == 600 - left = [d.popleft() for i in xrange(250)] + left = [d.popleft() for i in range(250)] assert left == range(-200, 50) assert list(d) == range(50, 400) - right = [d.pop() for i in xrange(250)] + right = [d.pop() for i in range(250)] right.reverse() assert right == range(150, 400) assert list(d) == range(50, 150) @@ -139,9 +139,9 @@ def test_getitem(self): from _collections import deque n = 200 - l = xrange(1000, 1000 + n) + l = range(1000, 1000 + n) d = deque(l) - for j in xrange(-n, n): + for j in range(-n, n): assert d[j] == l[j] raises(IndexError, "d[-n-1]") raises(IndexError, "d[n]") @@ -149,12 +149,12 @@ def test_setitem(self): from _collections import deque n = 200 - d = deque(xrange(n)) - for i in xrange(n): + d = deque(range(n)) + for i in range(n): d[i] = 10 * i - assert list(d) == [10*i for i in xrange(n)] + assert list(d) == [10*i for i in range(n)] l = list(d) - for i in xrange(1-n, 0, -3): + for i in range(1-n, 0, -3): d[i] = 7*i l[i] = 7*i assert list(d) == l @@ -167,7 +167,7 @@ def test_reverse(self): from _collections import deque - d = deque(xrange(1000, 1200)) + d = deque(range(1000, 1200)) d.reverse() assert list(d) == list(reversed(range(1000, 1200))) # @@ -232,7 +232,7 @@ def test_repr(self): from _collections import deque - d = deque(xrange(20)) + d = deque(range(20)) e = eval(repr(d)) assert d == e d.append(d) @@ -244,7 +244,7 @@ def test_roundtrip_iter_init(self): from _collections import deque - d = deque(xrange(200)) + d = deque(range(200)) e = deque(d) assert d is not e assert d == e @@ -288,7 +288,7 @@ def test_reversed(self): from _collections import deque - for s in ('abcd', xrange(200)): + for s in ('abcd', range(200)): assert list(reversed(deque(s))) == list(reversed(s)) def test_free(self): diff --git a/pypy/module/_continuation/interp_continuation.py b/pypy/module/_continuation/interp_continuation.py --- a/pypy/module/_continuation/interp_continuation.py +++ b/pypy/module/_continuation/interp_continuation.py @@ -172,7 +172,7 @@ raise TypeError( "can\'t send non-None value to a just-started continulet") return func(c, *args, **kwds) - return start.func_code + return start.__code__ ''') self.entrypoint_pycode = space.interp_w(PyCode, w_code) self.entrypoint_pycode.hidden_applevel = True diff --git a/pypy/module/_lsprof/test/test_cprofile.py b/pypy/module/_lsprof/test/test_cprofile.py --- a/pypy/module/_lsprof/test/test_cprofile.py +++ b/pypy/module/_lsprof/test/test_cprofile.py @@ -107,8 +107,8 @@ entries = {} for entry in stats: entries[entry.code] = entry - efoo = entries[foo.func_code] - ebar = entries[bar.func_code] + efoo = entries[foo.__code__] + ebar = entries[bar.__code__] assert 0.9 < efoo.totaltime < 2.9 # --- cannot test .inlinetime, because it does not include # --- the time spent doing the call to time.time() diff --git a/pypy/module/pypyjit/test/test_jit_hook.py b/pypy/module/pypyjit/test/test_jit_hook.py --- a/pypy/module/pypyjit/test/test_jit_hook.py +++ b/pypy/module/pypyjit/test/test_jit_hook.py @@ -120,8 +120,8 @@ int_add = elem[3][0] dmp = elem[3][1] assert isinstance(dmp, pypyjit.DebugMergePoint) - assert dmp.pycode is self.f.func_code - assert dmp.greenkey == (self.f.func_code, 0, False) + assert dmp.pycode is self.f.__code__ + assert dmp.greenkey == (self.f.__code__, 0, False) assert dmp.call_depth == 0 assert int_add.name == 'int_add' assert int_add.num == self.int_add_num @@ -132,13 +132,14 @@ assert len(all) == 2 def test_on_compile_exception(self): - import pypyjit, sys, cStringIO + import pypyjit, sys + from io import StringIO def hook(*args): 1/0 pypyjit.set_compile_hook(hook) - s = cStringIO.StringIO() + s = StringIO() prev = sys.stderr sys.stderr = s try: @@ -224,9 +225,9 @@ def f(): pass - op = DebugMergePoint([Box(0)], 'repr', 'pypyjit', 2, (f.func_code, 0, 0)) + op = DebugMergePoint([Box(0)], 'repr', 'pypyjit', 2, (f.__code__, 0, 0)) assert op.bytecode_no == 0 - assert op.pycode is f.func_code + assert op.pycode is f.__code__ assert repr(op) == 'repr' assert op.jitdriver_name == 'pypyjit' assert op.num == self.dmp_num diff --git a/pypy/module/test_lib_pypy/test_greenlet.py b/pypy/module/test_lib_pypy/test_greenlet.py --- a/pypy/module/test_lib_pypy/test_greenlet.py +++ b/pypy/module/test_lib_pypy/test_greenlet.py @@ -18,7 +18,7 @@ lst.append(2) g.switch() lst.append(4) - assert lst == range(5) + assert lst == list(range(5)) def test_parent(self): from greenlet import greenlet diff --git a/pypy/objspace/std/test/test_mapdict.py b/pypy/objspace/std/test/test_mapdict.py --- a/pypy/objspace/std/test/test_mapdict.py +++ b/pypy/objspace/std/test/test_mapdict.py @@ -655,7 +655,7 @@ "objspace.opcodes.CALL_METHOD": True}) # def check(space, w_func, name): - w_code = space.getattr(w_func, space.wrap('func_code')) + w_code = space.getattr(w_func, space.wrap('__code__')) nameindex = map(space.str_w, w_code.co_names_w).index(name) entry = w_code._mapdict_caches[nameindex] entry.failure_counter = 0 diff --git a/pypy/objspace/std/test/test_proxy_function.py b/pypy/objspace/std/test/test_proxy_function.py --- a/pypy/objspace/std/test/test_proxy_function.py +++ b/pypy/objspace/std/test/test_proxy_function.py @@ -68,7 +68,7 @@ pass fun = self.get_proxy(f) - assert fun.func_code is f.func_code + assert fun.__code__ is f.__code__ def test_funct_prop_setter_del(self): def f(): _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit