X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/dbccf6bf1ed7fca957b45a477c9b5d4d531fa740..f314a8ddceb543e2bb4711d50bdd2060452689b1:/utils.py?ds=sidebyside diff --git a/utils.py b/utils.py index deb009c..57f949e 100644 --- a/utils.py +++ b/utils.py @@ -121,30 +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 nodelist_crawl(nodelist, callback): - """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.""" - results = [] - for node in nodelist: - try: - if hasattr(node, 'child_nodelists'): - for nodelist_name in node.child_nodelists: - if hasattr(node, nodelist_name): - results.extend(nodelist_crawl(getattr(node, nodelist_name), 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: - results.extend(nodelist_crawl(loaded_template.nodelist, callback)) - - callback(node, results) - except: - raise # fail for this node - return results \ No newline at end of file +setattr(ConstantIncludeNode, LOADED_TEMPLATE_ATTR, property(get_included)) \ No newline at end of file