From 777258ff68017cdd50fe441595b8e922015ba931 Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Mon, 28 Sep 2026 04:58:15 +0000 Subject: [PATCH 1/3] fix(typing): resolve mypy errors in api.routes.controller.api_keys --- gns3server/api/routes/controller/api_keys.py | 2 +- pyproject.toml | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/gns3server/api/routes/controller/api_keys.py b/gns3server/api/routes/controller/api_keys.py index 235cbe7de..a3bfa4b14 100644 --- a/gns3server/api/routes/controller/api_keys.py +++ b/gns3server/api/routes/controller/api_keys.py @@ -39,7 +39,7 @@ API_KEY_PREFIX = "gns3_" API_KEY_BYTES = 32 -def _generate_api_key(api_key_id: UUID = None) -> tuple[str, str, str, UUID]: +def _generate_api_key(api_key_id: UUID | None = None) -> tuple[str, str, str, UUID]: if api_key_id is None: api_key_id = uuid4() random_bytes = secrets.token_hex(API_KEY_BYTES) diff --git a/pyproject.toml b/pyproject.toml index 5f0789a77..b911216f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -340,7 +340,6 @@ module = [ "gns3server.api.routes.compute.vmware_nodes", # 10 "gns3server.api.routes.compute.vpcs_nodes", # 9 "gns3server.api.routes.controller.acl", # 5 - "gns3server.api.routes.controller.api_keys", # 1 "gns3server.api.routes.controller.chat", # 1 "gns3server.api.routes.controller.computes", # 6 "gns3server.api.routes.controller.controller", # 10 From 6526beeb3d3c170f48c471bfb423c5157316e7cf Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Mon, 28 Sep 2026 04:57:51 +0000 Subject: [PATCH 2/3] fix(typing): resolve mypy errors in api.routes.controller.chat --- gns3server/api/routes/controller/chat.py | 4 ++-- pyproject.toml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/gns3server/api/routes/controller/chat.py b/gns3server/api/routes/controller/chat.py index cc796fe26..e55e722f7 100644 --- a/gns3server/api/routes/controller/chat.py +++ b/gns3server/api/routes/controller/chat.py @@ -23,7 +23,7 @@ Nested under projects: /v3/projects/{project_id}/chat/... import json import logging import uuid -from typing import List, Optional +from typing import Any, List, Optional from fastapi import APIRouter, Depends, HTTPException, Request, status from fastapi.responses import StreamingResponse @@ -40,7 +40,7 @@ from .dependencies.authentication import get_current_active_user log = logging.getLogger(__name__) -responses = {404: {"model": schemas.ErrorMessage, "description": "Resource not found"}} +responses: dict[int | str, dict[str, Any]] = {404: {"model": schemas.ErrorMessage, "description": "Resource not found"}} router = APIRouter(responses=responses) diff --git a/pyproject.toml b/pyproject.toml index b911216f7..98edf55b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -340,7 +340,6 @@ module = [ "gns3server.api.routes.compute.vmware_nodes", # 10 "gns3server.api.routes.compute.vpcs_nodes", # 9 "gns3server.api.routes.controller.acl", # 5 - "gns3server.api.routes.controller.chat", # 1 "gns3server.api.routes.controller.computes", # 6 "gns3server.api.routes.controller.controller", # 10 "gns3server.api.routes.controller.dependencies.authentication", # 11 From bbdd9bf8617d738f80143d033921d807da35717e Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Mon, 28 Sep 2026 04:57:45 +0000 Subject: [PATCH 3/3] fix(typing): resolve mypy errors in api.routes.controller.drawings --- gns3server/api/routes/controller/drawings.py | 6 ++++-- pyproject.toml | 1 - 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/gns3server/api/routes/controller/drawings.py b/gns3server/api/routes/controller/drawings.py index 42e989f0f..6df9ddd91 100644 --- a/gns3server/api/routes/controller/drawings.py +++ b/gns3server/api/routes/controller/drawings.py @@ -20,7 +20,7 @@ API routes for drawings. from fastapi import APIRouter, Depends, status from fastapi.encoders import jsonable_encoder -from typing import List +from typing import Any, List from uuid import UUID from gns3server.controller import Controller @@ -30,7 +30,9 @@ from gns3server import schemas from .dependencies.database import get_repository from .dependencies.rbac import has_privilege -responses = {404: {"model": schemas.ErrorMessage, "description": "Project or drawing not found"}} +responses: dict[int | str, dict[str, Any]] = { + 404: {"model": schemas.ErrorMessage, "description": "Project or drawing not found"} +} router = APIRouter(responses=responses) diff --git a/pyproject.toml b/pyproject.toml index 98edf55b8..1b09de56e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -344,7 +344,6 @@ module = [ "gns3server.api.routes.controller.controller", # 10 "gns3server.api.routes.controller.dependencies.authentication", # 11 "gns3server.api.routes.controller.dependencies.database", # 2 - "gns3server.api.routes.controller.drawings", # 1 "gns3server.api.routes.controller.groups", # 6 "gns3server.api.routes.controller.images", # 9 "gns3server.api.routes.controller.links", # 27