From 306d8fbde47376de4bdd7008b935926f0fc531ff Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Wed, 30 Sep 2026 20:53:51 +0300 Subject: [PATCH] refactor: remove unused imports --- gns3server/agent/gns3_copilot/skills/loader.py | 1 - .../agent/gns3_copilot/tools_v2/config_tools_nornir.py | 2 +- .../gns3_copilot/tools_v2/display_tools_nornir.py | 2 +- .../agent/gns3_copilot/tools_v2/vpcs_tools_netmiko.py | 3 +-- .../utils/custom_netmiko/tests/test_vpcs_telnet.py | 1 - gns3server/agent/web_wireshark/manage_wireshark.py | 1 - gns3server/api/routes/compute/compute.py | 10 +++------- gns3server/api/routes/compute/images.py | 2 +- gns3server/api/routes/compute/projects.py | 3 +-- gns3server/api/routes/compute/qemu_nodes.py | 1 - gns3server/api/routes/controller/controller.py | 2 +- gns3server/api/routes/controller/links.py | 1 - gns3server/api/routes/controller/netmiko.py | 2 +- gns3server/api/routes/controller/templates.py | 2 +- gns3server/api/routes/controller/users.py | 2 +- gns3server/compute/builtin/nodes/ethernet_hub.py | 1 - gns3server/compute/docker/docker_vm.py | 3 +-- gns3server/compute/docker/iol_docker_vm.py | 1 - gns3server/compute/dynamips/hypervisor.py | 1 - gns3server/compute/dynamips/nios/nio.py | 1 - .../compute/dynamips/nios/nio_generic_ethernet.py | 1 - gns3server/compute/dynamips/nios/nio_linux_ethernet.py | 1 - gns3server/compute/dynamips/nios/nio_null.py | 1 - gns3server/compute/dynamips/nios/nio_tap.py | 1 - gns3server/compute/dynamips/nios/nio_udp.py | 1 - gns3server/compute/dynamips/nios/nio_unix.py | 1 - gns3server/compute/dynamips/nios/nio_vde.py | 1 - gns3server/compute/dynamips/nodes/atm_switch.py | 1 - gns3server/compute/dynamips/nodes/bridge.py | 2 -- gns3server/compute/dynamips/nodes/c1700.py | 1 - gns3server/compute/dynamips/nodes/c2600.py | 1 - gns3server/compute/dynamips/nodes/c2691.py | 1 - gns3server/compute/dynamips/nodes/c3600.py | 1 - gns3server/compute/dynamips/nodes/c3725.py | 1 - gns3server/compute/dynamips/nodes/c3745.py | 1 - gns3server/compute/dynamips/nodes/c7200.py | 1 - gns3server/compute/dynamips/nodes/ethernet_switch.py | 1 - .../compute/dynamips/nodes/frame_relay_switch.py | 1 - gns3server/compute/dynamips/nodes/router.py | 1 - gns3server/compute/project.py | 1 - gns3server/compute/virtualbox/virtualbox_vm.py | 1 - gns3server/controller/udp_link.py | 2 +- gns3server/db/repositories/api_keys.py | 2 -- gns3server/db/repositories/templates.py | 1 - gns3server/db/tasks.py | 1 - gns3server/db_migrations/versions/7ceeddd9c9a8_init.py | 3 --- gns3server/main.py | 2 -- gns3server/schemas/controller/computes.py | 2 +- gns3server/services/computes.py | 1 - gns3server/utils/asyncio/input_stream.py | 1 - gns3server/utils/asyncio/pool.py | 1 - gns3server/utils/asyncio/raw_command_server.py | 2 -- gns3server/utils/packet_filter_validation.py | 2 +- scripts/welcome.py | 2 +- tests/agent/mcp/test_device_tools.py | 1 - tests/agent/mcp/test_tool_params.py | 2 -- tests/api/routes/compute/test_compute.py | 2 -- tests/api/routes/compute/test_dynamips_nodes.py | 1 - tests/api/routes/compute/test_ethernet_switch_nodes.py | 2 +- tests/api/routes/compute/test_notifications.py | 6 ------ tests/api/routes/compute/test_projects.py | 2 -- tests/api/routes/controller/test_acl.py | 1 - tests/api/routes/controller/test_templates.py | 1 - tests/api/routes/test_index.py | 2 -- tests/compute/dynamips/test_dynamips_manager.py | 1 - tests/compute/qemu/test_qemu_manager.py | 3 +-- tests/compute/virtualbox/test_virtualbox_manager.py | 1 - tests/controller/test_controller.py | 2 +- tests/controller/test_gns3vm.py | 1 - tests/controller/test_project.py | 1 - tests/controller/test_project_open.py | 2 -- tests/controller/test_rbac.py | 1 - tests/controller/test_snapshot.py | 2 +- tests/utils/asyncio/test_embed_shell.py | 1 - tests/utils/test_images.py | 1 - 75 files changed, 21 insertions(+), 101 deletions(-) diff --git a/gns3server/agent/gns3_copilot/skills/loader.py b/gns3server/agent/gns3_copilot/skills/loader.py index aaad14e51..bfe8fa8b1 100644 --- a/gns3server/agent/gns3_copilot/skills/loader.py +++ b/gns3server/agent/gns3_copilot/skills/loader.py @@ -31,7 +31,6 @@ Supports loading injection skills and device/feature skills. """ import logging -import os from pathlib import Path from typing import Any, Dict diff --git a/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py b/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py index 79cd175f5..d16ef714c 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py +++ b/gns3server/agent/gns3_copilot/tools_v2/config_tools_nornir.py @@ -51,7 +51,7 @@ from gns3server.agent.gns3_copilot.gns3_client import get_gns3_server_host # Import custom Netmiko device types for GNS3 emulation # This registers gns3_huawei_telnet_ce and other custom device types # NOTE: Must be imported BEFORE any Nornir operations to ensure device types are registered -from gns3server.agent.gns3_copilot.utils import custom_netmiko, get_device_ports_from_topology +from gns3server.agent.gns3_copilot.utils import get_device_ports_from_topology from gns3server.agent.gns3_copilot.utils.command_filter import ( filter_forbidden_commands, ) diff --git a/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py b/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py index 428170794..c7526f2c0 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py +++ b/gns3server/agent/gns3_copilot/tools_v2/display_tools_nornir.py @@ -51,7 +51,7 @@ from gns3server.agent.gns3_copilot.gns3_client import get_gns3_server_host # Import custom Netmiko device types for GNS3 emulation # This registers gns3_huawei_telnet_ce and other custom device types # NOTE: Must be imported BEFORE any Nornir operations to ensure device types are registered -from gns3server.agent.gns3_copilot.utils import custom_netmiko, get_device_ports_from_topology +from gns3server.agent.gns3_copilot.utils import get_device_ports_from_topology from gns3server.agent.gns3_copilot.utils.command_filter import ( filter_forbidden_commands, ) diff --git a/gns3server/agent/gns3_copilot/tools_v2/vpcs_tools_netmiko.py b/gns3server/agent/gns3_copilot/tools_v2/vpcs_tools_netmiko.py index e1ce51fa6..2148106e7 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/vpcs_tools_netmiko.py +++ b/gns3server/agent/gns3_copilot/tools_v2/vpcs_tools_netmiko.py @@ -51,7 +51,7 @@ from gns3server.agent.gns3_copilot.gns3_client import get_gns3_server_host # Import custom Netmiko device types for GNS3 emulation # This registers gns3_vpcs_telnet and other custom device types # NOTE: Must be imported BEFORE any Nornir operations to ensure device types are registered -from gns3server.agent.gns3_copilot.utils import custom_netmiko, get_device_ports_from_topology +from gns3server.agent.gns3_copilot.utils import get_device_ports_from_topology # Explicitly register VPCS device type to ensure it is available try: @@ -585,7 +585,6 @@ class VPCSCommands(BaseTool): if __name__ == "__main__": # Example usage - import sys command_groups = json.dumps( { diff --git a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py index 36b173db7..d0c66f821 100644 --- a/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py +++ b/gns3server/agent/gns3_copilot/utils/custom_netmiko/tests/test_vpcs_telnet.py @@ -426,7 +426,6 @@ IP/MASK : 192.168.1.20/24""" def test_send_command_calls_strip_ansi(self): """Test that send_command calls _strip_ansi_codes.""" - from unittest.mock import patch instance = self.VPCSTelnet.__new__(self.VPCSTelnet) diff --git a/gns3server/agent/web_wireshark/manage_wireshark.py b/gns3server/agent/web_wireshark/manage_wireshark.py index 02445f477..82ea6274e 100755 --- a/gns3server/agent/web_wireshark/manage_wireshark.py +++ b/gns3server/agent/web_wireshark/manage_wireshark.py @@ -73,7 +73,6 @@ import json import logging import os import sys -from typing import Optional from gns3server.utils.uuid_validator import validate_uuid diff --git a/gns3server/api/routes/compute/compute.py b/gns3server/api/routes/compute/compute.py index cd750edb9..e83424cf6 100644 --- a/gns3server/api/routes/compute/compute.py +++ b/gns3server/api/routes/compute/compute.py @@ -19,26 +19,22 @@ API routes for compute. """ -import os from functools import lru_cache -from typing import List, Optional +from typing import List from uuid import UUID import cpuinfo import psutil -from fastapi import APIRouter, Body, HTTPException, Response, status -from fastapi.encoders import jsonable_encoder +from fastapi import APIRouter, HTTPException, status -from gns3server import schemas from gns3server.compute.port_manager import PortManager from gns3server.compute.project_manager import ProjectManager from gns3server.compute.qemu import Qemu from gns3server.compute.virtualbox import VirtualBox from gns3server.compute.vmware import VMware -from gns3server.config import Config from gns3server.utils.cpu_percent import CpuPercent from gns3server.utils.interfaces import interfaces -from gns3server.utils.path import get_default_project_directory, is_safe_path +from gns3server.utils.path import get_default_project_directory from gns3server.version import __version__ router = APIRouter() diff --git a/gns3server/api/routes/compute/images.py b/gns3server/api/routes/compute/images.py index 966063cc8..beb2e9582 100644 --- a/gns3server/api/routes/compute/images.py +++ b/gns3server/api/routes/compute/images.py @@ -22,7 +22,7 @@ import os import urllib.parse from typing import List -from fastapi import APIRouter, Body, HTTPException, Request, Response, status +from fastapi import APIRouter, Body, HTTPException, Request, status from fastapi.responses import FileResponse from gns3server.compute.docker import Docker diff --git a/gns3server/api/routes/compute/projects.py b/gns3server/api/routes/compute/projects.py index 0ab1caa1f..89b25b6b7 100644 --- a/gns3server/api/routes/compute/projects.py +++ b/gns3server/api/routes/compute/projects.py @@ -30,12 +30,11 @@ log = logging.getLogger() from typing import List from uuid import UUID -from fastapi import APIRouter, Depends, HTTPException, Query, Request, Response, status +from fastapi import APIRouter, Depends, HTTPException, Query, Request, status from fastapi.encoders import jsonable_encoder from fastapi.responses import FileResponse from gns3server import schemas -from gns3server.compute.base_manager import BaseManager from gns3server.compute.project import Project from gns3server.compute.project_manager import ProjectManager from gns3server.utils.path import is_safe_path diff --git a/gns3server/api/routes/compute/qemu_nodes.py b/gns3server/api/routes/compute/qemu_nodes.py index 1f5574654..17bcb3ca2 100644 --- a/gns3server/api/routes/compute/qemu_nodes.py +++ b/gns3server/api/routes/compute/qemu_nodes.py @@ -28,7 +28,6 @@ from fastapi.encoders import jsonable_encoder from fastapi.responses import StreamingResponse from gns3server import schemas -from gns3server.compute import qemu from gns3server.compute.qemu import Qemu from gns3server.compute.qemu.qemu_vm import QemuVM diff --git a/gns3server/api/routes/controller/controller.py b/gns3server/api/routes/controller/controller.py index 25999bdd9..e1f03b7e3 100644 --- a/gns3server/api/routes/controller/controller.py +++ b/gns3server/api/routes/controller/controller.py @@ -19,7 +19,7 @@ import logging import os import signal import time -from typing import Dict, List +from typing import Dict import psutil from fastapi import APIRouter, Depends, FastAPI, Request, WebSocket, WebSocketDisconnect, status diff --git a/gns3server/api/routes/controller/links.py b/gns3server/api/routes/controller/links.py index 6d805d4ae..b7fa2b40d 100644 --- a/gns3server/api/routes/controller/links.py +++ b/gns3server/api/routes/controller/links.py @@ -18,7 +18,6 @@ API routes for links. """ -import asyncio import logging import os from typing import Any, List, Union diff --git a/gns3server/api/routes/controller/netmiko.py b/gns3server/api/routes/controller/netmiko.py index 3e71d67c8..770d0cc4b 100644 --- a/gns3server/api/routes/controller/netmiko.py +++ b/gns3server/api/routes/controller/netmiko.py @@ -63,7 +63,7 @@ def _load_netmiko_device_types() -> schemas.NetmikoDeviceTypeList: # imported them yet); failures are logged by the package itself, do not # fail the whole endpoint. try: - from gns3server.agent.gns3_copilot.utils import custom_netmiko + pass except Exception as e: log.warning(f"Could not register GNS3-copilot custom Netmiko drivers: {e}") diff --git a/gns3server/api/routes/controller/templates.py b/gns3server/api/routes/controller/templates.py index 4263acede..cacb67fe9 100644 --- a/gns3server/api/routes/controller/templates.py +++ b/gns3server/api/routes/controller/templates.py @@ -28,7 +28,7 @@ log = logging.getLogger(__name__) from typing import Any, List, Optional, Union from uuid import UUID -from fastapi import APIRouter, Depends, HTTPException, Query, Request, Response, status +from fastapi import APIRouter, Depends, Query, Request, Response, status from gns3server import schemas from gns3server.controller import Controller diff --git a/gns3server/api/routes/controller/users.py b/gns3server/api/routes/controller/users.py index 1ba9a2eff..d072e4009 100644 --- a/gns3server/api/routes/controller/users.py +++ b/gns3server/api/routes/controller/users.py @@ -23,7 +23,7 @@ import logging from typing import List, Optional from uuid import UUID -from fastapi import APIRouter, Depends, HTTPException, Response, status +from fastapi import APIRouter, Depends, HTTPException, status from fastapi.security import OAuth2PasswordRequestForm import gns3server.db.models as models diff --git a/gns3server/compute/builtin/nodes/ethernet_hub.py b/gns3server/compute/builtin/nodes/ethernet_hub.py index 8fa5b29f6..a9314c9a4 100644 --- a/gns3server/compute/builtin/nodes/ethernet_hub.py +++ b/gns3server/compute/builtin/nodes/ethernet_hub.py @@ -14,7 +14,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import asyncio import logging from ...base_node import BaseNode diff --git a/gns3server/compute/docker/docker_vm.py b/gns3server/compute/docker/docker_vm.py index 4c33c311f..0503c3c7d 100644 --- a/gns3server/compute/docker/docker_vm.py +++ b/gns3server/compute/docker/docker_vm.py @@ -39,14 +39,13 @@ from gns3server.utils.asyncio import monitor_process, wait_for_file_creation, wa from gns3server.utils.asyncio.raw_command_server import AsyncioRawCommandServer from gns3server.utils.asyncio.ssh_server import AsyncioSSHServer from gns3server.utils.asyncio.telnet_server import AsyncioTelnetServer -from gns3server.utils.get_resource import get_resource from gns3server.utils.hostname import is_rfc1123_hostname_valid from ..adapters.ethernet_adapter import EthernetAdapter from ..base_node import BaseNode from ..error import ImageMissingError from ..nios.nio_udp import NIOUDP -from .docker_error import DockerError, DockerHttp304Error, DockerHttp404Error, DockerHttp409Error +from .docker_error import DockerError, DockerHttp404Error, DockerHttp409Error log = logging.getLogger(__name__) diff --git a/gns3server/compute/docker/iol_docker_vm.py b/gns3server/compute/docker/iol_docker_vm.py index 070195e6b..b8e30ec36 100644 --- a/gns3server/compute/docker/iol_docker_vm.py +++ b/gns3server/compute/docker/iol_docker_vm.py @@ -48,7 +48,6 @@ import shutil from gns3server.compute.adapters.ethernet_adapter import EthernetAdapter from gns3server.compute.docker.docker_error import DockerError, DockerHttp404Error -from gns3server.compute.docker.docker_vm import DockerVM from gns3server.compute.docker.vendor_docker_vm import VendorDockerVM from gns3server.compute.iou.utils.iou_export import nvram_export from gns3server.compute.iou.utils.iou_import import nvram_import diff --git a/gns3server/compute/dynamips/hypervisor.py b/gns3server/compute/dynamips/hypervisor.py index c528c3e6f..1216499e8 100644 --- a/gns3server/compute/dynamips/hypervisor.py +++ b/gns3server/compute/dynamips/hypervisor.py @@ -22,7 +22,6 @@ import asyncio import logging import os import subprocess -import sys from gns3server.utils.asyncio import wait_for_process_termination diff --git a/gns3server/compute/dynamips/nios/nio.py b/gns3server/compute/dynamips/nios/nio.py index 3b4c74969..a611014b4 100644 --- a/gns3server/compute/dynamips/nios/nio.py +++ b/gns3server/compute/dynamips/nios/nio.py @@ -19,7 +19,6 @@ Base interface for Dynamips Network Input/Output (NIO) module ("nio"). http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L451 """ -import asyncio import logging from ..dynamips_error import DynamipsError diff --git a/gns3server/compute/dynamips/nios/nio_generic_ethernet.py b/gns3server/compute/dynamips/nios/nio_generic_ethernet.py index 679c8bc60..b77e65f50 100644 --- a/gns3server/compute/dynamips/nios/nio_generic_ethernet.py +++ b/gns3server/compute/dynamips/nios/nio_generic_ethernet.py @@ -18,7 +18,6 @@ Interface for generic Ethernet NIOs (PCAP library). """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nios/nio_linux_ethernet.py b/gns3server/compute/dynamips/nios/nio_linux_ethernet.py index b85eb4b81..591a187a9 100644 --- a/gns3server/compute/dynamips/nios/nio_linux_ethernet.py +++ b/gns3server/compute/dynamips/nios/nio_linux_ethernet.py @@ -18,7 +18,6 @@ Interface for Linux Ethernet NIOs (Linux only). """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nios/nio_null.py b/gns3server/compute/dynamips/nios/nio_null.py index d47170329..26a77ff84 100644 --- a/gns3server/compute/dynamips/nios/nio_null.py +++ b/gns3server/compute/dynamips/nios/nio_null.py @@ -18,7 +18,6 @@ Interface for dummy NIOs (mostly for tests). """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nios/nio_tap.py b/gns3server/compute/dynamips/nios/nio_tap.py index 47ac30494..b8fbed8ce 100644 --- a/gns3server/compute/dynamips/nios/nio_tap.py +++ b/gns3server/compute/dynamips/nios/nio_tap.py @@ -18,7 +18,6 @@ Interface for TAP NIOs (UNIX based OSes only). """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nios/nio_udp.py b/gns3server/compute/dynamips/nios/nio_udp.py index 4419bf71f..a9ba056e5 100644 --- a/gns3server/compute/dynamips/nios/nio_udp.py +++ b/gns3server/compute/dynamips/nios/nio_udp.py @@ -18,7 +18,6 @@ Interface for UDP NIOs. """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nios/nio_unix.py b/gns3server/compute/dynamips/nios/nio_unix.py index 37fbc0858..39bbdc774 100644 --- a/gns3server/compute/dynamips/nios/nio_unix.py +++ b/gns3server/compute/dynamips/nios/nio_unix.py @@ -18,7 +18,6 @@ Interface for UNIX NIOs (Unix based OSes only). """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nios/nio_vde.py b/gns3server/compute/dynamips/nios/nio_vde.py index c44787a46..3c26cee82 100644 --- a/gns3server/compute/dynamips/nios/nio_vde.py +++ b/gns3server/compute/dynamips/nios/nio_vde.py @@ -18,7 +18,6 @@ Interface for VDE (Virtual Distributed Ethernet) NIOs (Unix based OSes only). """ -import asyncio import logging import uuid diff --git a/gns3server/compute/dynamips/nodes/atm_switch.py b/gns3server/compute/dynamips/nodes/atm_switch.py index 0c4591399..b6d55b523 100644 --- a/gns3server/compute/dynamips/nodes/atm_switch.py +++ b/gns3server/compute/dynamips/nodes/atm_switch.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual ATM switch module ("atmsw"). http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L593 """ -import asyncio import logging import re diff --git a/gns3server/compute/dynamips/nodes/bridge.py b/gns3server/compute/dynamips/nodes/bridge.py index 57b74e5e2..82baf36f1 100644 --- a/gns3server/compute/dynamips/nodes/bridge.py +++ b/gns3server/compute/dynamips/nodes/bridge.py @@ -19,8 +19,6 @@ Interface for Dynamips NIO bridge module ("nio_bridge"). http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L538 """ -import asyncio - from .device import Device diff --git a/gns3server/compute/dynamips/nodes/c1700.py b/gns3server/compute/dynamips/nodes/c1700.py index 7ead2f8df..0f609c78a 100644 --- a/gns3server/compute/dynamips/nodes/c1700.py +++ b/gns3server/compute/dynamips/nodes/c1700.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 1700 instances module ("c1700") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L428 """ -import asyncio import logging from ..adapters.c1700_mb_1fe import C1700_MB_1FE diff --git a/gns3server/compute/dynamips/nodes/c2600.py b/gns3server/compute/dynamips/nodes/c2600.py index 89159f57d..d22ff6b31 100644 --- a/gns3server/compute/dynamips/nodes/c2600.py +++ b/gns3server/compute/dynamips/nodes/c2600.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 2600 instances module ("c2600") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L404 """ -import asyncio import logging from ..adapters.c2600_mb_1e import C2600_MB_1E diff --git a/gns3server/compute/dynamips/nodes/c2691.py b/gns3server/compute/dynamips/nodes/c2691.py index 94a6bc499..26c267aa9 100644 --- a/gns3server/compute/dynamips/nodes/c2691.py +++ b/gns3server/compute/dynamips/nodes/c2691.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 2691 instances module ("c2691") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L387 """ -import asyncio import logging from ..adapters.gt96100_fe import GT96100_FE diff --git a/gns3server/compute/dynamips/nodes/c3600.py b/gns3server/compute/dynamips/nodes/c3600.py index 87f4bc55f..ef9f5f9e2 100644 --- a/gns3server/compute/dynamips/nodes/c3600.py +++ b/gns3server/compute/dynamips/nodes/c3600.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 3600 instances module ("c3600") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L366 """ -import asyncio import logging from ..adapters.leopard_2fe import Leopard_2FE diff --git a/gns3server/compute/dynamips/nodes/c3725.py b/gns3server/compute/dynamips/nodes/c3725.py index 73f73831e..16986be1f 100644 --- a/gns3server/compute/dynamips/nodes/c3725.py +++ b/gns3server/compute/dynamips/nodes/c3725.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 3725 instances module ("c3725") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L346 """ -import asyncio import logging from ..adapters.gt96100_fe import GT96100_FE diff --git a/gns3server/compute/dynamips/nodes/c3745.py b/gns3server/compute/dynamips/nodes/c3745.py index 74ed2d1b7..a268a1d81 100644 --- a/gns3server/compute/dynamips/nodes/c3745.py +++ b/gns3server/compute/dynamips/nodes/c3745.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 3745 instances module ("c3745") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L326 """ -import asyncio import logging from ..adapters.gt96100_fe import GT96100_FE diff --git a/gns3server/compute/dynamips/nodes/c7200.py b/gns3server/compute/dynamips/nodes/c7200.py index 3cf37b44c..c1957ec5c 100644 --- a/gns3server/compute/dynamips/nodes/c7200.py +++ b/gns3server/compute/dynamips/nodes/c7200.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Cisco 7200 instances module ("c7200") http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L294 """ -import asyncio import logging from ..adapters.c7200_io_fe import C7200_IO_FE diff --git a/gns3server/compute/dynamips/nodes/ethernet_switch.py b/gns3server/compute/dynamips/nodes/ethernet_switch.py index 78af98783..770f83bee 100644 --- a/gns3server/compute/dynamips/nodes/ethernet_switch.py +++ b/gns3server/compute/dynamips/nodes/ethernet_switch.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Ethernet switch module ("ethsw"). http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L558 """ -import asyncio import logging from gns3server.utils import parse_version diff --git a/gns3server/compute/dynamips/nodes/frame_relay_switch.py b/gns3server/compute/dynamips/nodes/frame_relay_switch.py index 5bed4fa17..71bd1e77c 100644 --- a/gns3server/compute/dynamips/nodes/frame_relay_switch.py +++ b/gns3server/compute/dynamips/nodes/frame_relay_switch.py @@ -19,7 +19,6 @@ Interface for Dynamips virtual Frame-Relay switch module. http://github.com/GNS3/dynamips/blob/master/README.hypervisor#L642 """ -import asyncio import logging from ..dynamips_error import DynamipsError diff --git a/gns3server/compute/dynamips/nodes/router.py b/gns3server/compute/dynamips/nodes/router.py index 809fab8d9..e479a291e 100644 --- a/gns3server/compute/dynamips/nodes/router.py +++ b/gns3server/compute/dynamips/nodes/router.py @@ -27,7 +27,6 @@ import logging import os import re import shutil -import sys import time log = logging.getLogger(__name__) diff --git a/gns3server/compute/project.py b/gns3server/compute/project.py index 3e4296110..713f221c5 100644 --- a/gns3server/compute/project.py +++ b/gns3server/compute/project.py @@ -27,7 +27,6 @@ from fastapi import HTTPException, status from gns3server.compute.compute_error import ComputeError, ComputeForbiddenError, ComputeNotFoundError -from ..config import Config from ..utils.asyncio import wait_run_in_executor from ..utils.path import check_path_allowed, get_default_project_directory from .notification_manager import NotificationManager diff --git a/gns3server/compute/virtualbox/virtualbox_vm.py b/gns3server/compute/virtualbox/virtualbox_vm.py index 729455d3d..d5d747503 100644 --- a/gns3server/compute/virtualbox/virtualbox_vm.py +++ b/gns3server/compute/virtualbox/virtualbox_vm.py @@ -25,7 +25,6 @@ import os import re import shlex import shutil -import sys import tempfile import uuid import xml.etree.ElementTree as ET diff --git a/gns3server/controller/udp_link.py b/gns3server/controller/udp_link.py index 1a543bcd3..2763c48e7 100644 --- a/gns3server/controller/udp_link.py +++ b/gns3server/controller/udp_link.py @@ -19,7 +19,7 @@ import asyncio import logging -from gns3server.utils.packet_filter_validation import FilterValidationError, validate_bpf_syntax +from gns3server.utils.packet_filter_validation import validate_bpf_syntax from .controller_error import ControllerError, ControllerNotFoundError from .link import _UNSET, Link diff --git a/gns3server/db/repositories/api_keys.py b/gns3server/db/repositories/api_keys.py index 2f53824cb..4a82b8242 100644 --- a/gns3server/db/repositories/api_keys.py +++ b/gns3server/db/repositories/api_keys.py @@ -15,14 +15,12 @@ # along with this program. If not, see . import logging -from datetime import datetime, timezone from typing import List, Optional, cast from uuid import UUID from sqlalchemy import delete, func, select, update from sqlalchemy.engine import CursorResult from sqlalchemy.ext.asyncio import AsyncSession -from sqlalchemy.orm import selectinload import gns3server.db.models as models diff --git a/gns3server/db/repositories/templates.py b/gns3server/db/repositories/templates.py index 591a72be7..cd3dec706 100644 --- a/gns3server/db/repositories/templates.py +++ b/gns3server/db/repositories/templates.py @@ -28,7 +28,6 @@ from sqlalchemy.orm import selectinload from sqlalchemy.orm.session import make_transient import gns3server.db.models as models -from gns3server import schemas from gns3server.controller.controller_error import ControllerNotFoundError from gns3server.utils.image_inventory import image_lock diff --git a/gns3server/db/tasks.py b/gns3server/db/tasks.py index efa191762..bf10fa2f8 100644 --- a/gns3server/db/tasks.py +++ b/gns3server/db/tasks.py @@ -27,7 +27,6 @@ from alembic.util.exc import CommandError from fastapi import FastAPI from pydantic import ValidationError from sqlalchemy import event -from sqlalchemy.engine import Engine from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine diff --git a/gns3server/db_migrations/versions/7ceeddd9c9a8_init.py b/gns3server/db_migrations/versions/7ceeddd9c9a8_init.py index 05570706e..15e187474 100644 --- a/gns3server/db_migrations/versions/7ceeddd9c9a8_init.py +++ b/gns3server/db_migrations/versions/7ceeddd9c9a8_init.py @@ -6,9 +6,6 @@ Create Date: 2023-01-11 08:55:25.116126 """ -import sqlalchemy as sa -from alembic import op - # revision identifiers, used by Alembic. revision = "7ceeddd9c9a8" down_revision = None diff --git a/gns3server/main.py b/gns3server/main.py index 5692fab79..70ed5ea47 100644 --- a/gns3server/main.py +++ b/gns3server/main.py @@ -32,8 +32,6 @@ import os import resource import sys -import gns3server.utils.get_resource - def daemonize(): """ diff --git a/gns3server/schemas/controller/computes.py b/gns3server/schemas/controller/computes.py index 95eb09ecb..3db2656cc 100644 --- a/gns3server/schemas/controller/computes.py +++ b/gns3server/schemas/controller/computes.py @@ -18,7 +18,7 @@ import uuid from enum import Enum from typing import Any, List, Optional, Union -from pydantic import BaseModel, ConfigDict, Field, SecretStr, field_validator, model_validator +from pydantic import BaseModel, ConfigDict, Field, SecretStr, model_validator from .base import DateTimeModelMixin from .nodes import NodeType diff --git a/gns3server/services/computes.py b/gns3server/services/computes.py index c8d2b33fe..ab328ca04 100644 --- a/gns3server/services/computes.py +++ b/gns3server/services/computes.py @@ -23,7 +23,6 @@ from gns3server import schemas from gns3server.controller import Controller from gns3server.controller.controller_error import ( ControllerBadRequestError, - ControllerForbiddenError, ControllerNotFoundError, ) from gns3server.db.repositories.computes import ComputesRepository diff --git a/gns3server/utils/asyncio/input_stream.py b/gns3server/utils/asyncio/input_stream.py index 90a3398b5..8268bf202 100644 --- a/gns3server/utils/asyncio/input_stream.py +++ b/gns3server/utils/asyncio/input_stream.py @@ -6,7 +6,6 @@ Parser for VT100 input stream. import re -import six from prompt_toolkit.key_binding.input_processor import KeyPress from prompt_toolkit.keys import Keys diff --git a/gns3server/utils/asyncio/pool.py b/gns3server/utils/asyncio/pool.py index 659222f6d..124038c5c 100644 --- a/gns3server/utils/asyncio/pool.py +++ b/gns3server/utils/asyncio/pool.py @@ -16,7 +16,6 @@ # along with this program. If not, see . import asyncio -import sys class Pool: diff --git a/gns3server/utils/asyncio/raw_command_server.py b/gns3server/utils/asyncio/raw_command_server.py index 87e0dbb05..6bda6cc73 100644 --- a/gns3server/utils/asyncio/raw_command_server.py +++ b/gns3server/utils/asyncio/raw_command_server.py @@ -16,9 +16,7 @@ import asyncio import asyncio.subprocess -import copy import logging -import re log = logging.getLogger(__name__) diff --git a/gns3server/utils/packet_filter_validation.py b/gns3server/utils/packet_filter_validation.py index 29febb2fb..39f994016 100644 --- a/gns3server/utils/packet_filter_validation.py +++ b/gns3server/utils/packet_filter_validation.py @@ -4,7 +4,7 @@ Packet filter parameter validation utilities. import logging import subprocess -from typing import Any, Dict, List, Optional +from typing import Any, Dict, List log = logging.getLogger(__name__) diff --git a/scripts/welcome.py b/scripts/welcome.py index 9e9dc4c84..d9ecd21a0 100644 --- a/scripts/welcome.py +++ b/scripts/welcome.py @@ -25,7 +25,7 @@ import time import urllib.request from json import loads as convert -from dialog import Dialog, PythonDialogBug +from dialog import Dialog class Welcome_dialog: diff --git a/tests/agent/mcp/test_device_tools.py b/tests/agent/mcp/test_device_tools.py index 07339cb5b..f44ebdae9 100644 --- a/tests/agent/mcp/test_device_tools.py +++ b/tests/agent/mcp/test_device_tools.py @@ -8,7 +8,6 @@ device_config_send / device_show_run / vpcs_config_set. import json from unittest.mock import MagicMock, patch -import pytest VPCS_MOD = "gns3server.agent.gns3_copilot.tools_v2.vpcs_tools_netmiko" diff --git a/tests/agent/mcp/test_tool_params.py b/tests/agent/mcp/test_tool_params.py index 05c7de063..e2287f8e1 100644 --- a/tests/agent/mcp/test_tool_params.py +++ b/tests/agent/mcp/test_tool_params.py @@ -10,8 +10,6 @@ This catches issues like: """ import ast -import os -import sys from pathlib import Path import pytest diff --git a/tests/api/routes/compute/test_compute.py b/tests/api/routes/compute/test_compute.py index 433b908c6..02925a5da 100644 --- a/tests/api/routes/compute/test_compute.py +++ b/tests/api/routes/compute/test_compute.py @@ -21,8 +21,6 @@ from fastapi import FastAPI, status from httpx import AsyncClient from gns3server.compute.project import Project -from gns3server.config import Config -from gns3server.schemas.config import ServerSettings from gns3server.version import __version__ pytestmark = pytest.mark.asyncio diff --git a/tests/api/routes/compute/test_dynamips_nodes.py b/tests/api/routes/compute/test_dynamips_nodes.py index 60ea6acf6..8e77972fd 100644 --- a/tests/api/routes/compute/test_dynamips_nodes.py +++ b/tests/api/routes/compute/test_dynamips_nodes.py @@ -16,7 +16,6 @@ import os import stat -import sys from unittest.mock import patch import pytest diff --git a/tests/api/routes/compute/test_ethernet_switch_nodes.py b/tests/api/routes/compute/test_ethernet_switch_nodes.py index 7930b6bb4..b942876c3 100644 --- a/tests/api/routes/compute/test_ethernet_switch_nodes.py +++ b/tests/api/routes/compute/test_ethernet_switch_nodes.py @@ -22,7 +22,7 @@ from fastapi import FastAPI, status from httpx import AsyncClient from gns3server.compute.project import Project -from tests.utils import AsyncioMagicMock, asyncio_patch +from tests.utils import asyncio_patch # The builtin Ethernet switch talks to uBridge (brctl/bridge modules) instead of # the Dynamips hypervisor. These are the seams we stub so the routes can be diff --git a/tests/api/routes/compute/test_notifications.py b/tests/api/routes/compute/test_notifications.py index b0636d99c..752afdaf8 100644 --- a/tests/api/routes/compute/test_notifications.py +++ b/tests/api/routes/compute/test_notifications.py @@ -15,12 +15,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import json - -import pytest - -from gns3server.compute.notification_manager import NotificationManager - # @pytest.mark.asyncio # async def test_notification_ws(compute_api): diff --git a/tests/api/routes/compute/test_projects.py b/tests/api/routes/compute/test_projects.py index 30866aaa6..5d2c50cf2 100644 --- a/tests/api/routes/compute/test_projects.py +++ b/tests/api/routes/compute/test_projects.py @@ -16,7 +16,6 @@ import os import uuid -from unittest.mock import patch import pytest from fastapi import FastAPI, status @@ -241,7 +240,6 @@ class TestBatchNIOEdgeCases: Dynamips.create_nio is async (returns a coroutine) unlike the sync base version. The batch handler must await it. """ - import asyncio as _asyncio import inspect class _FakeDynamips: diff --git a/tests/api/routes/controller/test_acl.py b/tests/api/routes/controller/test_acl.py index e8f015a7a..8cbb19655 100644 --- a/tests/api/routes/controller/test_acl.py +++ b/tests/api/routes/controller/test_acl.py @@ -21,7 +21,6 @@ from fastapi import FastAPI, status from httpx import AsyncClient from sqlalchemy.ext.asyncio import AsyncSession -from gns3server.controller import Controller from gns3server.db.repositories.rbac import RbacRepository from gns3server.db.repositories.users import UsersRepository from gns3server.schemas.controller.rbac import ACECreate diff --git a/tests/api/routes/controller/test_templates.py b/tests/api/routes/controller/test_templates.py index 34e60ef2d..932d0a9d4 100644 --- a/tests/api/routes/controller/test_templates.py +++ b/tests/api/routes/controller/test_templates.py @@ -17,7 +17,6 @@ import json import os -import shutil import unittest.mock import uuid from pathlib import Path diff --git a/tests/api/routes/test_index.py b/tests/api/routes/test_index.py index 8a99c0d54..2fe907418 100644 --- a/tests/api/routes/test_index.py +++ b/tests/api/routes/test_index.py @@ -21,8 +21,6 @@ import pytest from fastapi import FastAPI, status from httpx import AsyncClient -from gns3server.controller import Controller -from gns3server.utils.get_resource import get_resource from gns3server.version import __version__ pytestmark = pytest.mark.asyncio diff --git a/tests/compute/dynamips/test_dynamips_manager.py b/tests/compute/dynamips/test_dynamips_manager.py index 2d39592bf..7926e379a 100644 --- a/tests/compute/dynamips/test_dynamips_manager.py +++ b/tests/compute/dynamips/test_dynamips_manager.py @@ -18,7 +18,6 @@ import os import tempfile import uuid -from unittest.mock import patch import pytest import pytest_asyncio diff --git a/tests/compute/qemu/test_qemu_manager.py b/tests/compute/qemu/test_qemu_manager.py index bab61bf17..da4e7e7a2 100644 --- a/tests/compute/qemu/test_qemu_manager.py +++ b/tests/compute/qemu/test_qemu_manager.py @@ -18,12 +18,11 @@ import os import platform import stat import sys -from unittest.mock import MagicMock, patch +from unittest.mock import patch import pytest from gns3server.compute.qemu import Qemu -from gns3server.compute.qemu.qemu_error import QemuError from tests.utils import asyncio_patch diff --git a/tests/compute/virtualbox/test_virtualbox_manager.py b/tests/compute/virtualbox/test_virtualbox_manager.py index 4e60da7da..5aa1ddb28 100644 --- a/tests/compute/virtualbox/test_virtualbox_manager.py +++ b/tests/compute/virtualbox/test_virtualbox_manager.py @@ -18,7 +18,6 @@ import os import stat import tempfile -from unittest.mock import patch import pytest import pytest_asyncio diff --git a/tests/controller/test_controller.py b/tests/controller/test_controller.py index 355576d3f..0914c5d3d 100644 --- a/tests/controller/test_controller.py +++ b/tests/controller/test_controller.py @@ -20,7 +20,7 @@ import json import os import socket import uuid -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock import pytest from watchdog.events import DirCreatedEvent, FileCreatedEvent diff --git a/tests/controller/test_gns3vm.py b/tests/controller/test_gns3vm.py index d9832e4f5..f0f03a0d2 100644 --- a/tests/controller/test_gns3vm.py +++ b/tests/controller/test_gns3vm.py @@ -15,7 +15,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import sys import pytest from pydantic import SecretStr diff --git a/tests/controller/test_project.py b/tests/controller/test_project.py index 3a5d3b175..4c87119fb 100644 --- a/tests/controller/test_project.py +++ b/tests/controller/test_project.py @@ -24,7 +24,6 @@ from uuid import uuid4 import pytest import pytest_asyncio -from gns3server.config import Config from gns3server.controller.controller_error import ( ComputeConflictError, ControllerError, diff --git a/tests/controller/test_project_open.py b/tests/controller/test_project_open.py index f3830bee3..bc3fe83fd 100644 --- a/tests/controller/test_project_open.py +++ b/tests/controller/test_project_open.py @@ -20,9 +20,7 @@ import os import pytest -from gns3server.controller.compute import Compute from gns3server.controller.project import Project -from tests.utils import asyncio_patch @pytest.fixture diff --git a/tests/controller/test_rbac.py b/tests/controller/test_rbac.py index 6dd3b7dd2..4ea0de736 100644 --- a/tests/controller/test_rbac.py +++ b/tests/controller/test_rbac.py @@ -18,7 +18,6 @@ import uuid import pytest -import pytest_asyncio from fastapi import FastAPI, status from httpx import AsyncClient from httpx_ws.transport import ASGIWebSocketTransport diff --git a/tests/controller/test_snapshot.py b/tests/controller/test_snapshot.py index 4e4a1a4a5..c180eb957 100644 --- a/tests/controller/test_snapshot.py +++ b/tests/controller/test_snapshot.py @@ -17,7 +17,7 @@ import os from unittest import mock -from unittest.mock import MagicMock, patch +from unittest.mock import MagicMock from uuid import uuid4 import pytest diff --git a/tests/utils/asyncio/test_embed_shell.py b/tests/utils/asyncio/test_embed_shell.py index 930151e10..8b2e48bc1 100644 --- a/tests/utils/asyncio/test_embed_shell.py +++ b/tests/utils/asyncio/test_embed_shell.py @@ -15,7 +15,6 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -import asyncio # from gns3server.utils.asyncio.embed_shell import EmbedShell diff --git a/tests/utils/test_images.py b/tests/utils/test_images.py index 404540337..43568076b 100644 --- a/tests/utils/test_images.py +++ b/tests/utils/test_images.py @@ -17,7 +17,6 @@ import os import sys import threading -from unittest.mock import patch import pytest