From 762ae4fbb16c7288be2cee4b585fc4082d6fbbdb Mon Sep 17 00:00:00 2001 From: Xarkam Date: Thu, 26 Mar 2026 20:48:02 +0100 Subject: [PATCH] Optimize imports --- src/config/config_manager.py | 1 + src/config/constants.py | 2 +- src/controllers/audio_controller.py | 7 ++++--- src/discord/discord_tools.py | 4 ++-- src/fivemserver/auth_worker.py | 4 +++- src/fivemserver/fivemlauncher.py | 3 +-- src/fivemserver/get_server_token.py | 3 ++- src/fivemserver/queuemanager.py | 6 ++++-- src/fivemserver/whitelistmanager.py | 3 +-- src/main.py | 13 ++++--------- src/tools/http_client.py | 1 - src/tools/utils.py | 1 + src/ui/custom_message_box.py | 4 ++-- src/ui/hazard_stripes.py | 4 ++-- src/ui/main_window.py | 27 +++++++++++++-------------- 15 files changed, 41 insertions(+), 42 deletions(-) diff --git a/src/config/config_manager.py b/src/config/config_manager.py index 7dba665..a8e11e8 100644 --- a/src/config/config_manager.py +++ b/src/config/config_manager.py @@ -4,6 +4,7 @@ from typing import Any, Callable, NotRequired, TypedDict, cast from tools.utils import get_executable_dir + class ConfigData(TypedDict): discord_user_id: NotRequired[str] volume: NotRequired[int] diff --git a/src/config/constants.py b/src/config/constants.py index 2078a04..0fddd5d 100644 --- a/src/config/constants.py +++ b/src/config/constants.py @@ -1,5 +1,5 @@ -from enum import Enum from dataclasses import dataclass +from enum import Enum from PySide6.QtGui import QColor diff --git a/src/controllers/audio_controller.py b/src/controllers/audio_controller.py index 1c49004..e7e0527 100644 --- a/src/controllers/audio_controller.py +++ b/src/controllers/audio_controller.py @@ -1,11 +1,12 @@ -from PySide6.QtCore import QFile +import tempfile import cyminiaudio as cma -import tempfile -from config.config_manager import ConfigManager, VOLUME_KEY +from PySide6.QtCore import QFile +from config.config_manager import ConfigManager, VOLUME_KEY from config.constants import Resources + class AudioController: # Encapsule toute la logique audio : lecture, volume, mute. diff --git a/src/discord/discord_tools.py b/src/discord/discord_tools.py index f0e3d94..01c5515 100644 --- a/src/discord/discord_tools.py +++ b/src/discord/discord_tools.py @@ -1,9 +1,9 @@ import psutil - from pypresence import Presence -from fivemserver.get_server_token import GetServerTokenForDiscord + from config.constants import Urls from discord.discord_oauth import CLIENT_ID +from fivemserver.get_server_token import GetServerTokenForDiscord class DiscordToken: diff --git a/src/fivemserver/auth_worker.py b/src/fivemserver/auth_worker.py index 2a23e13..23c618e 100644 --- a/src/fivemserver/auth_worker.py +++ b/src/fivemserver/auth_worker.py @@ -1,9 +1,11 @@ # workers/auth_worker.py from PySide6.QtCore import QThread, Signal + from config.constants import Urls from fivemserver.get_server_token import GetServerTokenForDiscord from tools.http_client import ApiError # Importe ton exception personnalisée + class AuthWorker(QThread): # Signaux pour communiquer avec l'UI # finished(success, session_id, error_message) @@ -61,4 +63,4 @@ class AuthWorker(QThread): def stop(self): """Permet d'annuler le thread proprement.""" self._is_running = False - self.requestInterruption() # Demande l'interruption à QThread \ No newline at end of file + self.requestInterruption() # Demande l'interruption à QThread diff --git a/src/fivemserver/fivemlauncher.py b/src/fivemserver/fivemlauncher.py index fadf1ec..43b8580 100644 --- a/src/fivemserver/fivemlauncher.py +++ b/src/fivemserver/fivemlauncher.py @@ -1,7 +1,6 @@ -import subprocess import os +import subprocess -from config.constants import FIVEMURL class FiveMLauncher: def __init__(self, fivem_path: str): diff --git a/src/fivemserver/get_server_token.py b/src/fivemserver/get_server_token.py index 81988d9..8798bd9 100644 --- a/src/fivemserver/get_server_token.py +++ b/src/fivemserver/get_server_token.py @@ -1,8 +1,9 @@ import base64 + from cryptography.hazmat.primitives import serialization, hashes from cryptography.hazmat.primitives.asymmetric import ec -from cryptography.hazmat.primitives.kdf.hkdf import HKDF from cryptography.hazmat.primitives.ciphers.aead import AESGCM +from cryptography.hazmat.primitives.kdf.hkdf import HKDF from config.constants import Urls from tools.http_client import http_post, ApiError diff --git a/src/fivemserver/queuemanager.py b/src/fivemserver/queuemanager.py index 528eca8..b65117c 100644 --- a/src/fivemserver/queuemanager.py +++ b/src/fivemserver/queuemanager.py @@ -1,9 +1,11 @@ -import requests import time from typing import Callable -from config.constants import Urls, ApiEndPoints +import requests + from config.constants import PlayerServerInfo # ← à ajouter si pas déjà importé +from config.constants import Urls, ApiEndPoints + class QueueManager: def __init__(self, user_id: str, on_update: Callable[[str], None]): diff --git a/src/fivemserver/whitelistmanager.py b/src/fivemserver/whitelistmanager.py index a0cd2ad..7082995 100644 --- a/src/fivemserver/whitelistmanager.py +++ b/src/fivemserver/whitelistmanager.py @@ -1,6 +1,5 @@ -from tools.http_client import ApiError, http_get - from config.constants import PlayerServerInfo +from tools.http_client import ApiError, http_get WHITELIST_URL_ENDPOINT = "iswhitelist/" diff --git a/src/main.py b/src/main.py index c78110f..51a09f6 100644 --- a/src/main.py +++ b/src/main.py @@ -1,29 +1,24 @@ import ctypes -import sys import os +import sys import tempfile - from pathlib import Path -from tools.utils import get_internal_dir - from PySide6.QtGui import QFontDatabase, QFont, QIcon from PySide6.QtWidgets import QApplication +# Ne pas supprimer ! Enregistre les ressources Qt +import resources # noqa: F401 - required to register Qt resources # Imports pour la gestion de la configuration from config.config_manager import ConfigManager from config.constants import Resources - # Imports pour la vérification Discord from discord.discord_tools import CheckDiscord - +from tools.utils import get_internal_dir # Import pour la partie ui from ui.custom_message_box import CustomMessageBox from ui.main_window import MainWindow -# Ne pas supprimer ! Enregistre les ressources Qt -import resources # noqa: F401 - required to register Qt resources - if getattr(sys, 'frozen', False): os.environ["TMPDIR"] = tempfile.gettempdir() diff --git a/src/tools/http_client.py b/src/tools/http_client.py index 0f4e501..f38410f 100644 --- a/src/tools/http_client.py +++ b/src/tools/http_client.py @@ -5,7 +5,6 @@ from typing import Any, Literal import requests - DEFAULT_TIMEOUT = 15 HttpMethod = Literal["GET", "POST", "PUT", "PATCH", "DELETE"] diff --git a/src/tools/utils.py b/src/tools/utils.py index 721d7b4..f49b68a 100644 --- a/src/tools/utils.py +++ b/src/tools/utils.py @@ -1,5 +1,6 @@ import sys from pathlib import Path + from PySide6.QtWidgets import QApplication PROJECT_ROOT = Path(__file__).resolve().parents[2] diff --git a/src/ui/custom_message_box.py b/src/ui/custom_message_box.py index e7abe2c..d3550d0 100644 --- a/src/ui/custom_message_box.py +++ b/src/ui/custom_message_box.py @@ -1,7 +1,7 @@ -from PySide6.QtWidgets import (QDialog, QVBoxLayout, QHBoxLayout, - QLabel, QPushButton, QWidget, QGraphicsDropShadowEffect) from PySide6.QtCore import Qt, QPropertyAnimation, QEasingCurve from PySide6.QtGui import QColor +from PySide6.QtWidgets import (QDialog, QVBoxLayout, QHBoxLayout, + QLabel, QPushButton, QWidget, QGraphicsDropShadowEffect) class CustomMessageBox(QDialog): diff --git a/src/ui/hazard_stripes.py b/src/ui/hazard_stripes.py index 9fb5172..aa6a240 100644 --- a/src/ui/hazard_stripes.py +++ b/src/ui/hazard_stripes.py @@ -1,8 +1,8 @@ # ui/hazard_stripes.py -from PySide6.QtWidgets import QPushButton, QStyleOptionButton, QStyle -from PySide6.QtGui import QPainter, QColor, QPainterPath, QPen, QPolygon from PySide6.QtCore import Qt, QPoint +from PySide6.QtGui import QPainter, QColor, QPainterPath, QPen, QPolygon +from PySide6.QtWidgets import QPushButton, QStyleOptionButton, QStyle class HazardButton(QPushButton): diff --git a/src/ui/main_window.py b/src/ui/main_window.py index 627be39..2bc0bd9 100644 --- a/src/ui/main_window.py +++ b/src/ui/main_window.py @@ -1,29 +1,28 @@ import webbrowser - -from sys import platform from os import environ, unlink +from sys import platform -from PySide6.QtGui import QIcon, QMouseEvent, QCursor, QGuiApplication -from PySide6.QtCore import Qt, QTimer -from PySide6.QtWidgets import QMainWindow, QSizePolicy from PySide6.QtCore import QThread, Signal +from PySide6.QtCore import Qt, QTimer +from PySide6.QtGui import QIcon, QMouseEvent, QCursor, QGuiApplication +from PySide6.QtWidgets import QMainWindow, QSizePolicy -from ui.ui_mainwindow_vertical_pager import Ui_MainWindow from config.config_manager import ConfigManager from config.constants import PlayerServerInfo, Urls -from tools.http_client import ApiError -from ui.error_dialog import show_qt_error -from ui.hazard_stripes import HazardButton from controllers.audio_controller import AudioController from controllers.glow_animator import GlowAnimator from controllers.window_dragger import WindowDragger from discord import discord_oauth -from fivemserver.whitelistmanager import WhiteList -from fivemserver.fivemlauncher import FiveMLauncher -from fivemserver.queuemanager import QueueManager -from fivemserver.get_server_token import GetServerTokenForDiscord -from fivemserver.auth_worker import AuthWorker from fake_patch_notes import patch_note +from fivemserver.auth_worker import AuthWorker +from fivemserver.fivemlauncher import FiveMLauncher +from fivemserver.get_server_token import GetServerTokenForDiscord +from fivemserver.queuemanager import QueueManager +from fivemserver.whitelistmanager import WhiteList +from tools.http_client import ApiError +from ui.error_dialog import show_qt_error +from ui.hazard_stripes import HazardButton +from ui.ui_mainwindow_vertical_pager import Ui_MainWindow # For Linux Wayland to authorize moving window if platform.startswith('linux'):