Issue #26489: Add dictionary unpacking support to Tools/parser/unparse.py

Patch by Guo Ci Teo.
This commit is contained in:
Berker Peksag 2016-03-06 16:50:44 +02:00
commit d07a1cb53b
3 changed files with 20 additions and 3 deletions

View file

@ -456,12 +456,21 @@ class Unparser:
def _Dict(self, t):
self.write("{")
def write_pair(pair):
(k, v) = pair
def write_key_value_pair(k, v):
self.dispatch(k)
self.write(": ")
self.dispatch(v)
interleave(lambda: self.write(", "), write_pair, zip(t.keys, t.values))
def write_item(item):
k, v = item
if k is None:
# for dictionary unpacking operator in dicts {**{'y': 2}}
# see PEP 448 for details
self.write("**")
self.dispatch(v)
else:
write_key_value_pair(k, v)
interleave(lambda: self.write(", "), write_item, zip(t.keys, t.values))
self.write("}")
def _Tuple(self, t):