Uses the inspect module to determine the name of the calling function and
    its module.

    Returns a 2-tuple with the module name and the function name.

    From Biolite package

def get_caller_info(depth=2, trace=False):
    """
    Uses the inspect module to determine the name of the calling function and
    its module.

    Returns a 2-tuple with the module name and the function name.

    From Biolite package
    """
    try:
        frame = inspect.stack()[depth]
    except:
        die("could not access the caller's frame at stack index %d" % depth)
    if trace:
        print_stack(frame[0].f_back)
    func = frame[3]
    module = inspect.getmodule(frame[0])
    if module:
        return (module.__name__, func)
    else:
        return ('<unknown>', func)