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","'","."]
code: def visit(self, node):
      if isinstance(node, ast.FunctionDef):
          self.ctx.function = node
          for D in self.deps:
              if issubclass(D, FunctionAnalysis):
                  # this should have already been computed as part of the run
                  # method of function analysis triggered by prepare
                  result = self.passmanager._cache[node, D]
                  setattr(self, uncamel(D.__name__), result)
      return super(ContextManager, self).visit(node)
  
imports: import gast
  import os
  import re
  from time import time
label_desc: Use image node_id 4 for calling the ContextManager obj's underlying member method code with example usage: obj.visit(node) and returns: super