From 3b993b464f4f0ece14b0c6941244f6d8a2a166c8 Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Wed, 30 Sep 2026 20:51:22 +0300 Subject: [PATCH] style: sort imports in schemas --- gns3server/schemas/__init__.py | 158 +++++++++--------- gns3server/schemas/common.py | 5 +- .../schemas/compute/atm_switch_nodes.py | 3 +- gns3server/schemas/compute/cloud_nodes.py | 5 +- gns3server/schemas/compute/docker_nodes.py | 7 +- gns3server/schemas/compute/dynamips_nodes.py | 5 +- .../schemas/compute/ethernet_hub_nodes.py | 5 +- .../schemas/compute/ethernet_switch_nodes.py | 7 +- .../compute/frame_relay_switch_nodes.py | 3 +- gns3server/schemas/compute/iou_nodes.py | 5 +- gns3server/schemas/compute/nat_nodes.py | 5 +- gns3server/schemas/compute/nios.py | 5 +- gns3server/schemas/compute/qemu_nodes.py | 7 +- .../schemas/compute/virtualbox_nodes.py | 7 +- gns3server/schemas/compute/vmware_nodes.py | 7 +- gns3server/schemas/compute/vpcs_nodes.py | 5 +- gns3server/schemas/config.py | 4 +- gns3server/schemas/controller/appliances.py | 5 +- gns3server/schemas/controller/base.py | 3 +- gns3server/schemas/controller/capabilities.py | 3 +- gns3server/schemas/controller/chat.py | 3 +- gns3server/schemas/controller/computes.py | 8 +- gns3server/schemas/controller/drawings.py | 3 +- gns3server/schemas/controller/gns3vm.py | 5 +- gns3server/schemas/controller/images.py | 3 +- gns3server/schemas/controller/labels.py | 3 +- gns3server/schemas/controller/links.py | 5 +- .../schemas/controller/llm_model_configs.py | 6 +- gns3server/schemas/controller/netmiko.py | 3 +- gns3server/schemas/controller/nodes.py | 7 +- gns3server/schemas/controller/pools.py | 7 +- gns3server/schemas/controller/projects.py | 5 +- gns3server/schemas/controller/rbac.py | 7 +- gns3server/schemas/controller/settings.py | 2 +- gns3server/schemas/controller/snapshots.py | 3 +- .../schemas/controller/templates/__init__.py | 7 +- .../controller/templates/cloud_templates.py | 8 +- .../controller/templates/docker_templates.py | 7 +- .../templates/dynamips_templates.py | 25 +-- .../templates/ethernet_hub_templates.py | 7 +- .../templates/ethernet_switch_templates.py | 10 +- .../controller/templates/iou_templates.py | 8 +- .../controller/templates/qemu_templates.py | 26 +-- .../templates/virtualbox_templates.py | 18 +- .../controller/templates/vmware_templates.py | 18 +- .../controller/templates/vpcs_templates.py | 8 +- gns3server/schemas/controller/tokens.py | 1 + gns3server/schemas/controller/topology.py | 12 +- gns3server/schemas/controller/users.py | 3 +- gns3server/schemas/qemu_disk_image.py | 5 +- gns3server/schemas/version.py | 3 +- 51 files changed, 271 insertions(+), 219 deletions(-) diff --git a/gns3server/schemas/__init__.py b/gns3server/schemas/__init__.py index 81e5fbc7e..34939c954 100644 --- a/gns3server/schemas/__init__.py +++ b/gns3server/schemas/__init__.py @@ -15,102 +15,107 @@ # along with this program. If not, see . # General schemas -from .config import ServerConfig from .common import ErrorMessage -from .version import Version - -# Controller schemas -from .controller.links import ( - LinkCreate, - LinkUpdate, - Link, - UDPPortInfo, - EthernetPortInfo, - LinkCapture, - MarkerCreate, - MarkerUpdate, - MarkerDefinitionCreate, -) +from .config import ServerConfig +from .controller.appliances import Appliance, ApplianceVersion, ApplianceVersionV8 from .controller.computes import ( + AutoIdlePC, + Compute, ComputeCreate, + ComputeDockerImage, ComputeUpdate, ComputeVirtualBoxVM, ComputeVMwareVM, - ComputeDockerImage, - AutoIdlePC, - Compute, ) -from .controller.templates import TemplateCreate, TemplateUpdate, TemplateUsage, Template -from .controller.images import Image, ImageType, ImageSyncRequest, ImageSyncJob -from .controller.appliances import ApplianceVersion, ApplianceVersionV8, Appliance from .controller.drawings import Drawing from .controller.gns3vm import GNS3VM -from .controller.nodes import NodeCreate, NodeUpdate, NodeDuplicate, NodeCapture, Node -from .controller.projects import ( - ProjectCreate, - ProjectUpdate, - ProjectDuplicate, - Project, - ProjectFile, - ProjectCompression, - NodeFile, +from .controller.images import Image, ImageSyncJob, ImageSyncRequest, ImageType + +# Controller schemas +from .controller.links import ( + EthernetPortInfo, + Link, + LinkCapture, + LinkCreate, + LinkUpdate, + MarkerCreate, + MarkerDefinitionCreate, + MarkerUpdate, + UDPPortInfo, ) +from .controller.nodes import Node, NodeCapture, NodeCreate, NodeDuplicate, NodeUpdate +from .controller.projects import ( + NodeFile, + Project, + ProjectCompression, + ProjectCreate, + ProjectDuplicate, + ProjectFile, + ProjectUpdate, +) +from .controller.templates import Template, TemplateCreate, TemplateUpdate, TemplateUsage from .controller.users import ( - UserCreate, - UserUpdate, + Credentials, LoggedInUserUpdate, User, - Credentials, + UserCreate, + UserGroup, UserGroupCreate, UserGroupUpdate, - UserGroup, + UserUpdate, ) +from .version import Version # Conditionally import AI-related schemas try: - from .controller.llm_model_configs import ( - LLMModelConfigData, - LLMModelConfigCreate, - LLMModelConfigUpdate, - LLMModelConfigResponse, - LLMModelConfigWithSource, - LLMModelConfigInheritedResponse, - LLMModelConfigListResponse, - ) from .controller.chat import ( - OpenAIToolCall, ChatRequest, ChatResponse, - OpenAIMessage, - ConversationHistory, ChatSession, + ConversationHistory, + OpenAIMessage, + OpenAIToolCall, RenameSession, ) + from .controller.llm_model_configs import ( + LLMModelConfigCreate, + LLMModelConfigData, + LLMModelConfigInheritedResponse, + LLMModelConfigListResponse, + LLMModelConfigResponse, + LLMModelConfigUpdate, + LLMModelConfigWithSource, + ) except ImportError: # AI schemas are not available (should not happen as they don't depend on external libs) pass -from .controller.rbac import RoleCreate, RoleUpdate, Role, Privilege, ACECreate, ACEUpdate, ACE -from .controller.settings import SettingsResponse, SettingsUpdate, SettingsUpdateResponse -from .controller.pools import Resource, ResourceCreate, ResourcePoolCreate, ResourcePoolUpdate, ResourcePool -from .controller.tokens import Token, ApiKeyCreate, RefreshTokenRequest -from .controller.snapshots import SnapshotCreate, Snapshot -from .controller.iou_license import IOULicense -from .controller.capabilities import Capabilities -from .controller.netmiko import NetmikoDeviceType, NetmikoDeviceTypeList +from .compute.atm_switch_nodes import ATMSwitch, ATMSwitchCreate, ATMSwitchUpdate +from .compute.cloud_nodes import Cloud, CloudCreate, CloudUpdate +from .compute.docker_nodes import Docker, DockerCreate, DockerUpdate +from .compute.dynamips_nodes import Dynamips, DynamipsCreate, DynamipsUpdate +from .compute.ethernet_hub_nodes import EthernetHub, EthernetHubCreate, EthernetHubUpdate +from .compute.ethernet_switch_nodes import EthernetSwitch, EthernetSwitchCreate, EthernetSwitchUpdate +from .compute.frame_relay_switch_nodes import FrameRelaySwitch, FrameRelaySwitchCreate, FrameRelaySwitchUpdate +from .compute.iou_nodes import IOU, IOUCreate, IOUStart, IOUUpdate +from .compute.nat_nodes import NAT, NATCreate, NATUpdate -# Controller template schemas -from .controller.templates.vpcs_templates import VPCSTemplate, VPCSTemplateUpdate +# Compute schemas +from .compute.nios import TAPNIO, UDPNIO, BatchNIOCreate, BatchNIOEntry, EthernetNIO, MarkerRebuild, MarkerToggle +from .compute.qemu_nodes import Qemu, QemuCreate, QemuUpdate +from .compute.virtualbox_nodes import VirtualBox, VirtualBoxCreate, VirtualBoxUpdate +from .compute.vmware_nodes import VMware, VMwareCreate, VMwareUpdate +from .compute.vpcs_nodes import VPCS, VPCSCreate, VPCSUpdate +from .controller.capabilities import Capabilities +from .controller.iou_license import IOULicense +from .controller.netmiko import NetmikoDeviceType, NetmikoDeviceTypeList +from .controller.pools import Resource, ResourceCreate, ResourcePool, ResourcePoolCreate, ResourcePoolUpdate +from .controller.rbac import ACE, ACECreate, ACEUpdate, Privilege, Role, RoleCreate, RoleUpdate +from .controller.settings import SettingsResponse, SettingsUpdate, SettingsUpdateResponse +from .controller.snapshots import Snapshot, SnapshotCreate from .controller.templates.cloud_templates import CloudTemplate, CloudTemplateUpdate -from .controller.templates.iou_templates import IOUTemplate, IOUTemplateUpdate from .controller.templates.docker_templates import DockerTemplate, DockerTemplateUpdate -from .controller.templates.ethernet_hub_templates import EthernetHubTemplate, EthernetHubTemplateUpdate -from .controller.templates.ethernet_switch_templates import EthernetSwitchTemplate, EthernetSwitchTemplateUpdate -from .controller.templates.virtualbox_templates import VirtualBoxTemplate, VirtualBoxTemplateUpdate -from .controller.templates.vmware_templates import VMwareTemplate, VMwareTemplateUpdate -from .controller.templates.qemu_templates import QemuTemplate, QemuTemplateUpdate from .controller.templates.dynamips_templates import ( - DynamipsTemplate, C1700DynamipsTemplate, C1700DynamipsTemplateUpdate, C2600DynamipsTemplate, @@ -125,23 +130,18 @@ from .controller.templates.dynamips_templates import ( C3745DynamipsTemplateUpdate, C7200DynamipsTemplate, C7200DynamipsTemplateUpdate, + DynamipsTemplate, ) +from .controller.templates.ethernet_hub_templates import EthernetHubTemplate, EthernetHubTemplateUpdate +from .controller.templates.ethernet_switch_templates import EthernetSwitchTemplate, EthernetSwitchTemplateUpdate +from .controller.templates.iou_templates import IOUTemplate, IOUTemplateUpdate +from .controller.templates.qemu_templates import QemuTemplate, QemuTemplateUpdate +from .controller.templates.virtualbox_templates import VirtualBoxTemplate, VirtualBoxTemplateUpdate +from .controller.templates.vmware_templates import VMwareTemplate, VMwareTemplateUpdate -# Compute schemas -from .compute.nios import UDPNIO, TAPNIO, EthernetNIO, MarkerToggle, MarkerRebuild, BatchNIOEntry, BatchNIOCreate -from .compute.atm_switch_nodes import ATMSwitchCreate, ATMSwitchUpdate, ATMSwitch -from .compute.cloud_nodes import CloudCreate, CloudUpdate, Cloud -from .compute.docker_nodes import DockerCreate, DockerUpdate, Docker -from .compute.dynamips_nodes import DynamipsCreate, DynamipsUpdate, Dynamips -from .compute.ethernet_hub_nodes import EthernetHubCreate, EthernetHubUpdate, EthernetHub -from .compute.ethernet_switch_nodes import EthernetSwitchCreate, EthernetSwitchUpdate, EthernetSwitch -from .compute.frame_relay_switch_nodes import FrameRelaySwitchCreate, FrameRelaySwitchUpdate, FrameRelaySwitch -from .compute.qemu_nodes import QemuCreate, QemuUpdate, Qemu -from .compute.iou_nodes import IOUCreate, IOUUpdate, IOUStart, IOU -from .compute.nat_nodes import NATCreate, NATUpdate, NAT -from .compute.vpcs_nodes import VPCSCreate, VPCSUpdate, VPCS -from .compute.vmware_nodes import VMwareCreate, VMwareUpdate, VMware -from .compute.virtualbox_nodes import VirtualBoxCreate, VirtualBoxUpdate, VirtualBox +# Controller template schemas +from .controller.templates.vpcs_templates import VPCSTemplate, VPCSTemplateUpdate +from .controller.tokens import ApiKeyCreate, RefreshTokenRequest, Token # Schemas for both controller and compute -from .qemu_disk_image import QemuDiskImageFormat, QemuDiskImageCreate, QemuDiskImageUpdate +from .qemu_disk_image import QemuDiskImageCreate, QemuDiskImageFormat, QemuDiskImageUpdate diff --git a/gns3server/schemas/common.py b/gns3server/schemas/common.py index 68ca0b861..3b700ee5e 100644 --- a/gns3server/schemas/common.py +++ b/gns3server/schemas/common.py @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field, field_validator -from typing import Optional from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field, field_validator class ErrorMessage(BaseModel): diff --git a/gns3server/schemas/compute/atm_switch_nodes.py b/gns3server/schemas/compute/atm_switch_nodes.py index 9d126bfe9..72572d5ff 100644 --- a/gns3server/schemas/compute/atm_switch_nodes.py +++ b/gns3server/schemas/compute/atm_switch_nodes.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel from typing import Optional from uuid import UUID +from pydantic import BaseModel + from ..common import NodeStatus diff --git a/gns3server/schemas/compute/cloud_nodes.py b/gns3server/schemas/compute/cloud_nodes.py index 8fee188a1..5e8c0eb00 100644 --- a/gns3server/schemas/compute/cloud_nodes.py +++ b/gns3server/schemas/compute/cloud_nodes.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, Union, List from enum import Enum +from typing import List, Optional, Union from uuid import UUID +from pydantic import BaseModel, Field + from ..common import NodeStatus diff --git a/gns3server/schemas/compute/docker_nodes.py b/gns3server/schemas/compute/docker_nodes.py index 1745b6d2e..228238fe9 100644 --- a/gns3server/schemas/compute/docker_nodes.py +++ b/gns3server/schemas/compute/docker_nodes.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field, field_validator -from typing import Optional, List +from typing import List, Optional from uuid import UUID -from ..common import NodeStatus, CustomAdapter, ConsoleType, AuxType, ExtraConfig +from pydantic import BaseModel, Field, field_validator + +from ..common import AuxType, ConsoleType, CustomAdapter, ExtraConfig, NodeStatus class DockerBase(BaseModel): diff --git a/gns3server/schemas/compute/dynamips_nodes.py b/gns3server/schemas/compute/dynamips_nodes.py index 6292b400b..efb04a2b6 100644 --- a/gns3server/schemas/compute/dynamips_nodes.py +++ b/gns3server/schemas/compute/dynamips_nodes.py @@ -15,11 +15,12 @@ # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, List from enum import Enum +from typing import List, Optional from uuid import UUID +from pydantic import BaseModel, Field + from ..common import NodeStatus diff --git a/gns3server/schemas/compute/ethernet_hub_nodes.py b/gns3server/schemas/compute/ethernet_hub_nodes.py index 866e57a38..07b2ae30d 100644 --- a/gns3server/schemas/compute/ethernet_hub_nodes.py +++ b/gns3server/schemas/compute/ethernet_hub_nodes.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel -from typing import Optional, List +from typing import List, Optional from uuid import UUID +from pydantic import BaseModel + from ..common import NodeStatus diff --git a/gns3server/schemas/compute/ethernet_switch_nodes.py b/gns3server/schemas/compute/ethernet_switch_nodes.py index 16bd63b3e..2d3dbb154 100644 --- a/gns3server/schemas/compute/ethernet_switch_nodes.py +++ b/gns3server/schemas/compute/ethernet_switch_nodes.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field, model_validator -from typing import Optional, List -from uuid import UUID from enum import Enum +from typing import List, Optional +from uuid import UUID + +from pydantic import BaseModel, Field, model_validator from ..common import NodeStatus diff --git a/gns3server/schemas/compute/frame_relay_switch_nodes.py b/gns3server/schemas/compute/frame_relay_switch_nodes.py index fbb86b553..b44decf3d 100644 --- a/gns3server/schemas/compute/frame_relay_switch_nodes.py +++ b/gns3server/schemas/compute/frame_relay_switch_nodes.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel from typing import Optional from uuid import UUID +from pydantic import BaseModel + from ..common import NodeStatus diff --git a/gns3server/schemas/compute/iou_nodes.py b/gns3server/schemas/compute/iou_nodes.py index e51fa1a28..1b52bf29e 100644 --- a/gns3server/schemas/compute/iou_nodes.py +++ b/gns3server/schemas/compute/iou_nodes.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import Optional from uuid import UUID -from ..common import NodeStatus, ConsoleType +from pydantic import BaseModel, Field + +from ..common import ConsoleType, NodeStatus class IOUBase(BaseModel): diff --git a/gns3server/schemas/compute/nat_nodes.py b/gns3server/schemas/compute/nat_nodes.py index e3c569251..9e48918fd 100644 --- a/gns3server/schemas/compute/nat_nodes.py +++ b/gns3server/schemas/compute/nat_nodes.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, Union, List from enum import Enum +from typing import List, Optional, Union from uuid import UUID +from pydantic import BaseModel, Field + from ..common import NodeStatus diff --git a/gns3server/schemas/compute/nios.py b/gns3server/schemas/compute/nios.py index f05d82737..38078812c 100644 --- a/gns3server/schemas/compute/nios.py +++ b/gns3server/schemas/compute/nios.py @@ -15,9 +15,10 @@ # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, List from enum import Enum +from typing import List, Optional + +from pydantic import BaseModel, Field class UDPNIOType(str, Enum): diff --git a/gns3server/schemas/compute/qemu_nodes.py b/gns3server/schemas/compute/qemu_nodes.py index 275ac92bb..aa72106e2 100644 --- a/gns3server/schemas/compute/qemu_nodes.py +++ b/gns3server/schemas/compute/qemu_nodes.py @@ -14,12 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, List from enum import Enum +from typing import List, Optional from uuid import UUID -from ..common import NodeStatus, CustomAdapter +from pydantic import BaseModel, Field + +from ..common import CustomAdapter, NodeStatus class QemuPlatform(str, Enum): diff --git a/gns3server/schemas/compute/virtualbox_nodes.py b/gns3server/schemas/compute/virtualbox_nodes.py index d05692ebc..ef5258f4e 100644 --- a/gns3server/schemas/compute/virtualbox_nodes.py +++ b/gns3server/schemas/compute/virtualbox_nodes.py @@ -14,12 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, List from enum import Enum +from typing import List, Optional from uuid import UUID -from ..common import NodeStatus, CustomAdapter +from pydantic import BaseModel, Field + +from ..common import CustomAdapter, NodeStatus class VirtualBoxConsoleType(str, Enum): diff --git a/gns3server/schemas/compute/vmware_nodes.py b/gns3server/schemas/compute/vmware_nodes.py index f838419a3..b518eb6d1 100644 --- a/gns3server/schemas/compute/vmware_nodes.py +++ b/gns3server/schemas/compute/vmware_nodes.py @@ -14,12 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional, List from enum import Enum +from typing import List, Optional from uuid import UUID -from ..common import NodeStatus, CustomAdapter +from pydantic import BaseModel, Field + +from ..common import CustomAdapter, NodeStatus class VMwareConsoleType(str, Enum): diff --git a/gns3server/schemas/compute/vpcs_nodes.py b/gns3server/schemas/compute/vpcs_nodes.py index fda0634c4..c4a80cc08 100644 --- a/gns3server/schemas/compute/vpcs_nodes.py +++ b/gns3server/schemas/compute/vpcs_nodes.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional from enum import Enum +from typing import Optional from uuid import UUID +from pydantic import BaseModel, Field + from ..common import NodeStatus diff --git a/gns3server/schemas/config.py b/gns3server/schemas/config.py index c5becb3b5..f6c978911 100644 --- a/gns3server/schemas/config.py +++ b/gns3server/schemas/config.py @@ -15,11 +15,11 @@ # along with this program. If not, see . import socket - from enum import Enum -from pydantic import ConfigDict, BaseModel, Field, SecretStr, FilePath, DirectoryPath, field_validator, model_validator from typing import List, Optional +from pydantic import BaseModel, ConfigDict, DirectoryPath, Field, FilePath, SecretStr, field_validator, model_validator + class ControllerSettings(BaseModel): jwt_secret_key: Optional[str] = Field( diff --git a/gns3server/schemas/controller/appliances.py b/gns3server/schemas/controller/appliances.py index 3660067b8..16a9810ea 100644 --- a/gns3server/schemas/controller/appliances.py +++ b/gns3server/schemas/controller/appliances.py @@ -19,9 +19,10 @@ from enum import Enum from typing import Annotated, List, Literal, Optional, Union from uuid import UUID -from pydantic import AnyUrl, BaseModel, Discriminator, EmailStr, Field, Tag, model_validator -from ..common import ExtraConfig +from pydantic import AnyUrl, BaseModel, Discriminator, EmailStr, Field, Tag, model_validator + +from ..common import ExtraConfig # ============================================================================ # Shared Enums diff --git a/gns3server/schemas/controller/base.py b/gns3server/schemas/controller/base.py index e413dd479..6e4ac3fae 100644 --- a/gns3server/schemas/controller/base.py +++ b/gns3server/schemas/controller/base.py @@ -14,8 +14,9 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from typing import Optional from datetime import datetime +from typing import Optional + from pydantic import BaseModel diff --git a/gns3server/schemas/controller/capabilities.py b/gns3server/schemas/controller/capabilities.py index e54ab05dd..6e881ede7 100644 --- a/gns3server/schemas/controller/capabilities.py +++ b/gns3server/schemas/controller/capabilities.py @@ -15,9 +15,10 @@ # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import List +from pydantic import BaseModel, Field + from .nodes import NodeType diff --git a/gns3server/schemas/controller/chat.py b/gns3server/schemas/controller/chat.py index 9289baf0b..93ef442f7 100644 --- a/gns3server/schemas/controller/chat.py +++ b/gns3server/schemas/controller/chat.py @@ -18,8 +18,9 @@ Chat API schemas for GNS3 Copilot integration. """ +from typing import Any, Dict, List, Literal, Optional + from pydantic import BaseModel, Field -from typing import Optional, List, Dict, Any, Literal class OpenAIToolCall(BaseModel): diff --git a/gns3server/schemas/controller/computes.py b/gns3server/schemas/controller/computes.py index f8612f43d..95eb09ecb 100644 --- a/gns3server/schemas/controller/computes.py +++ b/gns3server/schemas/controller/computes.py @@ -15,13 +15,13 @@ # along with this program. If not, see . import uuid - -from pydantic import ConfigDict, BaseModel, Field, SecretStr, field_validator, model_validator -from typing import List, Optional, Union, Any from enum import Enum +from typing import Any, List, Optional, Union + +from pydantic import BaseModel, ConfigDict, Field, SecretStr, field_validator, model_validator -from .nodes import NodeType from .base import DateTimeModelMixin +from .nodes import NodeType class Protocol(str, Enum): diff --git a/gns3server/schemas/controller/drawings.py b/gns3server/schemas/controller/drawings.py index f06727279..036829503 100644 --- a/gns3server/schemas/controller/drawings.py +++ b/gns3server/schemas/controller/drawings.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import Optional from uuid import UUID +from pydantic import BaseModel, Field + class Drawing(BaseModel): """ diff --git a/gns3server/schemas/controller/gns3vm.py b/gns3server/schemas/controller/gns3vm.py index 9ea8e9aa3..71a975d43 100644 --- a/gns3server/schemas/controller/gns3vm.py +++ b/gns3server/schemas/controller/gns3vm.py @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field class WhenExit(str, Enum): diff --git a/gns3server/schemas/controller/images.py b/gns3server/schemas/controller/images.py index d2569fd26..a1d4d43a4 100644 --- a/gns3server/schemas/controller/images.py +++ b/gns3server/schemas/controller/images.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import ConfigDict, BaseModel, Field from enum import Enum from datetime import datetime from typing import Optional, Literal +from pydantic import BaseModel, ConfigDict, Field + from .base import DateTimeModelMixin diff --git a/gns3server/schemas/controller/labels.py b/gns3server/schemas/controller/labels.py index 2eb770265..0cfdc0c9c 100644 --- a/gns3server/schemas/controller/labels.py +++ b/gns3server/schemas/controller/labels.py @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import Optional, Union +from pydantic import BaseModel, Field + class Label(BaseModel): """ diff --git a/gns3server/schemas/controller/links.py b/gns3server/schemas/controller/links.py index 24c9f00e9..5dd8f1752 100644 --- a/gns3server/schemas/controller/links.py +++ b/gns3server/schemas/controller/links.py @@ -14,11 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field, field_validator -from typing import List, Optional, Tuple from enum import Enum +from typing import List, Optional, Tuple from uuid import UUID, uuid4 +from pydantic import BaseModel, Field, field_validator + from .labels import Label diff --git a/gns3server/schemas/controller/llm_model_configs.py b/gns3server/schemas/controller/llm_model_configs.py index d5de5ee0b..78381d6d8 100644 --- a/gns3server/schemas/controller/llm_model_configs.py +++ b/gns3server/schemas/controller/llm_model_configs.py @@ -14,12 +14,12 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from typing import Optional, Literal, Union -from pydantic import BaseModel, Field, ConfigDict, field_validator +from typing import Literal, Optional, Union from uuid import UUID -from .base import DateTimeModelMixin +from pydantic import BaseModel, ConfigDict, Field, field_validator +from .base import DateTimeModelMixin # Valid model types ModelType = Literal["text", "vision", "stt", "tts", "multimodal", "embedding", "reranking", "other"] diff --git a/gns3server/schemas/controller/netmiko.py b/gns3server/schemas/controller/netmiko.py index 00eb6e5a4..2f4b3c284 100644 --- a/gns3server/schemas/controller/netmiko.py +++ b/gns3server/schemas/controller/netmiko.py @@ -15,9 +15,10 @@ # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import List +from pydantic import BaseModel, Field + class NetmikoDeviceType(BaseModel): """ diff --git a/gns3server/schemas/controller/nodes.py b/gns3server/schemas/controller/nodes.py index 9faf260d3..d4e9bb43d 100644 --- a/gns3server/schemas/controller/nodes.py +++ b/gns3server/schemas/controller/nodes.py @@ -14,13 +14,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import List, Optional, Union from enum import Enum +from typing import List, Optional, Union from uuid import UUID, uuid4 +from pydantic import BaseModel, Field + +from ..common import ConsoleType, CustomAdapter, NodeStatus from .labels import Label -from ..common import ConsoleType, NodeStatus, CustomAdapter class NodeType(str, Enum): diff --git a/gns3server/schemas/controller/pools.py b/gns3server/schemas/controller/pools.py index d0d4f7957..f72c488d4 100644 --- a/gns3server/schemas/controller/pools.py +++ b/gns3server/schemas/controller/pools.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from typing import Optional -from pydantic import ConfigDict, BaseModel, Field -from uuid import UUID from enum import Enum +from typing import Optional +from uuid import UUID + +from pydantic import BaseModel, ConfigDict, Field from .base import DateTimeModelMixin diff --git a/gns3server/schemas/controller/projects.py b/gns3server/schemas/controller/projects.py index e1210f99f..a7e3212b5 100644 --- a/gns3server/schemas/controller/projects.py +++ b/gns3server/schemas/controller/projects.py @@ -15,10 +15,11 @@ # along with this program. If not, see . -from pydantic import BaseModel, Field, HttpUrl +from enum import Enum from typing import List, Optional from uuid import UUID -from enum import Enum + +from pydantic import BaseModel, Field, HttpUrl class ProjectStatus(str, Enum): diff --git a/gns3server/schemas/controller/rbac.py b/gns3server/schemas/controller/rbac.py index 11e0c1d6e..15ec07cab 100644 --- a/gns3server/schemas/controller/rbac.py +++ b/gns3server/schemas/controller/rbac.py @@ -14,10 +14,11 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from typing import Optional, List -from pydantic import ConfigDict, BaseModel, Field -from uuid import UUID from enum import Enum +from typing import List, Optional +from uuid import UUID + +from pydantic import BaseModel, ConfigDict, Field from .base import DateTimeModelMixin diff --git a/gns3server/schemas/controller/settings.py b/gns3server/schemas/controller/settings.py index 87b4ab2a5..aa457dc31 100644 --- a/gns3server/schemas/controller/settings.py +++ b/gns3server/schemas/controller/settings.py @@ -28,7 +28,7 @@ a secret leak at worst. from pathlib import Path from typing import List, Optional -from pydantic import ConfigDict, BaseModel, Field +from pydantic import BaseModel, ConfigDict, Field from ..config import ( BuiltinSymbolTheme, diff --git a/gns3server/schemas/controller/snapshots.py b/gns3server/schemas/controller/snapshots.py index 4bdd6e938..bf46f2bbe 100644 --- a/gns3server/schemas/controller/snapshots.py +++ b/gns3server/schemas/controller/snapshots.py @@ -15,10 +15,11 @@ # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import Optional from uuid import UUID +from pydantic import BaseModel, Field + class SnapshotBase(BaseModel): """ diff --git a/gns3server/schemas/controller/templates/__init__.py b/gns3server/schemas/controller/templates/__init__.py index b71c64772..da207e528 100644 --- a/gns3server/schemas/controller/templates/__init__.py +++ b/gns3server/schemas/controller/templates/__init__.py @@ -14,13 +14,14 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import ConfigDict, BaseModel, Field -from typing import Optional, List from enum import Enum +from typing import List, Optional from uuid import UUID -from ..nodes import NodeType +from pydantic import BaseModel, ConfigDict, Field + from ..base import DateTimeModelMixin +from ..nodes import NodeType class Category(str, Enum): diff --git a/gns3server/schemas/controller/templates/cloud_templates.py b/gns3server/schemas/controller/templates/cloud_templates.py index e9ec0f6bf..8f7ac6c13 100644 --- a/gns3server/schemas/controller/templates/cloud_templates.py +++ b/gns3server/schemas/controller/templates/cloud_templates.py @@ -15,11 +15,13 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.cloud_nodes import EthernetPort, TAPPort, UDPPort, CloudConsoleType +from typing import List, Optional, Union from pydantic import Field -from typing import Optional, Union, List + +from gns3server.schemas.compute.cloud_nodes import CloudConsoleType, EthernetPort, TAPPort, UDPPort + +from . import Category, TemplateBase class CloudTemplate(TemplateBase): diff --git a/gns3server/schemas/controller/templates/docker_templates.py b/gns3server/schemas/controller/templates/docker_templates.py index 4123630e8..a96c97397 100644 --- a/gns3server/schemas/controller/templates/docker_templates.py +++ b/gns3server/schemas/controller/templates/docker_templates.py @@ -15,11 +15,12 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from ...common import ConsoleType, AuxType, CustomAdapter, ExtraConfig +from typing import List, Optional from pydantic import Field -from typing import Optional, List + +from ...common import AuxType, ConsoleType, CustomAdapter, ExtraConfig +from . import Category, TemplateBase class DockerTemplateBase(TemplateBase): diff --git a/gns3server/schemas/controller/templates/dynamips_templates.py b/gns3server/schemas/controller/templates/dynamips_templates.py index 69505051d..77e3f853a 100644 --- a/gns3server/schemas/controller/templates/dynamips_templates.py +++ b/gns3server/schemas/controller/templates/dynamips_templates.py @@ -14,20 +14,21 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from . import Category, TemplateBase - -from gns3server.schemas.compute.dynamips_nodes import ( - DynamipsConsoleType, - DynamipsPlatform, - DynamipsAdapters, - DynamipsWics, - DynamipsNPE, - DynamipsMidplane, -) +from enum import Enum +from typing import Optional from pydantic import Field -from typing import Optional -from enum import Enum + +from gns3server.schemas.compute.dynamips_nodes import ( + DynamipsAdapters, + DynamipsConsoleType, + DynamipsMidplane, + DynamipsNPE, + DynamipsPlatform, + DynamipsWics, +) + +from . import Category, TemplateBase class DynamipsTemplateBase(TemplateBase): diff --git a/gns3server/schemas/controller/templates/ethernet_hub_templates.py b/gns3server/schemas/controller/templates/ethernet_hub_templates.py index a5b675937..8e273bc40 100644 --- a/gns3server/schemas/controller/templates/ethernet_hub_templates.py +++ b/gns3server/schemas/controller/templates/ethernet_hub_templates.py @@ -14,12 +14,13 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.ethernet_hub_nodes import EthernetHubPort +from typing import List, Optional from pydantic import Field -from typing import Optional, List +from gns3server.schemas.compute.ethernet_hub_nodes import EthernetHubPort + +from . import Category, TemplateBase DEFAULT_PORTS = [ EthernetHubPort(port_number=0, name="Ethernet0"), diff --git a/gns3server/schemas/controller/templates/ethernet_switch_templates.py b/gns3server/schemas/controller/templates/ethernet_switch_templates.py index 5e6f81f03..ddcaa05d5 100644 --- a/gns3server/schemas/controller/templates/ethernet_switch_templates.py +++ b/gns3server/schemas/controller/templates/ethernet_switch_templates.py @@ -15,12 +15,14 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.ethernet_switch_nodes import EthernetSwitchPort +from enum import Enum +from typing import List, Optional from pydantic import Field -from typing import Optional, List -from enum import Enum + +from gns3server.schemas.compute.ethernet_switch_nodes import EthernetSwitchPort + +from . import Category, TemplateBase DEFAULT_PORTS = [ EthernetSwitchPort(port_number=0, name="Ethernet0", vlan=1, type="access", ethertype="0x8100"), diff --git a/gns3server/schemas/controller/templates/iou_templates.py b/gns3server/schemas/controller/templates/iou_templates.py index 36468d8aa..a67c6764a 100644 --- a/gns3server/schemas/controller/templates/iou_templates.py +++ b/gns3server/schemas/controller/templates/iou_templates.py @@ -15,11 +15,13 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.iou_nodes import ConsoleType +from typing import Optional from pydantic import Field -from typing import Optional + +from gns3server.schemas.compute.iou_nodes import ConsoleType + +from . import Category, TemplateBase class IOUTemplateBase(TemplateBase): diff --git a/gns3server/schemas/controller/templates/qemu_templates.py b/gns3server/schemas/controller/templates/qemu_templates.py index 116dfc33c..e4f2421b5 100644 --- a/gns3server/schemas/controller/templates/qemu_templates.py +++ b/gns3server/schemas/controller/templates/qemu_templates.py @@ -15,20 +15,22 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.qemu_nodes import ( - QemuConsoleType, - QemuPlatform, - QemuAdapterType, - QemuOnCloseAction, - QemuBootPriority, - QemuDiskInterfaceType, - QemuProcessPriority, - CustomAdapter, -) +from typing import List, Optional from pydantic import Field -from typing import Optional, List + +from gns3server.schemas.compute.qemu_nodes import ( + CustomAdapter, + QemuAdapterType, + QemuBootPriority, + QemuConsoleType, + QemuDiskInterfaceType, + QemuOnCloseAction, + QemuPlatform, + QemuProcessPriority, +) + +from . import Category, TemplateBase class QemuTemplate(TemplateBase): diff --git a/gns3server/schemas/controller/templates/virtualbox_templates.py b/gns3server/schemas/controller/templates/virtualbox_templates.py index b9d966ec1..577f8ddc6 100644 --- a/gns3server/schemas/controller/templates/virtualbox_templates.py +++ b/gns3server/schemas/controller/templates/virtualbox_templates.py @@ -14,16 +14,18 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.virtualbox_nodes import ( - VirtualBoxConsoleType, - VirtualBoxAdapterType, - VirtualBoxOnCloseAction, - CustomAdapter, -) +from typing import List, Optional from pydantic import Field -from typing import Optional, List + +from gns3server.schemas.compute.virtualbox_nodes import ( + CustomAdapter, + VirtualBoxAdapterType, + VirtualBoxConsoleType, + VirtualBoxOnCloseAction, +) + +from . import Category, TemplateBase class VirtualBoxTemplateBase(TemplateBase): diff --git a/gns3server/schemas/controller/templates/vmware_templates.py b/gns3server/schemas/controller/templates/vmware_templates.py index 85d9dce96..4a0012489 100644 --- a/gns3server/schemas/controller/templates/vmware_templates.py +++ b/gns3server/schemas/controller/templates/vmware_templates.py @@ -15,16 +15,18 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.vmware_nodes import ( - VMwareConsoleType, - VMwareAdapterType, - VMwareOnCloseAction, - CustomAdapter, -) +from typing import List, Optional from pydantic import Field -from typing import Optional, List + +from gns3server.schemas.compute.vmware_nodes import ( + CustomAdapter, + VMwareAdapterType, + VMwareConsoleType, + VMwareOnCloseAction, +) + +from . import Category, TemplateBase class VMwareTemplateBase(TemplateBase): diff --git a/gns3server/schemas/controller/templates/vpcs_templates.py b/gns3server/schemas/controller/templates/vpcs_templates.py index e9f6e0b4f..a9167afc1 100644 --- a/gns3server/schemas/controller/templates/vpcs_templates.py +++ b/gns3server/schemas/controller/templates/vpcs_templates.py @@ -15,11 +15,13 @@ # along with this program. If not, see . -from . import Category, TemplateBase -from gns3server.schemas.compute.vpcs_nodes import ConsoleType +from typing import Optional from pydantic import Field -from typing import Optional + +from gns3server.schemas.compute.vpcs_nodes import ConsoleType + +from . import Category, TemplateBase class VPCSTemplate(TemplateBase): diff --git a/gns3server/schemas/controller/tokens.py b/gns3server/schemas/controller/tokens.py index 2ac14dda6..c6bde5d0e 100644 --- a/gns3server/schemas/controller/tokens.py +++ b/gns3server/schemas/controller/tokens.py @@ -15,6 +15,7 @@ # along with this program. If not, see . from typing import Optional + from pydantic import BaseModel diff --git a/gns3server/schemas/controller/topology.py b/gns3server/schemas/controller/topology.py index 26ff78b3e..0c4f39489 100644 --- a/gns3server/schemas/controller/topology.py +++ b/gns3server/schemas/controller/topology.py @@ -19,18 +19,18 @@ # This file contains the validation for checking a .gns3 file # +from enum import Enum +from typing import List, Optional +from uuid import UUID + +from pydantic import BaseModel, Field + from .computes import Compute from .drawings import Drawing from .links import Link from .nodes import Node - from .projects import Supplier, Variable -from pydantic import BaseModel, Field -from typing import Optional, List -from enum import Enum -from uuid import UUID - class TopologyType(str, Enum): topology = "topology" diff --git a/gns3server/schemas/controller/users.py b/gns3server/schemas/controller/users.py index 8d8b90c13..44593ae31 100644 --- a/gns3server/schemas/controller/users.py +++ b/gns3server/schemas/controller/users.py @@ -16,9 +16,10 @@ from datetime import datetime from typing import Optional -from pydantic import ConfigDict, EmailStr, BaseModel, Field, SecretStr from uuid import UUID +from pydantic import BaseModel, ConfigDict, EmailStr, Field, SecretStr + from .base import DateTimeModelMixin diff --git a/gns3server/schemas/qemu_disk_image.py b/gns3server/schemas/qemu_disk_image.py index 1c0f596ad..9a3b591b9 100644 --- a/gns3server/schemas/qemu_disk_image.py +++ b/gns3server/schemas/qemu_disk_image.py @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field -from typing import Optional from enum import Enum +from typing import Optional + +from pydantic import BaseModel, Field class QemuDiskImageFormat(str, Enum): diff --git a/gns3server/schemas/version.py b/gns3server/schemas/version.py index db4b95ed5..e258bc6df 100644 --- a/gns3server/schemas/version.py +++ b/gns3server/schemas/version.py @@ -14,9 +14,10 @@ # You should have received a copy of the GNU General Public License # along with this program. If not, see . -from pydantic import BaseModel, Field from typing import Optional +from pydantic import BaseModel, Field + class Version(BaseModel): controller_host: Optional[str] = Field(None, description="Controller hostname or IP address")