Author: Ronan Lamy <[email protected]>
Branch: kill-flowobjspace
Changeset: r60821:fe8750e5f988
Date: 2013-01-31 23:37 +0000
http://bitbucket.org/pypy/pypy/changeset/fe8750e5f988/
Log: simplify code
diff --git a/rpython/annotator/argument.py b/rpython/annotator/argument.py
--- a/rpython/annotator/argument.py
+++ b/rpython/annotator/argument.py
@@ -175,10 +175,7 @@
def unpack(self):
"Return a ([w1,w2...], {'kw':w3...}) pair."
- kwds_w = {}
- if self.keywords:
- for i in range(len(self.keywords)):
- kwds_w[self.keywords[i]] = self.keywords_w[i]
+ kwds_w = dict(zip(self.keywords, self.keywords_w)) if self.keywords
else {}
return self.positional_args, kwds_w
@@ -193,9 +190,8 @@
def unmatch_signature(self, signature, data_w):
"""kind of inverse of match_signature"""
- args_w, kwds_w = self.unpack()
- need_cnt = len(args_w)
- need_kwds = kwds_w.keys()
+ need_cnt = len(self.positional_args)
+ need_kwds = self.keywords or []
space = self.space
argnames, varargname, kwargname = signature
cnt = len(argnames)
@@ -216,20 +212,14 @@
cnt += 1
assert len(data_w) == cnt
- ndata_args_w = len(data_args_w)
- if ndata_args_w >= need_cnt:
+ if len(data_args_w) >= need_cnt:
args_w = data_args_w[:need_cnt]
for argname, w_arg in zip(argnames[need_cnt:],
data_args_w[need_cnt:]):
unfiltered_kwds_w[argname] = w_arg
assert not space.is_true(data_w_stararg)
else:
stararg_w = space.unpackiterable(data_w_stararg)
- datalen = len(data_args_w)
- args_w = [None] * (datalen + len(stararg_w))
- for i in range(0, datalen):
- args_w[i] = data_args_w[i]
- for i in range(0, len(stararg_w)):
- args_w[i + datalen] = stararg_w[i]
+ args_w = data_args_w + stararg_w
assert len(args_w) == need_cnt
keywords = []
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit