def METHOD_NAME(
    self,
    module: ModuleType,
    interface: Type[InterfaceValue],
) -> Iterable[Tuple[str, Type[InterfaceValue]]]:
    # This is required because of
    # https://github.com/python/typing/issues/822
    #
    # The typing error in issubclass will be solved
    # in https://github.com/python/typeshed/pull/5658
    predicate = (
        inspect.isclass
        if interface is PluginObject
        else lambda c: inspect.isclass(c) and issubclass(c, interface)
    )
    members = inspect.getmembers(module, predicate=predicate)
    return members