class_docstr: A single line of source code for a particular stack frame.
  
  Typically this is obtained from FrameInfo.lines.
  Since that list may also contain LINE_GAP, you should first check
  that this is really a Line before using it.
  
  Attributes:
      - frame_info
      - lineno: the 1-based line number within the file
      - text: the raw source of this line. For displaying text, see .render() instead.
      - leading_indent: the number of leading spaces that should probably be stripped.
          This attribute is set within FrameInfo.lines. If you construct this class
          directly you should probably set it manually (at least to 0).
      - is_current: whether this is the line currently being executed by the interpreter
          within this frame.
      - tokens: a list of source tokens in this line
  
  There are several helpers for constructing RangeInLines which can be converted to markers
  using markers_from_ranges which can be passed to .render():
      - token_ranges
      - variable_ranges
      - executing_node_ranges
      - range_from_node
class_docstr_tok: ["A","single","line","of","source","code","for","a","particular","stack","frame",".","Typically","this","is","obtained","from","FrameInfo.lines",".","Since","that","list","may","also","contain","LINE_GAP",",","you","should","first","check","that","this","is","really","a","Line","before","using","it",".","Attributes",":","-","frame_info","-","lineno",":","the","1-based","line","number","within","the","file","-","text",":","the","raw","source","of","this","line",".","For","displaying","text",",","see",".render","(",")","instead",".","-","leading_indent",":","the","number","of","leading","spaces","that","should","probably","be","stripped",".","This","attribute","is","set","within","FrameInfo.lines",".","If","you","construct","this","class","directly","you","should","probably","set","it","manually","(","at","least","to","0",")",".","-","is_current",":","whether","this","is","the","line","currently","being","executed","by","the","interpreter","within","this","frame",".","-","tokens",":","a","list","of","source","tokens","in","this","line","There","are","several","helpers","for","constructing","RangeInLines","which","can","be","converted","to","markers","using","markers_from_ranges","which","can","be","passed","to",".render","(",")",":","-","token_ranges","-","variable_ranges","-","executing_node_ranges","-","range_from_node"]
docstr: A list of RangeInLines for each token in .tokens,
  where range.data is a Token object from asttokens:
  https://asttokens.readthedocs.io/en/latest/api-index.html#asttokens.util.Token
docstr_tok: ["A","list","of","RangeInLines","for","each","token","in",".tokens",",","where","range.data","is","a","Token","object","from","asttokens",":","https",":","\/\/asttokens.readthedocs.io\/en\/latest\/api-index.html","#","asttokens.util.Token"]
code: def token_ranges(self) -> List[RangeInLine]:
      """
      A list of RangeInLines for each token in .tokens,
      where range.data is a Token object from asttokens:
      https://asttokens.readthedocs.io/en/latest/api-index.html#asttokens.util.Token
      """
      return [
          RangeInLine(
              token.start[1],
              token.end[1],
              token,
          )
          for token in self.tokens
      ]
  
imports: import ast
  import html
  import os
  import sys
  from collections import defaultdict, Counter
  from enum import Enum
  from textwrap import dedent
  from types import FrameType, CodeType, TracebackType
  from typing import Iterator, List, Tuple, Optional, NamedTuple, Any, Iterable, Callable, Union, Sequence
  from typing import Mapping
  import executing
  from asttokens.util import Token
  from executing import only
  from pure_eval import Evaluator, is_expression_interesting
  from stack_data.utils import truncate, unique_in_order, line_range, frame_and_lineno, iter_stack, collapse_repeated, group_by_key_func, cached_property, is_frame, _pygmented_with_ranges, assert_
label_desc: Use image node_id 5 for calling the Line obj's underlying member method code with example usage: obj.token_ranges() and returns: unknown