Sync from SUSE:ALP:Source:Standard:1.0 python-QtPy revision 3a6ef3742df8daf72106f79ef807759a

This commit is contained in:
Adrian Schröter 2023-12-19 15:16:59 +01:00
commit f599c2bd38
6 changed files with 862 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

BIN
QtPy-2.4.1.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

3
_multibuild Normal file
View File

@ -0,0 +1,3 @@
<multibuild>
<package>test</package>
</multibuild>

544
python-QtPy.changes Normal file
View File

@ -0,0 +1,544 @@
-------------------------------------------------------------------
Tue Nov 21 13:39:59 UTC 2023 - Dirk Müller <dmueller@suse.com>
- add qt6.6-deprecations.patch to avoid deprecation warnings
with qt 6.6
-------------------------------------------------------------------
Tue Nov 21 07:34:39 UTC 2023 - ecsos <ecsos@opensuse.org>
- Update to 2.4.1
* [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #456
* PR: Fix bug when importing from PySide6.QtWebEngineCore/QtWebEngineWidgets
(QWebEngineScrip vs QWebEngineScript) by @damonlynch in #455
* [pre-commit.ci] pre-commit autoupdate by @pre-commit-ci in #459
-------------------------------------------------------------------
Sun Sep 24 18:51:40 UTC 2023 - Ben Greiner <code@bnavigator.de>
- Update to 2.4.0
* Add missing issue closed for v2.3.1 changelog entry by
@dalthviz in #419
* Symmetrize path and location of QLibraryInfo by @StSav012 in
#420
* Improve import modularity between QtGui, QtWidgets and
QtOpenGL* related modules by @DaelonSuzuka in #387
* Make CI jobs much faster & less flaky w/Mamba, 1-pass solve &
other tweaks by @CAM-Gerlach in #425
* Symmetrize QDateTime.toPython and toPyDateTime, etc. by
@StSav012 in #421
* Use static calls of exec_ elsewhere where needed, and test them
by @StSav012 in #422
* Enable more tests on CI by @Czaki in #434
* Add wrapers to fix argument name in QFileDialog get*methods by
@Czaki in #433
* Rename utils.py to _utils.py to make it private by @StSav012 in
#431
* Make exec() for PySide2 by @StSav012 in #438
* Replace custom implementation with loadUiType from PySide6 by
@JaRoSchm in #440
* Update bindings upper bound version to 6.5 and ignore
DeprecationWarning (CI) by @dalthviz in #443
* Make QMenu.addAction and QToolBar.addAction compatible with Qt6
arguments' order by @StSav012 in #437
* Restore Qt.ItemFlags access as Qt.ItemFlag alias (PyQt6) by
@dalthviz in #444
* Add mappings for deprecated QDropEvent pos and posF methods by
@dalthviz in #445
* Restore QtWidgets.QFileDialog.Options access as
QtWidgets.QFileDialog.Option alias (PyQt6) by @dalthviz in #448
* Add QEnum macro for PyQt bindings by @phil65 in #424
* Improve enum to flags aliasing for PyQt6 and PySide6 > 6.3 and
QFileDialog static methods kwarg compatibility by @dalthviz in
#449
* Update README with information on Pyright/Pylance integration
and add CLI subcommand to help generate the related config by
@wkrasnicki in #450
* Test using PyQt extra packages by @dalthviz in #446
- Release 2.3.1
* Use raise from None when raising QtBindingsNotFoundError in
init by @CAM-Gerlach in #391
* Fix LibraryLocation -> LibraryPath renaming due to deprecation
with Qt6 by @StSav012 in #393
* Make warning usage consistant and refine messages by
@CAM-Gerlach in #398
* Don't make QTextStreamManipulator.exec_ on PyQt5/6 by @StSav012
in #404
* Remove patch that may be limited to PySide-5.11a1 only by
@StSav012 in #407
* Add mappings for QMouseEvent methods by @StSav012 in #408
* Improve compatibility for QtWidgets and QtGui modules between
Qt5 and Qt6 bindings by @StSav012 in #410
* Make QtBindingsNotFoundError also inherit from ImportError by
@cbrnr in #413
* Add compatibility mappings between bindings for all children of
QSinglePointEvent by @StSav012 in #417
-------------------------------------------------------------------
Sat Jun 10 09:43:32 UTC 2023 - ecsos <ecsos@opensuse.org>
- Add %{?sle15_python_module_pythons}
-------------------------------------------------------------------
Sun Nov 20 19:55:23 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 2.3.0
* PR 382 - PR: Add QtPdf and QtPdfWidgets, by @jschueller (381)
* PR 380 - PR: Enable more qt6 tests, by @jschueller
* PR 379 - PR: Raise error when no bindings are found at
__init__, by @dalthviz (367)
* PR 378 - PR: Try PySide6 on conda, by @jschueller
* PR 376 - PR: Expand the CI test matrix with Qt/bindings 6.4 and
fix tests with PyQt 5.9, by @CAM-Gerlach (375)
* PR 374 - Don't re-assign Qt.MouseButton.MiddleButton on
PySide6, by @astrofrog (373)
* PR 372 - PR: Add Qsci to the imports, by @dgoeries (134)
- Release 2.2.1
* PR 368 - PR: Add missing self for QtBindingsNotFoundError
definition, by @dalthviz
* PR 366 - PR: Aliased QUndoCommand, provided
QLineEdit.getTextMargins() and QFontMetricsF.width(), by
@random-developer (365)
* PR 363 - PR: Fix typo in Qt flags in Readme, by @Czaki
* PR 362 - PR: Fix various minor typos found with Codespell, by
@luzpaz
* PR 361 - PR: toPython helpers for QDate and QTime, by
@bob-schumaker
* PR 360 - CI: Ensure conda-forge channel usage when testing with
conda, by @dalthviz
-------------------------------------------------------------------
Thu Aug 18 13:23:53 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 2.2.0
* Add workaround for mode argument in QTextCursor.movePosition
(PySide6) by @rear1019 in #346
* Add missing imports and modules by @DaelonSuzuka in #344
* Restore WEBENGINE constant in QtWebEngineWidgets by @ccordoba12
in #350
* Add note to readme about use with Pyright by @CAM-Gerlach in
#353
* Add wrapper around sip/shiboken isdeleted/isvalid (compat.py)
by @zjp in #354
* Fix PyQt6 typing import for Qt by @tlambert03 in #358
* Add initial Methods, helpers and QtPy namespace specifics
section to the README by @dalthviz in #357
- Revert last change: Removing Python2 from build requirements of
libqt5-qtwebengine and crippling the testsuite of a package not
even in ring1 are orthogonal to each other.
- Enable PySide6 tests: Segfaults are gone.
-------------------------------------------------------------------
Mon Aug 8 12:12:04 UTC 2022 - Stephan Kulow <coolo@suse.com>
- Disable Qt5 bindings as they require python2 (for chromium within
qtwebengine) and we want to get rid of it in ring1
-------------------------------------------------------------------
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>
- Disable PyQt6-WebEngine tests for 32-bit platforms
* QtWebEngine 6.3.0 disabled 32-bit support
* Needs multibuild flavor for platform specific conditions
-------------------------------------------------------------------
Sat Apr 9 20:48:40 UTC 2022 - Ben Greiner <code@bnavigator.de>
- Update to 2.0.1
* PR: Add missing imports in QtOpenGL by @renefritze in #307
* PR: Add missing QtGui utility function to QtCore.Qt for PySide
bindings by @dalthviz in #313
* PR: Add mapping for missing enum values aliases on QtCore.Qt by
@dalthviz in #314
* PR: Fix mappings of instance method and slot alias (PyQt6 and
PySide6) by @kumattau in #308
* PR: Add QtCharts alias for backward compatibility with 1.x by
@dalthviz in #315
* PR: Promote enum aliases by @MatthieuDartiailh in #319
* PR: Add missing tests for aliased methods by @dalthviz in #317
- Release 2.0.0
* PR: Add support for PySide6 by @jschueller in #225
* PR: Add QShortcut class to QtWidgets module by @kumattau in
#254
* PR: Remove Qt4 support by @jschueller in #252
* PR: Drop Python 2 by @dalthviz in #251
* PR: Fix fallback API by @benoit-pierre in #256
* PR: Add additional Qt modules and more support and tests for
PyQt6/PySide6 by @jschueller in #255
* PR: Reorganize QtCharts module import and add missing skip
validation for QtNetworkAuth test with PyQt6 by @dalthviz in
#260
* PR: [PyQt6] Add exec_/print_, and add QOpenGLWidget/QShortcut
to QtWidgets by @kumattau in #259
* PR: Remove accidentally-duplicated lines of code in QtCore by
@kumattau in #263
* PR: [PyQt6] Add missing tabStopWidth/setTabStopWidth same as
PySide6 by @kumattau in #264
* PR: Use modern packaging instead of deprecated distutils for
version parse by @CAM-Gerlach in #266
* PR: Unify and cleanup CI infra, improve robustness and test
Python 3.9 and PyQt6 by @CAM-Gerlach in #262
* PR: Fix and improve Coveralls reporting by @CAM-Gerlach in #268
* PR: Avoid future deprecations and decrease general technical
debt by @CAM-Gerlach in #273
* PR: Fix regression in FORCE_QT_API behavior from merging
PySide6 support by @tlambert03 in #276
* PR: Add back legacy PYQT4 and PYSIDE package-level constants
for compat by @CAM-Gerlach in #279
* PR: Add Contributing Guide based on other Spyder projects by
@CAM-Gerlach in #277
* PR: Update README sponsors section by @dalthviz in #282
* PR: Unscoped enums access for PyQt6 and other missing PyQt6
compatibility changes by @dalthviz in #271
* PR: Upgrade packaging to avoid legacy/deprecated behavior and
follow PEP 517 by @CAM-Gerlach in #272
* PR: Map exec_ to their non-deprecated alternatives by @kumattau
in #287
* PR: Add QtTextToSpeech Module by @kumattau in #291
* PR: Import all classes in QtTest module. by @kumattau in #290
* PR: Define Qt/binding versions at top level, fix warnings if
versions not found, and fix test dir on CIs by @CAM-Gerlach in
#292
* PR: Update gitignore, gitattributes, license, authors and
security policy by @CAM-Gerlach in #278
* PR: Add minimum version check for Qt6 >=6.2.0 by @CAM-Gerlach
in #294
* PR: Add support for Python 3.10 on CIs and packaging by
@CAM-Gerlach in #296
* PR: Make QLibraryInfo.location work for PyQt6 by @stonebig in
#298
* PR: 'width' needed for PyQt6 by @stonebig in #299
* PR: Update README.md adding a line for QtPy usefulness when
migrating between Qt bindings/versions by @dalthviz in #301
* PR: Fix QFileSystemModel for PyQt6 by @almarklein in #303
- Release 1.11.3
* PR: Catch PythonQtError when trying to do alias for
QtDataVisualization and dev version correction by @dalthviz in
#281
* PR: Add a warning for developers still running legacy Qt4-based
APIs by @CAM-Gerlach in #283
* PR: Import Callable and MutableMapping in py3compat for Python
2 compat by @davvid in #285
* PR: Add warning for deprecated/EoL Qt5 & PyQt5/PySide2 versions
to fix #284 by @CAM-Gerlach in #289
* PR: Update RELEASE.md for 1.x version by @dalthviz in #293
- Release 1.11.2
* Issue 248 - Missing QtDataVisualization (PR 249 by @dalthviz)
-------------------------------------------------------------------
Tue Sep 14 11:06:30 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to 1.11.1
* Wrap pysideuic and pyside2uic imports since they could be
unavailable
* qtpy/tests/test_uic.py: skip if pyside2uic not installed
- Release 1.11.0
* Add QtWebEngineWidgets.QWebEngineProfile for PyQt5 and PySide2
* Rename QtDatavisualization to use uppercase v
* Add support for QStyleOptionFrameV3 from PyQt4
* Add QtWinExtras module
* Add support for QtSerialPort add-on
* Add support for the QtPositioning module
* Add loadUiType implementation for PySide2
- Drop patch merged upstream gh#spyder-ide/QtPy#228
* 0001-Add-QtDatavisualization-alias-to-QtDataVisualization.patch
-------------------------------------------------------------------
Tue Aug 17 14:37:49 UTC 2021 - Ben Greiner <code@bnavigator.de>
- Update to 1.10.0
* PR 241 - PR: Update setup.py classifiers, by @dalthviz
* PR 230 - PR: Fix imported modules logic if 'FORCE_QT_API' is
empty, by @hiaselhans
* PR 224 - PR: Support python 3.9 custom_widgets iteration, by
@irrcombat (206)
* PR 215 - PR: Slight typo fix, by @altendky
* PR 214 - PR: Handle QtCore.SignalInstance/pyqtBoundSignal, by
@altendky
* PR 208 - PR: Move CI to Github Actions, by @goanpeca
* PR 204 - PR: Add Python 3.9 compatibility for collections.abc
module, by @tirkarthi
* PR 199 - PR: Add support to PyQt4-sip 4.19.13, by @milanmatic
- Update description
- Clarify the requirements policy
- Test Pyside2 and Qtcharts
- Remove extra mock requirement
-------------------------------------------------------------------
Tue Aug 17 09:07:26 UTC 2021 - Fabian Vogt <fvogt@suse.com>
- Minimize Recommends and Suggests, dep chain is too big
(WebEngine, Qt3D) for the TW DVD
-------------------------------------------------------------------
Thu Jan 21 09:30:26 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Add patch so the renaming of QtDataVisualization doesn't cause
a problem on applications using the old name
(gh#spyder-ide/qtpy#228):
* 0001-Add-QtDatavisualization-alias-to-QtDataVisualization.patch
-------------------------------------------------------------------
Thu Jan 14 09:12:53 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Add also BuildRequires for qt3d-qt5 and qtdatavis3d-qt5 so
those tests are not skipped.
- qtcharts-qt5 is not added because the python-qt5 package is
always pulled in automatically and QtPy uses it by default
while QtCharts is only available with PySide2.
- Replace the Requires with Recommends since not even PyQt is
really required (PySide2 can also be used with QtPy, and is now
added as a Suggested package).
- Rename QtDatavisualization.py to QtDataVisualization.py
(uppercase v) to fix the test which was skipped because the
imported module didn't exist and to keep the name consistent
with both PyQt and PySide2 (gh#spyder-ide/qtpy#228)
-------------------------------------------------------------------
Wed Jan 13 15:55:35 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- BuildRequires (and Require) the webengine bindings so it uses
them (which is the default) instead of using qtwebkit (which
was used only as a fallback).
-------------------------------------------------------------------
Fri Aug 28 15:09:01 UTC 2020 - Benjamin Greiner <code@bnavigator.de>
- SIP is only used for PyQt4 which we don't use
-------------------------------------------------------------------
Mon Jul 29 07:57:44 UTC 2019 - pgajdos@suse.com
- version update to 1.9.0
* Add the FORCE_QT_API environment variable to keep using the Qt
bindings selected with the QT_API variable and avoid switching
to the currently imported bindings. This allows to have
applications that import PySide and PyQt bindings at the same
time (which is possible if both bindings are compiled for the
same Qt version).
* Errors in the Qt3D modules with PySide2 5.12.4+ and Python 2
* Binding Selection Logic
* PR: Don't load Qt3D modules for buggy versions of PySide2
* PR: Add FORCE_QT_API environment variable
-------------------------------------------------------------------
Mon Jul 22 16:56:02 UTC 2019 - Todd R <toddrme2178@gmail.com>
- Update to 1.8.0
* Add support for several Qt 3D modules.
-------------------------------------------------------------------
Thu May 23 10:34:57 UTC 2019 - pgajdos@suse.com
- version update to 1.7.1
* Skip testing PyQt4 and PySide in Python 3.5
* Trivial maintenance tweaks
* Avoid deprecated "from collections import MutableMapping"
-------------------------------------------------------------------
Tue Mar 19 14:33:21 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.7.0:
* Add support for QtCharts.
-------------------------------------------------------------------
Wed Mar 6 10:25:51 UTC 2019 - Tomáš Chvátal <tchvatal@suse.com>
- Update to 1.6.0:
* Add support for QtQuickWidgets
* Issue 178 - Error when import QtCore.version in PySide2
-------------------------------------------------------------------
Tue Dec 4 12:53:28 UTC 2018 - Matej Cepl <mcepl@suse.com>
- Remove superfluous devel dependency for noarch package
-------------------------------------------------------------------
Thu Nov 8 17:02:01 UTC 2018 - Todd R <toddrme2178@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)
-------------------------------------------------------------------
Thu May 31 15:38:45 UTC 2018 - toddrme2178@gmail.com
- Update to version 1.4.2
+ Issues Closed
* Issue 150 - PySide2-5.11 alpha2 compatibility (PR 151)
* Issue 144 - ValueError: API 'QString' has already been set to version 1 at line 141 in init.py file. (PR 152)
+ Pull Requests Merged
* PR 152 - PR: Catch ValueError when trying to set sip API (144)
* PR 151 - PR: Add a preventive change for PySide-5.11a2 (150)
* PR 149 - PR: Use Qt official wheels to run tests for PySide2
* PR 148 - PR: Remove internal conda recipe
-------------------------------------------------------------------
Sat Apr 28 19:47:37 UTC 2018 - toddrme2178@gmail.com
- Update to Version 1.4.1
+ New features
* Show a warning when QT_API is changed automatically by qtpy.
+ Issues Closed
* Raise a warning if QT_API value is changed automatically
* On OSX qtpy applications are forcing discrete graphics
+ Pull Requests Merged
* Add better compatibility with PySide2
* Add a warning if API is changed automatically
* Avoid using PyQt5.Qt, which imports unneeded stuff and forces
discrete GPU on OSX
- Update to Version 1.4 (2018-03-11)
+ New features
* Add support for QtHelp
* Add support for QtSql
* Use already imported bindings
+ Issues Closed
* If one binding has already been imported,
then qtpy should just use it
* Add Wrapper for QtSql
* Methods missing from QStandardPaths when QT_API=pyqt4
* Add Wrapper for QtHelp
+ Pull Requests Merged
* Pin PyQt5 to 5.9.2 in CircleCI because 5.10 is generating segfaults
* If a Qt binding is already imported, then use it.
* Add QtSql wrapper (incl. test)
* Changes to QDesktop split
* Add QtHelp Wrapper
-------------------------------------------------------------------
Mon Aug 28 16:05:01 UTC 2017 - toddrme2178@gmail.com
- Update to Version 1.3.1
+ Bugs fixed
* Spurious cache files in PyPI tarball
* Importing qtpy should not raise exceptions
* No cache files included in the release tarball
* Remove Quantified Code badge because the service doesn't exist anymore
* Warn if QHeaderView deprecated methods are used
- Update to Version 1.3
+ New features
* Add support for PySide2
* Add support for QtMultimedia
* Add support for PyQt 4.6
+ Bugs fixed
* Typo in readme title
* Update Readme for 1.3 release
* Add tests for untested modules
* Missing: QtOpenGL Module
* QDesktopServices split into QDesktopServices and QStandardPaths
* qInstallMessageHandler <-> qInstallMsgHandler
* Feature Request: PySide2 support
* Fix typo in Readme.
* Add compatibility for the rename of qInstallMsgHandler to qInstallMessageHandler
* Update Readme to reflect that we actually use the PySide2 layout
* Update Readme to mention that we now support PySide2.
* Add tests for Qtdesigner, QtNetwork, QtPrintSupport, QtSvg and QtTest.
* Follow QStandardPaths location in Qt5 for PyQt4/PySide
* Add a coveragerc file
* Add support for PyQt 4.6
* Add a new QtOpenGL module
* Add PySide2 support
-------------------------------------------------------------------
Fri Apr 28 01:58:21 UTC 2017 - toddrme2178@gmail.com
- Implement single-spec version.
-------------------------------------------------------------------
Thu Feb 16 09:13:41 UTC 2017 - joerg.lorenzen@ki.tng.de
- Update to version 1.2.1
- Bugs fixed:
Pull requests
+ PR 98 - PR: Don't use Travis to test macOS because it slows
down the entire spyder-ide organization
+ PR 97 - PR: Update Appveyor badge in Readme because of moving
to an org account
+ PR 94 - PR: Include test suite in sdist
- Version 1.2
- New features:
+ Add support for QtMultimedia
+ Use relative imports so its vendored more easily
- Bugs fixed:
Issues
+ Issue 83 - Include core doc files in PyPi releases
+ Issue 78 - Request for a new bugfix release
+ Issue 75 - Missing copyright headers
+ Issue 67 - uic.loadUiType is missing
+ Issue 64 - QHeaderView.setSectionResizeMode
+ Issue 49 - QtMultimedia support
Pull requests
+ PR 93 - Restore uic full namespace for PyQt5 and PyQt4
+ PR 92 - Add missing copyright header in _patch/qheaderview.py
+ PR 91 - Use star imports in QtSvg again instead of direct
ones (reverts PR #55)
+ PR 88 - PR: Add manifest
+ PR 74 - Move QStringListModel to QtCore
+ PR 71 - PR: Use relative imports so its vendored more easily
+ PR 65 - Introduce renamed methods of QHeaderView in PyQt4 and
PySide
+ PR 59 - Don't install qtpy as a conda package in CircleCI
+ PR 58 - Remove reference to how qtpy is pronounced in README
+ PR 55 - PR: Add explicit imports to QtSvg module
+ PR 50 - Add support for QtMultimedia
- Removed source file LICENSE.txt, fixed upstream.
-------------------------------------------------------------------
Thu Oct 13 18:58:01 UTC 2016 - toddrme2178@gmail.com
- Initial version

210
python-QtPy.spec Normal file
View File

@ -0,0 +1,210 @@
#
# spec file
#
# Copyright (c) 2023 SUSE LLC
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via https://bugs.opensuse.org/
#
%global flavor @BUILD_FLAVOR@%{nil}
%if "%{flavor}" == "test"
%define psuffix -test
%bcond_without test
%else
%define psuffix %{nil}
%bcond_with test
BuildArch: noarch
%endif
%bcond_without pyqt5
%bcond_without pyqt6
%ifnarch %power64 s390x
%bcond_without pyside2
%bcond_without pyside6
%else
%bcond_with pyside2
%bcond_with pyside6
%endif
%{?sle15_python_module_pythons}
Name: python-QtPy%{psuffix}
Version: 2.4.1
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
# from https://github.com/spyder-ide/qtpy/pull/466
Patch1: qt6.6-deprecations.patch
BuildRequires: %{python_module base >= 3.7}
BuildRequires: %{python_module packaging}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-packaging
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-test = %{version}}
BuildRequires: %{python_module pytest >= 6}
BuildRequires: %{python_module pytest-qt}
%if %{with pyqt5}
BuildRequires: %{python_module qt3d-qt5}
BuildRequires: %{python_module qt5}
BuildRequires: %{python_module qtcharts-qt5}
BuildRequires: %{python_module qtdatavis3d-qt5}
%ifnarch %{power64} s390x
BuildRequires: %{python_module qtwebengine-qt5}
%endif
%endif
%if %{with pyqt6}
BuildRequires: %{python_module PyQt6-3D}
BuildRequires: %{python_module PyQt6-Charts}
BuildRequires: %{python_module PyQt6-DataVisualization}
BuildRequires: %{python_module PyQt6}
BuildRequires: qt6-sql-sqlite
%ifnarch %{ix86} %{arm} %{power64} s390x
# QtWebEngine 6.3.0 ceased support for 32-bit
BuildRequires: %{python_module PyQt6-WebEngine}
%endif
%endif
%if %{with pyside2}
BuildRequires: python3-pyside2
%endif
%if %{with pyside6}
BuildRequires: python3-pyside6
BuildRequires: qt6-sql-sqlite
%endif
%endif
%python_subpackages
%description
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, 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.
%package test
Summary: The qtpy.tests module
Requires: %{name} = %{version}
%description test
QtPy is a small abstraction layer that lets you
write applications using a single API call to either PyQt or PySide.
This subpackage separately provides the qtpy.tests module
in order to avoid stupid rpmlint errors.
%prep
%autosetup -p1 -n QtPy-%{version}
# wrong EOL encondig
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=.*//; s/--color=yes//}' pytest.ini
%build
%if ! %{with test}
%pyproject_wheel
%endif
%install
%if ! %{with test}
%pyproject_install
%python_clone -a %{buildroot}%{_bindir}/qtpy
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%endif
%check
%if %{with test}
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"
# too wide in our setup (and upstream doesn't care: https://github.com/spyder-ide/qtpy/issues/371)
donttest=" or test_qfontmetrics_width"
%ifarch %{arm} aarch64
# no QtOpenGL for these platforms
donttest+=" or test_qtopengl"
%endif
%if %{with pyqt5}
# no QtSensors in our PyQt5
donttest_pyqt5=" or test_qtsensors"
%ifarch %{power64} s390x
# No QtWebengine on ppc and s390x
donttest_pyqt5="${donttest_pyqt5} or test_qtwebengine or test_qt_api"
%endif
export QT_API=pyqt5 FORCE_QT_API=1
%pytest -rwEfs -v ../qtpy -k "not ($donttest_qt_api $donttest $donttest_pyqt5)"
%endif
%if %{with pyqt6}
%ifarch %{ix86} %{arm} %{power64} s390x
# QtWebEngine 6.3.0 ceased support for 32-bit
# No QtWebengine on ppc and s390x
donttest_pyqt6=" or test_qtwebengine"
%endif
export QT_API=pyqt6 FORCE_QT_API=1
%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 -k "not ($donttest_qt_api $donttest)"
%endif
%if %{with pyside6}
# no pyside6-uic
donttest_pyside6=" or test_load_ui_type"
export QT_API=pyside6 FORCE_QT_API=1
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy -k "not ($donttest_qt_api $donttest $donttest_pyside6)"
%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
%exclude %{python_sitelib}/qtpy/tests
%{python_sitelib}/QtPy-%{version}.dist-info
%python_alternative %{_bindir}/qtpy
%files %{python_files test}
%license LICENSE.txt
%{python_sitelib}/qtpy/tests
%endif
%changelog

79
qt6.6-deprecations.patch Normal file
View File

@ -0,0 +1,79 @@
From ae51371ebb87f8f4038b0ab3ed5a5402be7610d4 Mon Sep 17 00:00:00 2001
From: StSav012 <stsav012@gmail.com>
Date: Fri, 27 Oct 2023 14:37:26 +0300
Subject: [PATCH] Restore `QSqlDatabase.exec` deprecated in 6.6
---
qtpy/QtSql.py | 49 ++++++++++++++++++++++++++++++++++++-------------
1 file changed, 36 insertions(+), 13 deletions(-)
diff --git a/qtpy/QtSql.py b/qtpy/QtSql.py
index 76a63760..d8e0f2d9 100644
--- a/qtpy/QtSql.py
+++ b/qtpy/QtSql.py
@@ -6,29 +6,52 @@
# -----------------------------------------------------------------------------
"""Provides QtSql classes and functions."""
+from functools import partialmethod
-from . import PYQT5, PYQT6, PYSIDE2, PYSIDE6
+from packaging.version import parse
+
+from . import PYQT5, PYQT6, PYSIDE2, PYSIDE6, QT_VERSION
if PYQT5:
from PyQt5.QtSql import *
elif PYQT6:
from PyQt6.QtSql import *
- QSqlDatabase.exec_ = lambda self, *args, **kwargs: self.exec(
- *args,
- **kwargs,
- )
- QSqlQuery.exec_ = lambda self, *args, **kwargs: self.exec(*args, **kwargs)
- QSqlResult.exec_ = lambda self, *args, **kwargs: self.exec(*args, **kwargs)
+ if parse(QT_VERSION) >= parse("6.6"):
+ # `QSqlDatabase.exec` is deprecated since 6.6
+
+ def database_exec(db, query):
+ q = QSqlQuery(db)
+ q.exec(query)
+ return q
+
+ QSqlDatabase.exec = partialmethod(database_exec)
+ del database_exec
+
+ QSqlDatabase.exec_ = partialmethod(QSqlDatabase.exec)
+ QSqlQuery.exec_ = partialmethod(QSqlQuery.exec)
+ QSqlResult.exec_ = partialmethod(QSqlResult.exec)
elif PYSIDE6:
from PySide6.QtSql import *
+ if parse(QT_VERSION) >= parse("6.6"):
+ # `QSqlDatabase.exec` is deprecated since 6.6
+
+ def database_exec(db, query):
+ q = QSqlQuery(db)
+ q.exec(query)
+ return q
+
+ QSqlDatabase.exec = partialmethod(database_exec)
+ del database_exec
+
# Map DeprecationWarning methods
- QSqlDatabase.exec_ = lambda self, *args, **kwargs: self.exec(
- *args,
- **kwargs,
- )
- QSqlQuery.exec_ = lambda self, *args, **kwargs: self.exec(*args, **kwargs)
- QSqlResult.exec_ = lambda self, *args, **kwargs: self.exec(*args, **kwargs)
+ QSqlDatabase.exec_ = partialmethod(QSqlDatabase.exec)
+ QSqlQuery.exec_ = partialmethod(QSqlQuery.exec)
+ QSqlResult.exec_ = partialmethod(QSqlResult.exec)
elif PYSIDE2:
from PySide2.QtSql import *
+
+del PYQT5, PYQT6, PYSIDE2, PYSIDE6, QT_VERSION
+del parse
+del partialmethod