Accepting request 980673 from home:bnavigator:branches:devel:languages:python

- Update to 2.1.0
  * PR: Restrict broken Pytest versions to those not affected by
    the Pytest 7.0.0 import-mode=importlib behavior regression by
    @CAM-Gerlach in #324
  * PR: Monkey patch pyside2uic UIParser.readResources for Python
    3.9 compatibility by @n-elie in #325
  * PR: Add missing QWebEngineScript support for PyQt5/6 and
    PySide2/6 by @EasyIsrael in #326
  * PR: Add missing Qt.MidButton on PyQt6 by @dalthviz in #328
  * PR: Drop support for Python 3.6 by @dalthviz in #329
  * PR: Fix typo in constant name by @eyllanesc in #330
  * PR: Use QFileDialog.Option to be compatiable with Qt6 by
    @frmdstryr in #331
  * PR: Skip import of QOpenGLTime* on architectures where not
    available by @juliangilbey in #333
  * PR: Remove QHeaderView patch related files by @dalthviz in #334
  * PR: Fix uic skipped tests and PyQt 6.3.0 segfaulting tests by
    @dalthviz in #335
  * PR: Add command line support for Mypy by @CAM-Gerlach in #337
  * PR: Add workaround for mode argument in
    QTextCursor.movePosition (Pyside2) by @rear1019 in #341
  * PR: Fix bug with environ handling by @larsoner in #340
  * PR: Change bindings try order to be PyQt5, PySide2, PyQt6,
    PySide6 by @dalthviz in #343

OBS-URL: https://build.opensuse.org/request/show/980673
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-QtPy?expand=0&rev=36
This commit is contained in:
Dirk Mueller 2022-06-04 08:55:00 +00:00 committed by Git OBS Bridge
parent 1e4da8b3c4
commit 5a0185ea86
4 changed files with 67 additions and 20 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:adfd073ffbd2de81dc7aaa0b983499ef5c59c96adcfdcc9dea60d42ca885eb8f
size 43047

3
QtPy-2.1.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ca8cd4217175186344299ee4c0f7e7adcf362c70852ba35b255a534077025c06
size 46470

View File

@ -1,3 +1,31 @@
-------------------------------------------------------------------
Fri Jun 3 19:09:24 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 2.1.0
* PR: Restrict broken Pytest versions to those not affected by
the Pytest 7.0.0 import-mode=importlib behavior regression by
@CAM-Gerlach in #324
* PR: Monkey patch pyside2uic UIParser.readResources for Python
3.9 compatibility by @n-elie in #325
* PR: Add missing QWebEngineScript support for PyQt5/6 and
PySide2/6 by @EasyIsrael in #326
* PR: Add missing Qt.MidButton on PyQt6 by @dalthviz in #328
* PR: Drop support for Python 3.6 by @dalthviz in #329
* PR: Fix typo in constant name by @eyllanesc in #330
* PR: Use QFileDialog.Option to be compatiable with Qt6 by
@frmdstryr in #331
* PR: Skip import of QOpenGLTime* on architectures where not
available by @juliangilbey in #333
* PR: Remove QHeaderView patch related files by @dalthviz in #334
* PR: Fix uic skipped tests and PyQt 6.3.0 segfaulting tests by
@dalthviz in #335
* PR: Add command line support for Mypy by @CAM-Gerlach in #337
* PR: Add workaround for mode argument in
QTextCursor.movePosition (Pyside2) by @rear1019 in #341
* PR: Fix bug with environ handling by @larsoner in #340
* PR: Change bindings try order to be PyQt5, PySide2, PyQt6,
PySide6 by @dalthviz in #343
-------------------------------------------------------------------
Mon Apr 11 08:03:56 UTC 2022 - Ben Greiner <code@bnavigator.de>

View File

