Send an image for classification. The image is a file-like object. The
        params parameter is optional.
        
        On success this method will immediately return a job information. Its
        status will initially be :py:data:`cloudsight.STATUS_NOT_COMPLETED` as
        it usually takes 6-12 seconds for the server to process an image. In
        order to retrieve the annotation data, you need to keep updating the job
        status using the :py:meth:`cloudsight.API.image_response` method until
        the status changes. You may also use the :py:meth:`cloudsight.API.wait`
        method which does this automatically.

        :param image: File-like object containing the image data.
        :param filename: The file name.
        :param params: Additional parameters for CloudSight API.

def image_request(self, image, filename, params=None):
        """
        Send an image for classification. The image is a file-like object. The
        params parameter is optional.
        
        On success this method will immediately return a job information. Its
        status will initially be :py:data:`cloudsight.STATUS_NOT_COMPLETED` as
        it usually takes 6-12 seconds for the server to process an image. In
        order to retrieve the annotation data, you need to keep updating the job
        status using the :py:meth:`cloudsight.API.image_response` method until
        the status changes. You may also use the :py:meth:`cloudsight.API.wait`
        method which does this automatically.

        :param image: File-like object containing the image data.
        :param filename: The file name.
        :param params: Additional parameters for CloudSight API.
        """
        data = self._init_data(params)
        response = requests.post(REQUESTS_URL, headers={
            'Authorization': self.auth.authorize('POST', REQUESTS_URL, params),
            'User-Agent': USER_AGENT,
        }, data=data, files={'image_request[image]': (filename, image)})
        return self._unwrap_error(response)