>>> from launchpadlib.launchpad import Launchpad
>>> launchpad = Launchpad.login_with("app", "production")
Results in a traceback such as this one:
Traceback (most recent call last):
File "./foo.py", line 31, in <module>
lb = launchpad.projects[project]
File "/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py", line 1001, in __getitem__
shim_resource._ensure_representation()
File "/usr/lib/python3/dist-packages/lazr/restfulclient/resource.py", line 382, in _ensure_representation
representation = self._root._browser.get(self._wadl_resource)
File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 436, in get
response, content = self._request(url, extra_headers=headers)
File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 387, in _request
str(url), method=method, body=data, headers=headers)
File "/usr/lib/python3/dist-packages/lazr/restfulclient/_browser.py", line 357, in _request_and_retry
url, method=method, body=body, headers=headers)
File "/usr/lib/python3/dist-packages/httplib2/__init__.py", line 1291, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 132, in _request
return self.retry_on_bad_token(response, content, *args)
File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 139, in retry_on_bad_token
if (self._bad_oauth_token(response, content)
File "/usr/lib/python3/dist-packages/launchpadlib/launchpad.py", line 125, in _bad_oauth_token
(content.startswith("Expired token")
TypeError: startswith first arg must be bytes or a tuple of bytes, not str
This doesn't happen on python2. I will follow up with a patch shortly.
Hi
Running something as simple as
>>> from launchpadlib. launchpad import Launchpad login_with( "app", "production")
>>> launchpad = Launchpad.
Results in a traceback such as this one:
Traceback (most recent call last): projects[ project] python3/ dist-packages/ lazr/restfulcli ent/resource. py", line 1001, in __getitem__ resource. _ensure_ representation( ) python3/ dist-packages/ lazr/restfulcli ent/resource. py", line 382, in _ensure_ representation _browser. get(self. _wadl_resource) python3/ dist-packages/ lazr/restfulcli ent/_browser. py", line 436, in get headers) python3/ dist-packages/ lazr/restfulcli ent/_browser. py", line 387, in _request python3/ dist-packages/ lazr/restfulcli ent/_browser. py", line 357, in _request_and_retry python3/ dist-packages/ httplib2/ __init_ _.py", line 1291, in request python3/ dist-packages/ launchpadlib/ launchpad. py", line 132, in _request on_bad_ token(response, content, *args) python3/ dist-packages/ launchpadlib/ launchpad. py", line 139, in retry_on_bad_token bad_oauth_ token(response, content) python3/ dist-packages/ launchpadlib/ launchpad. py", line 125, in _bad_oauth_token startswith( "Expired token")
File "./foo.py", line 31, in <module>
lb = launchpad.
File "/usr/lib/
shim_
File "/usr/lib/
representation = self._root.
File "/usr/lib/
response, content = self._request(url, extra_headers=
File "/usr/lib/
str(url), method=method, body=data, headers=headers)
File "/usr/lib/
url, method=method, body=body, headers=headers)
File "/usr/lib/
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/usr/lib/
return self.retry_
File "/usr/lib/
if (self._
File "/usr/lib/
(content.
TypeError: startswith first arg must be bytes or a tuple of bytes, not str
This doesn't happen on python2. I will follow up with a patch shortly.