From 9bc719e69c6dc18ed10e3f04a475045b49801a9c Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 18:37:26 -0400 Subject: [PATCH 1/9] Create qscrollarea.py --- tests/qscrollarea.py | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 tests/qscrollarea.py diff --git a/tests/qscrollarea.py b/tests/qscrollarea.py new file mode 100644 index 00000000..972424ec --- /dev/null +++ b/tests/qscrollarea.py @@ -0,0 +1,4 @@ +from PyQt5 import QtWidgets + +# https://github.com/python-qt-tools/PyQt5-stubs/issues/147 +QtWidgets.QScrollArea(widgetResizable=True) From 54632e8a1a3a7c18a12e8aa1f6ad319d89f56dc9 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 20:49:32 -0400 Subject: [PATCH 2/9] pytest-xvfb and an application instance --- tests/test_stubs.py | 5 +++++ tox.ini | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/tests/test_stubs.py b/tests/test_stubs.py index b56bf85b..45b202db 100644 --- a/tests/test_stubs.py +++ b/tests/test_stubs.py @@ -6,6 +6,11 @@ TESTS_DIR = os.path.dirname(__file__) +application = QtWidgets.QApplication.instance() +assert application is None +application = QtWidgets.QApplication([]) + + def gen_tests(): for filename in os.listdir(TESTS_DIR): if filename.endswith('.py') and not filename.startswith('test_'): diff --git a/tox.ini b/tox.ini index dfa058fc..3330d0cf 100644 --- a/tox.ini +++ b/tox.ini @@ -5,12 +5,13 @@ envlist = py3{5,6,7,8,9} deps = mypy @ git+https://github.com/python/mypy@538d36481526135c44b90383663eaa177cfc32e3 pytest + pytest-xvfb pip>=20.0 commands = pip install PyQt5==5.15.* PyQt3D==5.15.* PyQtChart==5.15.* PyQtDataVisualization==5.15.* PyQtNetworkAuth==5.15.* PyQtPurchasing==5.15.* PyQtWebEngine==5.15.* mypy --show-error-codes -p PyQt5-stubs stubtest --allowlist {toxinidir}/stubtest.allowlist --allowlist {toxinidir}/stubtest.allowlist.to_review PyQt5 - pytest {posargs} + pytest --verbose --capture=no {posargs} [pytest] addopts = --strict-markers From 19403d4520812287197eb032801e218a3406c15d Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 20:53:06 -0400 Subject: [PATCH 3/9] missing import --- tests/test_stubs.py | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/test_stubs.py b/tests/test_stubs.py index 45b202db..36e14a51 100644 --- a/tests/test_stubs.py +++ b/tests/test_stubs.py @@ -1,6 +1,7 @@ import os.path import pytest from mypy import api +from PyQt5 import QtWidgets TESTS_DIR = os.path.dirname(__file__) From d377e9531f2617cfa2a0547d6b42ee68d090c282 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 21:00:23 -0400 Subject: [PATCH 4/9] more deps --- .github/workflows/ci.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d746d422..67128dae 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -58,9 +58,10 @@ jobs: if: matrix.os.matrix == 'linux' run: | sudo apt-get update --yes - sudo apt-get install --yes libgl1 + sudo apt-get install --yes libgl1 libgl1-mesa-dev xvfb x11-utils libdbus-1-3 libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 # Required to stubtest QtMultimedia sudo apt-get install --yes libpulse-mainloop-glib0 + - uses: altendky/QTBUG-88688-libxcb-util@v2 - name: Install run: | pip install --upgrade pip setuptools wheel From f0123bc91d71c674283ff1314595981056a66242 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 21:02:05 -0400 Subject: [PATCH 5/9] no bugfix? --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 67128dae..034b6553 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,7 +61,6 @@ jobs: sudo apt-get install --yes libgl1 libgl1-mesa-dev xvfb x11-utils libdbus-1-3 libxkbcommon-x11-0 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0 libxcb-render-util0 libxcb-xinerama0 libxcb-xfixes0 # Required to stubtest QtMultimedia sudo apt-get install --yes libpulse-mainloop-glib0 - - uses: altendky/QTBUG-88688-libxcb-util@v2 - name: Install run: | pip install --upgrade pip setuptools wheel From 85ea007f14eb0c4d501ef3adb85a94b4cec98234 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 21:08:48 -0400 Subject: [PATCH 6/9] add widgetResizable argument to QScrollArea.__init__() --- PyQt5-stubs/QtWidgets.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyQt5-stubs/QtWidgets.pyi b/PyQt5-stubs/QtWidgets.pyi index 92d28ffb..22fd7429 100644 --- a/PyQt5-stubs/QtWidgets.pyi +++ b/PyQt5-stubs/QtWidgets.pyi @@ -8147,7 +8147,7 @@ class QRubberBand(QWidget): class QScrollArea(QAbstractScrollArea): - def __init__(self, parent: typing.Optional[QWidget] = ...) -> None: ... + def __init__(self, parent: typing.Optional[QWidget] = ..., widgetResizable: bool = ...) -> None: ... def viewportSizeHint(self) -> QtCore.QSize: ... def scrollContentsBy(self, dx: int, dy: int) -> None: ... From 2f7c540a4bc8dfa2aa6e9a0b40d77d076ceadf42 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 21:11:15 -0400 Subject: [PATCH 7/9] add changelog entry for #148 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6352036e..6eed6c48 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ### Added * [#138](https://github.com/python-qt-tools/PyQt5-stubs/pull/138) update to PyQt5 5.15.3 * [#144](https://github.com/python-qt-tools/PyQt5-stubs/pull/144) add `QTreeWidgetItem.__lt__()` to allow sorting of items in a QTreeWidget +* [#148](https://github.com/python-qt-tools/PyQt5-stubs/pull/148) add `widgetResizable` parameter to `QScrollArea.__init__()` ## 5.15.2.0 From aa203ed0aba1f1c58d9051ae19ae2d18039f9966 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sat, 27 Mar 2021 23:58:26 -0400 Subject: [PATCH 8/9] widgetResizable is keyword only --- PyQt5-stubs/QtWidgets.pyi | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PyQt5-stubs/QtWidgets.pyi b/PyQt5-stubs/QtWidgets.pyi index 22fd7429..5ec04cdc 100644 --- a/PyQt5-stubs/QtWidgets.pyi +++ b/PyQt5-stubs/QtWidgets.pyi @@ -8147,7 +8147,7 @@ class QRubberBand(QWidget): class QScrollArea(QAbstractScrollArea): - def __init__(self, parent: typing.Optional[QWidget] = ..., widgetResizable: bool = ...) -> None: ... + def __init__(self, parent: typing.Optional[QWidget] = ..., *, widgetResizable: bool = ...) -> None: ... def viewportSizeHint(self) -> QtCore.QSize: ... def scrollContentsBy(self, dx: int, dy: int) -> None: ... From 6af75a49c2cceb1e57269b9fb6be02a9535e52cf Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Sun, 28 Mar 2021 10:34:08 -0400 Subject: [PATCH 9/9] actually match master --- tox.ini | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tox.ini b/tox.ini index 3330d0cf..da3e9973 100644 --- a/tox.ini +++ b/tox.ini @@ -11,7 +11,7 @@ commands = pip install PyQt5==5.15.* PyQt3D==5.15.* PyQtChart==5.15.* PyQtDataVisualization==5.15.* PyQtNetworkAuth==5.15.* PyQtPurchasing==5.15.* PyQtWebEngine==5.15.* mypy --show-error-codes -p PyQt5-stubs stubtest --allowlist {toxinidir}/stubtest.allowlist --allowlist {toxinidir}/stubtest.allowlist.to_review PyQt5 - pytest --verbose --capture=no {posargs} + pytest --capture=no --verbose {posargs} [pytest] addopts = --strict-markers