code: def _get_sourcefile_and_linenumber(obj):
      # Retrieve the original function wrapped by contextlib.contextmanager
      if callable(obj):
          closure = getattr(obj, "__closure__", None)
          if closure is not None:
              obj = closure[0].cell_contents
  
      # Get the source file name and line number at which obj is defined.
      try:
          filename = inspect.getsourcefile(obj)
      except TypeError:
          # obj is not a module, class, function, ..etc.
          return None, None
  
      # inspect can return None for cython objects
      if filename is None:
          return None, None
  
      # Get the source line number
      _, linenum = inspect.getsourcelines(obj)
  
      return filename, linenum
  
file_path: chainercv/docs/source/conf.py
imports: import inspect
  import os
  import pkg_resources
  import sys
label_desc: Use image node_id 6 for calling a global function with example usage: _get_sourcefile_and_linenumber(obj) and returns: filename,  linenum, None,  None, None,  None