[pypy-commit] pypy py3.5: Correctly compute .co_kwonlyargcount on BuiltinCode objects
rlamy
pypy.commits at gmail.com
Tue Nov 14 12:38:36 EST 2017
Author: Ronan Lamy <ronan.lamy at gmail.com>
Branch: py3.5
Changeset: r93016:d129c0d2de48
Date: 2017-11-14 17:38 +0000
http://bitbucket.org/pypy/pypy/changeset/d129c0d2de48/
Log: Correctly compute .co_kwonlyargcount on BuiltinCode objects
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
@@ -18,7 +18,7 @@
class TestBuiltinCode:
- def test_signature(self):
+ def test_signature(self, space):
def c(space, w_x, w_y, hello_w):
pass
code = gateway.BuiltinCode(c, unwrap_spec=[gateway.ObjSpace,
@@ -53,6 +53,8 @@
code = gateway.BuiltinCode(f, unwrap_spec=[gateway.ObjSpace,
"kwonly", W_Root])
assert code.signature() == Signature([], kwonlyargnames=['x'])
+ assert space.int_w(space.getattr(
+ code, space.newtext('co_kwonlyargcount'))) == 1
def test_call(self):
diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py
--- a/pypy/interpreter/typedef.py
+++ b/pypy/interpreter/typedef.py
@@ -538,6 +538,9 @@
def fget_co_argcount(space, code): # unwrapping through unwrap_spec
return space.newint(code.signature().num_argnames())
+def fget_co_kwonlyargcount(space, code): # unwrapping through unwrap_spec
+ return space.newint(code.signature().num_kwonlyargnames())
+
def fget_zero(space, code):
return space.newint(0)
@@ -597,7 +600,7 @@
co_name = interp_attrproperty('co_name', cls=BuiltinCode, wrapfn="newtext_or_none"),
co_varnames = GetSetProperty(fget_co_varnames, cls=BuiltinCode),
co_argcount = GetSetProperty(fget_co_argcount, cls=BuiltinCode),
- co_kwonlyargcount = GetSetProperty(fget_zero, cls=BuiltinCode),
+ co_kwonlyargcount = GetSetProperty(fget_co_kwonlyargcount, cls=BuiltinCode),
co_flags = GetSetProperty(fget_co_flags, cls=BuiltinCode),
co_consts = GetSetProperty(fget_co_consts, cls=BuiltinCode),
)
More information about the pypy-commit
mailing list