def b_pathInTree(self, astr_path):
if astr_path == '<STR_LIT:/>':  return True, ['<STR_LIT:/>']<EOL>al_path               = astr_path.split('<STR_LIT:/>')<EOL>if astr_path != '<STR_LIT>' and al_path[-<NUM_LIT:1>] == '<STR_LIT>':<EOL><INDENT>al_path = al_path[<NUM_LIT:0>:-<NUM_LIT:2>]<EOL><DEDENT>if not len(al_path[<NUM_LIT:0>]):<EOL><INDENT>al_path[<NUM_LIT:0>]          = '<STR_LIT:/>'<EOL>return self.b_pathOK(al_path), al_path<EOL><DEDENT>l_path        = self.l_cwd[:]<EOL>if al_path[<NUM_LIT:0>] == '<STR_LIT:..>':<EOL><INDENT>while al_path[<NUM_LIT:0>] == '<STR_LIT:..>' and len(al_path):<EOL><INDENT>l_path    = l_path[<NUM_LIT:0>:-<NUM_LIT:1>]<EOL>if len(al_path) >= <NUM_LIT:2>: al_path   = al_path[<NUM_LIT:1>:]<EOL>else: al_path[<NUM_LIT:0>] = '<STR_LIT>'<EOL><DEDENT>if len(al_path[<NUM_LIT:0>]):<EOL><INDENT>l_path.extend(al_path)<EOL><DEDENT><DEDENT>else:<EOL><INDENT>l_path      = self.l_cwd<EOL>l_path.extend(al_path)<EOL><DEDENT>if len(l_path)>=<NUM_LIT:1> and l_path[<NUM_LIT:0>] != '<STR_LIT:/>':      l_path.insert(<NUM_LIT:0>, '<STR_LIT:/>')<EOL>if len(l_path)><NUM_LIT:1>:            l_path[<NUM_LIT:0>]       = '<STR_LIT>'<EOL>if not len(l_path):          l_path          = ['<STR_LIT:/>']<EOL>str_path      = '<STR_LIT:/>'.join(l_path)<EOL>b_valid, al_path = self.b_pathInTree(str_path)<EOL>return b_valid, al_path<EOL>
Converts a string <astr_path> specifier to a list-based
*absolute* lookup, i.e. "/node1/node2/node3" is converted
to ['/' 'node1' 'node2' 'node3'].

The method also understands a paths that start with: '..' or
combination of '../../..' and is also aware that the root
node is its own parent.

If the path list conversion is valid (i.e. exists in the
space of existing paths, l_allPaths), return True and the
destination path list; else return False and the current
path list.