def test_isfunction(app): from target.functions import builtin_func, func, partial_builtin_func, partial_func from target.methods import Base assert inspect.isfunction(func) is True # function assert inspect.isfunction(partial_func) is True # partial-ed function assert inspect.isfunction(Base.meth) is True # method of class assert inspect.isfunction(Base.partialmeth) is True # partial-ed method of class assert inspect.isfunction(Base().meth) is False # method of instance assert inspect.isfunction(builtin_func) is False # builtin function assert inspect.isfunction(partial_builtin_func) is False # partial-ed builtin function
def is_function_or_method(obj: Any) -> bool: # noqa: D102 return inspect.isfunction(obj) or inspect.isbuiltin( obj) or inspect.ismethod(obj)