Skip to content

Commit

Permalink
ci: lint and format
Browse files Browse the repository at this point in the history
  • Loading branch information
joao-conde committed Jun 1, 2022
1 parent 3dd7ca2 commit 7211a87
Show file tree
Hide file tree
Showing 8 changed files with 103 additions and 117 deletions.
9 changes: 9 additions & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,13 @@ jobs:
- uses: actions/checkout@v1
- run: python --version
- run: pip install -r requirements.txt
- run: |
pip install pylint
curl https://raw.githubusercontent.com/ripe-tech/pylint-config/master/pylintrc --output pylintrc
PYTHONPATH=src pylint src/ripe_id
if: matrix.python-version != '2.7' && matrix.python-version != '3.5'
- run: |
pip install black
black . --check --config ./pyproject.toml
if: matrix.python-version != '2.7' && matrix.python-version != '3.5'
- run: python setup.py test
2 changes: 2 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[tool.black]
line-length = 90
36 changes: 15 additions & 21 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,25 +5,19 @@
import setuptools

setuptools.setup(
name = "ripe-id-api",
version = "0.1.5",
author = "Platforme International",
author_email = "development@platforme.com",
description = "RIPE ID API",
license = "Apache License, Version 2.0",
keywords = "ripe id api",
url = "http://www.platforme.com",
zip_safe = False,
packages = [
"ripe_id"
],
package_dir = {
"" : os.path.normpath("src")
},
install_requires = [
"appier"
],
classifiers = [
name="ripe-id-api",
version="0.1.5",
author="Platforme International",
author_email="development@platforme.com",
description="RIPE ID API",
license="Apache License, Version 2.0",
keywords="ripe id api",
url="http://www.platforme.com",
zip_safe=False,
packages=["ripe_id"],
package_dir={"": os.path.normpath("src")},
install_requires=["appier"],
classifiers=[
"Development Status :: 5 - Production/Stable",
"Topic :: Utilities",
"License :: OSI Approved :: Apache Software License",
Expand All @@ -38,6 +32,6 @@
"Programming Language :: Python :: 3.4",
"Programming Language :: Python :: 3.5",
"Programming Language :: Python :: 3.6",
"Programming Language :: Python :: 3.7"
]
"Programming Language :: Python :: 3.7",
],
)
42 changes: 21 additions & 21 deletions src/examples/app.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,10 @@

from . import base

class RipeIdApp(appier.WebApp):

class RipeIdApp(appier.WebApp):
def __init__(self, *args, **kwargs):
appier.WebApp.__init__(
self,
name = "ripe_id",
*args, **kwargs
)
appier.WebApp.__init__(self, name="ripe_id", *args, **kwargs)

@appier.route("/", "GET")
def index(self):
Expand All @@ -35,15 +31,17 @@ def login(self):
@appier.route("/me", "GET")
def me(self):
url = self.ensure_api()
if url: return self.redirect(url)
if url:
return self.redirect(url)
api = self.get_api()
account = api.self_account()
return account

@appier.route("/tokens/issue", "GET")
def token_issue(self):
url = self.ensure_api()
if url: return self.redirect(url)
if url:
return self.redirect(url)
api = self.get_api()
token = api.issue_token()
return token
Expand All @@ -64,29 +62,29 @@ def oauth(self):
error = self.field("error")
appier.verify(
not error,
message = "Invalid OAuth response (%s)" % error,
exception = appier.OperationalError
message="Invalid OAuth response (%s)" % error,
exception=appier.OperationalError,
)
api = self.get_api()
access_token = api.oauth_access(code)
self.session["rid.access_token"] = access_token
self.session["rid.refresh_token"] = api.refresh_token
return self.redirect(
self.url_for("ripe_id.index")
)
return self.redirect(self.url_for("ripe_id.index"))

@appier.exception_handler(appier.OAuthAccessError)
def oauth_error(self, error):
if "rid.access_token" in self.session: del self.session["rid.access_token"]
if "rid.refresh_token" in self.session: del self.session["rid.refresh_token"]
if "rid.session_id" in self.session: del self.session["rid.session_id"]
return self.redirect(
self.url_for("ripe_id.index")
)
if "rid.access_token" in self.session:
del self.session["rid.access_token"]
if "rid.refresh_token" in self.session:
del self.session["rid.refresh_token"]
if "rid.session_id" in self.session:
del self.session["rid.session_id"]
return self.redirect(self.url_for("ripe_id.index"))

def ensure_api(self):
access_token = self.session.get("rid.access_token", None)
if access_token: return
if access_token:
return
api = base.get_api()
return api.oauth_authorize()

Expand All @@ -102,10 +100,12 @@ def get_api(self):
return api

def on_auth(self, contents):
if not self.session: return
if not self.session:
return
session_id = contents.get("session_id", None)
self.session["rid.session_id"] = session_id


if __name__ == "__main__":
app = RipeIdApp()
app.serve()
Expand Down
14 changes: 6 additions & 8 deletions src/examples/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,13 @@

import ripe_id

SCOPE = (
"account.me",
"account.acl"
)
SCOPE = ("account.me", "account.acl")


def get_api():
return ripe_id.API(
client_id = appier.conf("RIPEID_ID"),
client_secret = appier.conf("RIPEID_SECRET"),
redirect_url = appier.conf("RIPEID_REDIRECT_URL"),
scope = SCOPE
client_id=appier.conf("RIPEID_ID"),
client_secret=appier.conf("RIPEID_SECRET"),
redirect_url=appier.conf("RIPEID_REDIRECT_URL"),
scope=SCOPE,
)
2 changes: 1 addition & 1 deletion src/ripe_id/account.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-

