import inspect


def is_functional_member(member):
    """
    Check whether a class member from the __dict__ attribute is a method.

    This can be true in two ways:
        - It is literally a Python function
        - It is a method descriptor (wrapping a function)

    Args:
        member (object): An object in the class __dict__.

    Returns:
        bool: `True` if the member is a function (or acts like one).
    """
    return (
        inspect.isfunction(member)
        or (
            inspect.ismethoddescriptor(member)
            and isinstance(member, (classmethod, staticmethod))
        )
    )