Author: Ronan Lamy <ronan.l...@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), ) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit