class_docstr: An input splitter that recognizes all of IPython's special syntax.
class_docstr_tok: ["An","input","splitter","that","recognizes","all","of","IPython","'s","special","syntax","."]
docstr: Push a line of input code through the various transformers.
  
  Returns any output from the transformers, or None if a transformer
  is accumulating lines.
  
  Sets self.transformer_accumulating as a side effect.
docstr_tok: ["Push","a","line","of","input","code","through","the","various","transformers",".","Returns","any","output","from","the","transformers",",","or","None","if","a","transformer","is","accumulating","lines",".","Sets","self.transformer_accumulating","as","a","side","effect","."]
code: def _transform_line(self, line):
      """Push a line of input code through the various transformers.
  
      Returns any output from the transformers, or None if a transformer
      is accumulating lines.
  
      Sets self.transformer_accumulating as a side effect.
      """
  
      def _accumulating(dbg):
          # print(dbg)
          self.transformer_accumulating = True
          return None
  
      for transformer in self.physical_line_transforms:
          line = transformer.push(line)
          if line is None:
              return _accumulating(transformer)
  
      if not self.within_python_line:
          line = self.assemble_logical_lines.push(line)
          if line is None:
              return _accumulating("acc logical line")
  
          for transformer in self.logical_line_transforms:
              line = transformer.push(line)
              if line is None:
                  return _accumulating(transformer)
  
      line = self.assemble_python_lines.push(line)
      if line is None:
          self.within_python_line = True
          return _accumulating("acc python line")
      else:
          self.within_python_line = False
  
      for transformer in self.python_line_transforms:
          line = transformer.push(line)
          if line is None:
              return _accumulating(transformer)
  
      # print("transformers clear") #debug
      self.transformer_accumulating = False
      return line
  
imports: from warnings import warn
  import ast
  import codeop
  import io
  import re
  import sys
  import tokenize
  import warnings
  from typing import List, Tuple, Union, Optional
  from types import CodeType
  from IPython.core.inputtransformer import leading_indent, classic_prompt, ipy_prompt, cellmagic, assemble_logical_lines, help_end, escaped_commands, assign_from_magic, assign_from_system, assemble_python_lines
  from IPython.utils import tokenutil
  from IPython.core.inputtransformer import ESC_SHELL, ESC_SH_CAP, ESC_HELP, ESC_HELP2, ESC_MAGIC, ESC_MAGIC2, ESC_QUOTE, ESC_QUOTE2, ESC_PAREN, ESC_SEQUENCES
label_desc: Use image node_id 11 for calling the IPythonInputSplitter obj's underlying member method code with example usage: obj._transform_line(line) and returns: line, None, _accumulating, _accumulating, _accumulating, _accumulating, _accumulating