diff options
author | Andrew Ammerlaan <andrewammerlaan@riseup.net> | 2021-01-25 22:31:30 +0100 |
---|---|---|
committer | Joonas Niilola <juippis@gentoo.org> | 2021-03-11 09:17:24 +0200 |
commit | 8bdd53a2d42010f0ec8f83273938a62195bfbcd5 (patch) | |
tree | dc9c9ccbc7c8ab80a7efc3b09f9c2103cd44755f /dev-python/QtPy | |
parent | app-eselect/eselect-QtPy: add eselect module for QtPy (diff) | |
download | gentoo-8bdd53a2d42010f0ec8f83273938a62195bfbcd5.tar.gz gentoo-8bdd53a2d42010f0ec8f83273938a62195bfbcd5.tar.bz2 gentoo-8bdd53a2d42010f0ec8f83273938a62195bfbcd5.zip |
dev-python/QtPy: allow dependency to be satisfied by pyside2
Now that pyside2 is in the repo, the test phase finally works!
Bug: https://bugs.gentoo.org/767199
Package-Manager: Portage-3.0.14, Repoman-3.0.2
Signed-off-by: Andrew Ammerlaan <andrewammerlaan@riseup.net>
Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'dev-python/QtPy')
-rw-r--r-- | dev-python/QtPy/QtPy-1.9.0-r3.ebuild | 107 | ||||
-rw-r--r-- | dev-python/QtPy/metadata.xml | 73 |
2 files changed, 154 insertions, 26 deletions
diff --git a/dev-python/QtPy/QtPy-1.9.0-r3.ebuild b/dev-python/QtPy/QtPy-1.9.0-r3.ebuild new file mode 100644 index 000000000000..e707c30eebb6 --- /dev/null +++ b/dev-python/QtPy/QtPy-1.9.0-r3.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{7..8} ) + +inherit distutils-r1 virtualx + +DESCRIPTION="Abstraction layer on top of PyQt5 and PySide2 and additional custom QWidgets" +HOMEPAGE="https://github.com/spyder-ide/qtpy" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +IUSE=" + declarative designer gui help location multimedia network + opengl positioning printsupport qml quick sensors serialport + sql svg test testlib webchannel webengine websockets + widgets x11extras xml xmlpatterns +" + +# Webengine is a special case, because PyQt5 provides this in a +# separate package , while PySide2 ships it in the same package +# +# declarative/qml/quick is a special case, because PyQt5 bundles +# the bindings for qml and quick in one flag: declarative, +# PySide2 does not. +# +# The PyQt5 ebuild currently enables xml support unconditionally, +# the flag is added anyway with a (+) to make it future proof +# if the ebuild were to change this behaviour in the future. +# +# The PySide2 ebuild currently enables opengl and serialport +# support unconditionally, the flag is added anyway with a (+) +# to make it future proof if the ebuild were to change this +# behaviour in the future. +# +RDEPEND=" + app-eselect/eselect-QtPy + || ( + dev-python/PyQt5[${PYTHON_USEDEP},designer?,gui?,help?,location?,multimedia?,network?,opengl?,positioning?,printsupport?,sensors?,serialport?,sql?,svg?,testlib?,webchannel?,websockets?,widgets?,x11extras?,xml(+)?,xmlpatterns?] + dev-python/pyside2[${PYTHON_USEDEP},designer?,gui?,help?,location?,multimedia?,network?,opengl(+)?,positioning?,printsupport?,sensors?,serialport(+)?,sql?,svg?,testlib?,webchannel?,websockets?,widgets?,x11extras?,xml?,xmlpatterns?] + ) + + webengine? ( || ( + dev-python/PyQtWebEngine[${PYTHON_USEDEP}] + dev-python/pyside2[${PYTHON_USEDEP},webengine] + ) ) + + qml? ( || ( + dev-python/PyQt5[${PYTHON_USEDEP},declarative] + dev-python/pyside2[${PYTHON_USEDEP},qml] + ) ) + + quick? ( || ( + dev-python/PyQt5[${PYTHON_USEDEP},declarative] + dev-python/pyside2[${PYTHON_USEDEP},quick] + ) ) + + declarative? ( || ( + dev-python/PyQt5[${PYTHON_USEDEP},declarative] + dev-python/pyside2[${PYTHON_USEDEP},qml,quick] + ) ) +" + +# These bindings are currently only provided by PyQt5 or PySide2 +# but not by both. Just DEPEND on these directly if they are +# required. +# Please check periodically if this list is still up to date +# +# bluetooth? ( dev-python/PyQt5[${PYTHON_USEDEP},bluetooth] ) +# dbus? ( dev-python/PyQt5[${PYTHON_USEDEP},dbus] ) +# examples? ( dev-python/PyQt5[${PYTHON_USEDEP},examples] ) +# networkauth? ( dev-python/PyQt5[${PYTHON_USEDEP},networkauth] ) +# ssl? ( dev-python/PyQt5[${PYTHON_USEDEP},ssl] ) +# webkit? ( dev-python/PyQt5[${PYTHON_USEDEP},webkit] ) +# +# 3d? ( dev-python/pyside2[${PYTHON_USEDEP},3d] ) +# charts? ( dev-python/pyside2[${PYTHON_USEDEP},charts] ) +# concurrent? ( dev-python/pyside2[${PYTHON_USEDEP},concurrent] ) +# datavis? ( dev-python/pyside2[${PYTHON_USEDEP},datavis] ) +# scxml? ( dev-python/pyside2[${PYTHON_USEDEP},scxml] ) +# script? ( dev-python/pyside2[${PYTHON_USEDEP},script] ) +# scripttools? ( dev-python/pyside2[${PYTHON_USEDEP},scripttools] ) +# speech? ( dev-python/pyside2[${PYTHON_USEDEP},speech] ) + +# The QtPy testsuite skips tests for bindings that are +# not installed, so here we ensure that everything +# is available and all tests are run. +BDEPEND="test? ( + dev-python/PyQt5[${PYTHON_USEDEP},bluetooth,dbus,declarative,designer,gui,help,location,multimedia,network,networkauth,opengl,positioning,printsupport,sensors,serialport,sql,ssl,svg,testlib,webchannel,webkit,websockets,widgets,x11extras,xml(+),xmlpatterns] + dev-python/PyQtWebEngine[${PYTHON_USEDEP}] + dev-python/pyside2[${PYTHON_USEDEP},3d,charts,concurrent,datavis,designer,gui,help,location,multimedia,network,opengl(+),positioning,printsupport,qml,quick,script,scripttools,scxml,sensors,serialport(+),speech,sql,svg,testlib,webchannel,webengine,websockets,widgets,x11extras,xml,xmlpatterns] +)" + +distutils_enable_tests pytest + +python_test() { + export QT_API="pyqt5" + virtx pytest -vv + export QT_API="pyside2" + virtx pytest -vv + unset QT_API +} diff --git a/dev-python/QtPy/metadata.xml b/dev-python/QtPy/metadata.xml index a19bcec18947..5b164c14610b 100644 --- a/dev-python/QtPy/metadata.xml +++ b/dev-python/QtPy/metadata.xml @@ -1,30 +1,51 @@ <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> <pkgmetadata> - <maintainer type="project"> - <email>python@gentoo.org</email> - <name>Gentoo Python Project</name> - </maintainer> - <longdescription> - QtPy is a small abstraction layer that lets you write - applications using a single API call to either PyQt or - PySide. QtPy also provides a set of additional QWidgets. 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 write your code as if you were using PyQt5 but - import qt from QtPy instead of PyQt5. - </longdescription> - <use> - <flag name="designer">Build bindings for the QtDesigner module and enable the designer plugin</flag> - <flag name="gui">Build bindings for the QtGui module</flag> - <flag name="printsupport">Build bindings for the QtPrintSupport module</flag> - <flag name="svg">Build bindings for the QtSvg module</flag> - <flag name="testlib">Build bindings for the QtTest module</flag> - <flag name="webengine">Build bindings for the QtWebEngine module</flag> - </use> - <upstream> - <remote-id type="github">spyder-ide/qtpy</remote-id> - <remote-id type="pypi">QtPy</remote-id> - </upstream> + <maintainer type="project"> + <email>python@gentoo.org</email> + <name>Gentoo Python Project</name> + </maintainer> + <maintainer type="person"> + <email>andrewammerlaan@riseup.net</email> + <name>Andrew Ammerlaan</name> + </maintainer> + <maintainer type="project"> + <email>proxy-maint@gentoo.org</email> + <name>Proxy Maintainers</name> + </maintainer> + <longdescription> + 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, PySide2 and PySide 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 PySide2 but import Qt modules from qtpy instead of PySide2 (or PyQt5) + </longdescription> + <use> + <flag name="declarative">Pull in bindings for the QtQml/QtQuick modules and enable the qmlscene plugin</flag> + <flag name="designer">Pull in bindings for the QtDesigner module and enable the designer plugin</flag> + <flag name="gui">Pull in bindings for the QtGui module</flag> + <flag name="help">Pull in bindings for the QtHelp module</flag> + <flag name="location">Pull in bindings for the QtLocation module</flag> + <flag name="multimedia">Pull in QtMultimedia and QtMultimediaWidgets modules</flag> + <flag name="network">Pull in bindings for the QtNetwork module</flag> + <flag name="opengl">Pull in bindings for the QtOpenGL module</flag> + <flag name="positioning">Pull in bindings for the QtPositioning module</flag> + <flag name="printsupport">Pull in bindings for the QtPrintSupport module</flag> + <flag name="qml">Pull in QtQml module</flag> + <flag name="quick">Pull in QtQuick and QtQuickWidgets modules</flag> + <flag name="sensors">Pull in bindings for the QtSensors module</flag> + <flag name="serialport">Pull in bindings for the QtSerialPort module</flag> + <flag name="sql">Pull in bindings for the QtSql module</flag> + <flag name="svg">Pull in bindings for the QtSvg module</flag> + <flag name="testlib">Pull in bindings for the QtTest module</flag> + <flag name="webchannel">Pull in bindings for the QtWebChannel module</flag> + <flag name="webengine">Pull in QtWebEngine and QtWebEngineWidgets modules</flag> + <flag name="websockets">Pull in bindings for the QtWebSockets module</flag> + <flag name="widgets">Pull in bindings for the QtWidgets module</flag> + <flag name="x11extras">Pull in bindings for the QtX11Extras module</flag> + <flag name="xmlpatterns">Pull in bindings for the QtXmlPatterns module</flag> + <flag name="xml">Pull in QtXml module</flag> + </use> + <upstream> + <remote-id type="github">spyder-ide/qtpy</remote-id> + <remote-id type="pypi">QtPy</remote-id> + </upstream> </pkgmetadata> |