Code cleanup, Update requests version
* No sense in setting self.auth twice * Make self.client a requests.session to reuse headers and auth * requests 0.13.2 dependency isn't needed, but doesn't hurt
This commit is contained in:
parent
f4b2ebc40a
commit
d864376816
2 changed files with 19 additions and 27 deletions
2
setup.py
2
setup.py
|
|
@ -16,7 +16,7 @@ setup(
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
|
|
||||||
# Package dependencies.
|
# Package dependencies.
|
||||||
install_requires=['simplejson', 'requests>=0.13.0'],
|
install_requires=['simplejson', 'requests>=0.13.2'],
|
||||||
|
|
||||||
# Metadata for PyPI.
|
# Metadata for PyPI.
|
||||||
author='Ryan McGrath',
|
author='Ryan McGrath',
|
||||||
|
|
|
||||||
|
|
@ -113,25 +113,25 @@ class Twython(object):
|
||||||
self.callback_url = callback_url
|
self.callback_url = callback_url
|
||||||
|
|
||||||
# If there's headers, set them, otherwise be an embarassing parent for their own good.
|
# If there's headers, set them, otherwise be an embarassing parent for their own good.
|
||||||
self.headers = headers
|
self.headers = headers or {'User-Agent': 'Twython v' + __version__}
|
||||||
if self.headers is None:
|
|
||||||
self.headers = {'User-agent': 'Twython Python Twitter Library v' + __version__}
|
|
||||||
|
|
||||||
self.client = None
|
# Allow for unauthenticated requests
|
||||||
|
self.client = requests.session(proxies=proxies)
|
||||||
self.auth = None
|
self.auth = None
|
||||||
|
|
||||||
if self.app_key is not None and self.app_secret is not None:
|
if self.app_key is not None and self.app_secret is not None and \
|
||||||
|
self.oauth_token is None and self.oauth_token_secret is None:
|
||||||
self.auth = OAuth1(self.app_key, self.app_secret,
|
self.auth = OAuth1(self.app_key, self.app_secret,
|
||||||
signature_type='auth_header')
|
signature_type='auth_header')
|
||||||
|
|
||||||
if self.oauth_token is not None and self.oauth_token_secret is not None:
|
if self.app_key is not None and self.app_secret is not None and \
|
||||||
|
self.oauth_token is not None and self.oauth_token_secret is not None:
|
||||||
self.auth = OAuth1(self.app_key, self.app_secret,
|
self.auth = OAuth1(self.app_key, self.app_secret,
|
||||||
self.oauth_token, self.oauth_token_secret,
|
self.oauth_token, self.oauth_token_secret,
|
||||||
signature_type='auth_header')
|
signature_type='auth_header')
|
||||||
|
|
||||||
if self.client is None:
|
if self.auth is not None:
|
||||||
# Allow unauthenticated requests to be made.
|
self.client = requests.session(headers=self.headers, auth=self.auth, proxies=proxies)
|
||||||
self.client = requests.session(proxies=proxies)
|
|
||||||
|
|
||||||
# register available funcs to allow listing name when debugging.
|
# register available funcs to allow listing name when debugging.
|
||||||
def setFunc(key):
|
def setFunc(key):
|
||||||
|
|
@ -152,11 +152,7 @@ class Twython(object):
|
||||||
base_url + fn['url']
|
base_url + fn['url']
|
||||||
)
|
)
|
||||||
|
|
||||||
method = fn['method'].lower()
|
content = self._request(url, method=fn['method'], params=kwargs)
|
||||||
if not method in ('get', 'post'):
|
|
||||||
raise TwythonError('Method must be of GET or POST')
|
|
||||||
|
|
||||||
content = self._request(url, method=method, params=kwargs)
|
|
||||||
|
|
||||||
return content
|
return content
|
||||||
|
|
||||||
|
|
@ -170,17 +166,13 @@ class Twython(object):
|
||||||
|
|
||||||
params = params or {}
|
params = params or {}
|
||||||
|
|
||||||
# In the next release of requests after 0.13.1, we can get rid of this
|
|
||||||
# myargs variable and line 184, urlencoding the params and just
|
|
||||||
# pass params=params in the func()
|
|
||||||
myargs = {}
|
|
||||||
if method == 'get':
|
|
||||||
url = '%s?%s' % (url, urllib.urlencode(params))
|
|
||||||
else:
|
|
||||||
myargs = params
|
|
||||||
|
|
||||||
func = getattr(self.client, method)
|
func = getattr(self.client, method)
|
||||||
response = func(url, data=myargs, files=files, headers=self.headers, auth=self.auth)
|
if method == 'get':
|
||||||
|
# Still wasn't fixed in `requests` 0.13.2? :(
|
||||||
|
url = url + '?' + urllib.urlencode(params)
|
||||||
|
response = func(url)
|
||||||
|
else:
|
||||||
|
response = func(url, data=params, files=files)
|
||||||
content = response.content.decode('utf-8')
|
content = response.content.decode('utf-8')
|
||||||
|
|
||||||
# create stash for last function intel
|
# create stash for last function intel
|
||||||
|
|
@ -271,7 +263,7 @@ class Twython(object):
|
||||||
request_args['oauth_callback'] = self.callback_url
|
request_args['oauth_callback'] = self.callback_url
|
||||||
|
|
||||||
req_url = self.request_token_url + '?' + urllib.urlencode(request_args)
|
req_url = self.request_token_url + '?' + urllib.urlencode(request_args)
|
||||||
response = self.client.get(req_url, headers=self.headers, auth=self.auth)
|
response = self.client.get(req_url)
|
||||||
|
|
||||||
if response.status_code != 200:
|
if response.status_code != 200:
|
||||||
raise TwythonAuthError("Seems something couldn't be verified with your OAuth junk. Error: %s, Message: %s" % (response.status_code, response.content))
|
raise TwythonAuthError("Seems something couldn't be verified with your OAuth junk. Error: %s, Message: %s" % (response.status_code, response.content))
|
||||||
|
|
@ -297,7 +289,7 @@ class Twython(object):
|
||||||
def get_authorized_tokens(self):
|
def get_authorized_tokens(self):
|
||||||
"""Returns authorized tokens after they go through the auth_url phase.
|
"""Returns authorized tokens after they go through the auth_url phase.
|
||||||
"""
|
"""
|
||||||
response = self.client.get(self.access_token_url, headers=self.headers, auth=self.auth)
|
response = self.client.get(self.access_token_url)
|
||||||
authorized_tokens = dict(parse_qsl(response.content))
|
authorized_tokens = dict(parse_qsl(response.content))
|
||||||
if not authorized_tokens:
|
if not authorized_tokens:
|
||||||
raise TwythonError('Unable to decode authorized tokens.')
|
raise TwythonError('Unable to decode authorized tokens.')
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue