From 2d3313e7345c09550c238ee8ad3c148390d6abfa Mon Sep 17 00:00:00 2001 From: Christoph Stahl Date: Sun, 22 Sep 2024 20:33:57 +0200 Subject: [PATCH] fix headless server mode --- poetry.lock | 4 ++-- pyproject.toml | 5 ++--- syng/main.py | 14 ++++++++++++-- 3 files changed, 16 insertions(+), 7 deletions(-) diff --git a/poetry.lock b/poetry.lock index a7d2108..e3cd11f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1914,10 +1914,10 @@ static-analysis = ["autopep8 (>=2.0,<3.0)", "ruff (>=0.5.0,<0.6.0)"] test = ["pytest (>=8.1,<9.0)"] [extras] -client = ["minio", "mutagen", "packaging", "pillow", "platformdirs", "pymediainfo", "pyqt6", "pyyaml", "qrcode"] +client = ["minio", "mutagen", "packaging", "pillow", "pymediainfo", "pyqt6", "pyyaml", "qrcode"] server = ["alt-profanity-check"] [metadata] lock-version = "2.0" python-versions = "^3.9" -content-hash = "2c3d2e35ed8bf2563a078971cede2cc5ba60f9802631ee6f1f5761777dc7e3a5" +content-hash = "fd74c25adac30ef24256c4588fc1fc9235da1f86bb23db8c63ee55ee87423c33" diff --git a/pyproject.toml b/pyproject.toml index 810410c..ca7488c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -21,7 +21,7 @@ pillow = { version = "^10.1.0", optional = true} qrcode = { version = "^7.4.2", optional = true } pymediainfo = { version = "^6.1.0", optional = true } pyyaml = { version = "^6.0.1", optional = true } -platformdirs = { version = "^4.0.0", optional = true } +platformdirs = "^4.0.0" packaging = {version = "^23.2", optional = true} alt-profanity-check = {version = "^1.4.1", optional = true} pyqt6 = {version="^6.7.1", optional = true} @@ -35,8 +35,7 @@ pylint = "^3.2.7" [tool.poetry.extras] client = ["minio", "mutagen", "pillow", "qrcode", - "pymediainfo", "pyyaml", "platformdirs", - "packaging", "pyqt6"] + "pymediainfo", "pyyaml", "packaging", "pyqt6"] server = ["alt-profanity-check"] [build-system] diff --git a/syng/main.py b/syng/main.py index c90b738..38a35da 100644 --- a/syng/main.py +++ b/syng/main.py @@ -38,7 +38,14 @@ import os import platformdirs -from syng.gui import run_gui +try: + from syng.gui import run_gui + + GUI_AVAILABLE = True +except ImportError: + if TYPE_CHECKING: + from syng.gui import run_gui + GUI_AVAILABLE = False try: from .client import run_client @@ -104,7 +111,10 @@ def main() -> None: run_client(args) elif args.action == "server": run_server(args) - else: + elif args.action == "gui": + if not GUI_AVAILABLE: + print("GUI is not available") + return run_gui()