class_docstr: an immutable object holding a source code fragment,
  possibly deindenting it.
class_docstr_tok: ["an","immutable","object","holding","a","source","code","fragment",",","possibly","deindenting","it","."]
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):
      """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: from __future__ import absolute_import
  from __future__ import division
  from __future__ import print_function
  import ast
  import inspect
  import linecache
  import sys
  import textwrap
  import tokenize
  import warnings
  from ast import PyCF_ONLY_AST
  from bisect import bisect_right
  import py
  import six
label_desc: Use image node_id 5 for calling the Source obj's underlying member method code with example usage: obj.strip() and returns: source