code: def post_process(self, post_list, req, resp, params):
          
  
          # 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
docs: 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.