summaryrefslogtreecommitdiff
path: root/dev-python/QtPy
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/QtPy')
-rw-r--r--dev-python/QtPy/Manifest2
-rw-r--r--dev-python/QtPy/QtPy-1.10.0.ebuild158
2 files changed, 160 insertions, 0 deletions
diff --git a/dev-python/QtPy/Manifest b/dev-python/QtPy/Manifest
index 1c32afdb5e2f..44d51feec707 100644
--- a/dev-python/QtPy/Manifest
+++ b/dev-python/QtPy/Manifest
@@ -1,5 +1,7 @@
AUX QtPy-1.9.0-python3_9.patch 401 BLAKE2B a28d4344fd4dfed3270d4dcfeae7df6a12ed38fcab779dcbf3e43798a0385960b3fa45e5077ef9c7d00cb9fe69e84653668a09c50c5ba9dfb5eb13e7b23cb554 SHA512 c0996c53cd3b7401986c11510cbe9717ec7448c9b4d6acfed43d64c2c4035e6d474c90783f7d26d8eb530c9ad91297e02d4b27c95fc1ed026344273be455404e
+DIST QtPy-1.10.0.tar.gz 34339 BLAKE2B cbae5eb38bf8ee4ab1528bca0afa93c57b70f48eb44639eac04344f4bbef28a4277bd3727ed5ac25f8ef18cc5391fafd33bb8ea42037eabee10cd4d13d7d3d1c SHA512 5ca326ae64cc85b48b02daa344d23387a9165a0097d59c31d921c7f67141afe31dad8a46abd0b201b31446f97405d7dce4dacd936b24c5faf9484dc37665e974
DIST QtPy-1.9.0.tar.gz 35522 BLAKE2B 05b700c1f804cc535c3065c8f819d1d7fb0e02d43f199082d2e0d2c575ff8dbfdbf0053ddb3b155108cf55350ff4daf75166ab39a60374a35a86a1707724a4a1 SHA512 2492c531f0df3afc9e0f8875a2b2e39cc8b09542fb9f251900b8596c0db7767390bb85365cc39efd6cd37ae852a00655354e6f9f3d795023e4fd86dbf8bd5fa7
+EBUILD QtPy-1.10.0.ebuild 5708 BLAKE2B 84fe6cf1d5f3a309a6c4ff3fbcd6c7223b785c9d1fce5086102b4be37c2e98047ffcd836ba66ffcba7aab3d6abefb583cdce1ed79096e74381549b75aa312448 SHA512 335a76cf409e529e47d275b2e8da1437c59d5730b1d0429e5e7605cc124292298225fa53af8ccaa8344aa9278823ec2756dcbb6c4f4344e53dbef06efe9c4723
EBUILD QtPy-1.9.0-r3.ebuild 1985 BLAKE2B 82aaa05d5afd83b1ecaed22a5f0b69fe03c9520dbdcb847004447361e49cd47e02276a07abd866d4fc601ebca9d93e24f70d73ea4729a7b3eedc5e40f51701d5 SHA512 d4225cdb1b33c28f8c31a6253fdb52d5a55c27a539e1632bf4c375c38357d9000447a549049949e850cc0b1d5b3f9ba9f5c63b4dca35ad8176bc109bc2e029f7
EBUILD QtPy-1.9.0-r5.ebuild 5741 BLAKE2B 26d4998c307431134d3b4098872b806286f068449f9a9960e49bd403e2bb2370749183318dedf6163710e02132728c17b6821d640b3b58137548e2c2fa35d84e SHA512 490f95492079e166736d78e7a16b651f91f4ab76537e007cdad1b3995840a394d4bdecd8e70533e894da0f55460a14f7e127ae75f33a58e7dbcb00aa61d57542
MISC metadata.xml 2903 BLAKE2B d3efb9532ee6bf7bb8d995baf356d022be803b0c0649c01558087f62bdb9b7751f4fa1df63d57916faa701cfe1111ab23c31f8f4badad2944a4522eba2d85068 SHA512 8af6cde3b273124f804aa6d91448baa3344982aa6f533ded0492296c27cc630782356397d11bc4b8289d7c081849402e780a79a18b086ab93632c1baf3615025
diff --git a/dev-python/QtPy/QtPy-1.10.0.ebuild b/dev-python/QtPy/QtPy-1.10.0.ebuild
new file mode 100644
index 000000000000..7dee17becfaf
--- /dev/null
+++ b/dev-python/QtPy/QtPy-1.10.0.ebuild
@@ -0,0 +1,158 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8..10} )
+
+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_QT_MODULES="
+ declarative designer gui help location multimedia network opengl
+ positioning printsupport sensors serialport speech sql svg testlib
+ webchannel webengine websockets widgets x11extras xml xmlpatterns
+"
+IUSE="+pyqt5 pyside2 ${_IUSE_QT_MODULES}"
+unset _IUSE_QT_MODULES
+
+# PySide2 does not support python3_10, nor is it likely that it will in the
+# future since upstream appears to be focussing on PySide6 for Qt6 instead
+# (which is compatible with python3_10). So if we want to use python3_10
+# we have to force disable pyside2.
+REQUIRED_USE="
+ || ( pyqt5 pyside2 )
+ python_targets_python3_10? ( pyqt5 !pyside2 )
+"
+
+# These flags are currently *not* common to both the PySide2 and PyQt5 ebuild
+# Disable them for now, please check periodically if this is still up to date.
+# bluetooth? ( pyqt5 )
+# dbus? ( pyqt5 )
+#
+# 3d? ( pyside2 )
+# charts? ( pyside2 )
+# concurrent? ( pyside2 )
+# datavis? ( pyside2 )
+# scxml? ( pyside2 )
+# script? ( pyside2 )
+# scripttools? ( pyside2 )
+
+# WARNING: the obvious solution of using || for PyQt5/pyside2 is not going
+# to work. The package only checks whether PyQt5/pyside2 is installed, it does
+# not verify whether they have the necessary modules (i.e. satisfy the USE dep).
+#
+# 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="
+ pyqt5? (
+ dev-python/PyQt5[${PYTHON_USEDEP}]
+ dev-python/PyQt5[declarative?,designer?,gui?,help?,location?]
+ dev-python/PyQt5[multimedia?,network?,opengl?,positioning?]
+ dev-python/PyQt5[printsupport?,sensors?,serialport?,speech(-)?,sql?,svg?]
+ dev-python/PyQt5[testlib?,webchannel?,websockets?,widgets?]
+ dev-python/PyQt5[x11extras?,xml(+)?,xmlpatterns?]
+ webengine? ( dev-python/PyQtWebEngine[${PYTHON_USEDEP}] )
+ )
+ pyside2? (
+ $(python_gen_cond_dep '
+ dev-python/pyside2[${PYTHON_USEDEP}]
+ dev-python/pyside2[designer?,gui?,help?,location?,multimedia?]
+ dev-python/pyside2[network?,opengl(+)?,positioning?,printsupport?]
+ dev-python/pyside2[sensors?,serialport(+)?,speech?,sql?,svg?]
+ dev-python/pyside2[testlib?,webchannel?,webengine?,websockets?]
+ dev-python/pyside2[widgets?,x11extras?,xml?,xmlpatterns?]
+ declarative? ( dev-python/pyside2[qml,quick] )
+ ' python3_{7..9} )
+ )
+"
+
+# The QtPy testsuite skips tests for bindings that are not installed, so here we
+# ensure that everything is available and all tests are run. Note that not
+# all flags are available in PyQt5/PySide2, so some tests are still skipped.
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ pyqt5? (
+ dev-python/PyQt5[${PYTHON_USEDEP}]
+ dev-python/PyQt5[bluetooth,dbus,declarative,designer,gui,help,location]
+ dev-python/PyQt5[multimedia,network,opengl,positioning,printsupport]
+ dev-python/PyQt5[sensors,serialport,speech(-),sql,svg,testlib,webchannel]
+ dev-python/PyQt5[websockets,widgets,x11extras,xml(+),xmlpatterns]
+ dev-python/PyQtWebEngine[${PYTHON_USEDEP}]
+ )
+ pyside2? (
+ $(python_gen_cond_dep '
+ dev-python/pyside2[${PYTHON_USEDEP}]
+ dev-python/pyside2[3d,charts,concurrent,datavis,designer,gui,help]
+ dev-python/pyside2[location,multimedia,network,opengl(+),positioning]
+ dev-python/pyside2[printsupport,qml,quick,script,scripttools,scxml]
+ dev-python/pyside2[sensors,serialport(+),speech,sql,svg,testlib]
+ dev-python/pyside2[webchannel,webengine,websockets,widgets,x11extras]
+ dev-python/pyside2[xml,xmlpatterns]
+ ' python3_{7..9} )
+ )
+ )
+"
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ default
+ # Disale Qt for Python implementations that are not selected
+ if ! use pyqt5; then
+ sed -i -e "s/from PyQt5.QtCore import/raise ImportError #/" qtpy/__init__.py || die
+ fi
+ if ! use pyside2; then
+ sed -i -e "s/from PySide2 import/raise ImportError #/" qtpy/__init__.py || die
+ sed -i -e "s/from PySide2.QtCore import/raise ImportError #/" qtpy/__init__.py || die
+ fi
+
+ # Disable outdated PyQt4 and PySide
+ sed -i -e "s/from PyQt4.Qt import/raise ImportError #/" qtpy/__init__.py || die
+ sed -i -e "s/from PyQt4.QtCore import/raise ImportError #/" qtpy/__init__.py || die
+ sed -i -e "s/from PySide import/raise ImportError #/" qtpy/__init__.py || die
+ sed -i -e "s/from PySide.QtCore import/raise ImportError #/" qtpy/__init__.py || die
+}
+
+src_test() {
+ virtx python_foreach_impl python_test
+}
+
+python_test() {
+ if use pyqt5; then
+ QT_API="pyqt5" epytest
+ fi
+ if use pyside2; then
+ if [[ "${EPYTHON}" == "python3.10" ]]; then
+ return
+ else
+ QT_API="pyside2" epytest
+ fi
+ fi
+}
+
+pkg_postinst() {
+ if use pyqt5 && use pyside2; then
+ ewarn "You have enabled both PyQt5 and PySide2, note that QtPy will default"
+ ewarn "to PyQt5 unless the QT_API environment variable overrides this."
+ fi
+}