class_docstr: Class to be inherited from to add automatic update of context.
  
  The optional analysis dependencies are listed in `dependencies'.
class_docstr_tok: ["Class","to","be","inherited","from","to","add","automatic","update","of","context",".","The","optional","analysis","dependencies","are","listed","in","`","dependencies","'","."]
docstr: Gather analysis result required by this analysis
docstr_tok: ["Gather","analysis","result","required","by","this","analysis"]
code: def prepare(self, node):
      """Gather analysis result required by this analysis"""
      if isinstance(node, ast.Module):
          self.ctx.module = node
      elif isinstance(node, ast.FunctionDef):
          self.ctx.function = node
  
      for D in self.deps:
          d = D()
          d.attach(self.passmanager, self.ctx)
          result = d.run(node)
          setattr(self, uncamel(D.__name__), result)
  
imports: import gast
  import os
  import re
  from time import time
label_desc: Use image node_id 5 for calling the ContextManager obj's underlying member method code with example usage: obj.prepare(node) without return types