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 new Source object with trailing and leading blank lines removed.
docstr_tok: ["Return","new","Source","object","with","trailing","and","leading","blank","lines","removed","."]
code: def strip(self) -> "Source":
      """Return new Source object with trailing and leading blank lines removed."""
      start, end = 0, len(self)
      while start < end and not self.lines[start].strip():
          start += 1
      while end > start and not self.lines[end - 1].strip():
          end -= 1
      source = Source()
      source.lines[:] = self.lines[start:end]
      return source
  
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 8 for calling the Source obj's underlying member method code with example usage: obj.strip() and returns: source