class_docstr: This pass handle user-defined import, mangling name for function from
  other modules and include them in the current module, patching all call
  site accordingly.
class_docstr_tok: ["This","pass","handle","user-defined","import",",","mangling","name","for","function","from","other","modules","and","include","them","in","the","current","module",",","patching","all","call","site","accordingly","."]
code: def visit_Assign(self, node):
      if not isinstance(node.value, ast.Name):
          return self.visit_assign(node)
  
      renaming = self.lookup(node.value.id)
      if not renaming:
          return self.visit_assign(node)
  
      if not is_mangled_module(renaming):
          return self.visit_assign(node)
  
      if any(
          not isinstance(target, ast.Name) for target in node.targets
      ):
          raise PythranSyntaxError("Invalid module assignment", node)
  
      return node
  
imports: from pythran.passmanager import Transformation
  from pythran.tables import MODULES, pythran_ward
  from pythran.syntax import PythranSyntaxError
  import gast
  import logging
  import os
label_desc: Use image node_id 12 for calling the HandleImport obj's underlying member method code with example usage: obj.visit_Assign(node) and returns: node, self, self, self