self.uri = uri
self.format = format
self.uriparts = uriparts
- self.response_data = self.e.fp.read()
+ if self.e.headers['Content-Encoding'] == 'gzip':
+ buf = StringIO(self.e.fp.read())
+ f = gzip.GzipFile(fileobj=buf)
+ self.response_data = f.read()
+ else:
+ self.response_data = self.e.fp.read()
def __str__(self):
fmt = ("." + self.format) if self.format else ""
`headers` gives you access to the response headers as an
httplib.HTTPHeaders instance. You can do
- `response.headers.getheader('h')` to retrieve a header.
+ `response.headers.get('h')` to retrieve a header.
"""
def __init__(self, headers):
self.headers = headers
"""
Remaining requests in the current rate-limit.
"""
- return int(self.headers.getheader('X-RateLimit-Remaining'))
+ return int(self.headers.get('X-Rate-Limit-Remaining', "0"))
+
+ @property
+ def rate_limit_limit(self):
+ """
+ Remaining requests in the current rate-limit.
+ """
+ return int(self.headers.get('X-Rate-Limit-Limit', "0"))
@property
def rate_limit_reset(self):
"""
Time in UTC epoch seconds when the rate limit will reset.
"""
- return int(self.headers.getheader('X-RateLimit-Reset'))
+ return int(self.headers.get('X-Rate-Limit-Reset', "0"))
def wrap_response(response, headers):
if id:
uri += "/%s" %(id)
+ # If an _id kwarg is present, this is treated as id as a CGI
+ # param.
+ _id = kwargs.pop('_id', None)
+ if _id:
+ kwargs['id'] = _id
+
secure_str = ''
if self.secure:
secure_str = 's'
body = None
else:
body = arg_data.encode('utf8')
-
req = urllib_request.Request(uriBase, body, headers)
return self._handle_response(req, uri, arg_data)
if api_version is _DEFAULT:
if domain == 'api.twitter.com':
- api_version = '1'
+ api_version = '1.1'
else:
api_version = None