5562: Use WRITEFUNCTION instead of WRITEDATA for compatibility with older pycurl...
authorTom Clegg <tom@curoverse.com>
Thu, 30 Apr 2015 13:53:15 +0000 (09:53 -0400)
committerTom Clegg <tom@curoverse.com>
Thu, 30 Apr 2015 13:53:15 +0000 (09:53 -0400)
sdk/python/arvados/keep.py
sdk/python/setup.py
sdk/python/tests/arvados_testutil.py

index 4bb0f5082ea9f9f86dd9b38db0d3048c4e096f6e..5caa5721dd77eb7790a103f18b0bdbf55d2e7e1d 100644 (file)
@@ -362,7 +362,7 @@ class KeepClient(object):
                     curl.setopt(pycurl.URL, url.encode('utf-8'))
                     curl.setopt(pycurl.HTTPHEADER, [
                         '{}: {}'.format(k,v) for k,v in self.get_headers.iteritems()])
-                    curl.setopt(pycurl.WRITEDATA, response_body)
+                    curl.setopt(pycurl.WRITEFUNCTION, response_body.write)
                     curl.setopt(pycurl.HEADERFUNCTION, self._headerfunction)
                     self._setcurltimeouts(curl, timeout)
                     try:
@@ -427,7 +427,7 @@ class KeepClient(object):
                 curl.setopt(pycurl.CUSTOMREQUEST, 'PUT')
                 curl.setopt(pycurl.HTTPHEADER, [
                     '{}: {}'.format(k,v) for k,v in self.put_headers.iteritems()])
-                curl.setopt(pycurl.WRITEDATA, response_body)
+                curl.setopt(pycurl.WRITEFUNCTION, response_body.write)
                 curl.setopt(pycurl.HEADERFUNCTION, self._headerfunction)
                 self._setcurltimeouts(curl, timeout)
                 try:
index f27c28df11b475dc941bfb76aec4e37b57840def..571faf169dd054eb5b131bcc8dc6ada2af763ae9 100644 (file)
@@ -38,7 +38,7 @@ setup(name='arvados-python-client',
       install_requires=[
           'google-api-python-client',
           'httplib2',
-          'pycurl',
+          'pycurl>=7.19',
           'python-gflags',
           'requests>=2.4',
           'urllib3',
index b4e97f6e5a062a7b9232e6ed2dce0fc6b1ea0e30..d138e5964a44eb6c26eafafb3f4272e9b9b1de9c 100644 (file)
@@ -63,7 +63,7 @@ class FakeCurl:
 
     def setopt(self, opt, val):
         self._opt[str(opt)] = val
-        if opt == pycurl.WRITEDATA:
+        if opt == pycurl.WRITEFUNCTION:
             self._writer = val
         elif opt == pycurl.HEADERFUNCTION:
             self._headerfunction = val
@@ -79,7 +79,7 @@ class FakeCurl:
             self._headerfunction("HTTP/1.1 {} Status".format(self._resp_code))
             for k, v in self._resp_headers.iteritems():
                 self._headerfunction(k + ': ' + str(v))
-        self._writer.write(self._resp_body)
+        self._writer(self._resp_body)
 
     def close(self):
         pass