From f817af8fa591ddb17425660fe57f02775fe68b00 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Sat, 13 Aug 2022 20:24:31 +0100 Subject: gentoo auto-resync : 13:08:2022 - 20:24:31 --- dev-python/QtPy/Manifest | 6 +- dev-python/QtPy/QtPy-2.1.0-r3.ebuild | 141 ----------------------- dev-python/QtPy/QtPy-2.1.0-r4.ebuild | 144 +++++++++++++++++++++++ dev-python/QtPy/QtPy-2.2.0.ebuild | 215 +++++++++++++++++++++++++++++++++++ dev-python/QtPy/metadata.xml | 4 + 5 files changed, 367 insertions(+), 143 deletions(-) delete mode 100644 dev-python/QtPy/QtPy-2.1.0-r3.ebuild create mode 100644 dev-python/QtPy/QtPy-2.1.0-r4.ebuild create mode 100644 dev-python/QtPy/QtPy-2.2.0.ebuild (limited to 'dev-python/QtPy') diff --git a/dev-python/QtPy/Manifest b/dev-python/QtPy/Manifest index ac05be46dd39..66e4cbf31f56 100644 --- a/dev-python/QtPy/Manifest +++ b/dev-python/QtPy/Manifest @@ -1,3 +1,5 @@ DIST QtPy-2.1.0.tar.gz 46470 BLAKE2B 2e032d141ad134444143cd59b8952957b226d9519925083aecce82adf62eebd3f58803cf548c4142fb1ece6f0e2340043a82a7aef056f6e4a9ac8b9caf72d80d SHA512 052cab4218d23d46162d11bf038dccfe6200b05c1c8647bd1f9dcbdaa7af50c23d4ae85829e065c7bae57630d149d562d76cc78202b4f448cbf6547010c746ff -EBUILD QtPy-2.1.0-r3.ebuild 5006 BLAKE2B d3b4364cdf95e28dc89634ffa13591bea56ebda184a81e310c41b4a85824f0cc5c5c2c364fc2d9a3a1c621ef9df07102386f17a2fc5f756b28f25b8976bf1812 SHA512 c51f0f703eef82ba2699dac7083842274c1b64b58ca777b881d6378b694457c286b92b05fe0bde4f4c0d87d76773fb0ed51a8fa9d8584f67adee541a077f4066 -MISC metadata.xml 2904 BLAKE2B f951ee9cfb1e57da9c1b528015cf56bf72e36fbcea6973f5bd237e86c8039d82d9700166ab76773b9bfbc8e499df492994e5dd73aee0bb2d35914d36bcf1bd78 SHA512 e6e13d0c24f16379ac03711f02c5201d1ab28bcbbddd7063f0487bbaaeda99e5a2ef87f00d8df834d822c9230a50ddead93b44affccf07b80bfc275140f4e9ff +DIST QtPy-2.2.0.tar.gz 51573 BLAKE2B 5db2be83c74fa241cbec6818fbf5b5a8ecf681fdb2813cd51b011342eb8f0f2463c0a9f251e791f6051fa3276ad1e502f7e51bf0dcd2d3192bd76d0119dc8b16 SHA512 b0e7696c7861942c16749dc5f5ccbfd038f7fc2b1defbf372885223c4100805cada9bbb2f5bdae1f1c642b52d480d6e0048e221d9efd3f3103da54e6e2bfd0ff +EBUILD QtPy-2.1.0-r4.ebuild 5251 BLAKE2B fbbb485a5703c749cb2b8f54618120c816cea37965400161c725eb4257ae152d6cade5105d81eea9c82cf978e1f84f7780c2df60ad8026fc66dfc1e6004fbabb SHA512 3ac53baabe109d68d2b42ce1574de34046239c1cff8abe5ae1b724a55b26a626bdae094c028adc485893a5c07a9144a0f8d7ec65836d474d4807716281e911ad +EBUILD QtPy-2.2.0.ebuild 8475 BLAKE2B e96e210dc644339e1a87ad446acf813670a9c2d5b9a3663db764aa2faa42216d49352296f5ceabf20fb14a9f0da1402e705775ca32b7a820a4c3a56d7cb48550 SHA512 4885d81dcaaf6ca977edfd009d3479ef9bb6b3b2206df695df3771fb532abc90ac8b16f5f2e6839e970905c5b233cf19cb487f56da0b89032c4c584a8c6415c2 +MISC metadata.xml 3206 BLAKE2B c5f30891361513c0f1242052e119558179485057e38bf41355c1bfff2de038054df314ea5a8c63616541c0c0f5b2f3835d74771cbc764047c8a5149529fa3598 SHA512 0eb58b11a04a1d55bf6496df37d05a1252a67ddf9ddeefba6642959f8c7ec243a32b587de9fc9507d56ac6eada5a5a5fd4e40b256ede0b0b02063151a4e386ea diff --git a/dev-python/QtPy/QtPy-2.1.0-r3.ebuild b/dev-python/QtPy/QtPy-2.1.0-r3.ebuild deleted file mode 100644 index 967021dd8836..000000000000 --- a/dev-python/QtPy/QtPy-2.1.0-r3.ebuild +++ /dev/null @@ -1,141 +0,0 @@ -# Copyright 1999-2022 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{8..11} ) - -inherit distutils-r1 virtualx - -DESCRIPTION="Abstraction layer on top of PyQt5 and PySide2 and additional custom QWidgets" -HOMEPAGE=" - https://github.com/spyder-ide/qtpy/ - https://pypi.org/project/QtPy/ -" -SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" - -LICENSE="MIT" -SLOT="0" -KEYWORDS="amd64 ~arm 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 - -REQUIRED_USE=" - || ( 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=" - dev-python/packaging[${PYTHON_USEDEP}] - 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? ( - 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] ) - ) -" - -# 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? ( - 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] - ) - ) -" - -distutils_enable_tests pytest - -src_prepare() { - distutils-r1_src_prepare - sed -i -e 's:--cov=qtpy --cov-report=term-missing::' pytest.ini || die - # Disable 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 -} - -python_test() { - if use pyqt5; then - QT_API="pyqt5" virtx epytest - fi - if use pyside2; then - QT_API="pyside2" virtx epytest - 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 -} diff --git a/dev-python/QtPy/QtPy-2.1.0-r4.ebuild b/dev-python/QtPy/QtPy-2.1.0-r4.ebuild new file mode 100644 index 000000000000..ddebeff472ae --- /dev/null +++ b/dev-python/QtPy/QtPy-2.1.0-r4.ebuild @@ -0,0 +1,144 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..11} ) + +inherit distutils-r1 virtualx + +DESCRIPTION="Abstraction layer on top of PyQt5 and PySide2 and additional custom QWidgets" +HOMEPAGE=" + https://github.com/spyder-ide/qtpy/ + https://pypi.org/project/QtPy/ +" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="amd64 ~arm 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 + +REQUIRED_USE=" + || ( 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=" + dev-python/packaging[${PYTHON_USEDEP}] + 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? ( + 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] ) + ) +" + +# 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? ( + 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] + ) + ) +" + +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + sed -i -e 's:--cov=qtpy --cov-report=term-missing::' pytest.ini || die + # Disable 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 + sed -i -e "s/from PyQt6.QtCore import/raise ImportError #/" qtpy/__init__.py || die + sed -i -e "s/from PySide6 import/raise ImportError #/" qtpy/__init__.py || die + sed -i -e "s/from PySide6.QtCore import/raise ImportError #/" qtpy/__init__.py +} + +python_test() { + if use pyqt5; then + QT_API="pyqt5" virtx epytest + fi + if use pyside2; then + QT_API="pyside2" virtx epytest + 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 +} diff --git a/dev-python/QtPy/QtPy-2.2.0.ebuild b/dev-python/QtPy/QtPy-2.2.0.ebuild new file mode 100644 index 000000000000..37fc347793e2 --- /dev/null +++ b/dev-python/QtPy/QtPy-2.2.0.ebuild @@ -0,0 +1,215 @@ +# Copyright 1999-2022 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8..11} ) + +inherit distutils-r1 virtualx + +DESCRIPTION="Abstraction layer on top of PyQt5 and PySide2 and additional custom QWidgets" +HOMEPAGE=" + https://github.com/spyder-ide/qtpy/ + https://pypi.org/project/QtPy/ +" +SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +_IUSE_QT_MODULES=" + designer +gui help multimedia +network opengl positioning + printsupport qml quick serialport +sql svg testlib + webchannel webengine websockets +widgets +xml +" +IUSE="+pyqt5 pyqt6 pyside2 pyside6 ${_IUSE_QT_MODULES}" +unset _IUSE_QT_MODULES + +# PySide6 is not yet ready for python3_11 +REQUIRED_USE=" + || ( pyqt5 pyqt6 pyside2 pyside6 ) + pyside6? ( !python_targets_python3_11 ) +" + +# These flags are currently *not* common to the PySide2/6 and PyQt5/6 ebuilds +# Disable them for now, please check periodically if this is still up to date. +# bluetooth? ( pyqt5 only ) +# dbus? ( pyqt5 only ) +# +# 3d? ( pyside2 only ) +# charts? ( pyside2 only ) +# concurrent? ( pyside2 only ) +# datavis? ( pyside2 only ) +# scxml? ( pyside2 only ) +# script? ( pyside2 only ) +# scripttools? ( pyside2 only ) +# +# location? ( pyside2 and pyqt5 only ) +# sensors? ( pyside2 and pyqt5 only ) +# speech? ( pyside2 and pyqt5 only ) +# x11extras? ( pyside2 and pyqt5 only ) +# xmlpatterns? ( pyside2 and pyqt5 only ) + +# 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=" + dev-python/packaging[${PYTHON_USEDEP}] + pyqt5? ( + dev-python/PyQt5[${PYTHON_USEDEP}] + dev-python/PyQt5[designer?,gui?,help?,multimedia?,network?,opengl?] + dev-python/PyQt5[positioning?,printsupport?,serialport?,sql?,svg?] + dev-python/PyQt5[testlib?,webchannel?,websockets?,widgets?,xml(+)?] + qml? ( dev-python/PyQt5[declarative] ) + quick? ( dev-python/PyQt5[declarative] ) + webengine? ( dev-python/PyQtWebEngine[${PYTHON_USEDEP}] ) + ) + pyqt6? ( + dev-python/PyQt6[${PYTHON_USEDEP}] + dev-python/PyQt6[designer?,gui?,help?,multimedia?,network?,opengl?] + dev-python/PyQt6[positioning?,printsupport?,qml?,quick?,serialport?,sql?] + dev-python/PyQt6[svg?,testlib?,webchannel?,websockets?,widgets?,xml?] + webengine? ( dev-python/PyQt6-WebEngine[${PYTHON_USEDEP},widgets?,quick?] ) + + ) + pyside2? ( + dev-python/pyside2[${PYTHON_USEDEP}] + dev-python/pyside2[designer?,gui?,help?,multimedia?,network?,opengl(+)?] + dev-python/pyside2[positioning?,printsupport?,qml?,quick?,serialport(+)?] + dev-python/pyside2[sql?,svg?,testlib?,webchannel?,webengine?,websockets?] + dev-python/pyside2[widgets?,xml?] + ) + !python_targets_python3_11? ( + pyside6? ( + dev-python/pyside6[${PYTHON_USEDEP}] + dev-python/pyside6[designer?,gui?,help?,multimedia?,network?,opengl?] + dev-python/pyside6[positioning?,printsupport?,qml?,quick?,serialport?] + dev-python/pyside6[sql?,svg?,testlib?,webchannel?,webengine?,websockets?] + dev-python/pyside6[widgets?,xml?] + ) + ) +" + +# 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}] + ) + pyqt6? ( + dev-python/PyQt6[${PYTHON_USEDEP}] + dev-python/PyQt6[dbus,designer,gui,help,multimedia,network,opengl] + dev-python/PyQt6[positioning,printsupport,qml,quick,quick3d,serialport] + dev-python/PyQt6[sql,ssl,svg,testlib,webchannel,websockets,widgets,xml] + dev-python/PyQt6-WebEngine[${PYTHON_USEDEP},widgets,quick] + ) + pyside2? ( + 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] + ) + !python_targets_python3_11? ( + pyside6? ( + dev-python/pyside6[${PYTHON_USEDEP}] + dev-python/pyside6[concurrent,dbus,designer,gui,help,multimedia] + dev-python/pyside6[network,opengl,positioning,printsupport,qml] + dev-python/pyside6[quick,quick3d,serialport,sql,svg,testlib] + dev-python/pyside6[webchannel,webengine,websockets,widgets,xml] + ) + ) + ) +" + +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + sed -i -e 's:--cov=qtpy --cov-report=term-missing::' pytest.ini || die + # Disable 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 pyqt6; then + sed -i -e "s/from PyQt6.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 + if ! use pyside6; then + sed -i -e "s/from PySide6 import/raise ImportError #/" qtpy/__init__.py || die + sed -i -e "s/from PySide6.QtCore import/raise ImportError #/" qtpy/__init__.py || die + fi +} + +python_test() { + # Test for each enabled Qt4Python target. + # Deselect the other targets, their test fails if we specify QT_API + # or if we have disabled their corresponding inherit in __init__.py above + if use pyqt5; then + einfo "Testing with ${EPYTHON} and QT_API=PyQt5" + QT_API="pyqt5" virtx epytest \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PySide2] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PyQt6] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PySide6] + fi + if use pyqt6; then + einfo "Testing with ${EPYTHON} and QT_API=PyQt6" + QT_API="pyqt6" virtx epytest \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PySide2] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PyQt5] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PySide6] \ + --deselect qtpy/tests/test_qtsensors.py::test_qtsensors + # Qt6Sensors not yet packaged and enabled in PyQt6 ebuild + fi + if use pyside2; then + einfo "Testing with ${EPYTHON} and QT_API=PySide2" + QT_API="pyside2" virtx epytest \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PyQt5] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PyQt6] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PySide6] + fi + if use pyside6; then + einfo "Testing with ${EPYTHON} and QT_API=PySide6" + QT_API="pyside6" virtx epytest \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PySide2] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PyQt5] \ + --deselect qtpy/tests/test_main.py::test_qt_api_environ[PyQt6] \ + --deselect qtpy/tests/test_qtsensors.py::test_qtsensors + # Qt6Sensors not yet packaged and enabled in PySide6 ebuild + fi +} + +pkg_postinst() { + elog "When multiple Qt4Python targets are enabled QtPy will default to" + elog "the first enabled target in this order: PyQt5 PySide2 PyQt6 PySide6." + elog "This can be overridden with the QT_API environment variable." +} diff --git a/dev-python/QtPy/metadata.xml b/dev-python/QtPy/metadata.xml index 7fa9451ae932..c28298ab205e 100644 --- a/dev-python/QtPy/metadata.xml +++ b/dev-python/QtPy/metadata.xml @@ -16,7 +16,9 @@ Use dev-python/PyQt5 as Qt for Python implementation + Use dev-python/PyQt6 as Qt for Python implementation Use dev-python/pyside2 as Qt for Python implementation + Use dev-python/pyside6 as Qt for Python implementation Build bindings for the QtQml and QtQuick modules and enable the qmlscene plugin Pull in bindings for the QtDesigner module and enable the designer plugin Pull in bindings for the QtGui module @@ -27,6 +29,8 @@ Pull in bindings for the QtOpenGL module Pull in bindings for the QtPositioning module Pull in bindings for the QtPrintSupport module + Build bindings for the QtQml + Build bindings for the QtQuick Pull in bindings for the QtSensors module Pull in bindings for the QtSerialPort module Build bindings for the QtTextToSpeech module -- cgit v1.2.3