docstr: Show the whole file where an object was defined.
code: def pfile(self, obj, oname=""):
      """Show the whole file where an object was defined."""
  
      lineno = find_source_lines(obj)
      if lineno is None:
          self.noinfo("file", oname)
          return
  
      ofile = find_file(obj)
      # run contents of file through pager starting at line where the object
      # is defined, as long as the file isn't binary and is actually on the
      # filesystem.
      if ofile.endswith((".so", ".dll", ".pyd")):
          print("File %r is binary, not printing." % ofile)
      elif not os.path.isfile(ofile):
          print("File %r does not exist, not printing." % ofile)
      else:
          # Print only text files, not extension binaries.  Note that
          # getsourcelines returns lineno with 1-offset and page() uses
          # 0-offset, so we must adjust.
          page.page(
              self.format(
                  openpy.read_py_file(ofile, skip_encoding_cookie=False)
              ),
              lineno - 1,
          )
  
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 9 for calling the Inspector obj's underlying member method code with example usage: obj.pfile(obj, oname) without return types