Post-process the extensions for the action.  If any
        post-processing extension (specified by `post_list`, which
        should be generated by the pre_process() method) yields a
        value which tests as True, the response being considered by
        post-processing extensions is updated to be that value.
        Returns the final response.

def post_process(self, post_list, req, resp, params):
        """
        Post-process the extensions for the action.  If any
        post-processing extension (specified by `post_list`, which
        should be generated by the pre_process() method) yields a
        value which tests as True, the response being considered by
        post-processing extensions is updated to be that value.
        Returns the final response.
        """

        # Walk through the post-processing extensions
        for ext in post_list:
            if inspect.isgenerator(ext):
                try:
                    result = ext.send(resp)
                except StopIteration:
                    # Expected, but not required
                    result = None

                # If it returned a response, use that for subsequent
                # processing
                if result:
                    resp = self.wrap(req, result)
            else:
                result = ext(req, resp, **params)

                # If it returned a response, use that for subsequent
                # processing
                if result:
                    resp = self.wrap(req, result)

        return resp