From 9cac0086b79ff79b655ebed3c2eab5868323ed92 Mon Sep 17 00:00:00 2001 From: smathot Date: Wed, 17 Jul 2024 09:48:41 +0200 Subject: [PATCH] Replace imp by importlib - Fixes Python 3.12 compatibility --- libqtopensesame/misc/theme.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/libqtopensesame/misc/theme.py b/libqtopensesame/misc/theme.py index 3e3a33085..a68278026 100644 --- a/libqtopensesame/misc/theme.py +++ b/libqtopensesame/misc/theme.py @@ -19,7 +19,7 @@ from libopensesame.py3compat import * import os.path import sys -import imp +import importlib.util import qtawesome as qta from openexp import resources from libopensesame import misc @@ -65,10 +65,12 @@ def __init__(self, main_window, theme=None): resources[f'theme/{self.theme}'] self.theme_info = os.path.join(self.theme_folder, u"__theme__.py") if os.path.exists(self.theme_info): - info = imp.load_source( + # Load the theme module from file + spec = importlib.util.spec_from_file_location( self.theme, - safe_str(self.theme_info, enc=sys.getfilesystemencoding()) - ) + safe_str(self.theme_info, enc=sys.getfilesystemencoding())) + info = importlib.util.module_from_spec(spec) + spec.loader.exec_module(info) with safe_open(os.path.join(self.theme_folder, info.qss)) as fd: self._qss = fd.read() self._icon_map = info.icon_map