class_docstr: A pass that updates its content.
class_docstr_tok: ["A","pass","that","updates","its","content","."]
docstr: Apply transformation and dependencies and fix new node location.
docstr_tok: ["Apply","transformation","and","dependencies","and","fix","new","node","location","."]
code: def run(self, node):
      """Apply transformation and dependencies and fix new node location."""
      n = super(Transformation, self).run(node)
      # the transformation updated the AST, so analyse may need to be rerun
      # we could use a finer-grain caching system, and provide a way to flag
      # some analyses as `unmodified' by the transformation, as done in LLVM
      # (and PIPS ;-)
      if self.update:
          self.passmanager._cache.clear()
      return n
  
imports: import gast
  import os
  import re
  from time import time
label_desc: Use image node_id 2 for calling the Transformation obj's underlying member method code with example usage: obj.run(node) and returns: n