class_docstr: Expands all imports into full paths.
  
  Attributes
  ----------
  imports : {str}
      Imported module (python base module name)
  symbols : {str : (str,)}
      Matching between used name and real cxx name.
  
  Examples
  --------
  >>> import gast as ast
  >>> from pythran import passmanager, backend
  >>> node = ast.parse("from math import cos ; cos(2)")
  >>> pm = passmanager.PassManager("test")
  >>> _, node = pm.apply(ExpandImports, node)
  >>> print(pm.dump(backend.Python, node))
  import math as __pythran_import_math
  __pythran_import_math.cos(2)
  >>> node = ast.parse("from os.path import join ; join('a', 'b')")
  >>> _, node = pm.apply(ExpandImports, node)
  >>> print(pm.dump(backend.Python, node))
  import os as __pythran_import_os
  __pythran_import_os.path.join('a', 'b')
docstr: Update import context using overwriting name information.
  
  Examples
  --------
  >> import foo
  >> import bar
  >> def foo(bar):
  >>     print(bar)
  
  In this case, neither bar nor foo can be used in the foo function and
  in future function, foo will not be usable.
docstr_tok: ["Update","import","context","using","overwriting","name","information",".","Examples","--","--","--","--",">",">","import","foo",">",">","import","bar",">",">","def","foo","(","bar",")",":",">",">","print","(","bar",")","In","this","case",",","neither","bar","nor","foo","can","be","used","in","the","foo","function","and","in","future","function",",","foo","will","not","be","usable","."]
code: def visit_FunctionDef(self, node):
      """
      Update import context using overwriting name information.
  
      Examples
      --------
      >> import foo
      >> import bar
      >> def foo(bar):
      >>     print(bar)
  
      In this case, neither bar nor foo can be used in the foo function and
      in future function, foo will not be usable.
      """
      self.symbols.pop(node.name, None)
      gsymbols = self.symbols.copy()
      [self.symbols.pop(arg.id, None) for arg in node.args.args]
      self.generic_visit(node)
      self.symbols = gsymbols
      return node
  
file_path: pythran/pythran/transformations/expand_imports.py
imports: from pythran.passmanager import Transformation
  from pythran.utils import path_to_attr, path_to_node
  from pythran.conversion import mangle
  from pythran.syntax import PythranSyntaxError
  from pythran.analyses import Ancestors
  import gast
label_desc: Use image node_id 5 for calling the ExpandImports obj's underlying member method code with example usage: obj.visit_FunctionDef(node) and returns: node