diff --git a/server/app/core/__init__.py b/server/app/core/__init__.py index 9419d98..7e0f2bf 100644 --- a/server/app/core/__init__.py +++ b/server/app/core/__init__.py @@ -1 +1,3 @@ -from .repository import get_repository, init_repository # noqa +from .repository import get_repository, init_repository + +__all__ = ["get_repository", "init_repository"] diff --git a/server/app/core/connectors/__init__.py b/server/app/core/connectors/__init__.py index 519d82c..fe5ac6c 100644 --- a/server/app/core/connectors/__init__.py +++ b/server/app/core/connectors/__init__.py @@ -1 +1,3 @@ -from .interface import IConnector # noqa +from .interface import IConnector + +__all__ = ["IConnector"] diff --git a/server/app/core/connectors/dummy.py b/server/app/core/connectors/dummy.py index 849b243..9b67c1f 100644 --- a/server/app/core/connectors/dummy.py +++ b/server/app/core/connectors/dummy.py @@ -1,4 +1,5 @@ from ..entities import Connector, DataProduct, Interface, Tag +from ..queries import IQuery from .interface import IConnector DUMMY_DATA = [ @@ -57,8 +58,8 @@ class DummyConnector(IConnector): - async def list(self, *args, **kwargs) -> list[DataProduct]: + async def list(self, query: IQuery | None = None) -> list[DataProduct]: return DUMMY_DATA - async def get(self, *args, **kwargs) -> DataProduct: + async def get(self, query: IQuery | None = None) -> DataProduct: return DUMMY_DATA[0] diff --git a/server/app/core/queries.py b/server/app/core/queries.py index 6e74387..438759e 100644 --- a/server/app/core/queries.py +++ b/server/app/core/queries.py @@ -1,3 +1,5 @@ +from typing import Any + from abc import ABC, abstractmethod @@ -5,7 +7,7 @@ class IQuery(ABC): """Interface for implementing repository queries""" @abstractmethod - def build(self) -> dict: + def build(self) -> dict[str, Any]: ... def __str__(self) -> str: @@ -21,7 +23,7 @@ class GetByID(IQuery): def __init__(self, id: str) -> None: self._id = id - def build(self) -> dict: + def build(self) -> dict[str, str]: return {"id": self._id} @@ -33,5 +35,5 @@ def __init__(self, page: int, size: int) -> None: self._page = page self._size = size - def build(self) -> dict: + def build(self) -> dict[str, int]: return {"page": self._page, "size": self._size} diff --git a/server/app/core/tests/fabrics.py b/server/app/core/tests/fabrics.py index 13c55f4..5ac9e0a 100644 --- a/server/app/core/tests/fabrics.py +++ b/server/app/core/tests/fabrics.py @@ -1,10 +1,12 @@ +from typing import Any + from ..connectors import IConnector from ..entities import Connector, DataProduct, Interface, Tag from ..manager import ConnectorsManager from ..queries import IQuery -def create_dataproduct(**kwargs) -> DataProduct: +def create_dataproduct(**kwargs: Any) -> DataProduct: data = { "id": "dataproduct1", "name": "cancer_2020", @@ -26,7 +28,7 @@ def create_dataproduct(**kwargs) -> DataProduct: return DataProduct(**data) # type: ignore -def create_query(result_dict: dict | None = None) -> IQuery: +def create_query(result_dict: dict[str, Any] | None = None) -> IQuery: class FakeQuery(IQuery): def build(self): return result_dict if result_dict is not None else {} @@ -35,16 +37,16 @@ def build(self): def create_connector( - id="test_connector_id", + id: str = "test_connector_id", data_products: list[DataProduct] | None = None, ) -> IConnector: items = [] if data_products is None else data_products class FakeConnector(IConnector): - async def list(self, *args, **kwargs) -> list[DataProduct]: + async def list(self, query: IQuery | None = None) -> list[DataProduct]: return items - async def get(self, *args, **kwargs) -> DataProduct: + async def get(self, query: IQuery | None = None) -> DataProduct: return items[0] return FakeConnector(id=id) diff --git a/server/app/core/usecases.py b/server/app/core/usecases.py index 5e080a2..0a487d4 100644 --- a/server/app/core/usecases.py +++ b/server/app/core/usecases.py @@ -1,13 +1,17 @@ +from typing import cast + from .entities import DataProduct from .queries import IQuery from .repository import get_repository async def get_data_products_list(query: IQuery | None = None) -> list[DataProduct]: - return await get_repository().list(query) + result = await get_repository().list(query) + return cast(list[DataProduct], result) async def get_data_product( connector_id: str, query: IQuery | None = None ) -> DataProduct: - return await get_repository().get(connector_id, query) + result = await get_repository().get(connector_id, query) + return cast(DataProduct, result) diff --git a/server/app/rest_api/routes/health_check.py b/server/app/rest_api/routes/health_check.py index 44aa2e4..d91c646 100644 --- a/server/app/rest_api/routes/health_check.py +++ b/server/app/rest_api/routes/health_check.py @@ -10,7 +10,7 @@ class HealthCheckRoutes(Routable): summary="Health check", response_model=HealthCheck, ) - async def get_data_products(self) -> dict: + async def get_data_products(self) -> dict[str, str]: """Returns a 200 status code if the service is up and running""" return {"status": "OK"}