class_docstr: An immutable object holding a source code fragment.
  
  When using Source(...), the source lines are deindented.
class_docstr_tok: ["An","immutable","object","holding","a","source","code","fragment",".","When","using","Source","(","...",")",",","the","source","lines","are","deindented","."]
docstr: Return (start, end) tuple which spans the minimal statement region
  which containing the given lineno.
docstr_tok: ["Return","(","start",",","end",")","tuple","which","spans","the","minimal","statement","region","which","containing","the","given","lineno","."]
code: def getstatementrange(self, lineno: int) -> Tuple[int, int]:
      """Return (start, end) tuple which spans the minimal statement region
      which containing the given lineno."""
      if not (0 <= lineno < len(self)):
          raise IndexError("lineno out of range")
      ast, start, end = getstatementrange_ast(lineno, self)
      return start, end
  
imports: import ast
  import inspect
  import textwrap
  import tokenize
  import types
  import warnings
  from bisect import bisect_right
  from typing import Iterable
  from typing import Iterator
  from typing import List
  from typing import Optional
  from typing import overload
  from typing import Tuple
  from typing import Union
label_desc: Use image node_id 11 for calling the Source obj's underlying member method code with example usage: obj.getstatementrange(lineno) and returns: start,  end