def yield_dynamic_descriptor_descendants(descriptor, user_id, module_creator=None):
 stack = [descriptor]
 while (len(stack) > 0):
  next_descriptor = stack.pop()
  stack.extend(get_dynamic_descriptor_children(next_descriptor, user_id, module_creator))
  (yield next_descriptor)

def yield_dynamic_descriptor_descendants ( descriptor , user_id , module_creator = None ) : stack = [ descriptor ] while ( len ( stack ) > 0 ) : next_descriptor = stack . pop ( ) stack . extend ( get_dynamic_descriptor_children ( next_descriptor , user_id , module_creator ) ) ( yield next_descriptor )
this returns all of the descendants of a descriptor .