--- Begin Message ---
Package: python-docker
Version: 0.5.3-1
Severity: grave
Justification: renders package unusable
I'm finding it impossible to do anything with the API. The ipython
backtrace is pasted below.
My python fu is relatively limited, but the problem looks like for some
reason the requests module is changing the timeout from a number to a
Timeout object, and urllib barfs. I couldn't reproduce the issue using
plain requests (ie, creating a session, adding the HttpAdapter and
sending a request), so I'm filing the bug here. If the bug is elsewhere,
please reassign as appropriate.
In [1]: from docker import Client
In [2]: c = Client()
In [3]: c.version()
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-3-33a9b5269bcf> in <module>()
----> 1 c.version()
/usr/lib/python2.7/dist-packages/docker/client.pyc in version(self)
932
933 def version(self):
--> 934 return self._result(self._get(self._url("/version")), True)
935
936 def wait(self, container):
/usr/lib/python2.7/dist-packages/docker/client.pyc in _get(self, url, **kwargs)
74
75 def _get(self, url, **kwargs):
---> 76 return self.get(url, **self._set_request_timeout(kwargs))
77
78 def _delete(self, url, **kwargs):
/usr/lib/python2.7/dist-packages/requests/sessions.pyc in get(self, url,
**kwargs)
467
468 kwargs.setdefault('allow_redirects', True)
--> 469 return self.request('GET', url, **kwargs)
470
471 def options(self, url, **kwargs):
/usr/lib/python2.7/dist-packages/requests/sessions.pyc in request(self, method,
url, params, data, headers, cookies, files, auth, timeout, allow_redirects,
proxies, hooks, stream, verify, cert, json)
455 }
456 send_kwargs.update(settings)
--> 457 resp = self.send(prep, **send_kwargs)
458
459 return resp
/usr/lib/python2.7/dist-packages/requests/sessions.pyc in send(self, request,
**kwargs)
567
568 # Send the request
--> 569 r = adapter.send(request, **kwargs)
570
571 # Total elapsed time of the request (approximately)
/usr/lib/python2.7/dist-packages/requests/adapters.py in send(self, request,
stream, timeout, verify, cert, proxies)
360 decode_content=False,
361 retries=Retry(self.max_retries, read=False),
--> 362 timeout=timeout
363 )
364
/usr/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.pyc
in urlopen(self, method, url, body, headers, retries, redirect,
assert_same_host, timeout, pool_timeout, release_conn, **response_kw)
514 httplib_response = self._make_request(conn, method, url,
515 timeout=timeout,
--> 516 body=body,
headers=headers)
517
518 # If we're going to release the connection in ``finally:``,
then
/usr/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.pyc
in _make_request(self, conn, method, url, timeout, **httplib_request_kw)
297 self.num_requests += 1
298
--> 299 timeout_obj = self._get_timeout(timeout)
300 timeout_obj.start_connect()
301 conn.timeout = timeout_obj.connect_timeout
/usr/lib/python2.7/dist-packages/requests/packages/urllib3/connectionpool.pyc
in _get_timeout(self, timeout)
277 # User passed us an int/float. This is for backwards
compatibility,
278 # can be removed later
--> 279 return Timeout.from_float(timeout)
280
281 def _make_request(self, conn, method, url, timeout=_Default,
/usr/lib/python2.7/dist-packages/requests/packages/urllib3/util/timeout.pyc in
from_float(cls, timeout)
150 :rtype: :class:`Timeout`
151 """
--> 152 return Timeout(read=timeout, connect=timeout)
153
154 def clone(self):
/usr/lib/python2.7/dist-packages/requests/packages/urllib3/util/timeout.pyc in
__init__(self, total, connect, read)
93
94 def __init__(self, total=None, connect=_Default, read=_Default):
---> 95 self._connect = self._validate_timeout(connect, 'connect')
96 self._read = self._validate_timeout(read, 'read')
97 self.total = self._validate_timeout(total, 'total')
/usr/lib/python2.7/dist-packages/requests/packages/urllib3/util/timeout.pyc in
_validate_timeout(cls, value, name)
123 except (TypeError, ValueError):
124 raise ValueError("Timeout value %s was %s, but it must be
an "
--> 125 "int or float." % (name, value))
126
127 try:
ValueError: Timeout value connect was Timeout(connect=60, read=60, total=None),
but it must be an int or float.
-- System Information:
Debian Release: jessie/sid
APT prefers unstable
APT policy: (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.16-3-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages python-docker depends on:
ii python 2.7.8-2
ii python-requests 2.4.3-2
ii python-six 1.8.0-1
ii python-websocket 0.18.0-1
python-docker recommends no packages.
python-docker suggests no packages.
-- no debconf information
--- End Message ---