Hello community, here is the log from the commit of package python-QtPy for openSUSE:Factory checked in at 2018-11-12 09:42:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-QtPy (Old) and /work/SRC/openSUSE:Factory/.python-QtPy.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-QtPy" Mon Nov 12 09:42:26 2018 rev:5 rq:647645 version:1.5.2 Changes: -------- --- /work/SRC/openSUSE:Factory/python-QtPy/python-QtPy.changes 2018-06-02 12:14:05.891698670 +0200 +++ /work/SRC/openSUSE:Factory/.python-QtPy.new/python-QtPy.changes 2018-11-12 09:42:32.909091131 +0100 @@ -1,0 +2,33 @@ +Thu Nov 8 17:02:01 UTC 2018 - Todd R <toddrme2...@gmail.com> + +- Update to Version 1.5.2 + * Fix tests + * Add support for PySide2.QtOpenGL +- Update to Version 1.5.1 + * Make PythonQtError inherit from RuntimeError to be easily + catchable +- Update to Version 1.5 + + New features + * Add support for QtLocation, QtMultimediaWidgets, QtQml, + QtQuick, QtWebChannel, QtWebSockets and QtXmlPatterns. + * Raise an error when trying to use the wrong combination of + macOS and Qt versions. + + Issues Closed + * Issue 155 - Add warnings for Qt 5.9 in macOS 10.9 and + Qt 5.11 and macOS 10.11 (PR 168) + * Issue 153 - Shim PyQt5 ToPyDateTime for compatibility with + PySide2 (PR 169) + * Issue 123 - Wrap QWebChannel module (PR 157) + + Pull Requests Merged + * PR 169 - Shim PyQt5 QDateTime.toPyDateTime to + QDateTime.toPython for compatibility with PySide2 (153) + * PR 168 - Raise error when trying to use the wrong + combination of macOS and Qt versions (155) + * PR 167 - Migrate to CircleCI 2.0 + * PR 163 - Add QtLocation + * PR 162 - Update readme to remove funding appeal, harmonize + with other readmes and minor fixes + * PR 161 - Fix pyside2 wheels install + * PR 157 - Add more Qt modules (123) + +------------------------------------------------------------------- Old: ---- QtPy-1.4.2.tar.gz New: ---- QtPy-1.5.2.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-QtPy.spec ++++++ --- /var/tmp/diff_new_pack.pjLFsX/_old 2018-11-12 09:42:33.785089788 +0100 +++ /var/tmp/diff_new_pack.pjLFsX/_new 2018-11-12 09:42:33.785089788 +0100 @@ -17,7 +17,7 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} Name: python-QtPy -Version: 1.4.2 +Version: 1.5.2 Release: 0 License: MIT Summary: Abstraction layer on top of Qt bindings @@ -32,6 +32,7 @@ BuildRequires: python-rpm-macros BuildRequires: xvfb-run # SECTION test requirements +BuildRequires: %{python_module mock} BuildRequires: %{python_module pytest} # /SECTION Requires: python-qt5 @@ -77,7 +78,6 @@ popd %files %{python_files} -%defattr(-,root,root,-) %doc AUTHORS.md CHANGELOG.md README.md %license LICENSE.txt %{python_sitelib}/* ++++++ QtPy-1.4.2.tar.gz -> QtPy-1.5.2.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/CHANGELOG.md new/QtPy-1.5.2/CHANGELOG.md --- old/QtPy-1.4.2/CHANGELOG.md 2018-05-07 00:25:46.000000000 +0200 +++ new/QtPy-1.5.2/CHANGELOG.md 2018-10-20 19:40:16.000000000 +0200 @@ -1,5 +1,69 @@ # History of changes +## Version 1.5.2 (2018-10-20) + + +### Pull Requests Merged + +* [PR 175](https://github.com/spyder-ide/qtpy/pull/175) - PR: Fix tests +* [PR 174](https://github.com/spyder-ide/qtpy/pull/174) - PR: Add support for PySide2.QtOpenGL + +In this release 2 pull requests were closed. + + +---- + + +## Version 1.5.1 (2018-09-18) + +### Issues Closed + +* [Issue 170](https://github.com/spyder-ide/qtpy/issues/170) - Can't catch PythonQtError ([PR 173](https://github.com/spyder-ide/qtpy/pull/173)) + +In this release 1 issue was closed. + +### Pull Requests Merged + +* [PR 173](https://github.com/spyder-ide/qtpy/pull/173) - PR: Make PythonQtError inherit from RuntimeError to be easily catchable ([170](https://github.com/spyder-ide/qtpy/issues/170)) + +In this release 1 pull request was closed. + +---- + + +## Version 1.5 (2018-08-25) + +### New features + +* Add support for QtLocation, QtMultimediaWidgets, QtQml, QtQuick, + QtWebChannel, QtWebSockets and QtXmlPatterns. +* Raise an error when trying to use the wrong combination of macOS + and Qt versions. + +### Issues Closed + +* [Issue 155](https://github.com/spyder-ide/qtpy/issues/155) - Add warnings for Qt 5.9 in macOS 10.9 and Qt 5.11 and macOS 10.11 ([PR 168](https://github.com/spyder-ide/qtpy/pull/168)) +* [Issue 153](https://github.com/spyder-ide/qtpy/issues/153) - Shim PyQt5 ToPyDateTime for compatibility with PySide2 ([PR 169](https://github.com/spyder-ide/qtpy/pull/169)) +* [Issue 123](https://github.com/spyder-ide/qtpy/issues/123) - Wrap QWebChannel module ([PR 157](https://github.com/spyder-ide/qtpy/pull/157)) + +In this release 3 issues were closed. + +### Pull Requests Merged + +* [PR 169](https://github.com/spyder-ide/qtpy/pull/169) - PR: Shim PyQt5 QDateTime.toPyDateTime to QDateTime.toPython for compatibility with PySide2 ([153](https://github.com/spyder-ide/qtpy/issues/153)) +* [PR 168](https://github.com/spyder-ide/qtpy/pull/168) - PR: Raise error when trying to use the wrong combination of macOS and Qt versions ([155](https://github.com/spyder-ide/qtpy/issues/155)) +* [PR 167](https://github.com/spyder-ide/qtpy/pull/167) - PR: Migrate to CircleCI 2.0 +* [PR 163](https://github.com/spyder-ide/qtpy/pull/163) - PR: Add QtLocation +* [PR 162](https://github.com/spyder-ide/qtpy/pull/162) - PR: Update readme to remove funding appeal, harmonize with other readmes and minor fixes +* [PR 161](https://github.com/spyder-ide/qtpy/pull/161) - PR: Fix pyside2 wheels install +* [PR 157](https://github.com/spyder-ide/qtpy/pull/157) - PR: Add more Qt modules ([123](https://github.com/spyder-ide/qtpy/issues/123)) + +In this release 7 pull requests were closed. + + +---- + + ## Version 1.4.2 (2018-05-06) ### Issues Closed @@ -51,8 +115,7 @@ ### New features -* Add support for QtHelp -* Add support for QtSql +* Add support for QtHelp and QtSql * Use already imported bindings ### Issues Closed @@ -105,9 +168,7 @@ ### New features -* Add support for PySide2 -* Add support for QtMultimedia -* Add support for PyQt 4.6 +* Add support for PySide2 and PyQt 4.6 ### Bugs fixed diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/PKG-INFO new/QtPy-1.5.2/PKG-INFO --- old/QtPy-1.4.2/PKG-INFO 2018-05-07 00:28:16.000000000 +0200 +++ new/QtPy-1.5.2/PKG-INFO 2018-10-20 19:42:20.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: QtPy -Version: 1.4.2 +Version: 1.5.2 Summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets. Home-page: https://github.com/spyder-ide/qtpy Author: Colin Duquesnoy, The Spyder Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/QtPy.egg-info/PKG-INFO new/QtPy-1.5.2/QtPy.egg-info/PKG-INFO --- old/QtPy-1.4.2/QtPy.egg-info/PKG-INFO 2018-05-07 00:28:16.000000000 +0200 +++ new/QtPy-1.5.2/QtPy.egg-info/PKG-INFO 2018-10-20 19:42:20.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.2 Name: QtPy -Version: 1.4.2 +Version: 1.5.2 Summary: Provides an abstraction layer on top of the various Qt bindings (PyQt5, PyQt4 and PySide) and additional custom QWidgets. Home-page: https://github.com/spyder-ide/qtpy Author: Colin Duquesnoy, The Spyder Development Team diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/QtPy.egg-info/SOURCES.txt new/QtPy-1.5.2/QtPy.egg-info/SOURCES.txt --- old/QtPy-1.4.2/QtPy.egg-info/SOURCES.txt 2018-05-07 00:28:16.000000000 +0200 +++ new/QtPy-1.5.2/QtPy.egg-info/SOURCES.txt 2018-10-20 19:42:20.000000000 +0200 @@ -13,15 +13,22 @@ qtpy/QtDesigner.py qtpy/QtGui.py qtpy/QtHelp.py +qtpy/QtLocation.py qtpy/QtMultimedia.py +qtpy/QtMultimediaWidgets.py qtpy/QtNetwork.py qtpy/QtOpenGL.py qtpy/QtPrintSupport.py +qtpy/QtQml.py +qtpy/QtQuick.py qtpy/QtSql.py qtpy/QtSvg.py qtpy/QtTest.py +qtpy/QtWebChannel.py qtpy/QtWebEngineWidgets.py +qtpy/QtWebSockets.py qtpy/QtWidgets.py +qtpy/QtXmlPatterns.py qtpy/__init__.py qtpy/_version.py qtpy/compat.py @@ -35,6 +42,7 @@ qtpy/tests/runtests.py qtpy/tests/test.ui qtpy/tests/test_custom.ui +qtpy/tests/test_macos_checks.py qtpy/tests/test_main.py qtpy/tests/test_patch_qcombobox.py qtpy/tests/test_patch_qheaderview.py @@ -42,10 +50,17 @@ qtpy/tests/test_qtcore.py qtpy/tests/test_qtdesigner.py qtpy/tests/test_qthelp.py +qtpy/tests/test_qtlocation.py qtpy/tests/test_qtmultimedia.py +qtpy/tests/test_qtmultimediawidgets.py qtpy/tests/test_qtnetwork.py qtpy/tests/test_qtprintsupport.py +qtpy/tests/test_qtqml.py +qtpy/tests/test_qtquick.py qtpy/tests/test_qtsql.py qtpy/tests/test_qtsvg.py qtpy/tests/test_qttest.py +qtpy/tests/test_qtwebchannel.py +qtpy/tests/test_qtwebsockets.py +qtpy/tests/test_qtxmlpatterns.py qtpy/tests/test_uic.py \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/README.md new/QtPy-1.5.2/README.md --- old/QtPy-1.4.2/README.md 2018-03-11 22:29:19.000000000 +0100 +++ new/QtPy-1.5.2/README.md 2018-08-05 19:54:19.000000000 +0200 @@ -1,40 +1,19 @@ # QtPy: Abstraction layer for PyQt5/PyQt4/PySide2/PySide -Copyright © 2009- The Spyder Development Team. - -## Project details [![license](https://img.shields.io/pypi/l/qtpy.svg)](./LICENSE) -[![pypi version](https://img.shields.io/pypi/v/qtpy.svg)](https://pypi.python.org/pypi/qtpy) -[![Join the chat at https://gitter.im/spyder-ide/public](https://badges.gitter.im/spyder-ide/spyder.svg)](https://gitter.im/spyder-ide/public) +[![pypi version](https://img.shields.io/pypi/v/qtpy.svg)](https://pypi.org/project/QtPy/) +[![conda version](https://img.shields.io/conda/vn/conda-forge/qtpy.svg)](https://www.anaconda.com/download/) +[![download count](https://img.shields.io/conda/dn/conda-forge/qtpy.svg)](https://www.anaconda.com/download/) [![OpenCollective Backers](https://opencollective.com/spyder/backers/badge.svg?color=blue)](#backers) -[![OpenCollective Sponsors](https://opencollective.com/spyder/sponsors/badge.svg?color=blue)](#sponsors) - -## Build status +[![Join the chat at https://gitter.im/spyder-ide/public](https://badges.gitter.im/spyder-ide/spyder.svg)](https://gitter.im/spyder-ide/public)<br> +[![PyPI status](https://img.shields.io/pypi/status/qtpy.svg)](https://github.com/spyder-ide/qtpy) [![Build status](https://ci.appveyor.com/api/projects/status/62y6i02vhn4hefg0/branch/master?svg=true)](https://ci.appveyor.com/project/spyder-ide/qtpy/branch/master) [![CircleCI](https://circleci.com/gh/spyder-ide/qtpy.svg?style=shield)](https://circleci.com/gh/spyder-ide/qtpy) [![Coverage Status](https://coveralls.io/repos/github/spyder-ide/qtpy/badge.svg?branch=master)](https://coveralls.io/github/spyder-ide/qtpy?branch=master) [![Scrutinizer Code Quality](https://scrutinizer-ci.com/g/spyder-ide/qtpy/badges/quality-score.png?b=master)](https://scrutinizer-ci.com/g/spyder-ide/qtpy/?branch=master) ----- - -## Important Announcement: Spyder is unfunded! - -Since mid November/2017, [Anaconda, Inc](https://www.anaconda.com/) has -stopped funding Spyder development, after doing it for the past 18 -months. Because of that, development will focus from now on maintaining -Spyder 3 at a much slower pace than before. - -If you want to contribute to maintain Spyder, please consider donating at +*Copyright © 2009–2018 The Spyder Development Team* -https://opencollective.com/spyder - -We appreciate all the help you can provide us and can't thank you enough for -supporting the work of Spyder devs and Spyder development. - -If you want to know more about this, please read this -[page](https://github.com/spyder-ide/spyder/wiki/Anaconda-stopped-funding-Spyder). - ----- ## Description @@ -44,11 +23,11 @@ It provides support for PyQt5, PyQt4, PySide2 and PySide using the Qt5 layout (where the QtGui module has been split into QtGui and QtWidgets). -Basically, you write your code as if you were using PySide2 but import Qt modules -from `qtpy` instead of `PySide2` (or `PyQt5`) +Basically, you can write your code as if you were using PySide2 +but import Qt modules from `qtpy` instead of `PySide2` (or `PyQt5`) -### Attribution and acknowledgements +### Attribution and acknowledgments This project is based on the [pyqode.qt](https://github.com/pyQode/pyqode.qt) project and the [spyderlib.qt](https://github.com/spyder-ide/spyder/tree/2.3/spyderlib/qt) @@ -63,7 +42,7 @@ ### License -This project is licensed under the MIT license. +This project is released under the MIT license. ### Requirements @@ -92,10 +71,12 @@ conda install qtpy ``` + ## Contributing Everyone is welcome to contribute! + ## Backers Support us with a monthly donation and help us continue our activities. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtCore.py new/QtPy-1.5.2/qtpy/QtCore.py --- old/QtPy-1.4.2/qtpy/QtCore.py 2018-05-06 23:26:49.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/QtCore.py 2018-08-25 20:54:38.000000000 +0200 @@ -20,6 +20,10 @@ from PyQt5.QtCore import pyqtProperty as Property from PyQt5.QtCore import QT_VERSION_STR as __version__ + # For issue #153 + from PyQt5.QtCore import QDateTime + QDateTime.toPython = QDateTime.toPyDateTime + # Those are imported from `import *` del pyqtSignal, pyqtSlot, pyqtProperty, QT_VERSION_STR elif PYSIDE2: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtLocation.py new/QtPy-1.5.2/qtpy/QtLocation.py --- old/QtPy-1.4.2/qtpy/QtLocation.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtLocation.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtLocation classes and functions.""" + +# Local imports +from . import PYQT5, PYSIDE2, PythonQtError + +if PYQT5: + from PyQt5.QtLocation import * +elif PYSIDE2: + from PySide2.QtLocation import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtMultimediaWidgets.py new/QtPy-1.5.2/qtpy/QtMultimediaWidgets.py --- old/QtPy-1.4.2/qtpy/QtMultimediaWidgets.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtMultimediaWidgets.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtMultimediaWidgets classes and functions.""" + +# Local imports +from . import PYSIDE2, PYQT5, PythonQtError + +if PYQT5: + from PyQt5.QtMultimediaWidgets import * +elif PYSIDE2: + from PySide2.QtMultimediaWidgets import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtOpenGL.py new/QtPy-1.5.2/qtpy/QtOpenGL.py --- old/QtPy-1.4.2/qtpy/QtOpenGL.py 2017-05-11 17:36:04.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/QtOpenGL.py 2018-10-17 00:19:47.000000000 +0200 @@ -8,10 +8,12 @@ """Provides QtOpenGL classes and functions.""" # Local imports -from . import PYQT4, PYQT5, PYSIDE, PythonQtError +from . import PYQT4, PYQT5, PYSIDE, PYSIDE2, PythonQtError if PYQT5: from PyQt5.QtOpenGL import * +elif PYSIDE2: + from PySide2.QtOpenGL import * elif PYQT4: from PyQt4.QtOpenGL import * elif PYSIDE: @@ -19,4 +21,4 @@ else: raise PythonQtError('No Qt bindings could be found') -del PYQT4, PYQT5, PYSIDE +del PYQT4, PYQT5, PYSIDE, PYSIDE2 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtQml.py new/QtPy-1.5.2/qtpy/QtQml.py --- old/QtPy-1.4.2/qtpy/QtQml.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtQml.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtQml classes and functions.""" + +# Local imports +from . import PYQT5, PYSIDE2, PythonQtError + +if PYQT5: + from PyQt5.QtQml import * +elif PYSIDE2: + from PySide2.QtQml import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtQuick.py new/QtPy-1.5.2/qtpy/QtQuick.py --- old/QtPy-1.4.2/qtpy/QtQuick.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtQuick.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtQuick classes and functions.""" + +# Local imports +from . import PYQT5, PYSIDE2, PythonQtError + +if PYQT5: + from PyQt5.QtQuick import * +elif PYSIDE2: + from PySide2.QtQuick import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtWebChannel.py new/QtPy-1.5.2/qtpy/QtWebChannel.py --- old/QtPy-1.4.2/qtpy/QtWebChannel.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtWebChannel.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtWebChannel classes and functions.""" + +# Local imports +from . import PYSIDE2, PYQT5, PythonQtError + +if PYQT5: + from PyQt5.QtWebChannel import * +elif PYSIDE2: + from PySide2.QtWebChannel import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtWebSockets.py new/QtPy-1.5.2/qtpy/QtWebSockets.py --- old/QtPy-1.4.2/qtpy/QtWebSockets.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtWebSockets.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,18 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtWebSockets classes and functions.""" + +# Local imports +from . import PYSIDE2, PYQT5, PythonQtError + +if PYQT5: + from PyQt5.QtWebSockets import * +elif PYSIDE2: + from PySide2.QtWebSockets import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/QtXmlPatterns.py new/QtPy-1.5.2/qtpy/QtXmlPatterns.py --- old/QtPy-1.4.2/qtpy/QtXmlPatterns.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/QtXmlPatterns.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +# ----------------------------------------------------------------------------- +# Copyright © 2009- The Spyder Development Team +# +# Licensed under the terms of the MIT License +# (see LICENSE.txt for details) +# ----------------------------------------------------------------------------- +"""Provides QtXmlPatterns classes and functions.""" + +# Local imports +from . import PYQT4, PYSIDE2, PYQT5, PYSIDE, PythonQtError + +if PYQT5: + from PyQt5.QtXmlPatterns import * +elif PYSIDE2: + from PySide2.QtXmlPatterns import * +elif PYQT4: + from PyQt4.QtXmlPatterns import * +elif PYSIDE: + from PySide.QtXmlPatterns import * +else: + raise PythonQtError('No Qt bindings could be found') diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/__init__.py new/QtPy-1.5.2/qtpy/__init__.py --- old/QtPy-1.4.2/qtpy/__init__.py 2018-05-07 00:21:16.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/__init__.py 2018-09-18 18:44:51.000000000 +0200 @@ -62,7 +62,9 @@ """ +from distutils.version import LooseVersion import os +import platform import sys import warnings @@ -70,8 +72,8 @@ from ._version import __version__ -class PythonQtError(Exception): - """Error raise if no bindings could be selected""" +class PythonQtError(RuntimeError): + """Error raise if no bindings could be selected.""" pass @@ -125,6 +127,23 @@ from PyQt5.QtCore import PYQT_VERSION_STR as PYQT_VERSION # analysis:ignore from PyQt5.QtCore import QT_VERSION_STR as QT_VERSION # analysis:ignore PYSIDE_VERSION = None + + if sys.platform == 'darwin': + macos_version = LooseVersion(platform.mac_ver()[0]) + if macos_version < LooseVersion('10.10'): + if LooseVersion(QT_VERSION) >= LooseVersion('5.9'): + raise PythonQtError("Qt 5.9 or higher only works in " + "macOS 10.10 or higher. Your " + "program will fail in this " + "system.") + elif macos_version < LooseVersion('10.11'): + if LooseVersion(QT_VERSION) >= LooseVersion('5.11'): + raise PythonQtError("Qt 5.11 or higher only works in " + "macOS 10.11 or higher. Your " + "program will fail in this " + "system.") + + del macos_version except ImportError: API = os.environ['QT_API'] = 'pyside2' @@ -136,6 +155,17 @@ PYQT_VERSION = None PYQT5 = False PYSIDE2 = True + + if sys.platform == 'darwin': + macos_version = LooseVersion(platform.mac_ver()[0]) + if macos_version < LooseVersion('10.11'): + if LooseVersion(QT_VERSION) >= LooseVersion('5.11'): + raise PythonQtError("Qt 5.11 or higher only works in " + "macOS 10.11 or higher. Your " + "program will fail in this " + "system.") + + del macos_version except ImportError: API = os.environ['QT_API'] = 'pyqt' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/_version.py new/QtPy-1.5.2/qtpy/_version.py --- old/QtPy-1.4.2/qtpy/_version.py 2018-05-07 00:27:10.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/_version.py 2018-10-20 19:41:00.000000000 +0200 @@ -1,2 +1,2 @@ -version_info = (1, 4, 2) +version_info = (1, 5, 2) __version__ = '.'.join(map(str, version_info)) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_macos_checks.py new/QtPy-1.5.2/qtpy/tests/test_macos_checks.py --- old/QtPy-1.4.2/qtpy/tests/test_macos_checks.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_macos_checks.py 2018-09-18 16:21:17.000000000 +0200 @@ -0,0 +1,110 @@ +from __future__ import absolute_import + +import mock +import platform +import sys + +import pytest +from qtpy import PYQT5, PYSIDE2 + + +@pytest.mark.skipif(not PYQT5, reason="Targeted to PyQt5") +@mock.patch.object(platform, 'mac_ver') +def test_qt59_exception(mac_ver, monkeypatch): + # Remove qtpy to reimport it again + try: + del sys.modules["qtpy"] + except KeyError: + pass + + # Patch stdlib to emulate a macOS system + monkeypatch.setattr("sys.platform", 'darwin') + mac_ver.return_value = ('10.9.2',) + + # Patch Qt version + monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.9.1') + + # This should raise an Exception + with pytest.raises(Exception) as e: + import qtpy + + assert '10.10' in str(e.value) + assert '5.9' in str(e.value) + + +@pytest.mark.skipif(not PYQT5, reason="Targeted to PyQt5") +@mock.patch.object(platform, 'mac_ver') +def test_qt59_no_exception(mac_ver, monkeypatch): + # Remove qtpy to reimport it again + try: + del sys.modules["qtpy"] + except KeyError: + pass + + # Patch stdlib to emulate a macOS system + monkeypatch.setattr("sys.platform", 'darwin') + mac_ver.return_value = ('10.10.1',) + + # Patch Qt version + monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.9.5') + + # This should not raise an Exception + try: + import qtpy + except Exception: + pytest.fail("Error!") + + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), + reason="Targeted to PyQt5 or PySide2") +@mock.patch.object(platform, 'mac_ver') +def test_qt511_exception(mac_ver, monkeypatch): + # Remove qtpy to reimport it again + try: + del sys.modules["qtpy"] + except KeyError: + pass + + # Patch stdlib to emulate a macOS system + monkeypatch.setattr("sys.platform", 'darwin') + mac_ver.return_value = ('10.10.3',) + + # Patch Qt version + if PYQT5: + monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.11.1') + else: + monkeypatch.setattr("PySide2.QtCore.__version__", '5.11.1') + + # This should raise an Exception + with pytest.raises(Exception) as e: + import qtpy + + assert '10.11' in str(e.value) + assert '5.11' in str(e.value) + + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), + reason="Targeted to PyQt5 or PySide2") +@mock.patch.object(platform, 'mac_ver') +def test_qt511_no_exception(mac_ver, monkeypatch): + # Remove qtpy to reimport it again + try: + del sys.modules["qtpy"] + except KeyError: + pass + + # Patch stdlib to emulate a macOS system + monkeypatch.setattr("sys.platform", 'darwin') + mac_ver.return_value = ('10.13.2',) + + # Patch Qt version + if PYQT5: + monkeypatch.setattr("PyQt5.QtCore.QT_VERSION_STR", '5.11.1') + else: + monkeypatch.setattr("PySide2.QtCore.__version__", '5.11.1') + + # This should not raise an Exception + try: + import qtpy + except Exception: + pytest.fail("Error!") diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtcore.py new/QtPy-1.5.2/qtpy/tests/test_qtcore.py --- old/QtPy-1.4.2/qtpy/tests/test_qtcore.py 2017-08-12 17:19:03.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/tests/test_qtcore.py 2018-08-25 20:54:38.000000000 +0200 @@ -1,10 +1,18 @@ from __future__ import absolute_import import pytest -from qtpy import QtCore +from qtpy import PYQT5, PYSIDE2, QtCore """Test QtCore.""" + def test_qtmsghandler(): - """Test the qtpy.QtMsgHandler""" + """Test qtpy.QtMsgHandler""" assert QtCore.qInstallMessageHandler is not None + + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), + reason="Targeted to PyQt5 or PySide2") +def test_DateTime_toPython(): + """Test QDateTime.toPython""" + assert QtCore.QDateTime.toPython is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtlocation.py new/QtPy-1.5.2/qtpy/tests/test_qtlocation.py --- old/QtPy-1.4.2/qtpy/tests/test_qtlocation.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtlocation.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,48 @@ +from __future__ import absolute_import + +import pytest +from qtpy import PYQT5, PYSIDE2 + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), reason="Only available in Qt5 bindings") +def test_qtlocation(): + """Test the qtpy.QtLocation namespace""" + from qtpy import QtLocation + assert QtLocation.QGeoCodeReply is not None + assert QtLocation.QGeoCodingManager is not None + assert QtLocation.QGeoCodingManagerEngine is not None + assert QtLocation.QGeoManeuver is not None + assert QtLocation.QGeoRoute is not None + assert QtLocation.QGeoRouteReply is not None + assert QtLocation.QGeoRouteRequest is not None + assert QtLocation.QGeoRouteSegment is not None + assert QtLocation.QGeoRoutingManager is not None + assert QtLocation.QGeoRoutingManagerEngine is not None + assert QtLocation.QGeoServiceProvider is not None + #assert QtLocation.QGeoServiceProviderFactory is not None + assert QtLocation.QPlace is not None + assert QtLocation.QPlaceAttribute is not None + assert QtLocation.QPlaceCategory is not None + assert QtLocation.QPlaceContactDetail is not None + assert QtLocation.QPlaceContent is not None + assert QtLocation.QPlaceContentReply is not None + assert QtLocation.QPlaceContentRequest is not None + assert QtLocation.QPlaceDetailsReply is not None + assert QtLocation.QPlaceEditorial is not None + assert QtLocation.QPlaceIcon is not None + assert QtLocation.QPlaceIdReply is not None + assert QtLocation.QPlaceImage is not None + assert QtLocation.QPlaceManager is not None + assert QtLocation.QPlaceManagerEngine is not None + assert QtLocation.QPlaceMatchReply is not None + assert QtLocation.QPlaceMatchRequest is not None + assert QtLocation.QPlaceProposedSearchResult is not None + assert QtLocation.QPlaceRatings is not None + assert QtLocation.QPlaceReply is not None + assert QtLocation.QPlaceResult is not None + assert QtLocation.QPlaceReview is not None + assert QtLocation.QPlaceSearchReply is not None + assert QtLocation.QPlaceSearchRequest is not None + assert QtLocation.QPlaceSearchResult is not None + assert QtLocation.QPlaceSearchSuggestionReply is not None + assert QtLocation.QPlaceSupplier is not None + assert QtLocation.QPlaceUser is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtmultimedia.py new/QtPy-1.5.2/qtpy/tests/test_qtmultimedia.py --- old/QtPy-1.4.2/qtpy/tests/test_qtmultimedia.py 2018-04-29 01:39:49.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/tests/test_qtmultimedia.py 2018-10-17 00:18:09.000000000 +0200 @@ -1,8 +1,12 @@ from __future__ import absolute_import +import os +import sys import pytest +@pytest.mark.skipif(os.name == 'nt' and sys.version_info[:2] == (3, 5), + reason="Conda packages don't seem to include QtMultimedia") def test_qtmultimedia(): """Test the qtpy.QtMultimedia namespace""" from qtpy import QtMultimedia diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtmultimediawidgets.py new/QtPy-1.5.2/qtpy/tests/test_qtmultimediawidgets.py --- old/QtPy-1.4.2/qtpy/tests/test_qtmultimediawidgets.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtmultimediawidgets.py 2018-10-17 00:18:09.000000000 +0200 @@ -0,0 +1,18 @@ +from __future__ import absolute_import +import os +import sys + +import pytest +from qtpy import PYQT5, PYSIDE2 + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), reason="Only available in Qt5 bindings") +@pytest.mark.skipif(os.name == 'nt' and sys.version_info[:2] == (3, 5), + reason="Conda packages don't seem to include QtMultimedia") +def test_qtmultimediawidgets(): + """Test the qtpy.QtMultimediaWidgets namespace""" + from qtpy import QtMultimediaWidgets + + assert QtMultimediaWidgets.QCameraViewfinder is not None + assert QtMultimediaWidgets.QGraphicsVideoItem is not None + assert QtMultimediaWidgets.QVideoWidget is not None + #assert QtMultimediaWidgets.QVideoWidgetControl is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtnetwork.py new/QtPy-1.5.2/qtpy/tests/test_qtnetwork.py --- old/QtPy-1.4.2/qtpy/tests/test_qtnetwork.py 2018-04-28 20:49:13.000000000 +0200 +++ new/QtPy-1.5.2/qtpy/tests/test_qtnetwork.py 2018-08-05 19:54:19.000000000 +0200 @@ -4,13 +4,13 @@ from qtpy import PYSIDE, PYSIDE2, QtNetwork -@pytest.mark.skipif(PYSIDE2 or PYSIDE, reason="It fails on PySide/PySide2") def test_qtnetwork(): """Test the qtpy.QtNetwork namespace""" assert QtNetwork.QAbstractNetworkCache is not None assert QtNetwork.QNetworkCacheMetaData is not None - assert QtNetwork.QHttpMultiPart is not None - assert QtNetwork.QHttpPart is not None + if not PYSIDE and not PYSIDE2: + assert QtNetwork.QHttpMultiPart is not None + assert QtNetwork.QHttpPart is not None assert QtNetwork.QNetworkAccessManager is not None assert QtNetwork.QNetworkCookie is not None assert QtNetwork.QNetworkCookieJar is not None @@ -34,9 +34,10 @@ assert QtNetwork.QTcpServer is not None assert QtNetwork.QTcpSocket is not None assert QtNetwork.QUdpSocket is not None - assert QtNetwork.QSslCertificate is not None - assert QtNetwork.QSslCipher is not None - assert QtNetwork.QSslConfiguration is not None - assert QtNetwork.QSslError is not None - assert QtNetwork.QSslKey is not None - assert QtNetwork.QSslSocket is not None + if not PYSIDE: + assert QtNetwork.QSslCertificate is not None + assert QtNetwork.QSslCipher is not None + assert QtNetwork.QSslConfiguration is not None + assert QtNetwork.QSslError is not None + assert QtNetwork.QSslKey is not None + assert QtNetwork.QSslSocket is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtqml.py new/QtPy-1.5.2/qtpy/tests/test_qtqml.py --- old/QtPy-1.4.2/qtpy/tests/test_qtqml.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtqml.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,34 @@ +from __future__ import absolute_import + +import pytest +from qtpy import PYQT5, PYSIDE2 + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), reason="Only available in Qt5 bindings") +def test_qtqml(): + """Test the qtpy.QtQml namespace""" + from qtpy import QtQml + assert QtQml.QJSEngine is not None + assert QtQml.QJSValue is not None + assert QtQml.QJSValueIterator is not None + assert QtQml.QQmlAbstractUrlInterceptor is not None + assert QtQml.QQmlApplicationEngine is not None + assert QtQml.QQmlComponent is not None + assert QtQml.QQmlContext is not None + assert QtQml.QQmlEngine is not None + assert QtQml.QQmlImageProviderBase is not None + assert QtQml.QQmlError is not None + assert QtQml.QQmlExpression is not None + assert QtQml.QQmlExtensionPlugin is not None + assert QtQml.QQmlFileSelector is not None + assert QtQml.QQmlIncubationController is not None + assert QtQml.QQmlIncubator is not None + if not PYSIDE2: + # https://wiki.qt.io/Qt_for_Python_Missing_Bindings#QtQml + assert QtQml.QQmlListProperty is not None + assert QtQml.QQmlListReference is not None + assert QtQml.QQmlNetworkAccessManagerFactory is not None + assert QtQml.QQmlParserStatus is not None + assert QtQml.QQmlProperty is not None + assert QtQml.QQmlPropertyValueSource is not None + assert QtQml.QQmlScriptString is not None + assert QtQml.QQmlPropertyMap is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtquick.py new/QtPy-1.5.2/qtpy/tests/test_qtquick.py --- old/QtPy-1.4.2/qtpy/tests/test_qtquick.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtquick.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,53 @@ +from __future__ import absolute_import + +import pytest +from qtpy import PYQT5, PYSIDE2 + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), reason="Only available in Qt5 bindings") +def test_qtquick(): + """Test the qtpy.QtQuick namespace""" + from qtpy import QtQuick + assert QtQuick.QQuickAsyncImageProvider is not None + if not PYSIDE2: + assert QtQuick.QQuickCloseEvent is not None + assert QtQuick.QQuickFramebufferObject is not None + assert QtQuick.QQuickImageProvider is not None + assert QtQuick.QQuickImageResponse is not None + assert QtQuick.QQuickItem is not None + assert QtQuick.QQuickItemGrabResult is not None + assert QtQuick.QQuickPaintedItem is not None + assert QtQuick.QQuickRenderControl is not None + assert QtQuick.QQuickTextDocument is not None + assert QtQuick.QQuickTextureFactory is not None + assert QtQuick.QQuickView is not None + assert QtQuick.QQuickWindow is not None + assert QtQuick.QSGAbstractRenderer is not None + assert QtQuick.QSGBasicGeometryNode is not None + assert QtQuick.QSGClipNode is not None + assert QtQuick.QSGDynamicTexture is not None + assert QtQuick.QSGEngine is not None + if not PYSIDE2: + assert QtQuick.QSGFlatColorMaterial is not None + assert QtQuick.QSGGeometry is not None + assert QtQuick.QSGGeometryNode is not None + #assert QtQuick.QSGImageNode is not None + if not PYSIDE2: + assert QtQuick.QSGMaterial is not None + assert QtQuick.QSGMaterialShader is not None + assert QtQuick.QSGMaterialType is not None + assert QtQuick.QSGNode is not None + assert QtQuick.QSGOpacityNode is not None + if not PYSIDE2: + assert QtQuick.QSGOpaqueTextureMaterial is not None + #assert QtQuick.QSGRectangleNode is not None + #assert QtQuick.QSGRenderNode is not None + #assert QtQuick.QSGRendererInterface is not None + assert QtQuick.QSGSimpleRectNode is not None + assert QtQuick.QSGSimpleTextureNode is not None + assert QtQuick.QSGTexture is not None + if not PYSIDE2: + assert QtQuick.QSGTextureMaterial is not None + assert QtQuick.QSGTextureProvider is not None + assert QtQuick.QSGTransformNode is not None + if not PYSIDE2: + assert QtQuick.QSGVertexColorMaterial is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtwebchannel.py new/QtPy-1.5.2/qtpy/tests/test_qtwebchannel.py --- old/QtPy-1.4.2/qtpy/tests/test_qtwebchannel.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtwebchannel.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,13 @@ +from __future__ import absolute_import + +import pytest +from qtpy import PYQT5, PYSIDE2 + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), reason="Only available in Qt5 bindings") +def test_qtwebchannel(): + """Test the qtpy.QtWebChannel namespace""" + from qtpy import QtWebChannel + + assert QtWebChannel.QWebChannel is not None + assert QtWebChannel.QWebChannelAbstractTransport is not None + diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtwebsockets.py new/QtPy-1.5.2/qtpy/tests/test_qtwebsockets.py --- old/QtPy-1.4.2/qtpy/tests/test_qtwebsockets.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtwebsockets.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,15 @@ +from __future__ import absolute_import + +import pytest +from qtpy import PYQT5, PYSIDE2 + +@pytest.mark.skipif(not (PYQT5 or PYSIDE2), reason="Only available in Qt5 bindings") +def test_qtwebsockets(): + """Test the qtpy.QtWebSockets namespace""" + from qtpy import QtWebSockets + + assert QtWebSockets.QMaskGenerator is not None + assert QtWebSockets.QWebSocket is not None + assert QtWebSockets.QWebSocketCorsAuthenticator is not None + assert QtWebSockets.QWebSocketProtocol is not None + assert QtWebSockets.QWebSocketServer is not None diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/QtPy-1.4.2/qtpy/tests/test_qtxmlpatterns.py new/QtPy-1.5.2/qtpy/tests/test_qtxmlpatterns.py --- old/QtPy-1.4.2/qtpy/tests/test_qtxmlpatterns.py 1970-01-01 01:00:00.000000000 +0100 +++ new/QtPy-1.5.2/qtpy/tests/test_qtxmlpatterns.py 2018-08-05 19:54:19.000000000 +0200 @@ -0,0 +1,25 @@ +from __future__ import absolute_import + +import pytest +from qtpy import PYSIDE2, PYSIDE + +def test_qtxmlpatterns(): + """Test the qtpy.QtXmlPatterns namespace""" + from qtpy import QtXmlPatterns + assert QtXmlPatterns.QAbstractMessageHandler is not None + assert QtXmlPatterns.QAbstractUriResolver is not None + assert QtXmlPatterns.QAbstractXmlNodeModel is not None + assert QtXmlPatterns.QAbstractXmlReceiver is not None + if not PYSIDE2 and not PYSIDE: + assert QtXmlPatterns.QSimpleXmlNodeModel is not None + assert QtXmlPatterns.QSourceLocation is not None + assert QtXmlPatterns.QXmlFormatter is not None + assert QtXmlPatterns.QXmlItem is not None + assert QtXmlPatterns.QXmlName is not None + assert QtXmlPatterns.QXmlNamePool is not None + assert QtXmlPatterns.QXmlNodeModelIndex is not None + assert QtXmlPatterns.QXmlQuery is not None + assert QtXmlPatterns.QXmlResultItems is not None + assert QtXmlPatterns.QXmlSchema is not None + assert QtXmlPatterns.QXmlSchemaValidator is not None + assert QtXmlPatterns.QXmlSerializer is not None