Skip to content

Commit

Permalink
Type bugs fixed
Browse files Browse the repository at this point in the history
  • Loading branch information
vladimir-gladkii committed Aug 26, 2024
1 parent 2f849d9 commit d259c08
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 15 deletions.
4 changes: 3 additions & 1 deletion server/app/core/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
from .repository import get_repository, init_repository # noqa
from .repository import get_repository, init_repository

__all__ = ["get_repository", "init_repository"]
4 changes: 3 additions & 1 deletion server/app/core/connectors/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,3 @@
from .interface import IConnector # noqa
from .interface import IConnector

__all__ = ["IConnector"]
5 changes: 3 additions & 2 deletions server/app/core/connectors/dummy.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
from ..entities import Connector, DataProduct, Interface, Tag
from ..queries import IQuery
from .interface import IConnector

DUMMY_DATA = [
Expand Down Expand Up @@ -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]
8 changes: 5 additions & 3 deletions server/app/core/queries.py
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
from typing import Any

from abc import ABC, abstractmethod


class IQuery(ABC):
"""Interface for implementing repository queries"""

@abstractmethod
def build(self) -> dict:
def build(self) -> dict[str, Any]:
...

def __str__(self) -> str:
Expand All @@ -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}


Expand All @@ -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}
12 changes: 7 additions & 5 deletions server/app/core/tests/fabrics.py
Original file line number Diff line number Diff line change
@@ -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",
Expand All @@ -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 {}
Expand All @@ -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)
Expand Down
8 changes: 6 additions & 2 deletions server/app/core/usecases.py
Original file line number Diff line number Diff line change
@@ -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)
2 changes: 1 addition & 1 deletion server/app/rest_api/routes/health_check.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"}

Expand Down

0 comments on commit d259c08

Please sign in to comment.