diff --git a/mapping_provider/api/map.py b/mapping_provider/api/map.py index af7fe275a1cab6dcb18ca141ed3ca56adc3d00bf..ae4638c14edb246826bb98c04f2b9f6a092c90af 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 2c5490b62d71b883ec7ecac55f03248c6012d07d..2a820fee2d3f0b473e8ae995c0be5289a8fff683 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]