X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/9c0a07cbbdf9fdf91537e92527c1272acac15201..8133055bd691f31bf5b70c580ea1f5b405cc198e:/utils.py diff --git a/utils.py b/utils.py index a968ac8..57f949e 100644 --- a/utils.py +++ b/utils.py @@ -121,34 +121,4 @@ def get_included(self): # We ignore the IncludeNode because it will never work in a blank context. setattr(ExtendsNode, LOADED_TEMPLATE_ATTR, property(get_extended)) -setattr(ConstantIncludeNode, LOADED_TEMPLATE_ATTR, property(get_included)) - - -def default_callback(node, result_list): - result_list.append(node) - - if hasattr(node, 'child_nodelists'): - for nodelist_name in node.child_nodelists: - if hasattr(node, nodelist_name): - nodelist_crawl(getattr(node, nodelist_name), default_callback) - - # LOADED_TEMPLATE_ATTR contains the name of an attribute philo uses to declare a - # node as rendering an additional template. Philo monkeypatches the attribute onto - # the relevant default nodes and declares it on any native nodes. - if hasattr(node, LOADED_TEMPLATE_ATTR): - loaded_template = getattr(node, LOADED_TEMPLATE_ATTR) - if loaded_template: - nodelist_crawl(loaded_template.nodelist, default_callback) - - -def nodelist_crawl(nodelist, callback=default_callback, *args, **kwargs): - """This function crawls through a template's nodelist and the - nodelists of any included or extended templates, as determined by - the presence and value of on a node. Each - node will also be passed to a callback function for additional - processing, along with any additional args and kwargs.""" - for node in nodelist: - try: - callback(node, *args, **kwargs) - except: - raise # fail for this node \ No newline at end of file +setattr(ConstantIncludeNode, LOADED_TEMPLATE_ATTR, property(get_included)) \ No newline at end of file