<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:

def handle(self, object, *args, **kw):
    '''
    Calls each plugin in this PluginSet with the specified object,
    arguments, and keywords in the standard group plugin order. The
    return value from each successive invoked plugin is passed as the
    first parameter to the next plugin. The final return value is the
    object returned from the last plugin.

    If this plugin set is empty (i.e. no plugins exist or matched the
    spec), then a ValueError exception is thrown.
    '''
    if not bool(self):
      if not self.spec or self.spec == SPEC_ALL:
        raise ValueError('No plugins available in group %r' % (self.group,))
      raise ValueError(
        'No plugins in group %r matched %r' % (self.group, self.spec))
    for plugin in self.plugins:
      object = plugin.handle(object, *args, **kw)
    return object