]> jfr.im git - z_archive/twitter.git/blobdiff - twitter/api.py
Version 1.9.2.
[z_archive/twitter.git] / twitter / api.py
index c61ffc50c56883a48ac048f13c0b2a2f8cd9fac1..547bcfa73e650ee206dfb7366b61fd5fabe069c3 100644 (file)
@@ -15,12 +15,14 @@ from twitter.auth import NoAuth
 
 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
@@ -42,12 +44,18 @@ class TwitterHTTPError(TwitterError):
         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 ""
@@ -204,7 +212,7 @@ class TwitterCall(object):
                 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
@@ -341,10 +349,7 @@ class Twitter(TwitterCall):
             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: