better argument order for remap's exit()

This commit is contained in:
Mahmoud Hashemi 2015-09-19 13:35:00 -07:00
parent c41a521dd9
commit 6cecb926da
2 changed files with 8 additions and 7 deletions

View File

@ -617,8 +617,9 @@ def default_enter(path, key, value):
return value, False
def default_exit(path, key, old_parent, new_items, new_parent):
# print('exit(%r, %r, %r)' % (new_items, new_parent, old_collection))
def default_exit(path, key, old_parent, new_parent, new_items):
# print('exit(%r, %r, %r, %r, %r)'
# % (path, key, old_parent, new_parent, new_items))
ret = new_parent
if isinstance(new_parent, Mapping):
new_parent.update(new_items)
@ -660,7 +661,7 @@ def remap(root, visit=default_visit, enter=default_enter, exit=default_exit,
key, new_parent, old_parent = value
id_value = id(old_parent)
path, new_items = new_items_stack.pop()
value = exit(path, key, old_parent, new_items, new_parent)
value = exit(path, key, old_parent, new_parent, new_items)
registry[id_value] = value
if not new_items_stack:
continue

View File

@ -157,9 +157,9 @@ class TestRemap(object):
assert isinstance(remapped[1]['ratings'], OMD)
def test_sort_all_lists(self):
def exit(path, key, old_parent, new_items, new_parent):
def exit(path, key, old_parent, new_parent, new_items):
# NB: in this case, I'd normally use *a, **kw
ret = default_exit(path, key, old_parent, new_items, new_parent)
ret = default_exit(path, key, old_parent, new_parent, new_items)
if isinstance(ret, list):
ret.sort()
return ret
@ -248,10 +248,10 @@ class TestRemap(object):
ref_path = (3, 2, 1)
# TODO: reverse order of new_items, new_parent
def exit(path, key, old_parent, new_items, new_parent):
def exit(path, key, old_parent, new_parent, new_items):
if old_parent is target_set:
path_map['target_set'] = path + (key,)
return default_exit(path, key, old_parent, new_items, new_parent)
return default_exit(path, key, old_parent, new_parent, new_items)
remapped = remap(orig, exit=exit)