Skip to content

Commit

Permalink
fix lots of linting errors
Browse files Browse the repository at this point in the history
  • Loading branch information
patricksanders committed Sep 12, 2024
1 parent 0d444c4 commit 696e618
Show file tree
Hide file tree
Showing 23 changed files with 127 additions and 130 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -22,10 +22,10 @@ jobs:
python -m pip install hatch
- name: Lint
run: |
echo TODO
hatch fmt || true
- name: Test
run: |
hatch run +py=${{ matrix.python-version }} test:pytest
hatch run +py=${{ matrix.python-version }} test:test
- name: Build dist
run: |
hatch build
11 changes: 5 additions & 6 deletions aardvark/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
from flasgger import Swagger
from flask import Flask

from aardvark.config import settings
from aardvark.persistence.sqlalchemy import SQLAlchemyPersistence
from aardvark.advisors import advisor_bp
from aardvark.persistence.sqlalchemy import SQLAlchemyPersistence

BLUEPRINTS = [advisor_bp]

Expand All @@ -17,7 +16,7 @@
log = logging.getLogger("aardvark")


def create_app(*args, **kwargs):
def create_app(**kwargs):
init_logging()
app = Flask(__name__, static_url_path="/static")
Swagger(app)
Expand All @@ -39,7 +38,7 @@ def healthcheck():

# Blueprints
for bp in BLUEPRINTS:
app.register_blueprint(bp, url_prefix="/api/{0}".format(API_VERSION))
app.register_blueprint(bp, url_prefix=f"/api/{API_VERSION}")

# Extensions:
persistence.init_db()
Expand Down Expand Up @@ -86,12 +85,12 @@ def init_logging():

