[pypy-svn] r78489 - in pypy/branch/fast-forward/pypy/interpreter: . test
afa at codespeak.net
afa at codespeak.net
Fri Oct 29 23:05:43 CEST 2010
Author: afa
Date: Fri Oct 29 23:05:41 2010
New Revision: 78489
Modified:
pypy/branch/fast-forward/pypy/interpreter/generator.py
pypy/branch/fast-forward/pypy/interpreter/test/test_generator.py
pypy/branch/fast-forward/pypy/interpreter/typedef.py
Log:
add a __repr__ to generators
Modified: pypy/branch/fast-forward/pypy/interpreter/generator.py
==============================================================================
--- pypy/branch/fast-forward/pypy/interpreter/generator.py (original)
+++ pypy/branch/fast-forward/pypy/interpreter/generator.py Fri Oct 29 23:05:41 2010
@@ -13,6 +13,12 @@
self.frame = frame
self.running = False
+ def descr__repr__(self, space):
+ code_name = self.frame.pycode.co_name
+ addrstring = self.getaddrstring(space)
+ return space.wrap("<generator object %s at 0x%s>" %
+ (code_name, addrstring))
+
def descr__reduce__(self, space):
from pypy.interpreter.mixedmodule import MixedModule
w_mod = space.getbuiltinmodule('_pickle_support')
Modified: pypy/branch/fast-forward/pypy/interpreter/test/test_generator.py
==============================================================================
--- pypy/branch/fast-forward/pypy/interpreter/test/test_generator.py (original)
+++ pypy/branch/fast-forward/pypy/interpreter/test/test_generator.py Fri Oct 29 23:05:41 2010
@@ -241,3 +241,8 @@
res = f()
""" in d
assert d['res'] == (10, 7)
+
+ def test_repr(self):
+ def myFunc():
+ yield 1
+ assert repr(myFunc()).startswith("<generator object myFunc at 0x")
Modified: pypy/branch/fast-forward/pypy/interpreter/typedef.py
==============================================================================
--- pypy/branch/fast-forward/pypy/interpreter/typedef.py (original)
+++ pypy/branch/fast-forward/pypy/interpreter/typedef.py Fri Oct 29 23:05:41 2010
@@ -885,6 +885,8 @@
PyTraceback.typedef.acceptable_as_base_class = False
GeneratorIterator.typedef = TypeDef("generator",
+ __repr__ = interp2app(GeneratorIterator.descr__repr__,
+ unwrap_spec=['self', ObjSpace]),
__reduce__ = interp2app(GeneratorIterator.descr__reduce__,
unwrap_spec=['self', ObjSpace]),
next = interp2app(GeneratorIterator.descr_next,
More information about the Pypy-commit
mailing list