From 86ee2c694c167c44404ba885f826a0d6bc1faddb Mon Sep 17 00:00:00 2001 From: sanzoghenzo Date: Wed, 25 Aug 2021 21:52:25 +0200 Subject: [PATCH 1/6] add a hook for qtmodern --- requirements-test-libraries.txt | 2 ++ .../hooks/stdhooks/hook-qtmodern.py | 15 +++++++++++++++ .../tests/test_libraries.py | 10 ++++++++++ 3 files changed, 27 insertions(+) create mode 100644 src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py diff --git a/requirements-test-libraries.txt b/requirements-test-libraries.txt index 8ff6600b..c71c3e04 100644 --- a/requirements-test-libraries.txt +++ b/requirements-test-libraries.txt @@ -32,6 +32,8 @@ pyusb==1.0.2 pynput==1.7.3 pystray==0.17.3 pyzmq==22.0.3 +PyQt5==5.15.4 +qtmodern==0.2.0 Rtree==0.9.7 sentry-sdk==0.19.3 # shotgun_api3 can only be installed from git diff --git a/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py new file mode 100644 index 00000000..e088f056 --- /dev/null +++ b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py @@ -0,0 +1,15 @@ +# ------------------------------------------------------------------ +# Copyright (c) 2020 PyInstaller Development Team. +# +# This file is distributed under the terms of the GNU General Public +# License (version 2.0 or later). +# +# The full license is available in LICENSE.GPL.txt, distributed with +# this software. +# +# SPDX-License-Identifier: GPL-2.0-or-later +# ------------------------------------------------------------------ + +from PyInstaller.utils.hooks import collect_data_files + +datas = collect_data_files("qtmodern", includes=["**/*.qss"]) diff --git a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py index 4fb2cd5c..1358ca02 100644 --- a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py +++ b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py @@ -738,3 +738,13 @@ def test_pythonnet3(pyi_builder): import clr """) + + +@importorskip("qtmodern") +@importorskip("PyQt5") +def test_qtmodern(pyi_builder): + pyi_builder.test_source(""" + import PyQt5 + import qtmodern.styles + import qtmodern.windows + """) From 2baa662fa33fee997af411c6092647f8771a6345 Mon Sep 17 00:00:00 2001 From: sanzoghenzo Date: Wed, 25 Aug 2021 21:56:42 +0200 Subject: [PATCH 2/6] docs: add changelog --- news/news.305.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 news/news.305.rst diff --git a/news/news.305.rst b/news/news.305.rst new file mode 100644 index 00000000..601997cf --- /dev/null +++ b/news/news.305.rst @@ -0,0 +1 @@ +Add a hook for ``qtmodern`` to collect qss data files. From a9b89c4ba61ae7948f6ca2a1b645d8a5abd80158 Mon Sep 17 00:00:00 2001 From: sanzoghenzo Date: Wed, 25 Aug 2021 21:59:38 +0200 Subject: [PATCH 3/6] docs: rename changelog file --- news/{news.305.rst => 305.new.rst} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename news/{news.305.rst => 305.new.rst} (100%) diff --git a/news/news.305.rst b/news/305.new.rst similarity index 100% rename from news/news.305.rst rename to news/305.new.rst From 55d3f87a4d0597979b5eeac2d0761777130a8db5 Mon Sep 17 00:00:00 2001 From: sanzoghenzo Date: Thu, 26 Aug 2021 16:58:25 +0200 Subject: [PATCH 4/6] tests: fix pyqt5 import --- .../hooks/stdhooks/hook-qtmodern.py | 2 +- .../tests/test_libraries.py | 17 ++++++++++++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py index e088f056..316b16d3 100644 --- a/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py +++ b/src/_pyinstaller_hooks_contrib/hooks/stdhooks/hook-qtmodern.py @@ -1,5 +1,5 @@ # ------------------------------------------------------------------ -# Copyright (c) 2020 PyInstaller Development Team. +# Copyright (c) 2021 PyInstaller Development Team. # # This file is distributed under the terms of the GNU General Public # License (version 2.0 or later). diff --git a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py index 1358ca02..fb126be0 100644 --- a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py +++ b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py @@ -740,11 +740,26 @@ def test_pythonnet3(pyi_builder): """) +if is_win: + # This is a hack to prevent monkeypatch from interfering with PyQt5's additional PATH entries. See: + # https://github.com/pyinstaller/pyinstaller/commit/b66c9021129e9e875ddd138a298ce542483dd6c9 + try: + import PyQt5 + except ImportError: + pass + + @importorskip("qtmodern") @importorskip("PyQt5") def test_qtmodern(pyi_builder): pyi_builder.test_source(""" - import PyQt5 + from PyQt5 import QtWidgets import qtmodern.styles import qtmodern.windows + + app = QtWidgets.QApplication(sys.argv) + window = QtWidgets.QWidget() + qtmodern.styles.dark(app) + modern_window = qtmodern.windows.ModernWindow(window) + modern_window.show() """) From 241e0c9e26a1ae99ab51f1624aee5b407d46fd40 Mon Sep 17 00:00:00 2001 From: sanzoghenzo Date: Thu, 26 Aug 2021 17:04:52 +0200 Subject: [PATCH 5/6] test: fix missing import --- src/_pyinstaller_hooks_contrib/tests/test_libraries.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py index fb126be0..71d7a814 100644 --- a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py +++ b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py @@ -753,6 +753,7 @@ def test_pythonnet3(pyi_builder): @importorskip("PyQt5") def test_qtmodern(pyi_builder): pyi_builder.test_source(""" + import sys from PyQt5 import QtWidgets import qtmodern.styles import qtmodern.windows From abfe38939dc6e7aebb6d495f47f03786a4e601c7 Mon Sep 17 00:00:00 2001 From: sanzoghenzo Date: Thu, 26 Aug 2021 17:18:45 +0200 Subject: [PATCH 6/6] fix: lint --- src/_pyinstaller_hooks_contrib/tests/test_libraries.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py index 71d7a814..f3145daa 100644 --- a/src/_pyinstaller_hooks_contrib/tests/test_libraries.py +++ b/src/_pyinstaller_hooks_contrib/tests/test_libraries.py @@ -744,7 +744,7 @@ def test_pythonnet3(pyi_builder): # This is a hack to prevent monkeypatch from interfering with PyQt5's additional PATH entries. See: # https://github.com/pyinstaller/pyinstaller/commit/b66c9021129e9e875ddd138a298ce542483dd6c9 try: - import PyQt5 + import PyQt5 # noqa: F401 except ImportError: pass @@ -757,7 +757,7 @@ def test_qtmodern(pyi_builder): from PyQt5 import QtWidgets import qtmodern.styles import qtmodern.windows - + app = QtWidgets.QApplication(sys.argv) window = QtWidgets.QWidget() qtmodern.styles.dark(app)