From 22bc693d4dc1ab104f3ab0916838853dbb04ab85 Mon Sep 17 00:00:00 2001 From: Vitali Graf Date: Mon, 9 Mar 2026 20:05:48 +0100 Subject: [PATCH] Perf: Polars-Import lazy gemacht (nur bei DB-Nutzung laden) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Polars wird nicht mehr beim App-Start importiert, sondern erst wenn eine Datenbankabfrage tatsächlich ausgeführt wird. Beschleunigt den Kaltstart der Anwendung. Co-Authored-By: Claude Sonnet 4.6 --- src/ui/PostgreSqlConfigDialog.py | 9 ++++----- src/ui/mixins/database.py | 3 ++- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/ui/PostgreSqlConfigDialog.py b/src/ui/PostgreSqlConfigDialog.py index ad0b458..132c69f 100644 --- a/src/ui/PostgreSqlConfigDialog.py +++ b/src/ui/PostgreSqlConfigDialog.py @@ -3,21 +3,20 @@ from PySide6.QtCore import QThread, Signal, Qt from ui.PostgreSqlConfigDialog_ui import Ui_PostgreSqlConfigDialog -import polars as pl - class DatabaseTestThread(QThread): """Thread für den Datenbankverbindungstest.""" - + # Signale für die Kommunikation mit dem UI-Thread test_completed = Signal(bool, str) # success, message - + def __init__(self, connection_data): super().__init__() self.connection_data = connection_data - + def run(self): """Führt den Datenbanktest in einem separaten Thread aus.""" + import polars as pl try: timeout = self.connection_data.get("timeout", 10) uri = ( diff --git a/src/ui/mixins/database.py b/src/ui/mixins/database.py index 14255ee..7d4e620 100644 --- a/src/ui/mixins/database.py +++ b/src/ui/mixins/database.py @@ -10,7 +10,6 @@ import time import logging from pathlib import Path -import polars as pl from PySide6.QtCore import QThread, Signal, Qt from PySide6.QtWidgets import QMessageBox, QProgressDialog @@ -31,6 +30,7 @@ class DatabaseQueryThread(QThread): self.connection_string = connection_string def run(self): + import polars as pl try: df = pl.read_database_uri(self.sql_query, self.connection_string, engine="connectorx").sort( ["reporttyp_bez", "report_bez", "repfile_bez"] @@ -208,6 +208,7 @@ class DatabaseMixin: Returns: list[TreeNode]: Liste der erstellten Root-Nodes """ + import polars as pl try: start_time = time.time()