diff --git a/dangerzone/cli.py b/dangerzone/cli.py index 79ab9c3..2b7941b 100644 --- a/dangerzone/cli.py +++ b/dangerzone/cli.py @@ -23,7 +23,7 @@ def cli_main(output_filename, ocr_lang, filename): global_common = GlobalCommon() common = Common() - global_common.display_banner() + GlobalCommon.display_banner() # Validate filename valid = True @@ -85,7 +85,7 @@ def cli_main(output_filename, ocr_lang, filename): return # Ensure container is installed - global_common.install_container() + GlobalCommon.install_container() # Convert the document print_header("Converting document to safe PDF") diff --git a/dangerzone/container.py b/dangerzone/container.py index 7ad0724..dd628d7 100644 --- a/dangerzone/container.py +++ b/dangerzone/container.py @@ -42,7 +42,7 @@ def convert(input_filename, output_filename, ocr_lang, stdout_callback): else: ocr = "0" - dz_tmp = os.path.join(appdirs.user_config_dir("dangerzone"), "tmp") + dz_tmp = os.path.join(dzutil.APPDATA_PATH, "tmp") os.makedirs(dz_tmp, exist_ok=True) tmpdir = tempfile.TemporaryDirectory(dir=dz_tmp) diff --git a/dangerzone/global_common.py b/dangerzone/global_common.py index e11072e..25a07d9 100644 --- a/dangerzone/global_common.py +++ b/dangerzone/global_common.py @@ -14,15 +14,14 @@ class GlobalCommon(object): """ def __init__(self): - self.version = dzutil.VERSION - # Initialize terminal colors colorama.init(autoreset=True) # Load settings self.settings = Settings() - def display_banner(self): + @staticmethod + def display_banner(): """ Raw ASCII art example: ╭──────────────────────────╮ diff --git a/dangerzone/gui/application.py b/dangerzone/gui/application.py index 565ae2e..cff8dd8 100644 --- a/dangerzone/gui/application.py +++ b/dangerzone/gui/application.py @@ -1,9 +1,9 @@ -import sys - from PySide6 import QtCore from PySide6.QtCore import QEvent from PySide6.QtWidgets import QApplication +import dangerzone.util as dzutil + class Application(QApplication): document_selected = QtCore.Signal(str) @@ -19,7 +19,7 @@ class Application(QApplication): # In macOS, handle the file open event if event.type() == QtCore.QEvent.FileOpen: # Skip file open events in dev mode - if not hasattr(sys, "dangerzone_dev"): + if not dzutil.dev_mode(): self.document_selected.emit(event.file()) return True elif event.type() == QtCore.QEvent.ApplicationActivate: diff --git a/dangerzone/util.py b/dangerzone/util.py index 4835fb1..b77cd9b 100644 --- a/dangerzone/util.py +++ b/dangerzone/util.py @@ -1,12 +1,22 @@ +from __future__ import annotations + import inspect import os +import pathlib import platform import shutil import subprocess import sys import appdirs -# If a general-purpose function doesn't depend on anything else in the dangerzone package, then it belongs here. +# If a general-purpose function or constant doesn't depend on anything else in the dangerzone package, +# then it belongs here. + +SYSTEM = platform.system() + + +def dev_mode() -> bool: + return hasattr(sys, "dangerzone_dev") def get_resource_path(filename): @@ -35,7 +45,7 @@ def get_resource_path(filename): def get_subprocess_startupinfo(): - if platform.system() == "Windows": + if SYSTEM == "Windows": startupinfo = subprocess.STARTUPINFO() startupinfo.dwFlags |= subprocess.STARTF_USESHOWWINDOW return startupinfo @@ -44,7 +54,7 @@ def get_subprocess_startupinfo(): def _get_version() -> str: - """Dangerzone version number. Prefer dangerzone.VERSION to this function.""" + """Dangerzone version number. Prefer VERSION to this function.""" try: with open(get_resource_path("version.txt")) as f: version = f.read().strip() @@ -57,7 +67,6 @@ def _get_version() -> str: VERSION = _get_version() APPDATA_PATH = appdirs.user_config_dir("dangerzone") -SYSTEM = platform.system() CONTAINER_NAME = "dangerzone.rocks/dangerzone" CONTAINER_COMMAND = "podman" if SYSTEM == "Linux" else "docker" CONTAINER_RUNTIME = shutil.which(CONTAINER_COMMAND)