@ -33,30 +33,34 @@ BuildArch: noarch
%bcond_with pyside2
%endif
# unfortunately we get a segfault in the other backends when pyside6 is installed at the same time (!?)
# test locally: osc build -M test --with pyside6 --without pyside2 --without pyqt5 --without pyqt6 --define "pythons python3"
%bcond_with pyside6
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: python-QtPy%{psuffix}
Version: 2.0.1
Version: 2.1.0
Release: 0
Summary: Abstraction layer on top of Qt bindings
License: MIT
Group: Development/Languages/Python
URL: https://github.com/spyder-ide/qtpy
Source: https://files.pythonhosted.org/packages/source/Q/QtPy/QtPy-%{version}.tar.gz
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module setuptools}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-packaging
# Note: Don't add any Requires, Recommends, or Suggests here,
# because we need to minimize the space occupied on the
# Tumbleweed DVD. The application importing QtPy will have to
# know what backend to recommend and what extras to require (e.g.
# qtwebengine). Note that setup.py does not declare any requirements,
# in this regard either.
Requires(post): update-alternatives
Requires(postun):update-alternatives
# Note: Don't add any Requires, Recommends, or Suggests for a
# specific backend here, because we need to minimize the space
# occupied on the Tumbleweed DVD. The application importing QtPy
# will have to know what backend to recommend and what extras to
# require (e.g. qtwebengine). Note that setup.py does not declare
# any requirements, in this regard either.
%if %{with test}
BuildRequires: %{python_module QtPy = %{version}}
BuildRequires: %{python_module pytest >= 6}
BuildRequires: %{python_module pytest-qt}
%if %{with pyqt5}
@ -93,11 +97,11 @@ BuildRequires: qt6-sql-sqlite
QtPy is a small abstraction layer that lets you
write applications using a single API call to either PyQt or PySide.
It provides support for PyQt5, PyQt4 and PySide using the PyQt5 layout (where
the QtGui module has been split into QtGui and QtWidgets).
Basically, you can write your code as if you were using PySide2 but import Qt
modules from qtpy instead of PySide2 (or PyQt5)
It provides support for PyQt5, PyQt6, PySide6, PySide2 using the Qt5
layout (where the QtGui module has been split into QtGui and QtWidgets).
Basically, you can write your code as if you were using PyQt or PySide
directly, but import Qt modules from qtpy instead of PyQt5, PySide2,
PyQt6 or PySide6.
%prep
%setup -q -n QtPy-%{version}
@ -105,6 +109,7 @@ modules from qtpy instead of PySide2 (or PyQt5)
sed -i 's/\r$//' LICENSE.txt *.md
# qtcharts is present in our PyQt
sed -i '/skipif.*not PYSIDE2/ d' qtpy/tests/test_qtcharts.py
sed -i '/addopts/ s/--cov=.*//' pytest.ini
%build
%python_build
@ -112,6 +117,7 @@ sed -i '/skipif.*not PYSIDE2/ d' qtpy/tests/test_qtcharts.py
%install
%if ! %{with test}
%python_install
%python_clone -a %{buildroot}%{_bindir}/qtpy
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
@ -121,6 +127,8 @@ export QT_HASH_SEED=0
export QT_QPA_PLATFORM="offscreen"
mkdir empty
pushd empty
# expects an unset FORCE_QT_API
donttest_qt_api="test_qt_api_environ"
%ifarch %{arm} aarch64
# no QtOpenGL for these platforms
donttest=" or test_qtopengl"
@ -133,7 +141,7 @@ donttest_pyqt5=" or test_qtsensors"
donttest_pyqt5="${donttest_pyqt5} or test_qtwebengine or test_qt_api"
%endif
export QT_API=pyqt5 FORCE_QT_API=1
%pytest -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest $donttest_pyqt5)"
%pytest -rwEfs -v ../qtpy -k "not ($donttest_qt_api $donttest $donttest_pyqt5)"
%endif
%if %{with pyqt6}
%ifarch %{ix86} %{arm} %{power64} s390x
@ -142,25 +150,36 @@ export QT_API=pyqt5 FORCE_QT_API=1
donttest_pyqt6=" or test_qtwebengine"
%endif
export QT_API=pyqt6 FORCE_QT_API=1
%pytest -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest $donttest_pyqt6)"
%pytest -rwEfs -v ../qtpy -k "not ($donttest_qt_api $donttest $donttest_pyqt6)"
%endif
%if %{with pyside2}
export QT_API=pyside2 FORCE_QT_API=1
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest)"
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy -k "not ($donttest_qt_api $donttest)"
%endif
%if %{with pyside6}
export QT_API=pyside6 FORCE_QT_API=1
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest)"
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy -k "not ($donttest_qt_api $donttest)"
%endif
# Default backend
unset QT_API
unset FORCE_QT_API
%pytest -rwEfs -vvv ../qtpy -k "not (dummyprefix $donttest $donttest_pyqt5)"
popd
%endif
%post
%python_install_alternative qtpy
%postun
%python_uninstall_alternative qtpy
%if ! %{with test}
%files %{python_files}
%doc AUTHORS.md CHANGELOG.md README.md
%license LICENSE.txt
%{python_sitelib}/qtpy
%{python_sitelib}/QtPy-%{version}*-info
%python_alternative %{_bindir}/qtpy
%endif
%changelog