def _extend_nodelist(extend_node):
 if is_variable_extend_node(extend_node):
  return []
 blocks = dict(extend_node.blocks)
 _extend_blocks(extend_node, blocks)
 placeholders = []
 for block in blocks.values():
  placeholders += _scan_placeholders(_get_nodelist(block), block, blocks.keys())
 parent_template = _find_topmost_template(extend_node)
 placeholders += _scan_placeholders(_get_nodelist(parent_template), None, blocks.keys())
 return placeholders

def _extend_nodelist ( extend_node ) : if is_variable_extend_node ( extend_node ) : return [ ] blocks = dict ( extend_node . blocks ) _extend_blocks ( extend_node , blocks ) placeholders = [ ] for block in blocks . values ( ) : placeholders += _scan_placeholders ( _get_nodelist ( block ) , block , blocks . keys ( ) ) parent_template = _find_topmost_template ( extend_node ) placeholders += _scan_placeholders ( _get_nodelist ( parent_template ) , None , blocks . keys ( ) ) return placeholders
returns a list of placeholders found in the parent template(s) of this extendsnode .