def _validate_methods(plugin_base_class, plugin_klass):
 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)))

def _validate_methods ( plugin_base_class , plugin_klass ) : 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 wed like to validate the methods in plugin_impl at least has all the *abstract* methods in plugin_base_class .