import re
import gzip
-import httplib
try:
- import json
+ import http.client as http_client
except ImportError:
- import simplejson as json
+ import httplib as http_client
+
+import json
+
class _DEFAULT(object):
pass
self.uri = uri
self.format = format
self.uriparts = uriparts
- if self.e.headers['Content-Encoding'] == 'gzip':
- buf = StringIO(self.e.fp.read())
+ try:
+ data = self.e.fp.read()
+ except http_client.IncompleteRead as e:
+ # can't read the error text
+ # let's try some of it
+ data = e.partial
+ if self.e.headers.get('Content-Encoding') == 'gzip':
+ buf = StringIO(data)
f = gzip.GzipFile(fileobj=buf)
self.response_data = f.read()
else:
- self.response_data = self.e.fp.read()
+ self.response_data = data
def __str__(self):
fmt = ("." + self.format) if self.format else ""
return handle
try:
data = handle.read()
- except httplib.IncompleteRead, e:
+ except http_client.IncompleteRead as e:
# Even if we don't get all the bytes we should have there
# may be a complete response in e.partial
data = e.partial
raise ValueError("Unknown data format '%s'" %(format))
if api_version is _DEFAULT:
- if domain == 'api.twitter.com':
- api_version = '1.1'
- else:
- api_version = None
+ api_version = '1.1'
uriparts = ()
if api_version: