code: def getfslineno(obj):
      """Return source location (path, lineno) for the given object.
      If the source cannot be determined return ("", -1)
      """
      try:
          code = py.code.Code(obj)
      except TypeError:
          try:
              fn = inspect.getsourcefile(obj) or inspect.getfile(obj)
          except TypeError:
              return "", -1
  
          fspath = fn and py.path.local(fn) or None
          lineno = -1
          if fspath:
              try:
                  _, lineno = findsource(obj)
              except IOError:
                  pass
      else:
          fspath = code.path
          lineno = code.firstlineno
      assert isinstance(lineno, int)
      return fspath, lineno
  
imports: from __future__ import generators
  from bisect import bisect_right
  import sys
  import inspect, tokenize
  import py
  from types import ModuleType
label_desc: Use image node_id 2 for calling a global function with example usage: getfslineno(obj) and returns: fspath,  lineno, str,  unknown