more pep8 fixes
This commit is contained in:
parent
1455d8769a
commit
6206c0b73f
2 changed files with 62 additions and 33 deletions
|
|
@ -27,29 +27,41 @@ warnings.simplefilter('always', TwythonDeprecationWarning) # For Python 2.7 >
|
|||
|
||||
class Twython(EndpointsMixin, object):
|
||||
def __init__(self, app_key=None, app_secret=None, oauth_token=None,
|
||||
oauth_token_secret=None, access_token=None, token_type='bearer',
|
||||
oauth_version=1, api_version='1.1', client_args=None, auth_endpoint='authenticate'):
|
||||
"""Instantiates an instance of Twython. Takes optional parameters for authentication and such (see below).
|
||||
oauth_token_secret=None, access_token=None,
|
||||
token_type='bearer', oauth_version=1, api_version='1.1',
|
||||
client_args=None, auth_endpoint='authenticate'):
|
||||
"""Instantiates an instance of Twython. Takes optional parameters for
|
||||
authentication and such (see below).
|
||||
|
||||
:param app_key: (optional) Your applications key
|
||||
:param app_secret: (optional) Your applications secret key
|
||||
:param oauth_token: (optional) When using **OAuth 1**, combined with oauth_token_secret to make authenticated calls
|
||||
:param oauth_token_secret: (optional) When using **OAuth 1** combined with oauth_token to make authenticated calls
|
||||
:param access_token: (optional) When using **OAuth 2**, provide a valid access token if you have one
|
||||
:param token_type: (optional) When using **OAuth 2**, provide your token type. Default: bearer
|
||||
:param oauth_version: (optional) Choose which OAuth version to use. Default: 1
|
||||
:param api_version: (optional) Choose which Twitter API version to use. Default: 1.1
|
||||
|
||||
:param client_args: (optional) Accepts some requests Session parameters and some requests Request parameters.
|
||||
See http://docs.python-requests.org/en/latest/api/#sessionapi and requests section below it for details.
|
||||
[ex. headers, proxies, verify(SSL verification)]
|
||||
:param auth_endpoint: (optional) Lets you select which authentication endpoint will use your application.
|
||||
This will allow the application to have DM access if the endpoint is 'authorize'.
|
||||
Default: authenticate.
|
||||
:param oauth_token: (optional) When using **OAuth 1**, combined with
|
||||
oauth_token_secret to make authenticated calls
|
||||
:param oauth_token_secret: (optional) When using **OAuth 1** combined
|
||||
with oauth_token to make authenticated calls
|
||||
:param access_token: (optional) When using **OAuth 2**, provide a
|
||||
valid access token if you have one
|
||||
:param token_type: (optional) When using **OAuth 2**, provide your
|
||||
token type. Default: bearer
|
||||
:param oauth_version: (optional) Choose which OAuth version to use.
|
||||
Default: 1
|
||||
:param api_version: (optional) Choose which Twitter API version to
|
||||
use. Default: 1.1
|
||||
|
||||
:param client_args: (optional) Accepts some requests Session parameters
|
||||
and some requests Request parameters.
|
||||
See http://docs.python-requests.org/en/latest/api/#sessionapi
|
||||
and requests section below it for details.
|
||||
[ex. headers, proxies, verify(SSL verification)]
|
||||
:param auth_endpoint: (optional) Lets you select which authentication
|
||||
endpoint will use your application.
|
||||
This will allow the application to have DM access
|
||||
if the endpoint is 'authorize'.
|
||||
Default: authenticate.
|
||||
"""
|
||||
|
||||
# API urls, OAuth urls and API version; needed for hitting that there API.
|
||||
# API urls, OAuth urls and API version; needed for hitting that there
|
||||
# API.
|
||||
self.api_version = api_version
|
||||
self.api_url = 'https://api.twitter.com/%s'
|
||||
|
||||
|
|
@ -75,16 +87,18 @@ class Twython(EndpointsMixin, object):
|
|||
|
||||
self.client_args = client_args or {}
|
||||
default_headers = {'User-Agent': 'Twython v' + __version__}
|
||||
if not 'headers' in self.client_args:
|
||||
if 'headers' not in self.client_args:
|
||||
# If they didn't set any headers, set our defaults for them
|
||||
self.client_args['headers'] = default_headers
|
||||
elif 'User-Agent' not in self.client_args['headers']:
|
||||
# If they set headers, but didn't include User-Agent.. set it for them
|
||||
# If they set headers, but didn't include User-Agent.. set
|
||||
# it for them
|
||||
self.client_args['headers'].update(default_headers)
|
||||
|
||||
# Generate OAuth authentication object for the request
|
||||
# If no keys/tokens are passed to __init__, auth=None allows for
|
||||
# unauthenticated requests, although I think all v1.1 requests need auth
|
||||
# unauthenticated requests, although I think all v1.1 requests
|
||||
# need auth
|
||||
auth = None
|
||||
if oauth_version == 1:
|
||||
# User Authentication is through OAuth 1
|
||||
|
|
@ -93,12 +107,14 @@ class Twython(EndpointsMixin, object):
|
|||
auth = OAuth1(self.app_key, self.app_secret)
|
||||
|
||||
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.oauth_token is not None and self.oauth_token_secret is \
|
||||
not None:
|
||||
auth = OAuth1(self.app_key, self.app_secret,
|
||||
self.oauth_token, self.oauth_token_secret)
|
||||
elif oauth_version == 2 and self.access_token:
|
||||
# Application Authentication is through OAuth 2
|
||||
token = {'token_type': token_type, 'access_token': self.access_token}
|
||||
token = {'token_type': token_type,
|
||||
'access_token': self.access_token}
|
||||
auth = OAuth2(self.app_key, token=token)
|
||||
|
||||
self.client = requests.Session()
|
||||
|
|
@ -166,11 +182,14 @@ class Twython(EndpointsMixin, object):
|
|||
|
||||
ExceptionType = TwythonError
|
||||
if response.status_code == 429:
|
||||
# Twitter API 1.1, always return 429 when rate limit is exceeded
|
||||
# Twitter API 1.1, always return 429 when
|
||||
# rate limit is exceeded
|
||||
ExceptionType = TwythonRateLimitError
|
||||
elif response.status_code == 401 or 'Bad Authentication data' in error_message:
|
||||
elif response.status_code == 401 or 'Bad Authentication data' \
|
||||
in error_message:
|
||||
# Twitter API 1.1, returns a 401 Unauthorized or
|
||||
# a 400 "Bad Authentication data" for invalid/expired app keys/user tokens
|
||||
# a 400 "Bad Authentication data" for invalid/expired
|
||||
# app keys/user tokens
|
||||
ExceptionType = TwythonAuthError
|
||||
|
||||
raise ExceptionType(error_message,
|
||||
|
|
|
|||
|
|
@ -918,13 +918,23 @@ TWITTER_HTTP_STATUS_CODE = {
|
|||
refused. An accompanying error message will explain why. \
|
||||
This code is used when requests are being denied due to \
|
||||
update limits.'),
|
||||
404: ('Not Found', 'The URI requested is invalid or the resource requested, such as a user, does not exists.'),
|
||||
406: ('Not Acceptable', 'Returned by the Search API when an invalid format is specified in the request.'),
|
||||
410: ('Gone', 'This resource is gone. Used to indicate that an API endpoint has been turned off.'),
|
||||
422: ('Unprocessable Entity', 'Returned when an image uploaded to POST account/update_profile_banner is unable to be processed.'),
|
||||
429: ('Too Many Requests', 'Returned in API v1.1 when a request cannot be served due to the application\'s rate limit having been exhausted for the resource.'),
|
||||
500: ('Internal Server Error', 'Something is broken. Please post to the group so the Twitter team can investigate.'),
|
||||
404: ('Not Found', 'The URI requested is invalid or the resource \
|
||||
requested, such as a user, does not exists.'),
|
||||
406: ('Not Acceptable', 'Returned by the Search API when an \
|
||||
invalid format is specified in the request.'),
|
||||
410: ('Gone', 'This resource is gone. Used to indicate that an \
|
||||
API endpoint has been turned off.'),
|
||||
422: ('Unprocessable Entity', 'Returned when an image uploaded to \
|
||||
POST account/update_profile_banner is unable to be processed.'),
|
||||
429: ('Too Many Requests', 'Returned in API v1.1 when a request cannot \
|
||||
be served due to the application\'s rate limit having been \
|
||||
exhausted for the resource.'),
|
||||
500: ('Internal Server Error', 'Something is broken. Please post to the \
|
||||
group so the Twitter team can investigate.'),
|
||||
502: ('Bad Gateway', 'Twitter is down or being upgraded.'),
|
||||
503: ('Service Unavailable', 'The Twitter servers are up, but overloaded with requests. Try again later.'),
|
||||
504: ('Gateway Timeout', 'The Twitter servers are up, but the request couldn\'t be serviced due to some failure within our stack. Try again later.'),
|
||||
503: ('Service Unavailable', 'The Twitter servers are up, but overloaded \
|
||||
with requests. Try again later.'),
|
||||
504: ('Gateway Timeout', 'The Twitter servers are up, but the request \
|
||||
couldn\'t be serviced due to some failure within our stack. Try \
|
||||
again later.'),
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue