def findCaller(self):
        f = currentframe().f_back
        rv = "(unknown file)", 0, "(unknown function)"
        while hasattr(f, "f_code"):
            co = f.f_code
            filename = os.path.normcase(co.co_filename)
            if filename == _srcfile:
                f = f.f_back
                continue
            rv = (filename, f.f_lineno, co.co_name)
            break
        return rv
Find the stack frame of the caller so that we can note the source
dataset/ETHPy150Open babble/babble/include/jython/Lib/logging/__init__.py/Logger.findCaller