def _find_config():
"""Search for config.py in order of preference and return path if it exists, else None"""
CONFIG_PATHS = [
config_paths = [
os.path.join(os.getcwd(), "config.py"),
"/etc/aardvark/config.py",
"/apps/aardvark/config.py",
]
for path in CONFIG_PATHS:
for path in config_paths:
if os.path.exists(path):
return path
return None
24 changes: 16 additions & 8 deletions aardvark/__version__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,16 @@
# this is a placeholder and will be overwritten at build time
try:
from setuptools_scm import get_version
__version__ = get_version(root="..", relative_to=__file__)
except (ImportError, OSError):
# ImportError: setuptools_scm isn't installed
# OSError: git isn't installed
__version__ = "0.0.0.dev0+placeholder"
# file generated by setuptools_scm
# don't change, don't track in version control
TYPE_CHECKING = False
if TYPE_CHECKING:
from typing import Tuple, Union
VERSION_TUPLE = Tuple[Union[int, str], ...]
else:
VERSION_TUPLE = object

version: str
__version__: str
__version_tuple__: VERSION_TUPLE
version_tuple: VERSION_TUPLE

__version__ = version = '0.3.6.dev28+g0d444c4.d20240911'
__version_tuple__ = version_tuple = (0, 3, 6, 'dev28', 'g0d444c4.d20240911')
2 changes: 1 addition & 1 deletion aardvark/advisors.py
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,7 @@ def post():
arns = request.args.get("arn")
arns = arns.split(",") if arns else []
except Exception as e:
raise abort(400, str(e))
raise abort(400, str(e)) from e

values = SQLAlchemyPersistence().get_role_data(
page=page,
Expand Down
51 changes: 16 additions & 35 deletions aardvark/config.py
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import contextlib
import logging
import os

Expand Down Expand Up @@ -28,6 +29,7 @@


def create_config(
*,
aardvark_role: str = "",
swag_bucket: str = "",
swag_filter: str = "",
Expand Down Expand Up @@ -65,19 +67,20 @@ def create_config(

def find_legacy_config():
"""Search for config.py in order of preference and return path if it exists, else None"""
CONFIG_PATHS = [
config_paths = [
os.path.join(os.getcwd(), "config.py"),
"/etc/aardvark/config.py",
"/apps/aardvark/config.py",
]
for path in CONFIG_PATHS:
for path in config_paths:
if os.path.exists(path):
return path
return None


def convert_config(
filename: str,
*,
write: bool = False,
output_filename: str = "settings.yaml",
environment: str = "default",
Expand All @@ -89,65 +92,43 @@ def convert_config(
old_config = importlib.util.module_from_spec(spec)
spec.loader.exec_module(old_config)

try:
with contextlib.suppress(AttributeError):
settings.set("aws_rolename", old_config.ROLENAME)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("aws_region", old_config.REGION)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("aws_arn_partition", old_config.ARN_PARTITION)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("sqlalchemy_database_uri", old_config.SQLALCHEMY_DATABASE_URI)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set(
"sqlalchemy_track_modifications", old_config.SQLALCHEMY_TRACK_MODIFICATIONS
)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("swag.bucket", old_config.SWAG_BUCKET)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("swag.opts", old_config.SWAG_OPTS)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("swag.filter", old_config.SWAG_FILTER)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set(
"swag.service_enabled_requirement",
old_config.SWAG_SERVICE_ENABLED_REQUIREMENT,
)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("updater_failing_arns", old_config.FAILING_ARNS)
except AttributeError:
pass

try:
with contextlib.suppress(AttributeError):
settings.set("updater_num_threads", old_config.NUM_THREADS)
except AttributeError:
pass

if write:
write_config(output_filename, environment=environment)
Expand Down
10 changes: 5 additions & 5 deletions aardvark/exceptions.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
class AardvarkException(Exception):
class AardvarkError(Exception):
pass


class AccessAdvisorException(AardvarkException):
class AccessAdvisorError(AardvarkError):
pass


class CombineException(AardvarkException):
class CombineError(AardvarkError):
pass


class DatabaseException(AardvarkException):
class DatabaseError(AardvarkError):
pass


class RetrieverException(AardvarkException):
class RetrieverError(AardvarkError):
pass
19 changes: 11 additions & 8 deletions aardvark/manage.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,17 @@
from __future__ import annotations

import asyncio
import click
import logging
import os
import queue
import sys
import threading
from typing import List

import click

from aardvark import create_app, init_logging
from aardvark.exceptions import AardvarkException
from aardvark.config import create_config, convert_config, find_legacy_config
from aardvark.config import convert_config, create_config, find_legacy_config
from aardvark.exceptions import AardvarkError
from aardvark.persistence.sqlalchemy import SQLAlchemyPersistence
from aardvark.retrievers.runner import RetrieverRunner

Expand Down Expand Up @@ -135,7 +138,7 @@ def config(aardvark_role, swag_bucket, db_uri, num_threads, no_prompt):
@cli.command("update")
@click.option("--account", "-a", type=str, default=[], multiple=True)
@click.option("--arn", "-r", type=str, default=[], multiple=True)
def update(account: List[str], arn: List[str]):
def update(account: list[str], arn: list[str]):
"""
Asks AWS for new Access Advisor information.
"""
Expand All @@ -146,9 +149,9 @@ def update(account: List[str], arn: List[str]):
asyncio.run(r.run(accounts=accounts, arns=arns))
except KeyboardInterrupt:
r.cancel()
except AardvarkException as e:
log.error(e)
exit(1)
except AardvarkError:
log.exception()
sys.exit(1)


@cli.command("drop_db")
Expand Down
26 changes: 15 additions & 11 deletions aardvark/persistence/__init__.py
Original file line number Diff line number Diff line change
@@ -1,33 +1,37 @@
from typing import Any, Dict, List, Optional
from __future__ import annotations

from dynaconf import Dynaconf
from typing import TYPE_CHECKING

from aardvark.plugins import AardvarkPlugin

if TYPE_CHECKING:
from dynaconf import Dynaconf


class PersistencePlugin(AardvarkPlugin):
def __init__(self, alternative_config: Dynaconf = None):
super().__init__(alternative_config=alternative_config)

def init_db(self):
raise NotImplementedError()
raise NotImplementedError

def teardown_db(self):
raise NotImplementedError()
raise NotImplementedError

def get_role_data(
self,
*,
page: int = 0,
count: int = 0,
combine: bool = False,
phrase: str = "",
arns: Optional[List[str]] = None,
arns: list[str] | None = None,
regex: str = "",
) -> Dict[str, Any]:
raise NotImplementedError()
) -> dict[str, any]:
raise NotImplementedError

def store_role_data(self, access_advisor_data: Dict[str, Any]) -> None:
raise NotImplementedError()
def store_role_data(self, access_advisor_data: dict[str, any]) -> None:
raise NotImplementedError

def _combine_results(self, access_advisor_data: Dict[str, Any]) -> Dict[str, Any]:
raise NotImplementedError()
def _combine_results(self, access_advisor_data: dict[str, any]) -> dict[str, any]:
raise NotImplementedError
Loading

0 comments on commit 696e618

Please sign in to comment.