Function bind_method
has a Cognitive Complexity of 87 (exceeds 5 allowed). Consider refactoring.
def bind_method(**config):
class InstagramAPIMethod(object):
path = config['path']
method = config.get('method', 'GET')
InstagramAPITests
has 26 functions (exceeds 20 allowed). Consider refactoring.
class InstagramAPITests(unittest.TestCase):
def setUp(self):
super(InstagramAPITests, self).setUp()
self.client_only_api = TestInstagramAPI(client_id=client_id)
self.api = TestInstagramAPI(access_token=access_token)
Similar blocks of code found in 2 locations. Consider refactoring.
class User(ApiModel):
def __init__(self, id, *args, **kwargs):
self.id = id
for key, value in six.iteritems(kwargs):
setattr(self, key, value)
Similar blocks of code found in 2 locations. Consider refactoring.
class Tag(ApiModel):
def __init__(self, name, **kwargs):
self.name = name
for key, value in six.iteritems(kwargs):
setattr(self, key, value)
Function object_from_dictionary
has a Cognitive Complexity of 16 (exceeds 5 allowed). Consider refactoring.
def object_from_dictionary(cls, entry):
new_media = Media(id=entry['id'])
new_media.type = entry['type']
new_media.user = User.object_from_dictionary(entry['user'])
Similar blocks of code found in 2 locations. Consider refactoring.
def get_low_resolution_url(self):
if self.type == 'image':
return self.images['low_resolution'].url
else:
return self.videos['low_resolution'].url
Similar blocks of code found in 2 locations. Consider refactoring.
def get_standard_resolution_url(self):
if self.type == 'image':
return self.images['standard_resolution'].url
else:
return self.videos['standard_resolution'].url
Similar blocks of code found in 2 locations. Consider refactoring.
if new_media.like_count:
for like in entry.get('likes', {}).get('data', []):
new_media.likes.append(User.object_from_dictionary(like))
Similar blocks of code found in 2 locations. Consider refactoring.
if new_media.comment_count:
for comment in entry.get('comments', {}).get('data', []):
new_media.comments.append(Comment.object_from_dictionary(comment))
Similar blocks of code found in 2 locations. Consider refactoring.
for version, version_info in six.iteritems(entry.get('videos', {})):
new_media.videos[version] = Video.object_from_dictionary(version_info)
Similar blocks of code found in 2 locations. Consider refactoring.
for version, version_info in six.iteritems(entry.get('images', {})):
new_media.images[version] = Image.object_from_dictionary(version_info)
Similar blocks of code found in 2 locations. Consider refactoring.
def __init__(self, id=None, **kwargs):
self.id = id
for key, value in six.iteritems(kwargs):
setattr(self, key, value)
Similar blocks of code found in 2 locations. Consider refactoring.
class MediaShortcode(Media):
def __init__(self, shortcode=None, **kwargs):
self.shortcode = shortcode
for key, value in six.iteritems(kwargs):
setattr(self, key, value)
Function __init__
has 6 arguments (exceeds 4 allowed). Consider refactoring.
def __init__(self, client_id=None, client_secret=None, client_ips=None, access_token=None, redirect_uri=None, timeout=None):
Function __init__
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def __init__(self, status_code, error_type, error_message, *args, **kwargs):
Function exchange_for_access_token
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def exchange_for_access_token(self, code=None, username=None, password=None, scope=None, user_id=None):
Function _data_for_exchange
has 5 arguments (exceeds 4 allowed). Consider refactoring.
def _data_for_exchange(self, code=None, username=None, password=None, scope=None, user_id=None):
Function _signed_request
has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
def _signed_request(self, path, params, include_signed_request, include_secret):
if include_signed_request and self.api.client_secret is not None:
if self.api.access_token:
params['access_token'] = self.api.access_token
elif self.api.client_id:
Function _data_for_exchange
has a Cognitive Complexity of 6 (exceeds 5 allowed). Consider refactoring.
def _data_for_exchange(self, code=None, username=None, password=None, scope=None, user_id=None):
client_params = {
"client_id": self.api.client_id,
"client_secret": self.api.client_secret,
"redirect_uri": self.api.redirect_uri,