code: def traverse_by(self, fixers, traversal):
          
          if not fixers:
              return
          for node in traversal:
              for fixer in fixers[node.type]:
                  results = fixer.match(node)
                  if results:
                      new = fixer.transform(node, results)
                      if new is not None:
                          node.replace(new)
                          node = new
docs: Traverse an AST, applying a set of fixers to each node.
  
          This is a helper method for refactor_tree().
  
          Args:
              fixers: a list of fixer instances.
              traversal: a generator that yields AST nodes.
  
          Returns:
              None