python-QtPy/python-QtPy.spec
Matej Cepl d725f5cea2 Accepting request 968074 from home:bnavigator:branches:devel:languages:python:numeric
- 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)

OBS-URL: https://build.opensuse.org/request/show/968074
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-QtPy?expand=0&rev=33
2022-04-10 21:49:55 +00:00

122 lines
4.1 KiB
RPMSpec

#
# spec file for package python-QtPy
#
# Copyright (c) 2022 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/
#
%bcond_without pyqt6
# unfortunately we get a segfault in the PyQt5 test suite when pyside6 is installed (!?)
%bcond_with pyside6
%{?!python_module:%define python_module() python3-%{**}}
%define skip_python2 1
Name: python-QtPy
Version: 2.0.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
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.
BuildArch: noarch
# SECTION test requirements
BuildRequires: %{python_module pytest >= 6}
BuildRequires: %{python_module pytest-qt}
BuildRequires: %{python_module qt3d-qt5}
BuildRequires: %{python_module qt5}
BuildRequires: %{python_module qtcharts-qt5}
BuildRequires: %{python_module qtdatavis3d-qt5}
BuildRequires: %{python_module qtwebengine-qt5}
BuildRequires: python3-pyside2
%if %{with pyqt6}
BuildRequires: %{python_module PyQt6-3D}
BuildRequires: %{python_module PyQt6-Charts}
BuildRequires: %{python_module PyQt6-DataVisualization}
BuildRequires: %{python_module PyQt6-WebEngine}
BuildRequires: %{python_module PyQt6}
BuildRequires: qt6-sql-sqlite
%endif
%if %{with pyside6}
BuildRequires: python3-pyside6
%endif
# /SECTION
%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, 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)
%prep
%setup -q -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
%build
%python_build
%install
%python_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%check
export QT_HASH_SEED=0
export QT_QPA_PLATFORM="offscreen"
mkdir empty
pushd empty
# no QtOpenGL for these platforms in our PyQt5
donttest=$(python3 -c 'import platform; print(" or test_qtopengl" if platform.processor() in ["armv7l", "aarch64"] else "")')
# no QtSensors in our PyQt5
donttest_pyqt5=" or test_qtsensors"
export QT_API=pyqt5 FORCE_QT_API=1
%pytest -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest $donttest_pyqt5)"
%if %{with pyqt6}
export QT_API=pyqt6 FORCE_QT_API=1
%pytest -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest)"
%endif
export QT_API=pyside2 FORCE_QT_API=1
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest)"
%if %{with pyside6}
export QT_API=pyside6 FORCE_QT_API=1
pytest-%{python3_bin_suffix} -rwEfs -v ../qtpy/tests/ -k "not (dummyprefix $donttest)"
%endif
popd
%files %{python_files}
%doc AUTHORS.md CHANGELOG.md README.md
%license LICENSE.txt
%{python_sitelib}/qtpy
%{python_sitelib}/QtPy-%{version}*-info
%changelog