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']
code: def __init__(self):
      self.result = dict()
      self.locals = set()
      self.nesting = 0
      super(Locals, self).__init__()
  
file_path: catboost/contrib/python/pythran/pythran/analyses/locals_analysis.py
imports: from pythran.passmanager import ModuleAnalysis
  import pythran.metadata
  import gast
label_desc: Use image node_id 1 to create a new Locals object from inherited base classes: ModuleAnalysis with example: obj = Locals()