human
Complete this python program:
def abstract(func):
assistant
#Here is the Python program you requested.

    """Decorator for marking a method abstract. Throws a ``NotImplementedError``
    if an abstract method is called.
    Usage:
    .. python::
    from grizzled.decorators import abstract
    class MyAbstractClass(object):
    @abstract
    def abstractMethod(self):
    pass
    class NotReallyConcrete(MyAbstractClass):
    # Class doesn\t define abstractMethod().
    Given the above declaration, the following code will cause an
    ``NotImplementedError``:
    .. python::
    obj = NotReallyConcrete()
    obj.abstractMethod()
    """
    def wrapper(*__args, **__kw):
        raise NotImplementedError(('Missing    required    %s()    method' % func.__name__))
    wrapper.__name__ = func.__name__
    wrapper.__dict__ = func.__dict__
    wrapper.__doc__ = func.__doc__
    return wrapper