aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2023-08-08 06:48:14 +0300
committerFrederick Muriuki Muriithi2023-08-08 07:46:06 +0300
commite7937ade8d91f7741a649de24faacbe194a3c0d0 (patch)
treef2c868d56aebf409185beb53e06796915283157b
parent7d09eb50db74ed270dec5be83bdf94bdd1b5907d (diff)
downloadgn-auth-e7937ade8d91f7741a649de24faacbe194a3c0d0.tar.gz
Use relative imports to break circular import errors
-rw-r--r--gn_auth/__init__.py3
-rw-r--r--gn_auth/auth/__init__.py3
-rw-r--r--gn_auth/auth/authorisation/checks.py3
-rw-r--r--gn_auth/auth/authorisation/data/genotypes.py11
-rw-r--r--gn_auth/auth/authorisation/data/mrna.py11
-rw-r--r--gn_auth/auth/authorisation/data/phenotypes.py12
-rw-r--r--gn_auth/auth/authorisation/data/views.py30
-rw-r--r--gn_auth/auth/authorisation/groups/data.py11
-rw-r--r--gn_auth/auth/authorisation/groups/models.py6
-rw-r--r--gn_auth/auth/authorisation/groups/views.py8
-rw-r--r--gn_auth/auth/authorisation/privileges.py4
-rw-r--r--gn_auth/auth/authorisation/resources/checks.py4
-rw-r--r--gn_auth/auth/authorisation/resources/models.py8
-rw-r--r--gn_auth/auth/authorisation/resources/views.py4
-rw-r--r--gn_auth/auth/authorisation/roles/models.py9
-rw-r--r--gn_auth/auth/authorisation/roles/views.py4
-rw-r--r--gn_auth/auth/authorisation/users/__init__.py1
-rw-r--r--gn_auth/auth/authorisation/users/admin/ui.py9
-rw-r--r--gn_auth/auth/authorisation/users/admin/views.py8
-rw-r--r--gn_auth/auth/authorisation/users/collections/models.py2
-rw-r--r--gn_auth/auth/authorisation/users/collections/views.py13
-rw-r--r--gn_auth/auth/authorisation/users/masquerade/models.py10
-rw-r--r--gn_auth/auth/authorisation/users/masquerade/views.py10
-rw-r--r--gn_auth/auth/authorisation/users/models.py10
-rw-r--r--gn_auth/auth/authorisation/users/views.py6
25 files changed, 100 insertions, 100 deletions
diff --git a/gn_auth/__init__.py b/gn_auth/__init__.py
index 9b0264c..446ba19 100644
--- a/gn_auth/__init__.py
+++ b/gn_auth/__init__.py
@@ -1,5 +1,4 @@
"""Application initialisation module."""
-
import os
import sys
import logging
@@ -7,8 +6,8 @@ from typing import Optional
from flask import Flask
-from gn_auth.auth import oauth2
from gn_auth.misc_views import misc
+from gn_auth.auth.views import oauth2
from gn_auth.auth.authentication.oauth2.server import setup_oauth2_server
diff --git a/gn_auth/auth/__init__.py b/gn_auth/auth/__init__.py
index a28498d..4f1d960 100644
--- a/gn_auth/auth/__init__.py
+++ b/gn_auth/auth/__init__.py
@@ -1,5 +1,2 @@
"""Top-Level `Auth` module"""
-from . import authorisation
-from . import authentication
-from .views import oauth2
diff --git a/gn_auth/auth/authorisation/checks.py b/gn_auth/auth/authorisation/checks.py
index 46a51fe..55af0b1 100644
--- a/gn_auth/auth/authorisation/checks.py
+++ b/gn_auth/auth/authorisation/checks.py
@@ -4,11 +4,10 @@ from typing import Callable
from flask import request, current_app as app
-from gn_auth.auth.db import sqlite3 as db
-
from . import privileges as auth_privs
from .errors import InvalidData, AuthorisationError
+from ..db import sqlite3 as db
from ..authentication.oauth2.resource_server import require_oauth
def __system_privileges_in_roles__(conn, user):
diff --git a/gn_auth/auth/authorisation/data/genotypes.py b/gn_auth/auth/authorisation/data/genotypes.py
index f5cf11c..818f72d 100644
--- a/gn_auth/auth/authorisation/data/genotypes.py
+++ b/gn_auth/auth/authorisation/data/genotypes.py
@@ -4,11 +4,12 @@ from typing import Iterable
from MySQLdb.cursors import DictCursor
-import gn_auth.auth.db.sqlite3 as authdb
-import gn_auth.auth.db.mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.groups.models import Group
+from ..checks import authorised_p
+from ..groups.models import Group
+
+from ...dictify import dictify
+from ...db import mariadb as gn3db
+from ...db import sqlite3 as authdb
def linked_genotype_data(conn: authdb.DbConnection) -> Iterable[dict]:
"""Retrive genotype data that is linked to user groups."""
diff --git a/gn_auth/auth/authorisation/data/mrna.py b/gn_auth/auth/authorisation/data/mrna.py
index b80ffe5..53f9bf9 100644
--- a/gn_auth/auth/authorisation/data/mrna.py
+++ b/gn_auth/auth/authorisation/data/mrna.py
@@ -3,11 +3,12 @@ import uuid
from typing import Iterable
from MySQLdb.cursors import DictCursor
-import gn_auth.auth.db.sqlite3 as authdb
-import gn_auth.auth.db.mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.groups.models import Group
+from ..checks import authorised_p
+from ..groups.models import Group
+
+from ...dictify import dictify
+from ...db import sqlite3 as authdb
+from ...db import mariadb as gn3db
def linked_mrna_data(conn: authdb.DbConnection) -> Iterable[dict]:
"""Retrieve mRNA Assay data that is linked to user groups."""
diff --git a/gn_auth/auth/authorisation/data/phenotypes.py b/gn_auth/auth/authorisation/data/phenotypes.py
index 0220201..84fc089 100644
--- a/gn_auth/auth/authorisation/data/phenotypes.py
+++ b/gn_auth/auth/authorisation/data/phenotypes.py
@@ -4,11 +4,13 @@ from typing import Any, Iterable
from MySQLdb.cursors import DictCursor
-import gn_auth.auth.db.sqlite3 as authdb
-import gn_auth.auth.db.mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.groups.models import Group
+
+from ..checks import authorised_p
+from ..groups.models import Group
+
+from ...dictify import dictify
+from ...db import sqlite3 as authdb
+from ...db import mariadb as gn3db
def linked_phenotype_data(
authconn: authdb.DbConnection, gn3conn: gn3db.DbConnection,
diff --git a/gn_auth/auth/authorisation/data/views.py b/gn_auth/auth/authorisation/data/views.py
index 03b416f..3c49ae5 100644
--- a/gn_auth/auth/authorisation/data/views.py
+++ b/gn_auth/auth/authorisation/data/views.py
@@ -10,32 +10,30 @@ from MySQLdb.cursors import DictCursor
from authlib.integrations.flask_oauth2.errors import _HTTPException
from flask import request, jsonify, Response, Blueprint, current_app as app
-import gn_auth.auth.db.mariadb as gn3db
-
from gn_auth import jobs
from gn_auth.commands import run_async_cmd
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...db import mariadb as gn3db
+from ...db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.checks import require_json
-from gn_auth.auth.authorisation.errors import InvalidData, NotFoundError
+from ..checks import require_json
+from ..errors import InvalidData, NotFoundError
-from gn_auth.auth.authorisation.groups.models import group_by_id
+from ..groups.models import group_by_id
-from gn_auth.auth.authorisation.users.models import user_resource_roles
+from ..users.models import user_resource_roles
-from gn_auth.auth.authorisation.resources.checks import authorised_for
-from gn_auth.auth.authorisation.resources.models import (
+from ..resources.checks import authorised_for
+from ..resources.models import (
user_resources, public_resources, attach_resources_data)
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
+from ...authentication.users import User
+from ...authentication.oauth2.resource_server import require_oauth
-from gn_auth.auth.authorisation.data.phenotypes import link_phenotype_data
-from gn_auth.auth.authorisation.data.mrna import link_mrna_data, ungrouped_mrna_data
-from gn_auth.auth.authorisation.data.genotypes import (
- link_genotype_data, ungrouped_genotype_data)
+from ..data.phenotypes import link_phenotype_data
+from ..data.mrna import link_mrna_data, ungrouped_mrna_data
+from ..data.genotypes import link_genotype_data, ungrouped_genotype_data
data = Blueprint("data", __name__)
diff --git a/gn_auth/auth/authorisation/groups/data.py b/gn_auth/auth/authorisation/groups/data.py
index a73ae3d..1650405 100644
--- a/gn_auth/auth/authorisation/groups/data.py
+++ b/gn_auth/auth/authorisation/groups/data.py
@@ -1,11 +1,12 @@
"""Handles the resource objects' data."""
from MySQLdb.cursors import DictCursor
-from gn_auth.auth.db import mariadb as gn3db
-import gn_auth.auth.db.sqlite3 as authdb
-from gn_auth.auth.authorisation.groups import Group
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.errors import NotFoundError
+from ..groups import Group
+from ..checks import authorised_p
+from ..errors import NotFoundError
+
+from ...db import mariadb as gn3db
+from ...db import sqlite3 as authdb
def __fetch_mrna_data_by_ids__(
conn: gn3db.DbConnection, dataset_ids: tuple[str, ...]) -> tuple[
diff --git a/gn_auth/auth/authorisation/groups/models.py b/gn_auth/auth/authorisation/groups/models.py
index 0ffd3a7..6a39681 100644
--- a/gn_auth/auth/authorisation/groups/models.py
+++ b/gn_auth/auth/authorisation/groups/models.py
@@ -7,9 +7,9 @@ from typing import Any, Sequence, Iterable, Optional, NamedTuple
from flask import g
from pymonad.maybe import Just, Maybe, Nothing
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authentication.users import User, user_by_id
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...authentication.users import User, user_by_id
from ..checks import authorised_p
from ..privileges import Privilege
diff --git a/gn_auth/auth/authorisation/groups/views.py b/gn_auth/auth/authorisation/groups/views.py
index a63e09d..4dc17e0 100644
--- a/gn_auth/auth/authorisation/groups/views.py
+++ b/gn_auth/auth/authorisation/groups/views.py
@@ -7,11 +7,11 @@ from functools import partial
from MySQLdb.cursors import DictCursor
from flask import request, jsonify, Response, Blueprint, current_app
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db import mariadb as gn3db
+from ...db import sqlite3 as db
+from ...db import mariadb as gn3db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...dictify import dictify
+from ...db.sqlite3 import with_db_connection
from .data import link_data_to_group
from .models import (
diff --git a/gn_auth/auth/authorisation/privileges.py b/gn_auth/auth/authorisation/privileges.py
index a348b92..bba6258 100644
--- a/gn_auth/auth/authorisation/privileges.py
+++ b/gn_auth/auth/authorisation/privileges.py
@@ -1,8 +1,8 @@
"""Handle privileges"""
from typing import Any, Iterable, NamedTuple
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authentication.users import User
+from ..db import sqlite3 as db
+from ..authentication.users import User
class Privilege(NamedTuple):
"""Class representing a privilege: creates immutable objects."""
diff --git a/gn_auth/auth/authorisation/resources/checks.py b/gn_auth/auth/authorisation/resources/checks.py
index 0c57b17..db975de 100644
--- a/gn_auth/auth/authorisation/resources/checks.py
+++ b/gn_auth/auth/authorisation/resources/checks.py
@@ -3,8 +3,8 @@ from uuid import UUID
from functools import reduce
from typing import Sequence
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authentication.users import User
+from ...db import sqlite3 as db
+from ...authentication.users import User
def __organise_privileges_by_resource_id__(rows):
def __organise__(privs, row):
diff --git a/gn_auth/auth/authorisation/resources/models.py b/gn_auth/auth/authorisation/resources/models.py
index 8c035c9..e4c3cab 100644
--- a/gn_auth/auth/authorisation/resources/models.py
+++ b/gn_auth/auth/authorisation/resources/models.py
@@ -5,10 +5,10 @@ from uuid import UUID, uuid4
from functools import reduce, partial
from typing import Any, Dict, Sequence, Optional, NamedTuple
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...authentication.users import User
+from ...db.sqlite3 import with_db_connection
from .checks import authorised_for
diff --git a/gn_auth/auth/authorisation/resources/views.py b/gn_auth/auth/authorisation/resources/views.py
index e7af9b9..bf7e6f5 100644
--- a/gn_auth/auth/authorisation/resources/views.py
+++ b/gn_auth/auth/authorisation/resources/views.py
@@ -6,8 +6,8 @@ from functools import reduce
from flask import request, jsonify, Response, Blueprint, current_app as app
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...db.sqlite3 import with_db_connection
from .checks import authorised_for
from .models import (
diff --git a/gn_auth/auth/authorisation/roles/models.py b/gn_auth/auth/authorisation/roles/models.py
index 0fecfc1..e1b0d6b 100644
--- a/gn_auth/auth/authorisation/roles/models.py
+++ b/gn_auth/auth/authorisation/roles/models.py
@@ -5,14 +5,13 @@ from typing import Any, Sequence, Iterable, NamedTuple
from pymonad.either import Left, Right, Either
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.authorisation.errors import AuthorisationError
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...authentication.users import User
from ..checks import authorised_p
from ..privileges import Privilege
-from ..errors import NotFoundError
+from ..errors import NotFoundError, AuthorisationError
class Role(NamedTuple):
"""Class representing a role: creates immutable objects."""
diff --git a/gn_auth/auth/authorisation/roles/views.py b/gn_auth/auth/authorisation/roles/views.py
index 4fc51f7..29d0991 100644
--- a/gn_auth/auth/authorisation/roles/views.py
+++ b/gn_auth/auth/authorisation/roles/views.py
@@ -3,8 +3,8 @@ import uuid
from flask import jsonify, Response, Blueprint, current_app
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
+from ...dictify import dictify
+from ...db import sqlite3 as db
from .models import user_role
diff --git a/gn_auth/auth/authorisation/users/__init__.py b/gn_auth/auth/authorisation/users/__init__.py
index e69de29..dbc6482 100644
--- a/gn_auth/auth/authorisation/users/__init__.py
+++ b/gn_auth/auth/authorisation/users/__init__.py
@@ -0,0 +1 @@
+"""Users module."""
diff --git a/gn_auth/auth/authorisation/users/admin/ui.py b/gn_auth/auth/authorisation/users/admin/ui.py
index 9087412..68e1ba5 100644
--- a/gn_auth/auth/authorisation/users/admin/ui.py
+++ b/gn_auth/auth/authorisation/users/admin/ui.py
@@ -2,12 +2,13 @@
from functools import wraps
from flask import flash, url_for, redirect
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.roles.models import user_roles
-
from gn_auth.session import logged_in, session_user, clear_session_info
+from ....authentication.users import User
+from ....db.sqlite3 import with_db_connection
+
+from ...roles.models import user_roles
+
def is_admin(func):
"""Verify user is a system admin."""
@wraps(func)
diff --git a/gn_auth/auth/authorisation/users/admin/views.py b/gn_auth/auth/authorisation/users/admin/views.py
index 4a37bc5..6ace0e5 100644
--- a/gn_auth/auth/authorisation/users/admin/views.py
+++ b/gn_auth/auth/authorisation/users/admin/views.py
@@ -18,16 +18,16 @@ from flask import (
from gn_auth import session
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ....db import sqlite3 as db
+from ....db.sqlite3 import with_db_connection
-from gn_auth.auth.authentication.oauth2.models.oauth2client import (
+from ....authentication.oauth2.models.oauth2client import (
save_client,
OAuth2Client,
oauth2_clients,
client as oauth2_client,
delete_client as _delete_client)
-from gn_auth.auth.authentication.users import (
+from ....authentication.users import (
User,
user_by_id,
valid_login,
diff --git a/gn_auth/auth/authorisation/users/collections/models.py b/gn_auth/auth/authorisation/users/collections/models.py
index eb9b188..9157100 100644
--- a/gn_auth/auth/authorisation/users/collections/models.py
+++ b/gn_auth/auth/authorisation/users/collections/models.py
@@ -6,7 +6,7 @@ from datetime import datetime
from redis import Redis
from email_validator import validate_email, EmailNotValidError
-from gn_auth.auth.authorisation.errors import InvalidData, NotFoundError
+from ...errors import InvalidData, NotFoundError
from ..models import User
diff --git a/gn_auth/auth/authorisation/users/collections/views.py b/gn_auth/auth/authorisation/users/collections/views.py
index 9900205..a1cc30d 100644
--- a/gn_auth/auth/authorisation/users/collections/views.py
+++ b/gn_auth/auth/authorisation/users/collections/views.py
@@ -4,13 +4,14 @@ from uuid import UUID
from redis import Redis
from flask import jsonify, request, Response, Blueprint, current_app
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.checks import require_json
-from gn_auth.auth.authorisation.errors import NotFoundError
+from ....db import sqlite3 as db
+from ....db.sqlite3 import with_db_connection
-from gn_auth.auth.authentication.users import User, user_by_id
-from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
+from ....authentication.users import User, user_by_id
+from ....authentication.oauth2.resource_server import require_oauth
+
+from ...checks import require_json
+from ...errors import NotFoundError
from .models import (
add_traits,
diff --git a/gn_auth/auth/authorisation/users/masquerade/models.py b/gn_auth/auth/authorisation/users/masquerade/models.py
index 9779764..86b9e53 100644
--- a/gn_auth/auth/authorisation/users/masquerade/models.py
+++ b/gn_auth/auth/authorisation/users/masquerade/models.py
@@ -5,13 +5,13 @@ from datetime import datetime
from flask import current_app as app
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authorisation.errors import ForbiddenAccess
-from gn_auth.auth.authorisation.roles.models import user_roles
+from ...errors import ForbiddenAccess
+from ...roles.models import user_roles
-from gn_auth.auth.authentication.users import User
-from gn_auth.auth.authentication.oauth2.models.oauth2token import (
+from ....db import sqlite3 as db
+from ....authentication.users import User
+from ....authentication.oauth2.models.oauth2token import (
OAuth2Token, save_token)
__FIVE_HOURS__ = (60 * 60 * 5)
diff --git a/gn_auth/auth/authorisation/users/masquerade/views.py b/gn_auth/auth/authorisation/users/masquerade/views.py
index 7bd8ddb..259cdfe 100644
--- a/gn_auth/auth/authorisation/users/masquerade/views.py
+++ b/gn_auth/auth/authorisation/users/masquerade/views.py
@@ -4,12 +4,12 @@ from functools import partial
from flask import request, jsonify, Response, Blueprint
-from gn_auth.auth.db.sqlite3 import with_db_connection
-from gn_auth.auth.authorisation.errors import InvalidData
-from gn_auth.auth.authorisation.checks import require_json
+from ...errors import InvalidData
+from ...checks import require_json
-from gn_auth.auth.authentication.users import user_by_id
-from gn_auth.auth.authentication.oauth2.resource_server import require_oauth
+from ....db.sqlite3 import with_db_connection
+from ....authentication.users import user_by_id
+from ....authentication.oauth2.resource_server import require_oauth
from .models import masquerade_as
diff --git a/gn_auth/auth/authorisation/users/models.py b/gn_auth/auth/authorisation/users/models.py
index 61489cf..9fb9d9e 100644
--- a/gn_auth/auth/authorisation/users/models.py
+++ b/gn_auth/auth/authorisation/users/models.py
@@ -2,12 +2,12 @@
import uuid
from functools import reduce
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.authorisation.roles.models import Role
-from gn_auth.auth.authorisation.checks import authorised_p
-from gn_auth.auth.authorisation.privileges import Privilege
+from ..roles.models import Role
+from ..checks import authorised_p
+from ..privileges import Privilege
-from gn_auth.auth.authentication.users import User
+from ...db import sqlite3 as db
+from ...authentication.users import User
@authorised_p(
("system:user:list",),
diff --git a/gn_auth/auth/authorisation/users/views.py b/gn_auth/auth/authorisation/users/views.py
index 0646e3a..6de30da 100644
--- a/gn_auth/auth/authorisation/users/views.py
+++ b/gn_auth/auth/authorisation/users/views.py
@@ -7,9 +7,9 @@ import sqlite3
from email_validator import validate_email, EmailNotValidError
from flask import request, jsonify, Response, Blueprint, current_app
-from gn_auth.auth.db import sqlite3 as db
-from gn_auth.auth.dictify import dictify
-from gn_auth.auth.db.sqlite3 import with_db_connection
+from ...db import sqlite3 as db
+from ...dictify import dictify
+from ...db.sqlite3 import with_db_connection
from .models import list_users
from .masquerade.views import masq