class AccountAPI(object):

class AccountAPI(object):
def self_account(self):
url = self.base_url + "accounts/me"
contents = self.get(url)
Expand Down
106 changes: 47 additions & 59 deletions src/ripe_id/base.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,19 +14,12 @@
""" The default login URL to be used when no other
base URL value is provided to the constructor """

SCOPE = (
"account.me",
"account.acl"
)
SCOPE = ("account.me", "account.acl")
""" The list of permissions to be used to create the
scope string for the oauth value """

class API(
appier.OAuth2API,
token.TokenAPI,
account.AccountAPI
):

class API(appier.OAuth2API, token.TokenAPI, account.AccountAPI):
def __init__(self, *args, **kwargs):
appier.OAuth2API.__init__(self, *args, **kwargs)
self.base_url = appier.conf("RIPEID_BASE_URL", RIPEID_BASE_URL)
Expand All @@ -48,33 +41,36 @@ def build(
self,
method,
url,
data = None,
data_j = None,
data_m = None,
headers = None,
params = None,
mime = None,
kwargs = None
data=None,
data_j=None,
data_m=None,
headers=None,
params=None,
mime=None,
kwargs=None,
):
appier.OAuth2API.build(
self,
method,
url,
data = data,
data_j = data_j,
data_m = data_m,
headers = headers,
params = params,
mime = mime,
kwargs = kwargs
data=data,
data_j=data_j,
data_m=data_m,
headers=headers,
params=params,
mime=mime,
kwargs=kwargs,
)
auth = kwargs.pop("auth", True)
if auth: params["sid"] = self.get_session_id()
if auth:
params["sid"] = self.get_session_id()

def get_session_id(self):
if self.session_id: return self.session_id
if self.session_id:
return self.session_id
return self.oauth_login()

# pylint: disable-next=method-hidden
def auth_callback(self, params, headers):
if self.refresh_token:
self.oauth_refresh()
Expand All @@ -84,20 +80,17 @@ def auth_callback(self, params, headers):
session_id = self.get_session_id()
params["sid"] = session_id

def oauth_authorize(self, state = None):
def oauth_authorize(self, state=None):
url = self.login_url + "oauth2/auth"
appier.verify_many((
self.client_id,
self.redirect_url,
self.scope
))
appier.verify_many((self.client_id, self.redirect_url, self.scope))
values = dict(
client_id = self.client_id,
redirect_uri = self.redirect_url,
response_type = "code",
scope = " ".join(self.scope)
client_id=self.client_id,
redirect_uri=self.redirect_url,
response_type="code",
scope=" ".join(self.scope),
)
if state: values["state"] = state
if state:
values["state"] = state
data = appier.legacy.urlencode(values)
url = url + "?" + data
return url
Expand All @@ -106,13 +99,13 @@ def oauth_access(self, code):
url = self.login_url + "oauth2/token"
contents = self.post(
url,
token = False,
auth = False,
client_id = self.client_id,
client_secret = self.client_secret,
grant_type = "authorization_code",
redirect_uri = self.redirect_url,
code = code
token=False,
auth=False,
client_id=self.client_id,
client_secret=self.client_secret,
grant_type="authorization_code",
redirect_uri=self.redirect_url,
code=code,
)
self.access_token = contents["access_token"]
self.refresh_token = contents.get("refresh_token", None)
Expand All @@ -124,41 +117,36 @@ def oauth_refresh(self):
url = self.login_url + "oauth2/token"
contents = self.post(
url,
callback = False,
token = False,
auth = False,
client_id = self.client_id,
client_secret = self.client_secret,
grant_type = "refresh_token",
redirect_uri = self.redirect_url,
refresh_token = self.refresh_token
callback=False,
token=False,
auth=False,
client_id=self.client_id,
client_secret=self.client_secret,
grant_type="refresh_token",
redirect_uri=self.redirect_url,
refresh_token=self.refresh_token,
)
self.access_token = contents["access_token"]
self.trigger("access_token", self.access_token)
return self.access_token

def oauth_login(self):
url = self.login_url + "oauth2/login"
contents = self.post(url, callback = False, token = True, auth = False)
contents = self.post(url, callback=False, token=True, auth=False)
self.session_id = contents.get("session_id", None)
self.tokens = contents.get("tokens", None)
self.trigger("auth", contents)
return self.session_id

def ping(self):
url = self.base_url + "ping"
contents = self.get(url, auth = False)
contents = self.get(url, auth=False)
return contents

def login(self, username, password):
url = self.base_url + "login"
contents = self.post(
url,
params = dict(
username = username,
password = password
),
auth = False
url, params=dict(username=username, password=password), auth=False
)
return contents

Expand Down
9 changes: 2 additions & 7 deletions src/ripe_id/token.py
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-

class TokenAPI(object):

class TokenAPI(object):
def issue_token(self):
url = self.base_url + "tokens/issue"
contents = self.post(url)
return contents

def redeem_token(self, token):
url = self.base_url + "tokens/redeem"
contents = self.post(
url,
params = dict(token = token),
token = False,
auth = False
)
contents = self.post(url, params=dict(token=token), token=False, auth=False)
return contents

0 comments on commit 7211a87

Please sign in to comment.