def treeRecurse(self, afunc_nodeEval = None, astr_startPath = '<STR_LIT:/>'):
ret = {'<STR_LIT:status>': False}<EOL>[b_valid, l_path ] = self.b_pathInTree(astr_startPath)<EOL>if b_valid and afunc_nodeEval:<EOL><INDENT>ret = afunc_nodeEval(astr_startPath)<EOL><DEDENT>b_OK = ret['<STR_LIT:status>']<EOL>if b_OK:<EOL><INDENT>for node in self.lstr_lsnode(astr_startPath):<EOL><INDENT>if astr_startPath == '<STR_LIT:/>': recursePath = "<STR_LIT>" % node<EOL>else: recursePath = '<STR_LIT>' % (astr_startPath, node)<EOL>self.treeRecurse(afunc_nodeEval, recursePath)<EOL><DEDENT><DEDENT>return ret<EOL>
Recursively walk through the C_stree, starting from node
<astr_startPath> and using the internal l_allPaths space
as verifier.

To self-discover tree structure based on internal node links,
use treeExplore() instead.

The <afunc_nodeEval> is a function that is called on a node
path. It is of form:

    afunc_nodeEval(astr_startPath, **kwargs)

and must return a dictionary containing at least one field:

    { "status": True | False }

This same dictionary is also returned out to the caller of this
function.