code: def find_source_lines(obj):
      """Find the line number in a file where an object was defined.
  
      This is essentially a robust wrapper around `inspect.getsourcelines`.
  
      Returns None if no file can be found.
  
      Parameters
      ----------
      obj : any Python object
  
      Returns
      -------
      lineno : int
        The line number where the object definition starts.
      """
      obj = _get_wrapped(obj)
  
      try:
          try:
              lineno = inspect.getsourcelines(obj)[1]
          except TypeError:
              # For instances, try the class object like getsource() does
              if hasattr(obj, "__class__"):
                  lineno = inspect.getsourcelines(obj.__class__)[1]
              else:
                  lineno = None
      except:
          return None
  
      return lineno
  
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 12 for calling a global function with example usage: find_source_lines(obj) and returns: lineno, None