def _validate_methods(plugin_base_class, plugin_klass):
    """
    XXX: This is hacky but we'd like to validate the methods
    in plugin_impl at least has all the *abstract* methods in
    plugin_base_class.
    """
    expected_methods = plugin_base_class.__abstractmethods__
    plugin_methods = _get_plugin_methods(plugin_klass)
    for method in expected_methods:
        if method not in plugin_methods:
            message = (
                'Class "%s" doesn\'t implement required "%s" method from the base class'
            )
            raise IncompatiblePluginException(message % (plugin_klass.__name__, method))

    XXX: This is hacky but we'd like to validate the methods
    in plugin_impl at least has all the *abstract* methods in
    plugin_base_class.
    
st2common/st2common/util/loader.py