class_docstr: Abstract base class for line-based input transformers.
class_docstr_tok: ["Abstract","base","class","for","line-based","input","transformers","."]
docstr: Send a line of input to the transformer, returning the transformed
  input or None if the transformer is waiting for more input.
  
  Must be overridden by subclasses.
  
  Implementations may raise ``SyntaxError`` if the input is invalid. No
  other exceptions may be raised.
docstr_tok: ["Send","a","line","of","input","to","the","transformer",",","returning","the","transformed","input","or","None","if","the","transformer","is","waiting","for","more","input",".","Must","be","overridden","by","subclasses",".","Implementations","may","raise","``","SyntaxError","``","if","the","input","is","invalid",".","No","other","exceptions","may","be","raised","."]
code: def push(self, line):
      """Send a line of input to the transformer, returning the transformed
      input or None if the transformer is waiting for more input.
  
      Must be overridden by subclasses.
  
      Implementations may raise ``SyntaxError`` if the input is invalid. No
      other exceptions may be raised.
      """
      pass
  
imports: import abc
  import functools
  import re
  from IPython.core.splitinput import LineInfo
  from IPython.utils import tokenize2
  from IPython.utils.openpy import cookie_comment_re
  from IPython.utils.py3compat import with_metaclass, PY3
  from IPython.utils.tokenize2 import generate_tokens, untokenize, TokenError
label_desc: Use image node_id 1 for calling the InputTransformer obj's underlying member method code with example usage: obj.push(line) without return types