import inspect


def get_function_description(callable_object):
    """
    Gather information about callable object to string

    :param callable_object: callable object to analyze
    :type callable_object: Callable[[], any]
    :return: str -- object description
    """
    object_class_name = callable_object.__class__.__name__
    if not callable(callable_object):
        return f'<not callable object: {object_class_name}>'

    object_name = callable_object.__name__
    module_name = inspect.getmodule(callable_object)
    return f'<{object_class_name} {object_name} in {module_name}>'