class_docstr: Statically compute the value of locals() before each statement
  
  Yields a dictionary binding every node to the set of variable names defined
  *before* this node.
  
  Following snippet illustrates its behavior:
  >>> import gast as ast
  >>> from pythran import passmanager
  >>> pm = passmanager.PassManager('test')
  >>> code = '''
  ... def b(n):
  ...     m = n + 1
  ...     def b(n):
  ...         return n + 1
  ...     return b(m)'''
  >>> tree = ast.parse(code)
  >>> l = pm.gather(Locals, tree)
  >>> sorted(l[tree.body[0].body[0]])
  ['n']
  >>> sorted(l[tree.body[0].body[1]])
  ['b', 'm', 'n']
class_docstr_tok: ["Statically","compute","the","value","of","locals","(",")","before","each","statement","Yields","a","dictionary","binding","every","node","to","the","set","of","variable","names","defined","*","before","*","this","node",".","Following","snippet","illustrates","its","behavior",":",">",">",">","import","gast","as","ast",">",">",">","from","pythran","import","passmanager",">",">",">","pm","=","passmanager.PassManager","(","'test","'",")",">",">",">","code","=","``","'","...","def","b","(","n",")",":","...","m","=","n","+","1","...","def","b","(","n",")",":","...","return","n","+","1","...","return","b","(","m",")","''","'",">",">",">","tree","=","ast.parse","(","code",")",">",">",">","l","=","pm.gather","(","Locals",",","tree",")",">",">",">","sorted","(","l","[","tree.body","[","0","]",".body","[","0","]","]",")","[","'n","'","]",">",">",">","sorted","(","l","[","tree.body","[","0","]",".body","[","1","]","]",")","[","'","b","'",",","'m","'",",","'n","'","]"]
code: def visit_Assign(self, node):
      self.expr_parent = node
      self.result[node] = self.locals.copy()
      md.visit(self, node)
      self.visit(node.value)
      self.locals.update(
          t.id for t in node.targets if isinstance(t, ast.Name)
      )
      for target in node.targets:
          self.visit(target)
  
file_path: pythran/pythran/analyses/locals_analysis.py
imports: from pythran.passmanager import ModuleAnalysis
  import pythran.metadata
  import gast
label_desc: Use image node_id 6 for calling the Locals obj's underlying member method code with example usage: obj.visit_Assign(node) without return types