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


-- 
To UNSUBSCRIBE, email to debian-bugs-rc-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to