docstr: Print the source code for an object.
code: def psource(self, obj, oname=""):
      """Print the source code for an object."""
  
      # Flush the source cache because inspect can return out-of-date source
      linecache.checkcache()
      try:
          src = getsource(obj, oname=oname)
      except Exception:
          src = None
  
      if src is None:
          self.noinfo("source", oname)
      else:
          page.page(self.format(src))
  
imports: from __future__ import print_function
  import inspect
  import linecache
  import warnings
  import os
  from textwrap import dedent
  import types
  import io
  from IPython.core import page
  from IPython.lib.pretty import pretty
  from IPython.testing.skipdoctest import skip_doctest_py3
  from IPython.utils import PyColorize
  from IPython.utils import openpy
  from IPython.utils import py3compat
  from IPython.utils.dir2 import safe_hasattr
  from IPython.utils.path import compress_user
  from IPython.utils.text import indent
  from IPython.utils.wildcard import list_namespace
  from IPython.utils.coloransi import TermColors, ColorScheme, ColorSchemeTable
  from IPython.utils.py3compat import cast_unicode, string_types, PY3
  from IPython.utils.signatures import signature
  from IPython.utils.colorable import Colorable
  from pygments import highlight
  from pygments.formatters import HtmlFormatter
label_desc: Use image node_id 8 for calling the Inspector obj's underlying member method code with example usage: obj.psource(obj, oname) without return types