def object_iter(obj, parent=None, parent_key=None, idx=None,<EOL>siblings=None):
obj_node = Node(value=obj, parent=parent, parent_key=parent_key,<EOL>siblings=siblings, idx=idx)<EOL>if isinstance(obj, list):<EOL><INDENT>_siblings = len(obj)<EOL>for i, elem in enumerate(obj):<EOL><INDENT>for node in object_iter(elem, obj_node, None, i + <NUM_LIT:1>, _siblings):<EOL><INDENT>yield node<EOL><DEDENT><DEDENT><DEDENT>elif isinstance(obj, collections.Mapping):<EOL><INDENT>for key in obj:<EOL><INDENT>for node in object_iter(obj[key], obj_node, key):<EOL><INDENT>yield node<EOL><DEDENT><DEDENT><DEDENT>yield obj_node<EOL>
Yields each node of object graph in postorder.