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 visit_ImportFrom(self, node):
      self.result[node] = self.locals.copy()
      self.locals.update(alias.name for alias in node.names)
  
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 9 for calling the Locals obj's underlying member method code with example usage: obj.visit_ImportFrom(node) without return types