def _observe_tree(object, listener): if not isobserved(object, listener): # Avoid troubles with cyclic list / dict observe(object, listener) children = custom._find_children(object) if not children is None: if not children is object: observe(children, listener) for item in children: _observe_tree(item, listener)
def unobserve_tree(object, listener): """unobserve_tree(object, listener) Unregisters the tree listener LISTENER for OBJECT.""" if isobserved(object, listener): # Avoid troubles with cyclic list / dict unobserve(object, listener) children = custom._find_children(object) if not children is None: if not children is object: unobserve(children, listener) for item in children: unobserve_tree(item, listener)