Post-process a response through all processors in the stack,
        in reverse order.  For convenience, returns the response
        passed to the method.

        The startidx argument is an internal interface only used by
        the proc_request() and proc_exception() methods to process a
        response through a subset of response processors.

def proc_response(self, resp, startidx=None):
        """
        Post-process a response through all processors in the stack,
        in reverse order.  For convenience, returns the response
        passed to the method.

        The startidx argument is an internal interface only used by
        the proc_request() and proc_exception() methods to process a
        response through a subset of response processors.
        """

        # If we're empty, bail out early
        if not self:
            return resp

        # Select appropriate starting index
        if startidx is None:
            startidx = len(self)

        for idx in range(startidx, -1, -1):
            _safe_call(self[idx], 'proc_response', resp)

        # Return the response we were passed
        return resp