From 2443fa66022b1ed347cfb26ad1e33446d77cad29 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Sat, 24 May 2025 16:18:53 +0200 Subject: [PATCH] fixed some types, etc --- mapping_provider/__init__.py | 6 ++---- mapping_provider/backends/cache.py | 4 ++-- mapping_provider/backends/inventory.py | 2 +- mapping_provider/backends/services.py | 5 +++-- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/mapping_provider/__init__.py b/mapping_provider/__init__.py index bce382c..0e87117 100644 --- a/mapping_provider/__init__.py +++ b/mapping_provider/__init__.py @@ -12,7 +12,7 @@ from fastapi import FastAPI from mapping_provider import config, environment from mapping_provider.api import common, map -from mapping_provider.backends import correlator, services, cache +from mapping_provider.backends import correlator, inventory, cache logger = logging.getLogger(__name__) @@ -23,8 +23,6 @@ async def lifespan(app: FastAPI, app_config: config.Configuration) -> AsyncItera if not app_config.rmq: return # don't start any background tasks - assert cache.cache_dir is None # sanity - with tempfile.TemporaryDirectory() as _tmp_working_dir: cache.init(_tmp_working_dir) @@ -41,7 +39,7 @@ async def lifespan(app: FastAPI, app_config: config.Configuration) -> AsyncItera _correlator_thread.start() _inventory_thread = threading.Thread( - target=services.worker_proc, + target=inventory.worker_proc, daemon=True, kwargs={ 'inventory_base_uri': app_config.inventory, diff --git a/mapping_provider/backends/cache.py b/mapping_provider/backends/cache.py index 16c81c6..879ce54 100644 --- a/mapping_provider/backends/cache.py +++ b/mapping_provider/backends/cache.py @@ -32,11 +32,11 @@ def set(filename: str, data: dict[str, Any]) -> None: logger.debug(f"wrote cached data: {filename}") -def get(filename: str) -> dict[str, Any]: +def get(filename: str) -> Any: """ Loads the cached data, parses it as json & returns the object. """ assert _cache_dir is not None, f"cache_dir hasn't been initialized" with open(os.path.join(_cache_dir, filename), 'r') as f: logger.debug(f"reading cached data: {filename}") - return json.load(f) \ No newline at end of file + return json.load(f) diff --git a/mapping_provider/backends/inventory.py b/mapping_provider/backends/inventory.py index c0e15b1..861dbc6 100644 --- a/mapping_provider/backends/inventory.py +++ b/mapping_provider/backends/inventory.py @@ -20,7 +20,7 @@ INPROV_MAP_SERVICES_CACHE_FILENAME = 'inprov-map-services.json' def _load_and_cache_json( key: str, url: str, - cache_filename: str) -> None: + cache_filename: str) -> dict[str, Any]: """ Load the JSON from the URL, return and cache it. diff --git a/mapping_provider/backends/services.py b/mapping_provider/backends/services.py index ae8c537..750c0cc 100644 --- a/mapping_provider/backends/services.py +++ b/mapping_provider/backends/services.py @@ -18,6 +18,7 @@ class Overlays(BaseModel): class Service(BaseModel): sid: str + scid: str name: str type: str endpoints: list[Endpoint] @@ -44,7 +45,7 @@ def _services(service_type: str | None = None) -> Generator[Service, None, None] logger.exception('not enough data available to build the service list') return - def _get_down_correlator_services(): + def _get_down_correlator_services() -> Generator[str, None, None]: for _e in correlator_state['endpoints']: if _e['up']: continue @@ -88,4 +89,4 @@ def build_service_info_list(service_type: str | None = None) -> ServiceList: """ return a list of mappable info about all operational services """ - return ServiceList(services=_services(service_type)) + return ServiceList(services=list(_services(service_type))) -- GitLab