code: def run_2to3(self, files, doctests=False):
      # See of the distribution option has been set, otherwise check the
      # setuptools default.
      if self.distribution.use_2to3 is not True:
          return
      if not files:
          return
      log.info("Fixing " + " ".join(files))
      self.__build_fixer_names()
      self.__exclude_fixers()
      if doctests:
          if setuptools.run_2to3_on_doctests:
              r = DistutilsRefactoringTool(self.fixer_names)
              r.refactor(files, write=True, doctests_only=True)
      else:
          _Mixin2to3.run_2to3(self, files)
  
file_path: catboost/contrib/python/setuptools/py2/setuptools/lib2to3_ex.py
imports: from distutils.util import Mixin2to3
  from distutils import log
  from lib2to3.refactor import RefactoringTool, get_fixers_from_package
  import setuptools
label_desc: Use image node_id 1 for calling the Mixin2to3 obj's underlying member method code with example usage: obj.run_2to3(files, doctests) without return types