def Action(label, **options):
    """Define a submit action

        options:

        condition
          A callable or  name of a method to  call to test whether
          the  action is  applicable.  if  the value  is  a method
          name,  then the method  will be  passed the  action when
          called, otherwise, the callables will be passed the form
          and the action.

        validator
          A callable or name of a method to call to validate and
          collect inputs.  This is called only if the action was
          submitted and if the action either has no condition, or the
          condition evaluates to a true value.  If the validator is
          provided as a method name, the method will be called the
          action and a dictionary in which to save data.  If the
          validator is provided as a callable, the callable will be
          called the form, the action, and a dictionary in which to
          save data.  The validator normally returns a (usually empty)
          list of widget input errors.  It may also return None to behave
          as if the action wasn't submitted.

        success
          A handler, called when the the action was submitted and
          there are no validation errors.  The handler may be provided
          as either a callable or a method name.  If the handler is
          provided as a method name, the method will be called the
          action and a dictionary containing the form data.  If the
          success handler is provided as a callable, the callable will
          be called the form, the action, and a dictionary containing
          the data.  The handler may return a form result (e.g. page),
          or may return None to indicate that the form should generate
          it's own output.

        failure
          A handler, called when the the action was submitted and
          there are validation errors.  The handler may be provided as
          either a callable or a method name.  If the handler is
          provided as a method name, the method will be called the
          action, a dictionary containing the form data, and a list of
          errors.  If the failure handler is provided as a callable,
          the callable will be called the form, the action, a
          dictionary containing the data, and a list of errors.  The
          handler may return a form result (e.g. page), or may return
          None to indicate that the form should generate it's own
          output.

        prefix
          A form prefix for the action.  When generating submit
          actions, the prefix should be combined with the action
          name, separating the two with a dot. The default prefix
          is "actions"form.

        name
          The action name, without a prefix.  If the label is a
          valid Python identifier, then the lowe-case label will
          be used, otherwise, a hex encoding of the label will be
          used.  If for some strange reason the labels in a set of
          actions with the same prefix is not unique, a name will
          have to be given for some actions to get unique names.

        css_class
          The CSS class for the action.  The class defaults to
          "action"form.

        data
          A bag of extra information that can be used by handlers,
          validators, or conditions.

        """
