docstr: Get the line indent value, text, and any block start keyword
  
  If the line does not start a block, the keyword value is False.
  The indentation of empty lines (or comment lines) is INFINITY.
docstr_tok: ["Get","the","line","indent","value",",","text",",","and","any","block","start","keyword","If","the","line","does","not","start","a","block",",","the","keyword","value","is","False",".","The","indentation","of","empty","lines","(","or","comment","lines",")","is","INFINITY","."]
code: def get_line_info(self, linenum):
      """Get the line indent value, text, and any block start keyword
  
      If the line does not start a block, the keyword value is False.
      The indentation of empty lines (or comment lines) is INFINITY.
  
      """
      text = self.text.get("%d.0" % linenum, "%d.end" % linenum)
      spaces, firstword = getspacesfirstword(text)
      opener = firstword in BLOCKOPENERS and firstword
      if len(text) == len(spaces) or text[len(spaces)] == "#":
          indent = INFINITY
      else:
          indent = len(spaces)
      return indent, text, opener
  
file_path: catboost/contrib/tools/python/src/Lib/idlelib/CodeContext.py
imports: import Tkinter
  from Tkconstants import TOP, LEFT, X, W, SUNKEN
  import re
  from sys import maxint
  from idlelib.configHandler import idleConf
label_desc: Use image node_id 3 for calling the CodeContext obj's underlying member method code with example usage: obj.get_line_info(linenum) and returns: indent,  text,  opener