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