From 75d4098cd6ad152b5b8a74c76386d1a7962b8b61 Mon Sep 17 00:00:00 2001 From: deeplow Date: Tue, 19 Dec 2023 17:45:22 +0000 Subject: [PATCH] Conditionally import Qubes or Containers deps. Solves issues like these: ImportError while loading conftest '/home/user/dangerzone/tests/conftest.py'. tests/__init__.py:8: in from dangerzone.document import SAFE_EXTENSION dangerzone/__init__.py:16: in from .gui import gui_main as main dangerzone/gui/__init__.py:28: in from ..isolation_provider.qubes import Qubes, is_qubes_native_conversion dangerzone/isolation_provider/qubes.py:15: in from ..conversion.pixels_to_pdf import PixelsToPDF dangerzone/conversion/pixels_to_pdf.py:16: in import fitz E ModuleNotFoundError: No module named 'fitz' For context see discussion in [1]. [1]: https://github.com/freedomofpress/dangerzone/pull/622#issuecomment-1839164885 --- dangerzone/gui/__init__.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/dangerzone/gui/__init__.py b/dangerzone/gui/__init__.py index 655b13b38..4646c783f 100644 --- a/dangerzone/gui/__init__.py +++ b/dangerzone/gui/__init__.py @@ -23,9 +23,8 @@ from .. import args, errors from ..document import Document -from ..isolation_provider.container import Container from ..isolation_provider.dummy import Dummy -from ..isolation_provider.qubes import Qubes, is_qubes_native_conversion +from ..isolation_provider.qubes import is_qubes_native_conversion from ..util import get_resource_path, get_version from .logic import DangerzoneGui from .main_window import MainWindow @@ -135,9 +134,13 @@ def gui_main( dummy = Dummy() dangerzone = DangerzoneGui(app, isolation_provider=dummy) elif is_qubes_native_conversion(): + from ..isolation_provider.qubes import Qubes + qubes = Qubes() dangerzone = DangerzoneGui(app, isolation_provider=qubes) else: + from ..isolation_provider.container import Container + container = Container(enable_timeouts=enable_timeouts) dangerzone = DangerzoneGui(app, isolation_provider=container)