From 6de28367ed8aa715880b72c431c7ba0d94313072 Mon Sep 17 00:00:00 2001 From: Erik Reid <erik.reid@geant.org> Date: Thu, 22 May 2025 13:21:40 +0200 Subject: [PATCH] typing fixes --- mapping_provider/api/map.py | 22 +++++++++++++--------- tox.ini | 5 ++++- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/mapping_provider/api/map.py b/mapping_provider/api/map.py index af7fe27..ae4638c 100644 --- a/mapping_provider/api/map.py +++ b/mapping_provider/api/map.py @@ -1,6 +1,7 @@ - import jsonschema import requests +from typing import Any + from fastapi import APIRouter from pydantic import BaseModel @@ -13,7 +14,7 @@ class Site(BaseModel): name: str @classmethod - def from_inprov_site(cls, site: dict) -> 'Site': + def from_inprov_site(cls, site: dict[str, Any]) -> 'Site': return cls( latitude=site['latitude'], longitude=site['longitude'], @@ -28,7 +29,7 @@ class Router(BaseModel): site: str @classmethod - def from_inprov_router(cls, router: dict) -> 'Router': + def from_inprov_router(cls, router: dict[str, Any]) -> 'Router': return cls( fqdn = router['fqdn'], site = router['site'] @@ -43,7 +44,7 @@ class Endpoint(BaseModel): interface: str @classmethod - def from_inprov_endpoint(cls, endpoint: dict) -> 'Endpoint': + def from_inprov_endpoint(cls, endpoint: dict[str, Any]) -> 'Endpoint': return cls( hostname = endpoint['hostname'], interface = endpoint['interface'], @@ -53,7 +54,7 @@ class Overlays(BaseModel): speed: int @classmethod - def from_inprov_overlays(cls, overlays: dict) -> 'Overlays': + def from_inprov_overlays(cls, overlays: dict[str, Any]) -> 'Overlays': return cls( speed = overlays['speed'], ) @@ -66,7 +67,7 @@ class Service(BaseModel): overlays: Overlays @classmethod - def from_inprov_service(cls, service: dict) -> 'Service': + def from_inprov_service(cls, service: dict[str, Any]) -> 'Service': return cls( sid = service['sid'], name = service['name'], @@ -170,7 +171,8 @@ def get_sites() -> SiteList: site_list_json = rv.json() jsonschema.validate(site_list_json, INPROV_SITE_LIST_SCHEMA) - return SiteList(sites=map(Site.from_inprov_site, site_list_json)) + rsp_sites = map(Site.from_inprov_site, site_list_json) + return SiteList(sites=list(rsp_sites)) @router.get("/routers") @@ -188,7 +190,8 @@ def get_routers() -> RouterList: router_list_json = rv.json() jsonschema.validate(router_list_json, INPROV_ROUTER_LIST_SCHEMA) - return RouterList(routers=map(Router.from_inprov_router, router_list_json)) + rsp_routers = map(Router.from_inprov_router, router_list_json) + return RouterList(routers=list(rsp_routers)) @router.get("/trunks") @@ -206,5 +209,6 @@ def get_trunks() -> ServiceList: service_list_json = rv.json() jsonschema.validate(service_list_json, INPROV_SERVICE_LIST_SCHEMA) - return ServiceList(services=map(Service.from_inprov_service, service_list_json)) + rsp_services = map(Service.from_inprov_service, service_list_json) + return ServiceList(services=list(rsp_services)) diff --git a/tox.ini b/tox.ini index 2c5490b..2a820fe 100644 --- a/tox.ini +++ b/tox.ini @@ -8,7 +8,10 @@ commands = ruff check mapping_provider test [testenv:typecheck] description = Type-check code with mypy -deps = mypy types-jsonschema types-requests +deps = + mypy + types-jsonschema + types-requests commands = mypy mapping_provider [testenv:docs] -- GitLab