def subclass(cls):
 for (name, method) in cls.__dict__.iteritems():
  if hasattr(method, 'override'):
   found = False
   for base_class in inspect.getmro(cls)[1:]:
    if (name in base_class.__dict__):
     if (not method.__doc__):
      method.__doc__ = base_class.__dict__[name].__doc__
     found = True
     break
   assert found, ('"%s.%s" not found in any base class' % (cls.__name__, name))
 return cls

def subclass ( cls ) : for ( name , method ) in cls . __dict__ . iteritems ( ) : if hasattr ( method , 'override' ) : found = False for base_class in inspect . getmro ( cls ) [ 1 : ] : if ( name in base_class . __dict__ ) : if ( not method . __doc__ ) : method . __doc__ = base_class . __dict__ [ name ] . __doc__ found = True break assert found , ( '"%s.%s" not found in any base class' % ( cls . __name__ , name ) ) return cls
verify all @override methods use a class decorator to find the methods class .