From 06899c92fc2980812232da323f4ccebfd662d207 Mon Sep 17 00:00:00 2001 From: Mark Paronyan Date: Wed, 30 Sep 2026 20:45:44 +0300 Subject: [PATCH] refactor: use iterable unpacking instead of concatenation --- gns3server/agent/gns3_copilot/agent/context_manager.py | 4 ++-- .../agent/gns3_copilot/tools_v2/packet_analysis_tool.py | 2 +- gns3server/compute/qemu/utils/ziputils.py | 2 +- gns3server/compute/virtualbox/virtualbox_vm.py | 6 +++--- gns3server/db/repositories/llm_model_configs.py | 4 ++-- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/gns3server/agent/gns3_copilot/agent/context_manager.py b/gns3server/agent/gns3_copilot/agent/context_manager.py index 419e7785c..a17338c83 100644 --- a/gns3server/agent/gns3_copilot/agent/context_manager.py +++ b/gns3server/agent/gns3_copilot/agent/context_manager.py @@ -524,7 +524,7 @@ def _inject_topology_into_system( if filtered_count > 0: logger.debug("Filtered out %d existing SystemMessage(s)", filtered_count) - return [SystemMessage(content=formatted_prompt)] + non_system_messages + return [SystemMessage(content=formatted_prompt), *non_system_messages] # ============================================================================ @@ -556,7 +556,7 @@ def prepare_context_messages( else: formatted_prompt = system_prompt.replace("{{topology_info}}", "(No topology information available)") - return [SystemMessage(content=formatted_prompt)] + state_messages + return [SystemMessage(content=formatted_prompt), *state_messages] # ============================================================================ diff --git a/gns3server/agent/gns3_copilot/tools_v2/packet_analysis_tool.py b/gns3server/agent/gns3_copilot/tools_v2/packet_analysis_tool.py index 5aacb0ed7..a1123403c 100644 --- a/gns3server/agent/gns3_copilot/tools_v2/packet_analysis_tool.py +++ b/gns3server/agent/gns3_copilot/tools_v2/packet_analysis_tool.py @@ -444,7 +444,7 @@ class PacketAnalysisTool(BaseTool): # Build command: tshark -r import shlex - cmd = ["tshark", "-r", pcap_file] + shlex.split(tshark_args) + cmd = ["tshark", "-r", pcap_file, *shlex.split(tshark_args)] logger.info(f"Running tshark: {' '.join(cmd)}") diff --git a/gns3server/compute/qemu/utils/ziputils.py b/gns3server/compute/qemu/utils/ziputils.py index 3208da10a..95c8816c7 100644 --- a/gns3server/compute/qemu/utils/ziputils.py +++ b/gns3server/compute/qemu/utils/ziputils.py @@ -40,7 +40,7 @@ def unpack_zip(filename, extract_dir=None): with zipfile.ZipFile(filename, "r") as zfile: for zinfo in zfile.infolist(): fname = os.path.join(extract_dir, zinfo.filename) - date_time = time.mktime(zinfo.date_time + (0, 0, -1)) + date_time = time.mktime((*zinfo.date_time, 0, 0, -1)) zfile.extract(zinfo, extract_dir) # update timestamp diff --git a/gns3server/compute/virtualbox/virtualbox_vm.py b/gns3server/compute/virtualbox/virtualbox_vm.py index 1a6f43183..e2e144e9f 100644 --- a/gns3server/compute/virtualbox/virtualbox_vm.py +++ b/gns3server/compute/virtualbox/virtualbox_vm.py @@ -146,7 +146,7 @@ class VirtualBoxVM(BaseNode): """ args = shlex.split(params) - result = await self.manager.execute("controlvm", [self._uuid] + args) + result = await self.manager.execute("controlvm", [self._uuid, *args]) return result async def _modify_vm(self, params): @@ -157,7 +157,7 @@ class VirtualBoxVM(BaseNode): """ args = shlex.split(params) - await self.manager.execute("modifyvm", [self._uuid] + args) + await self.manager.execute("modifyvm", [self._uuid, *args]) async def _check_duplicate_linked_clone(self): """ @@ -866,7 +866,7 @@ class VirtualBoxVM(BaseNode): """ args = shlex.split(params) - await self.manager.execute("storageattach", [self._uuid] + args) + await self.manager.execute("storageattach", [self._uuid, *args]) async def _get_nic_attachements(self, maximum_adapters): """ diff --git a/gns3server/db/repositories/llm_model_configs.py b/gns3server/db/repositories/llm_model_configs.py index 2fb9188f4..6e59d1b3a 100644 --- a/gns3server/db/repositories/llm_model_configs.py +++ b/gns3server/db/repositories/llm_model_configs.py @@ -163,7 +163,7 @@ class LLMModelConfigsRepository(BaseRepository): # Handle extra config fields for key, value in updates.items(): - if key not in ["name", "model_type", "is_default", "expected_version"] + config_fields: + if key not in ["name", "model_type", "is_default", "expected_version", *config_fields]: if value is not None: current_config[key] = value @@ -322,7 +322,7 @@ class LLMModelConfigsRepository(BaseRepository): # Handle extra config fields for key, value in updates.items(): - if key not in ["name", "model_type", "is_default", "expected_version"] + config_fields: + if key not in ["name", "model_type", "is_default", "expected_version", *config_fields]: if value is not None: current_config[key] = value