class_docstr: Optional base class for fixers.
  
  The subclass name must be FixFooBar where FooBar is the result of
  removing underscores and capitalizing the words of the fix name.
  For example, the class name for a fixer named 'has_key' should be
  FixHasKey.
class_docstr_tok: ["Optional","base","class","for","fixers",".","The","subclass","name","must","be","FixFooBar","where","FooBar","is","the","result","of","removing","underscores","and","capitalizing","the","words","of","the","fix","name",".","For","example",",","the","class","name","for","a","fixer","named","'has_key","'","should","be","FixHasKey","."]
docstr: Some fixers need to maintain tree-wide state.
  This method is called once, at the start of tree fix-up.
  
  tree - the root node of the tree to be processed.
  filename - the name of the file the tree came from.
docstr_tok: ["Some","fixers","need","to","maintain","tree-wide","state",".","This","method","is","called","once",",","at","the","start","of","tree","fix-up",".","tree","-","the","root","node","of","the","tree","to","be","processed",".","filename","-","the","name","of","the","file","the","tree","came","from","."]
code: def start_tree(self, tree, filename):
      """Some fixers need to maintain tree-wide state.
      This method is called once, at the start of tree fix-up.
  
      tree - the root node of the tree to be processed.
      filename - the name of the file the tree came from.
      """
      self.used_names = tree.used_names
      self.set_filename(filename)
      self.numbers = itertools.count(1)
      self.first_log = True
  
imports: import itertools
  from .patcomp import PatternCompiler
  from .None import pygram
  from .fixer_util import does_tree_import
label_desc: Use image node_id 10 for calling the BaseFix obj's underlying member method code with example usage: obj.start_tree(tree, filename) without return types