Call the given callable after the given request has its response.

        Arguments:

            request:

                the request to piggyback

            fn (callable):

                a callable that takes at least two arguments, the request and
                the response (in that order), along with any additional
                positional and keyword arguments passed to this function which
                will be passed along. If the callable returns something other
                than ``None``, it will be used as the new response.

def after_response(self, request, fn, *args, **kwargs):
        """
        Call the given callable after the given request has its response.

        Arguments:

            request:

                the request to piggyback

            fn (callable):

                a callable that takes at least two arguments, the request and
                the response (in that order), along with any additional
                positional and keyword arguments passed to this function which
                will be passed along. If the callable returns something other
                than ``None``, it will be used as the new response.
        """

        self._requests[id(request)]["callbacks"].append((fn, args, kwargs))