def build_response(self, response, path=None, parser=json_decode_wrapper, async=False):
        """ Builds a List or Dict response object.

            Wrapper for a response from the DataSift REST API, can be accessed as a list.

            :param response: HTTP response to wrap
            :type response: :class:`~datasift.requests.DictResponse`
            :param parser: optional parser to overload how the data is loaded
            :type parser: func
            :raises: :class:`~datasift.exceptions.DataSiftApiException`, :class:`~datasift.exceptions.DataSiftApiFailure`, :class:`~datasift.exceptions.AuthException`, :class:`requests.exceptions.HTTPError`, :class:`~datasift.exceptions.RateLimitException`
        """
        if async:
            response.process = lambda : self.build_response(response.result(), path=path, parser=parser, async=False)
            return response
        if response.status_code != 204:
            try:
                data = parser(response.headers, response.text)
            except ValueError as e:
                raise DataSiftApiFailure(u"Unable to decode returned data: %s" % e)
            if "error" in data:
                if response.status_code == 401:
                    raise AuthException(data)
                if response.status_code == 403 or response.status_code == 429:
                    if not response.headers.get("X-RateLimit-Cost"):
                        raise DataSiftApiException(DictResponse(response, data))
                    if int(response.headers.get("X-RateLimit-Remaining")) > int(response.headers.get("X-RateLimit-Cost")):
                        raise RateLimitException(DictResponse(response, data))
                raise DataSiftApiException(DictResponse(response, data))
            response.raise_for_status()
            if isinstance(data, dict):
                r = DictResponse(response, data)
            elif isinstance(data, (list, map)):
                r = ListResponse(response, data)
            self.outputmapper.outputmap(r)
            return r

        else:
            # empty dict
            return DictResponse(response, {})

    # Helpers
dataset/ETHPy150Open datasift/datasift-python/datasift/request.py/PartialRequest.build_response/swapped operands of `>`