code: def transform(self, node, results):
      if "lambda" in results:
          return self.transform_lambda(node, results)
  
      new_lines = []
      suite = results["suite"]
      args = results["args"]
      # This crap is so "def foo(...): x = 5; y = 7" is handled correctly.
      # TODO(cwinter): suite-cleanup
      if suite[0].children[1].type == token.INDENT:
          start = 2
          indent = suite[0].children[1].value
          end = Newline()
      else:
          start = 0
          indent = "; "
          end = pytree.Leaf(token.INDENT, "")
  
      # We need access to self for new_name(), and making this a method
      #  doesn't feel right. Closing over self and new_lines makes the
      #  code below cleaner.
      def handle_tuple(tuple_arg, add_prefix=False):
          n = Name(self.new_name())
          arg = tuple_arg.clone()
          arg.prefix = ""
          stmt = Assign(arg, n.clone())
          if add_prefix:
              n.prefix = " "
          tuple_arg.replace(n)
          new_lines.append(
              pytree.Node(syms.simple_stmt, [stmt, end.clone()])
          )
  
      if args.type == syms.tfpdef:
          handle_tuple(args)
      elif args.type == syms.typedargslist:
          for i, arg in enumerate(args.children):
              if arg.type == syms.tfpdef:
                  # Without add_prefix, the emitted code is correct,
                  #  just ugly.
                  handle_tuple(arg, add_prefix=(i > 0))
  
      if not new_lines:
          return
  
      # This isn't strictly necessary, but it plays nicely with other fixers.
      # TODO(cwinter) get rid of this when children becomes a smart list
      for line in new_lines:
          line.parent = suite[0]
  
      # TODO(cwinter) suite-cleanup
      after = start
      if start == 0:
          new_lines[0].prefix = " "
      elif is_docstring(suite[0].children[start]):
          new_lines[0].prefix = indent
          after = start + 1
  
      for line in new_lines:
          line.parent = suite[0]
      suite[0].children[after:after] = new_lines
      for i in range(after + 1, after + len(new_lines) + 1):
          suite[0].children[i].prefix = indent
      suite[0].changed()
  
file_path: catboost/contrib/tools/python/src/Lib/lib2to3/fixes/fix_tuple_params.py
imports: from ..None import pytree
  from ..pgen2 import token
  from ..None import fixer_base
  from ..fixer_util import Assign, Name, Newline, Number, Subscript, syms
label_desc: Use image node_id 1 for calling the FixTupleParams obj's underlying member method code with example usage: obj.transform(node, results) and returns: self