Skip to content

Commit

Permalink
Pylint errors fixes (#14)
Browse files Browse the repository at this point in the history
* module docstrings added

* dangerous default values as arguments

* edit entry fix

* get rid of lambda

* log messages formatting fix
  • Loading branch information
p1c2u authored Sep 3, 2017
1 parent 063753e commit 5ab7902
Show file tree
Hide file tree
Showing 13 changed files with 51 additions and 27 deletions.
1 change: 1 addition & 0 deletions wykop/__init__.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Python library for the Wykop API."""
from wykop.api.clients import WykopAPI
from wykop.api.exceptions import WykopAPIError
from wykop.utils import get_version
Expand Down
20 changes: 13 additions & 7 deletions wykop/api/clients.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop API clients module."""
import base64
import hashlib
import logging
Expand All @@ -23,7 +24,7 @@

class BaseWykopAPI(object):
"""
Base Wykop API class
Base Wykop API.
"""

_client_name = 'wykop-sdk'
Expand Down Expand Up @@ -149,14 +150,19 @@ def get_headers(self, url, **post_params):
'User-Agent': user_agent,
}

def request(self, rtype, rmethod, rmethod_params=[],
api_params={}, post_params={}, file_params={},
def request(self, rtype, rmethod, rmethod_params=None,
api_params=None, post_params=None, file_params=None,
parser=default_parser, requester=default_requester):
"""
Makes request.
"""
log.debug('Making request')

rmethod_params = rmethod_params or []
api_params = api_params or {}
post_params = post_params or {}
file_params = file_params or {}

# sanitize data
rtype = force_text(rtype)
rmethod = force_text(rmethod)
Expand All @@ -177,7 +183,7 @@ def request(self, rtype, rmethod, rmethod_params=[],

class WykopAPI(BaseWykopAPI):
"""
Wykop API class
Wykop API version 1.
"""

def __init__(self, appkey, secretkey, login=None, accountkey=None,
Expand Down Expand Up @@ -507,8 +513,8 @@ def search_entries(self, q, page=1):
api_params=api_params,
post_params=post_params)

def search_profiles(self, q):
post_params = {'q': q}
def search_profiles(self, query):
post_params = {'q': query}
return self.request('search', 'entries',
post_params=post_params)

Expand Down Expand Up @@ -574,7 +580,7 @@ def add_entry(self, body, embed=None, channel=None):
@login_required
def edit_entry(self, entry_id, body):
post_params = {'body': body}
return self.request('entries', 'edit',
return self.request('entries', 'edit', [entry_id],
post_params=post_params)

@login_required
Expand Down
1 change: 1 addition & 0 deletions wykop/api/decorators.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop API decorators module."""
from wykop.api.exceptions import InvalidUserKeyError


Expand Down
5 changes: 2 additions & 3 deletions wykop/api/exceptions/base.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop API base exceptions module."""
__all__ = [
'InvalidAPIKeyError', 'InvalidParamsError', 'NotEnoughParamsError',
'AppWritePermissionsError', 'DailtyRequestLimitError',
Expand All @@ -13,9 +14,7 @@


class WykopAPIError(Exception):
"""
Base Wykop API exception class
"""
"""Base Wykop API exception."""
pass

class InvalidAPIKeyError(WykopAPIError):
Expand Down
2 changes: 2 additions & 0 deletions wykop/api/exceptions/resolvers.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
"""Wykop API exceptions resolver module."""
import sys

from wykop.utils import force_bytes


class ExceptionResolver(object):
"""Wykop API exception resolver."""

def __init__(self, exceptions):
self.exceptions = exceptions
Expand Down
3 changes: 2 additions & 1 deletion wykop/models.py → wykop/api/models.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
class AttrDict(dict):
"""Wykop API models module.."""
class WykopAPIResponse(dict):
__getattr__ = dict.__getitem__
__setattr__ = dict.__setitem__
7 changes: 5 additions & 2 deletions wykop/api/parsers/__init__.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
"""Wykop API parsers module."""
from wykop.api.exceptions import default_exception_resolver
from wykop.api.parsers.json import JSONParser
from wykop.models import AttrDict
from wykop.api.models import WykopAPIResponse

default_parser = JSONParser(
default_exception_resolver, object_hook=lambda x: AttrDict(x))
default_exception_resolver,
object_hook=WykopAPIResponse,
)
1 change: 1 addition & 0 deletions wykop/api/parsers/base.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop API base praser module."""
from collections import namedtuple

from wykop.api.exceptions import WykopAPIError
Expand Down
1 change: 1 addition & 0 deletions wykop/api/parsers/json.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop API JSON praser module."""
from __future__ import absolute_import
try:
import simplejson as json
Expand Down
2 changes: 2 additions & 0 deletions wykop/api/requesters/base.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
"""Wykop API base requester module."""
class BaseRequester(object):
"""Base Wykop API reqeuster"""

def make_request(self, url, data=None, headers=None, files=None):
raise NotImplementedError(
Expand Down
13 changes: 8 additions & 5 deletions wykop/api/requesters/requests.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop API requests requester module."""
from __future__ import absolute_import
import logging

Expand All @@ -13,23 +14,25 @@

class RequestsRequester(BaseRequester):
"""
Requests requester class
Requests Wtkop API requester. Uses reqeusts module.
"""

METHOD_GET = 'GET'
METHOD_POST = 'POST'

def make_request(self, url, data=None, headers=None, files=None):
log.debug(" Fetching url: `%s` (data: %s, headers: `%s`)" %
(str(url), str(data), str(headers)))
log.debug(
" Fetching url: `%s` (data: %s, headers: `%s`)",
str(url), str(data), str(headers),
)
try:
files = self._get_files(files)
method = self._get_method(data, files)
resp = request(method, url, data=data, headers=headers, files=files)
resp.raise_for_status()
return force_text(resp.content)
except RequestException as e:
raise WykopAPIError(0, str(e))
except RequestException as ex:
raise WykopAPIError(0, str(ex))

def _get_files(self, files):
return dictmap(lambda x: (x.name, x, mimetype(x.name)), files)
Expand Down
21 changes: 12 additions & 9 deletions wykop/api/requesters/urllib.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""wykop API urllib requester module."""
import contextlib
import logging

Expand All @@ -14,12 +15,14 @@

class UrllibRequester(BaseRequester):
"""
Urllib requester class
Urllib Wykop API requester. Uses urllib module.
"""

def make_request(self, url, data=None, headers=None, files=None):
log.debug(" Fetching url: `%s` (data: %s, headers: `%s`)" %
(str(url), str(data), str(headers)))
log.debug(
" Fetching url: `%s` (data: %s, headers: `%s`)",
str(url), str(data), str(headers),
)

if files:
raise NotImplementedError(
Expand All @@ -32,9 +35,9 @@ def make_request(self, url, data=None, headers=None, files=None):
req = Request(url, data=data_bytes, headers=headers)

try:
with contextlib.closing(urlopen(req)) as f:
return force_text(f.read())
except HTTPError as e:
raise WykopAPIError(0, str(e.code))
except URLError as e:
raise WykopAPIError(0, str(e.reason))
with contextlib.closing(urlopen(req)) as resp:
return force_text(resp.read())
except HTTPError as ex:
raise WykopAPIError(0, str(ex.code))
except URLError as ex:
raise WykopAPIError(0, str(ex.reason))
1 change: 1 addition & 0 deletions wykop/utils.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
"""Wykop utils module."""
import mimetypes
from pkg_resources import get_distribution, DistributionNotFound

Expand Down

0 comments on commit 5ab7902

Please sign in to comment.