sob/utilities/inspect.py
def calling_function_qualified_name(depth: int = 1) -> Optional[str]:
    """
    Return the fully qualified name of the function from within which this is
    being called

    >>> def my_function():
    ...     return calling_function_qualified_name()
    >>> print(my_function())
    sob.utilities.inspect.calling_function_qualified_name.my_function

    >>> class MyClass:
    ...
    ...     def __call__(self) -> None:
    ...          return self.my_method()
    ...
    ...     # noinspection PyMethodMayBeStatic
    ...     def my_method(self) -> str:
    ...          return calling_function_qualified_name()
    >>> print(MyClass()())
    sob.utilities.inspect.MyClass.my_method
    """
    assert isinstance(depth, int)
    try:
        stack_ = stack()
    except IndexError:
        return None
    if len(stack_) < (depth + 1):
        return None
    names: List[str] = _get_frame_info_names(stack_[depth])
    return ".".join(reversed(names))

    Return the fully qualified name of the function from within which this is
    being called

    >>> def my_function():
    ...     return calling_function_qualified_name()
    >>> print(my_function())
    sob.utilities.inspect.calling_function_qualified_name.my_function

    >>> class MyClass:
    ...
    ...     def __call__(self) -> None:
    ...          return self.my_method()
    ...
    ...     # noinspection PyMethodMayBeStatic
    ...     def my_method(self) -> str:
    ...          return calling_function_qualified_name()
    >>> print(MyClass()())
    sob.utilities.inspect.MyClass.my_method
    
Return the fully qualified name of the function from within which this is
being called




Return the fully qualified name of the function from within which this is being called
def calling_function_qualified_name(depth: int = 1) -> Optional[str]:
    assert isinstance(depth, int)
    try:
        stack_ = stack()
    except IndexError:
        return None
    if len(stack_) < (depth + 1):
        return None
    names: List[str] = _get_frame_info_names(stack_[depth])
    return ".".join(reversed(names))
def calling_function_qualified_name ( depth : int = 1 ) -> Optional [ str ] : assert isinstance ( depth , int ) try : stack_ = stack ( ) except IndexError : return None if len ( stack_ ) < ( depth + 1 ) : return None names : List [ str ] = _get_frame_info_names ( stack_ [ depth ] ) return "." . join ( reversed ( names ) )
Return the fully qualified name of the function from within which this is
being called
Return the fully qualified name of the function from within which this is being called
"""
    Return the fully qualified name of the function from within which this is
    being called

    >>> def my_function():
    ...     return calling_function_qualified_name()
    >>> print(my_function())
    sob.utilities.inspect.calling_function_qualified_name.my_function

    >>> class MyClass:
    ...
    ...     def __call__(self) -> None:
    ...          return self.my_method()
    ...
    ...     # noinspection PyMethodMayBeStatic
    ...     def my_method(self) -> str:
    ...          return calling_function_qualified_name()
    >>> print(MyClass()())
    sob.utilities.inspect.MyClass.my_method
    """
depth
int