diff options
| -rw-r--r-- | sources/pyside-tools/deploy_lib/python_helper.py | 26 | ||||
| -rw-r--r-- | sources/pyside-tools/project/project_data.py | 17 |
2 files changed, 43 insertions, 0 deletions
diff --git a/sources/pyside-tools/deploy_lib/python_helper.py b/sources/pyside-tools/deploy_lib/python_helper.py index af8753257..1a48b0e9a 100644 --- a/sources/pyside-tools/deploy_lib/python_helper.py +++ b/sources/pyside-tools/deploy_lib/python_helper.py @@ -6,6 +6,7 @@ import os import re import sys import logging +import warnings from typing import List from importlib import util if sys.version_info >= (3, 8): @@ -73,6 +74,31 @@ def find_pyside_modules(project_dir: Path, extra_ignore_dirs: List[Path] = None, if project_data: py_candidates = project_data.python_files + ui_candidates = project_data.ui_files + qrc_candidates = project_data.qrc_files + ui_py_candidates = None + qrc_ui_candidates = None + + if ui_candidates: + ui_py_candidates = [(file.parent / f"ui_{file.stem}.py") for file in ui_candidates + if (file.parent / f"ui_{file.stem}.py").exists()] + + if len(ui_py_candidates) != len(ui_candidates): + warnings.warn("[DEPLOY] The number of uic files and their corresponding Python" + " files don't match.", category=RuntimeWarning) + + py_candidates.extend(ui_py_candidates) + + if qrc_candidates: + qrc_ui_candidates = [(file.parent / f"rc_{file.stem}.py") for file in qrc_candidates + if (file.parent / f"rc_{file.stem}.py").exists()] + + if len(qrc_ui_candidates) != len(qrc_candidates): + warnings.warn("[DEPLOY] The number of qrc files and their corresponding Python" + " files don't match.", category=RuntimeWarning) + + py_candidates.extend(qrc_ui_candidates) + for py_candidate in py_candidates: all_modules = all_modules.union(pyside_imports(py_candidate)) return list(all_modules) diff --git a/sources/pyside-tools/project/project_data.py b/sources/pyside-tools/project/project_data.py index 4cd30c42b..b8d27f33e 100644 --- a/sources/pyside-tools/project/project_data.py +++ b/sources/pyside-tools/project/project_data.py @@ -29,6 +29,10 @@ class ProjectData: # Python files self.main_file: Path = None self._python_files: List[Path] = [] + # ui files + self._ui_files: List[Path] = [] + # qrc files + self._qrc_files: List[Path] = [] with project_file.open("r") as pyf: pyproject = json.load(pyf) @@ -44,6 +48,11 @@ class ProjectData: if file.stem == "main": self.main_file = file self._python_files.append(file) + elif file.suffix == ".ui": + self._ui_files.append(file) + elif file.suffix == ".qrc": + self._qrc_files.append(file) + if not self.main_file: self._find_main_file() @@ -68,6 +77,14 @@ class ProjectData: return self._python_files @property + def ui_files(self): + return self._ui_files + + @property + def qrc_files(self): + return self._qrc_files + + @property def qml_files(self): return self._qml_files |
