code: def transform(self, node, results):
      if self.skip:
          return
      imp = results["imp"]
  
      if node.type == syms.import_from:
          # Some imps are top-level (eg: 'import ham')
          # some are first level (eg: 'import ham.eggs')
          # some are third level (eg: 'import ham.eggs as spam')
          # Hence, the loop
          while not hasattr(imp, "value"):
              imp = imp.children[0]
          if self.probably_a_local_import(imp.value):
              imp.value = "." + imp.value
              imp.changed()
      else:
          have_local = False
          have_absolute = False
          for mod_name in traverse_imports(imp):
              if self.probably_a_local_import(mod_name):
                  have_local = True
              else:
                  have_absolute = True
          if have_absolute:
              if have_local:
                  # We won't handle both sibling and absolute imports in the
                  # same statement at the moment.
                  self.warning(
                      node, "absolute and local imports together"
                  )
              return
  
          new = FromImport(".", [imp])
          new.prefix = node.prefix
          return new
  
file_path: catboost/contrib/tools/python/src/Lib/lib2to3/fixes/fix_import.py
imports: from ..None import fixer_base
  from os.path import dirname, join, exists, sep
  from ..fixer_util import FromImport, syms, token
label_desc: Use image node_id 2 for calling the FixImport obj's underlying member method code with example usage: obj.transform(node, results) and returns: new