diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2024-01-03 14:29:13 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2024-01-03 14:29:13 +0000 |
| commit | 37ad9716485f82a091c2fe914c4dff61fafe0fde (patch) | |
| tree | ea3f7d7b3d062a24187401b7066f0497f4ee1a39 /dev-python | |
| parent | ddd4b0d878741e48ce89384149e6ed9297537060 (diff) | |
| download | baldeagleos-repo-37ad9716485f82a091c2fe914c4dff61fafe0fde.tar.gz baldeagleos-repo-37ad9716485f82a091c2fe914c4dff61fafe0fde.tar.xz baldeagleos-repo-37ad9716485f82a091c2fe914c4dff61fafe0fde.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
34 files changed, 1595 insertions, 1 deletions
diff --git a/dev-python/comm/Manifest b/dev-python/comm/Manifest index bb06b69e761d..c1c144e9285b 100644 --- a/dev-python/comm/Manifest +++ b/dev-python/comm/Manifest @@ -1 +1,2 @@ DIST comm-0.2.0.gh.tar.gz 8936 BLAKE2B 0ca702f3e4aa2a06f827a4896a3497cd98d1e4bafbf9d92942d8d9c6ee8f81b1300a3f2ae72ba32833574444e4d2a4a1fc20be70638333edcbdc2854ee612708 SHA512 6336d9ff2fcf9016d3616ec5c7f6715e8abffc878a0f5b8dabcd06cd17f851cf562e918bd43b55e435adf6da1e635e7152c3b525a5d718b04e7f98b3c8096505 +DIST comm-0.2.1.gh.tar.gz 9569 BLAKE2B 5af0ba4f82ee69819404cef7e45937d9cfeec0a390c7bf562dce1132a7b916a5d8c80c25f7d78cc44f3fb069959d6c8902aae61ecd4bb07e3036d096e25d35cf SHA512 79f85dcd06a5e849718092a3148f39ad81c36a1903a51bd619f50d044cec6be7ca25e3fe7cd85c9174d76558b52dc77a1c3b49f1ed52b8f83e83a8a6ae7f3f0d diff --git a/dev-python/comm/comm-0.2.1.ebuild b/dev-python/comm/comm-0.2.1.ebuild new file mode 100644 index 000000000000..61f3d1eb3d88 --- /dev/null +++ b/dev-python/comm/comm-0.2.1.ebuild @@ -0,0 +1,30 @@ +# Copyright 2022-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="Jupyter Python Comm implementation, for usage in ipykernel, xeus-python" +HOMEPAGE=" + https://github.com/ipython/comm/ + https://pypi.org/project/comm/ +" +# no tests in sdist, as of 0.1.3 +SRC_URI=" + https://github.com/ipython/comm/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +RDEPEND=" + >=dev-python/traitlets-4[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest diff --git a/dev-python/ddt/Manifest b/dev-python/ddt/Manifest index 0c63dab078e9..92849e0999fe 100644 --- a/dev-python/ddt/Manifest +++ b/dev-python/ddt/Manifest @@ -1,2 +1,3 @@ DIST ddt-1.6.0.gh.tar.gz 19615 BLAKE2B f79e25e9da39615d85f000c1029babef64725b159a2b77003efe9f9c5869fb26087fa20e1a58eea485479b12ee89c602076613a9d50711347a775a09c4bbb180 SHA512 c5ea14d3f60384676d9631c84d938b774dd360cea9b0ee1b111692dc2bc06238b5ffd3ab8950207b77aa007bac0ac79b290533a2532be4bee68b642629843a82 DIST ddt-1.7.0.gh.tar.gz 19742 BLAKE2B aafecea2363f9a1dc102dde1e19ce8f55def7555755342cb23cd027eda7afd0fbf9bb8b5a45a079cce107dfab9b7a78055b81258f206a593955941ce222f1393 SHA512 1f049c1f86cd58867b6ef3d094310e78c94bd11f5602e8a9ffe392bbcf173f23be4f6b77730953b7d747d56a31a3a378d229c7d697383c2e3ce4517d12d13d2d +DIST ddt-1.7.1.gh.tar.gz 19770 BLAKE2B a2322e380d4e218fa81dae17c4bd057786ba38aa581015991c0eee8f250a0a94f36311e0fb638362b0db5ec56c0392dce54e8e69568ab90a936e6cb9b848fb78 SHA512 7b1f30c08c74fce514380d68b0d44aa1bf8ff1b8cdbbd52bde83e0bb46439cc7ae2fc7f32e0acc257cb3636f6aadefcbfe6815ea5e372a70503131d7fc869511 diff --git a/dev-python/ddt/ddt-1.7.1.ebuild b/dev-python/ddt/ddt-1.7.1.ebuild new file mode 100644 index 000000000000..e1fe63e634e0 --- /dev/null +++ b/dev-python/ddt/ddt-1.7.1.ebuild @@ -0,0 +1,33 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="Data-Driven/Decorated Tests" +HOMEPAGE=" + https://pypi.org/project/ddt/ + https://github.com/datadriventests/ddt/ +" +SRC_URI=" + https://github.com/datadriventests/ddt/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +BDEPEND=" + test? ( + dev-python/aiounittest[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest index e780bf445360..47b7b7862bde 100644 --- a/dev-python/django/Manifest +++ b/dev-python/django/Manifest @@ -4,6 +4,10 @@ DIST Django-4.1.12.checksum.txt 2582 BLAKE2B 67b101ef7b11fe1ad47872b9bbb26851b20 DIST Django-4.1.12.tar.gz 10502350 BLAKE2B 1e13d4a7c00d7fa49c41bbdc3e69604e462de9ebdb302097ca610cd7d791ebb1ac4bdb610b791e7d578125df83be0551b5d98fbeace630a042a8101689cb9d56 SHA512 63211a82f55b8c7ef0d8f9d09bfba926c2dc59ab7bacded517c4c3014c671ed55d0d5552678d1eae350d3d66f27dde96aed0a5e2aa1ae5f6e1c98ccf138ccc1d DIST Django-4.2.8.checksum.txt 2553 BLAKE2B 552fd9dc6740baabc434a4d069c0a22c49e36661da58face4853c8ca5f34254314a3ca85048d5a4786a9a15ed27c8f73016c9a3d7bcf63dc617373e243a3ee77 SHA512 e3808f5d28fb95aa6ebbcc393161cc69cb948ab4ebe0dcc7a4f6ca8964e4a3dacf4aa185688d21b5d176456621f609e95909cbbc4abe6528f72afe3b644b5ea3 DIST Django-4.2.8.tar.gz 10425581 BLAKE2B e3592dadb54a616cea6129ba45f27e1c93dda2fcffec8c827e2f74a46c6c953a6c2893f236eff64dc77106ee60246eb843e028d44ebf27b8e30da1a6f766315f SHA512 9a60d2202886656a239e764c79b3638d4bc9e549bba8a822b36c745ab32468e3ddd813e7cda4a9e69c867ede0fca02da63391a2efe1462798e5c2e4f35625b63 +DIST Django-4.2.9.checksum.txt 2552 BLAKE2B 9b7fe091d450ee1a9c2b9beb73afbb3b79c8b5a5d474d8908c6fde5aa0a9e90e78259716daf79c98449dff6e263bb953fad11b9e78b7d3b7db62ea5a58c64942 SHA512 aa26b2870a2582d3627224fab7a698cc32e4734b7e2b9e6bda6a0b35484f786619a386f2027319a3ec648cbbeab1b2982e130e2b05ac02a0b99623d89b56d681 +DIST Django-4.2.9.tar.gz 10428500 BLAKE2B a8c42ed18fc95cd0a92319371e342b165ce5fa7ed6db428e5f2020c1a3d0611413425da82cb38c39b6c65379a66e44b955d8b3aa164d8f7924df342275f3660c SHA512 15516e80718aff6bda322fa62124dfa0b277983318cd3e47e87d74f68e8e913403b41d6213010a665e8edc4f46f0f42411f54e878bf77c8f6090d515b8422406 +DIST Django-5.0.1.checksum.txt 2552 BLAKE2B 57fb1f3618d4cfc7458873f124b2537a3f66a8b561a31d4b982534969a8d2529bbbcab7c29b951fcd32c93da14c8c90d1db27241ced85c65f1f7d31d14148d49 SHA512 850ede881d31a83527640cb372c4478a9b7626b8e669f246effb6eb51016de0f5f6e771ad5aad4130095b2884a87ce3150980af29bf3d7bf1c42777b5c81a9fb +DIST Django-5.0.1.tar.gz 10590756 BLAKE2B 79876726d883ca08dc7b138eebc7d0c48630bf38eea9ccf42a97f2b0fb5e3f3cf3348cb4262b98811c82dd46985266d78342817f3fae764bbf8e33ee7e1959d2 SHA512 728bf3ad6b294cfae623336d526f970b3fc861516a27c86be402a71b77596c05d6d79fb122a8d4ecbbd46d2827600fbf29bbd5e4924677215a957dfd5b90acbc DIST Django-5.0.checksum.txt 2553 BLAKE2B 93202aa273f62a828b05ae9b34e7e96dd74ef5b852a94953fbd24e9a609609bf23fa73eaa005d4c9da48dba508bf2efe6a21e91096fee90b1f6811c0af6d4843 SHA512 eb44a3a4128188fd4dd90c6e7b0202652c64db8572daa72e617cf0464b2278cc7839562b880158264bbebc24efe871c3b376c3c134a5c7033292f2b765d6f3b0 DIST Django-5.0.tar.gz 10585390 BLAKE2B 50cc715e21b046292dd86c08801b6f182c8e71a36c73de657ca631b611738e196ab6d4fa035589c26fff952170fb92e0a752a8af15771c33107e343b01d7b4d7 SHA512 d0591eb109cecffd330138ef63c7f768a77b6763ce73a5bc656d892181613981094221e2f77d5888ba4679b581df21ec8e6ac5faa67d31d00d289f4d892caf2f DIST django-4.2.8-pypy3.patch.xz 5900 BLAKE2B b7dc5c5fc162817a218ee6d025ed8a65559b80e4506e49ac393428c26e2621f9e7c5010b36f2412dea8194a9f1086ab21f97286eabd696c6a786285eb07393cf SHA512 f953b5adbd1364f1d84dde55087ccb493256b1327701275fd2fe99f3cd41751d18e002b6e21afc96892e1671428a6b8f3c2e4b88252c3c278f1a79e286bb73e3 diff --git a/dev-python/django/django-4.2.9.ebuild b/dev-python/django/django-4.2.9.ebuild new file mode 100644 index 000000000000..30e05afacd88 --- /dev/null +++ b/dev-python/django/django-4.2.9.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig + +DESCRIPTION="High-level Python web framework" +HOMEPAGE=" + https://www.djangoproject.com/ + https://github.com/django/django/ + https://pypi.org/project/Django/ +" +SRC_URI=" + https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P^}.tar.gz + https://dev.gentoo.org/~mgorny/dist/python/django-4.2.8-pypy3.patch.xz + verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt ) +" +S="${WORKDIR}/${P^}" + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.6.0[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + dev-python/docutils[${PYTHON_USEDEP}] + dev-python/jinja[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + dev-python/selenium[${PYTHON_USEDEP}] + dev-python/tblib[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20230606 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch + "${WORKDIR}"/django-4.2.8-pypy3.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc + +src_unpack() { + if use verify-sig; then + cd "${DISTDIR}" || die + verify-sig_verify_signed_checksums \ + "${P^}.checksum.txt" sha256 "${P^}.tar.gz" + cd "${WORKDIR}" || die + fi + + default +} + +python_test() { + # Tests have non-standard assumptions about PYTHONPATH, + # and don't work with ${BUILD_DIR}/lib. + PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \ + -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + newbashcomp extras/django_bash_completion ${PN}-admin + bashcomp_alias ${PN}-admin django-admin.py + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature_header "Additional Backend support can be enabled via:" + optfeature "MySQL backend support" dev-python/mysqlclient + optfeature "PostgreSQL backend support" dev-python/psycopg:0 + optfeature_header + optfeature "GEO Django" "sci-libs/gdal[geos]" + optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached + optfeature "ImageField Support" dev-python/pillow + optfeature "Password encryption" dev-python/bcrypt +} diff --git a/dev-python/django/django-5.0.1.ebuild b/dev-python/django/django-5.0.1.ebuild new file mode 100644 index 000000000000..1cf1d39d0426 --- /dev/null +++ b/dev-python/django/django-5.0.1.ebuild @@ -0,0 +1,100 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE='sqlite?,threads(+)' + +inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig + +DESCRIPTION="High-level Python web framework" +HOMEPAGE=" + https://www.djangoproject.com/ + https://github.com/django/django/ + https://pypi.org/project/Django/ +" +SRC_URI=" + https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P^}.tar.gz + https://dev.gentoo.org/~mgorny/dist/python/django-5.0-pypy3.patch.xz + verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt ) +" +S="${WORKDIR}/${P^}" + +LICENSE="BSD" +# admin fonts: Roboto (media-fonts/roboto) +LICENSE+=" Apache-2.0" +# admin icons, jquery, xregexp.js +LICENSE+=" MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos" +IUSE="doc sqlite test" +RESTRICT="!test? ( test )" + +RDEPEND=" + <dev-python/asgiref-4[${PYTHON_USEDEP}] + >=dev-python/asgiref-3.7.0[${PYTHON_USEDEP}] + >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ${RDEPEND} + >=dev-python/docutils-0.19[${PYTHON_USEDEP}] + >=dev-python/jinja-2.11.0[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}] + >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}] + sys-devel/gettext + ) + verify-sig? ( >=sec-keys/openpgp-keys-django-20230606 ) +" + +PATCHES=( + "${FILESDIR}"/django-4.0-bashcomp.patch + "${WORKDIR}"/django-5.0-pypy3.patch +) + +distutils_enable_sphinx docs --no-autodoc + +VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc + +src_unpack() { + if use verify-sig; then + cd "${DISTDIR}" || die + verify-sig_verify_signed_checksums \ + "${P^}.checksum.txt" sha256 "${P^}.tar.gz" + cd "${WORKDIR}" || die + fi + + default +} + +python_test() { + # Tests have non-standard assumptions about PYTHONPATH, + # and don't work with ${BUILD_DIR}/lib. + PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \ + -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" || + die "Tests fail with ${EPYTHON}" +} + +python_install_all() { + newbashcomp extras/django_bash_completion ${PN}-admin + bashcomp_alias ${PN}-admin django-admin.py + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature_header "Additional Backend support can be enabled via:" + optfeature "MySQL backend support" dev-python/mysqlclient + optfeature "PostgreSQL backend support" dev-python/psycopg:0 + optfeature_header + optfeature "GEO Django" "sci-libs/gdal[geos]" + optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached + optfeature "ImageField Support" dev-python/pillow + optfeature "Password encryption" dev-python/bcrypt +} diff --git a/dev-python/hcloud/Manifest b/dev-python/hcloud/Manifest index 08f6e2103a02..b6a77b8bd281 100644 --- a/dev-python/hcloud/Manifest +++ b/dev-python/hcloud/Manifest @@ -1,2 +1,3 @@ DIST hcloud-python-1.32.0.gh.tar.gz 109858 BLAKE2B 7e242a92c81278facd7f9d2042d2d36787153215a72e97da7616f7d6b6ca6c06fadfd6b33bdab3699a8d8ac6ec1d7327b78a224a3f674a13a7d06791e91d4658 SHA512 013cd3a7e54b12348e4ec87e489b461c41822a85cd9fafc4421a8bb404ecf1fa079d99217db5f770e893ab9bb7223b588e4429968b8339b4d23654610dfa80c3 DIST hcloud-python-1.33.0.gh.tar.gz 112726 BLAKE2B 9596564f80a27b5674d0dd8043c940aa927e44324ccac496d83aa665934729f949a96aba5b298540e7a1d083ce5739273cb28a3c37553f4609852c7a052c5363 SHA512 77a5799de30fc227be117e1dfaec3835ac5dbe00f47ee9b1a42b5164affc745d3317d612f8bfb58631fe757c59c4352cb96cfef38f94679af6f3fed03c117109 +DIST hcloud-python-1.33.2.gh.tar.gz 113101 BLAKE2B b544b3722bb4782b6aa6c6b40d2cd0ee46625168cb4cb4645254bf5e2690f3f708a5422d1a8f6e7a2a66801bbaab5e2105c7d3c764c3137a6f7b38871e474e3f SHA512 a2b85bd1f6580bbf359634084d5c247fc69339ee01900567e7d51db03cc295e7fef989ab4663f4cb8be7dd9c527a6172780557e24b6425760fd615067e54496c diff --git a/dev-python/hcloud/hcloud-1.33.2.ebuild b/dev-python/hcloud/hcloud-1.33.2.ebuild new file mode 100644 index 000000000000..31e0f64be85a --- /dev/null +++ b/dev-python/hcloud/hcloud-1.33.2.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 + +MY_P=hcloud-python-${PV} +DESCRIPTION="Official Hetzner Cloud python library" +HOMEPAGE=" + https://github.com/hetznercloud/hcloud-python/ + https://pypi.org/project/hcloud/ +" +# sdist is missing doc assets as of 1.19.0 +# https://github.com/hetznercloud/hcloud-python/pull/183 +SRC_URI=" + https://github.com/hetznercloud/hcloud-python/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="examples" + +RDEPEND=" + >=dev-python/python-dateutil-2.7.5[${PYTHON_USEDEP}] + >=dev-python/requests-2.20[${PYTHON_USEDEP}] +" + +distutils_enable_sphinx docs \ + dev-python/myst-parser \ + dev-python/sphinx-rtd-theme +distutils_enable_tests pytest + +EPYTEST_IGNORE=( + # Integration tests need docker: + # https://github.com/hetznercloud/hcloud-python/blob/master/.travis.yml#L16 + tests/integration +) + +python_install_all() { + use examples && dodoc -r examples + distutils-r1_python_install_all +} diff --git a/dev-python/inflect/inflect-7.0.0.ebuild b/dev-python/inflect/inflect-7.0.0.ebuild index 9fca06100a9d..2882f293a81c 100644 --- a/dev-python/inflect/inflect-7.0.0.ebuild +++ b/dev-python/inflect/inflect-7.0.0.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2023 Gentoo Authors +# Copyright 1999-2024 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 @@ -27,3 +27,9 @@ BDEPEND=" " distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # broken upstream + # https://github.com/jaraco/inflect/issues/204 + inflect/__init__.py::inflect.engine.compare +) diff --git a/dev-python/netaddr/Manifest b/dev-python/netaddr/Manifest index 9a05f7dce3cc..05171659f2bd 100644 --- a/dev-python/netaddr/Manifest +++ b/dev-python/netaddr/Manifest @@ -1,2 +1,3 @@ DIST netaddr-0.10.0.tar.gz 2225176 BLAKE2B f426b55c450c3bb5204452f1299c7373e816833682d66dfcb80dae982289f295cdbb4404c107de042fdc76367c8ff832aebccbcf7b32034032c00eff7ad47d67 SHA512 120c7276c39f4d2e17265c5b09842408f7cc211035239a6fb540d538fa8d9c75cf1e201d4ae459d5319096b0c4d9c39a3f171364b2f1d2f5265d0535691fc2b3 +DIST netaddr-0.10.1.tar.gz 2225283 BLAKE2B 1e350909779af0bf48d74834194358386cf4f8e11fa7b03c971b3011bcec437cc39feb72e7e79d55eb330e6ee138d15bb6dba9293667e1adb4ed1c6d42a35d78 SHA512 ca04171d5cbfd569d4f262f4870610edfd98be35899cb70983dbff5f37add963e05987ddbe1ab22d9b615580ac1abe96a8c2903681b18af8c9f2f96899b618ff DIST netaddr-0.9.0.tar.gz 2196428 BLAKE2B 279aea0816abfcf1efb70ac5b8593cfdea0551fd9a0cb0bf49e3247d5681c884d19aff83ab40df0e41b6549c20b66fbaba8508f0b442e0d72405c46a98365c0f SHA512 250b00a930f7180e1b4e18cb90de579733ffea9cd4ac93a3b7d2f7796b30c6b49d70da4b05ed522ebc9389600f4db8ecaed9345f7d0076632d0beae41e11c3ae diff --git a/dev-python/netaddr/netaddr-0.10.1.ebuild b/dev-python/netaddr/netaddr-0.10.1.ebuild new file mode 100644 index 000000000000..0ef2199d1a10 --- /dev/null +++ b/dev-python/netaddr/netaddr-0.10.1.ebuild @@ -0,0 +1,27 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 optfeature pypi + +DESCRIPTION="Network address representation and manipulation library" +HOMEPAGE=" + https://github.com/netaddr/netaddr/ + https://pypi.org/project/netaddr/ + https://netaddr.readthedocs.io/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86 ~amd64-linux ~x86-linux" + +distutils_enable_sphinx docs/source +distutils_enable_tests pytest + +pkg_postinst() { + optfeature "CLI support" dev-python/ipython +} diff --git a/dev-python/numpy/Manifest b/dev-python/numpy/Manifest index 434fc9bc0606..f064bf22b4ce 100644 --- a/dev-python/numpy/Manifest +++ b/dev-python/numpy/Manifest @@ -1,2 +1,3 @@ DIST numpy-1.26.1.tar.gz 15651806 BLAKE2B 2b7fe13675b6f11b8f19c2dc671c84418fa959f403ff32c15ae6da37ae8137d062bb47db0180031c90f54451d69d640ec4ebfad0a4eefb32afc55df45c6824ab SHA512 abe5919029fc66961e8f44fdd503b54c291ce75b0d95e3f8bb61ee39a25d62142fbece5734fd7e9cbf65511f9d746fa61796f0d68e6dc2816c0e7747e286e505 DIST numpy-1.26.2.tar.gz 15664248 BLAKE2B 006e511e27c009f27bf4bf6c8c30c84a4bf0e8b1ff53f4e031089f28c1cfd168ec0d037952fe8f377f9a1d6e1ab642a84c095edeee5696b18053fd5cb7550586 SHA512 9986cd34dda921fbc152c3be0e39f003035787ea1e055452b9259d02c423d413080a0c7e4e19fd38d9e28f66d428719d6ebe784c24ae17249ff56494950daf4b +DIST numpy-1.26.3.tar.gz 15679696 BLAKE2B 4c063e1a495b187049b5604686c0411b056fd03a69b5044cff10693694a7f055c87a017334cf8d05aa4a4cb87896fdf9203f51742d3cf83dbaf611b0e6e4091a SHA512 25556b41e2db9cfc52c1dfa61b05e4fc1b7b6df3b169f365375575d1146857fdb5ff91ca1508b968c296b7a06e5c6d95e82c41cdc3561587a46d3aa178f6305d diff --git a/dev-python/numpy/numpy-1.26.3.ebuild b/dev-python/numpy/numpy-1.26.3.ebuild new file mode 100644 index 000000000000..80006dbdd670 --- /dev/null +++ b/dev-python/numpy/numpy-1.26.3.ebuild @@ -0,0 +1,169 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=meson-python +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE="threads(+)" +FORTRAN_NEEDED=lapack + +inherit distutils-r1 flag-o-matic fortran-2 pypi toolchain-funcs + +DESCRIPTION="Fast array and numerical python library" +HOMEPAGE=" + https://numpy.org/ + https://github.com/numpy/numpy/ + https://pypi.org/project/numpy/ +" + +LICENSE="BSD" +SLOT="0" +# +lapack because the internal fallbacks are pretty slow. Building without blas +# is barely supported anyway, see bug #914358. +IUSE="+lapack" +if [[ ${PV} != *_[rab]* ]] ; then + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +RDEPEND=" + lapack? ( + >=virtual/cblas-3.8 + >=virtual/lapack-3.8 + ) +" +BDEPEND=" + ${RDEPEND} + >=dev-util/meson-1.1.0 + >=dev-python/cython-3.0.0[${PYTHON_USEDEP}] + lapack? ( + virtual/pkgconfig + ) + test? ( + $(python_gen_cond_dep ' + >=dev-python/cffi-1.14.0[${PYTHON_USEDEP}] + ' 'python*') + dev-python/charset-normalizer[${PYTHON_USEDEP}] + >=dev-python/hypothesis-5.8.0[${PYTHON_USEDEP}] + >=dev-python/pytz-2019.3[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + append-flags -fno-strict-aliasing + + distutils-r1_python_prepare_all +} + +python_configure_all() { + DISTUTILS_ARGS=( + -Dallow-noblas=$(usex !lapack true false) + -Dblas=$(usev lapack cblas) + -Dlapack=$(usev lapack lapack) + # TODO: cpu-* options + ) +} + +python_test() { + local EPYTEST_DESELECT=( + # Very disk-and-memory-hungry + lib/tests/test_io.py::TestSaveTxt::test_large_zip + lib/tests/test_io.py::TestSavezLoad::test_closing_fid + lib/tests/test_io.py::TestSavezLoad::test_closing_zipfile_after_load + + # Precision problems + core/tests/test_umath_accuracy.py::TestAccuracy::test_validate_transcendentals + + # Runs the whole test suite recursively, that's just crazy + core/tests/test_mem_policy.py::test_new_policy + + typing/tests/test_typing.py + # Uses huge amount of memory + core/tests/test_mem_overlap.py + 'core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]' + + # TODO: crashes + lib/tests/test_histograms.py::TestHistogram::test_big_arrays + + # likely a test problem + # https://github.com/numpy/numpy/issues/25135 + core/tests/test_cython.py::test_conv_intp + + # flaky + f2py/tests/test_crackfortran.py + f2py/tests/test_data.py::TestData{,F77}::test_crackedlines + ) + + if use arm && [[ $(uname -m || echo "unknown") == "armv8l" ]] ; then + # Degenerate case of arm32 chroot on arm64, bug #774108 + EPYTEST_DESELECT+=( + core/tests/test_cpu_features.py::Test_ARM_Features::test_features + ) + fi + + if use x86 ; then + EPYTEST_DESELECT+=( + # https://github.com/numpy/numpy/issues/18388 + core/tests/test_umath.py::TestRemainder::test_float_remainder_overflow + # https://github.com/numpy/numpy/issues/18387 + random/tests/test_generator_mt19937.py::TestRandomDist::test_pareto + # more precision problems + core/tests/test_einsum.py::TestEinsum::test_einsum_sums_int16 + ) + fi + + if use hppa ; then + EPYTEST_DESELECT+=( + # TODO: Get selectedrealkind updated! + # bug #907228 + # https://github.com/numpy/numpy/issues/3424 (https://github.com/numpy/numpy/issues/3424#issuecomment-412369029) + # https://github.com/numpy/numpy/pull/21785 + f2py/tests/test_kind.py::TestKind::test_real + f2py/tests/test_kind.py::TestKind::test_quad_precision + ) + fi + + if [[ $(tc-endian) == "big" ]] ; then + # https://github.com/numpy/numpy/issues/11831 and bug #707116 + EPYTEST_DESELECT+=( + 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[s1]' + 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[t1]' + 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f90[s1]' + 'f2py/tests/test_return_character.py::TestFReturnCharacter::test_all_f77[t1]' + f2py/tests/test_kind.py::TestKind::test_int + ) + fi + + case "${ABI}" in + alpha|arm|hppa|m68k|o32|ppc|s390|sh|sparc|x86) + EPYTEST_DESELECT+=( + # too large for 32-bit platforms + core/tests/test_ufunc.py::TestUfunc::test_identityless_reduction_huge_array + 'core/tests/test_multiarray.py::TestDot::test_huge_vectordot[float64]' + 'core/tests/test_multiarray.py::TestDot::test_huge_vectordot[complex128]' + ) + ;; + *) + ;; + esac + + if ! has_version -b "~${CATEGORY}/${P}[${PYTHON_USEDEP}]" ; then + # depends on importing numpy.random from system namespace + EPYTEST_DESELECT+=( + 'random/tests/test_extending.py::test_cython' + ) + fi + + rm -rf numpy || die + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest --pyargs numpy +} + +python_install_all() { + local DOCS=( LICENSE.txt README.md THANKS.txt ) + distutils-r1_python_install_all +} diff --git a/dev-python/pdm/Manifest b/dev-python/pdm/Manifest index 1391d24fb67b..0bd949348b39 100644 --- a/dev-python/pdm/Manifest +++ b/dev-python/pdm/Manifest @@ -1 +1,2 @@ DIST pdm-2.11.1.tar.gz 2595425 BLAKE2B cebaf5a86045a9826a8d6a77985a064fe3e05af403818a4629f7a978a58a4fd07e4d12ba4a69542cd4cf2a090d28a826ebadf0d703543b0551f49b61039d6d38 SHA512 e62bd64b1b302bffe0f7f18a68244b108a10969108ce98df028bd56662b336db8bf019fb1d516cc1dc579b838c674ef8601b8f7056e8547a89c5d3311cd037d9 +DIST pdm-2.11.2.tar.gz 2595716 BLAKE2B 10d1c78160f45099cdbbac6f6ef402b4c9f892e229fe56e54f164b4d7c3317cc8808639b97990e9fefda879d693cba32b48fc7b4c787704e7893c0844351227f SHA512 f27c1b5704469cc846b21a090f2098dacd486b833093af661644717a6dd6cdc627b086027b1c71037d5f3b179e72eac6dde3a98320eaff4f033ae9c96b37ab2c diff --git a/dev-python/pdm/pdm-2.11.2.ebuild b/dev-python/pdm/pdm-2.11.2.ebuild new file mode 100644 index 000000000000..47894d19e83d --- /dev/null +++ b/dev-python/pdm/pdm-2.11.2.ebuild @@ -0,0 +1,81 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=pdm-backend +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python package and dependency manager supporting the latest PEP standards" +HOMEPAGE=" + https://pdm-project.org/ + https://github.com/pdm-project/pdm/ + https://pypi.org/project/pdm/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +RDEPEND=" + dev-python/blinker[${PYTHON_USEDEP}] + dev-python/certifi[${PYTHON_USEDEP}] + <dev-python/dep-logic-1.0[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/platformdirs[${PYTHON_USEDEP}] + dev-python/rich[${PYTHON_USEDEP}] + dev-python/truststore[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/pyproject-hooks[${PYTHON_USEDEP}] + dev-python/requests-toolbelt[${PYTHON_USEDEP}] + >=dev-python/unearth-0.12.1[${PYTHON_USEDEP}] + <dev-python/findpython-1[${PYTHON_USEDEP}] + >=dev-python/findpython-0.4.0[${PYTHON_USEDEP}] + dev-python/tomlkit[${PYTHON_USEDEP}] + dev-python/shellingham[${PYTHON_USEDEP}] + dev-python/python-dotenv[${PYTHON_USEDEP}] + >=dev-python/resolvelib-1.0.1[${PYTHON_USEDEP}] + dev-python/installer[${PYTHON_USEDEP}] + dev-python/cachecontrol[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/tomli[${PYTHON_USEDEP}] + ' 3.10) +" +BDEPEND=" + ${RDEPEND} + test? ( + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-httpserver[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # Internet + 'tests/cli/test_build.py::test_build_with_no_isolation[False]' + tests/test_project.py::test_access_index_with_auth + tests/cli/test_others.py::test_build_distributions + 'tests/models/test_candidates.py::test_expand_project_root_in_url[demo @ file:///${PROJECT_ROOT}/tests/fixtures/artifacts/demo-0.0.1.tar.gz]' + 'tests/models/test_candidates.py::test_expand_project_root_in_url[-e file:///${PROJECT_ROOT}/tests/fixtures/projects/demo-#-with-hash#egg=demo]' + # hangs on interactive keyring prompts + tests/cli/test_config.py::test_repository_overwrite_default + tests/cli/test_config.py::test_hide_password_in_output_repository + tests/cli/test_config.py::test_hide_password_in_output_pypi + # junk output, sigh + tests/cli/test_others.py::test_info_command_json + # why does it try to use python 2.7?! + tests/cli/test_run.py::test_import_another_sitecustomize + ) + [[ ${EPYTHON} != python3.10 ]] && EPYTEST_DESELECT+=( + # test seems hardcoded to 3.10 + tests/test_project.py::test_project_packages_path + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -m "not network and not integration and not path" \ + -p pytest_mock +} diff --git a/dev-python/pillow/Manifest b/dev-python/pillow/Manifest index d754b914ecd6..197a988b14bf 100644 --- a/dev-python/pillow/Manifest +++ b/dev-python/pillow/Manifest @@ -1,2 +1,3 @@ DIST pillow-10.0.1.gh.tar.gz 50539264 BLAKE2B 83c3bf4abc9c3eab210576dc28d6f8926ce0998ec344e792433afc05190bb248a926902ce7706e3569cd6cbf8deb640cafda86f102166cf6492ec00b66f9392f SHA512 27e2f0d86563c3b7f5a2e0ba2bbe98fc2cb2fa5871d0b6cbb5a0014e9d9eb03dde9969301419d806d1a22cd4881e624465a355ba9bc42b95746226e1f95712a9 DIST pillow-10.1.0.gh.tar.gz 50798274 BLAKE2B a69be8187e7206b50350af399b73b5c43b29c249a4a5a6bb23438dae9967bb84f1d487f52b188811cb3d2e550245f8d5a765668d8d5de1375a84fcd96fc531d9 SHA512 01c97b68d4167d10539a2d29fb82676fb417ee5003f0acd9f602ed13d41b200579497cc0ef0949b2c1549b684f76f2d43895a52abdb1367345d2affd544c5b5a +DIST pillow-10.2.0.gh.tar.gz 46244216 BLAKE2B 27bb076f0adade34295e6dfec5c5a1499471036e4f5358f0b3985c064a0ae962be9e91985851b369a49162ef520a84bb20eb1a5acb074fe94d861f042e4ada92 SHA512 d77ebedfb89d541db2fcba4fc354e097b9917594170bad07c67e22de123c9e0bbc9c55a938fc152bbdcca3ce23de6fa374a6d3d3bdbd44f16dbc2616c1bddf60 diff --git a/dev-python/pillow/pillow-10.2.0.ebuild b/dev-python/pillow/pillow-10.2.0.ebuild new file mode 100644 index 000000000000..72c4b72c9e7d --- /dev/null +++ b/dev-python/pillow/pillow-10.2.0.ebuild @@ -0,0 +1,134 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +# setuptools wrapper +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE='tk?,threads(+)' + +inherit distutils-r1 toolchain-funcs virtualx + +MY_PN=Pillow +MY_P=${MY_PN}-${PV} + +DESCRIPTION="Python Imaging Library (fork)" +HOMEPAGE=" + https://python-pillow.org/ + https://github.com/python-pillow/Pillow/ + https://pypi.org/project/pillow/ +" +SRC_URI=" + https://github.com/python-pillow/Pillow/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${MY_P}" + +LICENSE="HPND" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" +IUSE="examples imagequant +jpeg jpeg2k lcms test tiff tk truetype webp xcb zlib" +REQUIRED_USE="test? ( jpeg jpeg2k lcms tiff truetype )" +RESTRICT="!test? ( test )" + +DEPEND=" + imagequant? ( media-gfx/libimagequant:= ) + jpeg? ( media-libs/libjpeg-turbo:= ) + jpeg2k? ( media-libs/openjpeg:2= ) + lcms? ( media-libs/lcms:2= ) + tiff? ( media-libs/tiff:=[jpeg,zlib] ) + truetype? ( media-libs/freetype:2= ) + webp? ( media-libs/libwebp:= ) + xcb? ( x11-libs/libxcb ) + zlib? ( sys-libs/zlib:= ) +" +RDEPEND=" + ${DEPEND} + dev-python/olefile[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + virtual/pkgconfig + test? ( + ${RDEPEND} + dev-python/defusedxml[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + || ( + media-gfx/imagemagick[png] + media-gfx/graphicsmagick[png] + ) + ) +" + +EPYTEST_DESELECT=( + # TODO; incompatible Qt version? + Tests/test_qt_image_qapplication.py::test_sanity +) + +usepil() { + usex "${1}" enable disable +} + +python_configure_all() { + # It's important that these flags are also passed during the install phase + # as well. Make sure of that if you change the lines below. See bug 661308. + cat >> setup.cfg <<-EOF || die + [build_ext] + disable_platform_guessing = True + $(usepil truetype)_freetype = True + $(usepil jpeg)_jpeg = True + $(usepil jpeg2k)_jpeg2000 = True + $(usepil lcms)_lcms = True + $(usepil tiff)_tiff = True + $(usepil imagequant)_imagequant = True + $(usepil webp)_webp = True + $(usepil webp)_webpmux = True + $(usepil xcb)_xcb = True + $(usepil zlib)_zlib = True + EOF + + # setup.py won't let us add the right toolchain paths but it does + # accept additional ones from INCLUDE and LIB so set these. You + # wouldn't normally need these at all as the toolchain should look + # here anyway but it doesn't for this setup.py. + export \ + INCLUDE="${ESYSROOT}"/usr/include \ + LIB="${ESYSROOT}"/usr/$(get_libdir) + + # We have patched in this env var. + tc-export PKG_CONFIG +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local EPYTEST_DESELECT=( + # TODO (is clipboard unreliable in Xvfb?) + Tests/test_imagegrab.py::TestImageGrab::test_grabclipboard + ) + + "${EPYTHON}" selftest.py --installed || die "selftest failed with ${EPYTHON}" + # no:relaxed: pytest-relaxed plugin make our tests fail. deactivate if installed + epytest -p no:relaxed || die "Tests failed with ${EPYTHON}" +} + +python_install() { + python_doheader src/libImaging/*.h + distutils-r1_python_install +} + +python_install_all() { + if use examples ; then + docinto example + dodoc docs/example/* + docompress -x /usr/share/doc/${PF}/example + fi + distutils-r1_python_install_all +} diff --git a/dev-python/pipx/Manifest b/dev-python/pipx/Manifest index 0055bd81fda7..14fcdd855dad 100644 --- a/dev-python/pipx/Manifest +++ b/dev-python/pipx/Manifest @@ -1 +1,2 @@ DIST pipx-1.4.0.gh.tar.gz 357942 BLAKE2B 34b0ede5a5160c8a5fcdff81c4902e0119041e7740b165c3a384234ba8362fa95db8002778a8987b4f93d9bd132152868171bb1627987c4cb7f4eb1cf2e4cc84 SHA512 5a0cd494ed6a4faa3f9f5cc5c56ee8ce9f27b3a456ad2eed2eaf5a9d175ea97209b2ec7b95e1500e1126ec066660f344f942692916cef552c39f49b2669160c9 +DIST pipx-1.4.1.gh.tar.gz 357978 BLAKE2B 2ef4f303eafacd84d4b157043a03dc9365708882080bddb1cbcbf16910686ad65938314953a1d1b5be86243fb614f7b705dd91362cd3d7199434147004d529e7 SHA512 04fa29b02a25f21544ae2bbc86fa927fd3c03f98b3f1bd6beee318cbb34849edfbd553fb3b9f94015aab16039aa49f706092a75bd2f865f04dec56a34da43f1f diff --git a/dev-python/pipx/pipx-1.4.1.ebuild b/dev-python/pipx/pipx-1.4.1.ebuild new file mode 100644 index 000000000000..b4719774525c --- /dev/null +++ b/dev-python/pipx/pipx-1.4.1.ebuild @@ -0,0 +1,48 @@ +# Copyright 2023-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 + +DESCRIPTION="Install and Run Python Applications in Isolated Environments" +HOMEPAGE=" + https://pipx.pypa.io/stable/ + https://pypi.org/project/pipx/ + https://github.com/pypa/pipx/ +" +# no tests in sdist +SRC_URI=" + https://github.com/pypa/pipx/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/argcomplete-1.9.4[${PYTHON_USEDEP}] + >=dev-python/packaging-20.0[${PYTHON_USEDEP}] + >=dev-python/platformdirs-2.1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/tomli[${PYTHON_USEDEP}] + ' 3.10) + >=dev-python/userpath-1.9.0[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] +" + +PROPERTIES="test_network" +RESTRICT="test" +distutils_enable_tests pytest + +export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} + +python_test() { + epytest --net-pypiserver +} diff --git a/dev-python/pyrate-limiter/Manifest b/dev-python/pyrate-limiter/Manifest index 3ecbe7e6c07e..e507a055e810 100644 --- a/dev-python/pyrate-limiter/Manifest +++ b/dev-python/pyrate-limiter/Manifest @@ -1,2 +1,3 @@ DIST pyrate-limiter-2.10.0.gh.tar.gz 71838 BLAKE2B 3b8fd16684268870991c3a731c5497802c6f7be51e57bc983a14a7484fad2d0983613304fa061fdb70a3e6645d17fe37fbd68e9ddeca57bc7bd97fef4a5d8585 SHA512 b0090b2d80d40ba2f86ac7b5c5612a35fa885b52a87d783aa9726782275e79ca8d54a9a44b1f0dd43c98bf2355f4c17e1686d7c7f806934ea492b67f66b06ffe DIST pyrate_limiter-3.1.0.tar.gz 276659 BLAKE2B 2858b2cbb4805f139ae1a26171e6a1c235eb2d8eb93380f10ed27db16e2983b01b83e7d72d4bf5b44b69710569687e86c1194ea3e1a5ff8750e5966faf5a5b6e SHA512 601b70a380965fc108ec110842170ea73065af38a809c8d103d5061948058590c6a228327ed425e1c69ef30d2c832cb8a61508d326eb3bcd6cbb2df813fa987e +DIST pyrate_limiter-3.1.1.tar.gz 276906 BLAKE2B 874e6407341d970f360dd8c800ff6910ebf2d3524e5b18cc56189d6cc9c0cb66e6d20287d9581c0ac4c935a2c719633cd72a56ada583c67d7659beefa8c006ce SHA512 f0c94af5ca4aa3c5bef1831b0dd188a67fe0c1ae076277f698880f2867ea81f80e702701185d49e204a2bb1b4b998850f18277cd8e19e759e3974ea573d4eca5 diff --git a/dev-python/pyrate-limiter/pyrate-limiter-3.1.1.ebuild b/dev-python/pyrate-limiter/pyrate-limiter-3.1.1.ebuild new file mode 100644 index 000000000000..4540db9b8693 --- /dev/null +++ b/dev-python/pyrate-limiter/pyrate-limiter-3.1.1.ebuild @@ -0,0 +1,71 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=poetry +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Python Rate-Limiter using Leaky-Bucket Algorimth Family" +HOMEPAGE=" + https://github.com/vutran1710/PyrateLimiter/ + https://pypi.org/project/pyrate-limiter/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~x86" + +RDEPEND=" + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/redis[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + dev-db/redis + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + ) +" + +EPYTEST_DESELECT=( + # Optional dependency redis-py-cluster not packaged + "tests/test_02.py::test_redis_cluster" + # Python 3.11 is slightly faster, leading to a non-critical failure here + "tests/test_concurrency.py::test_concurrency[ProcessPoolExecutor-SQLiteBucket]" + "tests/test_limiter.py::test_limiter_01[clock0-create_sqlite_bucket-False-None]" +) +EPYTEST_XDIST=1 + +# TODO: package sphinx-copybutton +# distutils_enable_sphinx docs \ +# dev-python/sphinx-autodoc-typehints \ +# dev-python/furo \ +# dev-python/myst-parser \ +# dev-python/sphinxcontrib-apidoc +distutils_enable_tests pytest + +src_test() { + local redis_pid="${T}"/redis.pid + local redis_port=6379 + + # Spawn Redis itself for testing purposes + einfo "Spawning Redis" + einfo "NOTE: Port ${redis_port} must be free" + "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + bind 127.0.0.1 ::1 + ${extra_conf} + EOF + + # Run the tests + distutils-r1_src_test + + # Clean up afterwards + kill "$(<"${redis_pid}")" || die +} diff --git a/dev-python/pyside2-tools/Manifest b/dev-python/pyside2-tools/Manifest index d7602001a4a7..cc4972e72deb 100644 --- a/dev-python/pyside2-tools/Manifest +++ b/dev-python/pyside2-tools/Manifest @@ -1 +1,2 @@ DIST pyside-setup-opensource-src-5.15.11.tar.xz 3584760 BLAKE2B c4d60439a218451eb0c505031524fe1e30a117b7e89a28b5cd7518c193a8d2de01a5db8cb3acdd97c81da6dddff99f786c6c763427f78cdd0af4031122ac2d24 SHA512 377b3f6a793313cf7f5bea0dcef6630bac32d79b247e213d0b1b719805b35692aa8dd9a8896c75c6266f05af38809f574051d64b1a2f958a48c90167feccfb91 +DIST pyside-setup-opensource-src-5.15.12.tar.xz 3585204 BLAKE2B a664555b5a98d5ebda39c8226062e12c2b3308e6d95866cd9268de6a8089aef5d0e7a4958821a8e84642f01bffe2a9323ba0752d33fc803d4eb4b29453e2f070 SHA512 843d7352bfb7c9765b5033939b2a6211148ad79a6012685b2d07775745edf04c8420359efb2a3ae4a8686de4daaeb7f531f73fd152f0a2fe7dd54de0080c3cf4 diff --git a/dev-python/pyside2-tools/pyside2-tools-5.15.12.ebuild b/dev-python/pyside2-tools/pyside2-tools-5.15.12.ebuild new file mode 100644 index 000000000000..19ce532d0277 --- /dev/null +++ b/dev-python/pyside2-tools/pyside2-tools-5.15.12.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: Add PyPy once officially supported. See also: +# https://bugreports.qt.io/browse/PYSIDE-535 +PYTHON_COMPAT=( python3_{10..11} ) + +inherit cmake python-r1 + +MY_P=pyside-setup-opensource-src-${PV} + +DESCRIPTION="PySide development tools (pyside2-lupdate with support for Python)" +HOMEPAGE="https://wiki.qt.io/PySide2" +SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${PV}-src/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}/sources/${PN}" + +LICENSE="GPL-2" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="${PYTHON_DEPS} + ~dev-python/pyside2-${PV}[${PYTHON_USEDEP}] +" +DEPEND="${RDEPEND}" + +# the tools conflict with tools from QT +PATCHES=( + "${FILESDIR}/${PN}-5.15.11-no-copy-uic.patch" +) + +src_prepare() { + cmake_src_prepare + + python_copy_sources +} + +src_configure() { + pyside-tools_configure() { + local mycmakeargs=( + -DBUILD_TESTS=OFF + -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}" + ) + cmake_src_configure + } + + python_foreach_impl pyside-tools_configure +} + +src_compile() { + pyside-tools_compile() { + cmake_src_compile + } + + python_foreach_impl pyside-tools_compile +} + +src_install() { + pyside-tools_install() { + # This replicates the contents of the PySide6 pypi wheel + DESTDIR="${BUILD_DIR}" cmake_build install + dobin "${BUILD_DIR}/usr/bin/pyside2-lupdate" + python_moduleinto PySide2/scripts + python_domodule "${BUILD_DIR}/usr/bin/pyside_tool.py" + } + + python_foreach_impl pyside-tools_install + + einstalldocs +} diff --git a/dev-python/pyside2/Manifest b/dev-python/pyside2/Manifest index d7602001a4a7..cc4972e72deb 100644 --- a/dev-python/pyside2/Manifest +++ b/dev-python/pyside2/Manifest @@ -1 +1,2 @@ DIST pyside-setup-opensource-src-5.15.11.tar.xz 3584760 BLAKE2B c4d60439a218451eb0c505031524fe1e30a117b7e89a28b5cd7518c193a8d2de01a5db8cb3acdd97c81da6dddff99f786c6c763427f78cdd0af4031122ac2d24 SHA512 377b3f6a793313cf7f5bea0dcef6630bac32d79b247e213d0b1b719805b35692aa8dd9a8896c75c6266f05af38809f574051d64b1a2f958a48c90167feccfb91 +DIST pyside-setup-opensource-src-5.15.12.tar.xz 3585204 BLAKE2B a664555b5a98d5ebda39c8226062e12c2b3308e6d95866cd9268de6a8089aef5d0e7a4958821a8e84642f01bffe2a9323ba0752d33fc803d4eb4b29453e2f070 SHA512 843d7352bfb7c9765b5033939b2a6211148ad79a6012685b2d07775745edf04c8420359efb2a3ae4a8686de4daaeb7f531f73fd152f0a2fe7dd54de0080c3cf4 diff --git a/dev-python/pyside2/pyside2-5.15.12.ebuild b/dev-python/pyside2/pyside2-5.15.12.ebuild new file mode 100644 index 000000000000..2409f1220075 --- /dev/null +++ b/dev-python/pyside2/pyside2-5.15.12.ebuild @@ -0,0 +1,222 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: Add PyPy once officially supported. See also: +# https://bugreports.qt.io/browse/PYSIDE-535 +PYTHON_COMPAT=( python3_{10..11} ) + +inherit cmake python-r1 virtualx + +# TODO: Add conditional support for "QtRemoteObjects" via a new "remoteobjects" +# USE flag after an external "dev-qt/qtremoteobjects" package has been created. +# TODO: Add conditional support for apidoc generation via a new "doc" USE flag. +# Note that doing so requires the Qt source tree, sphinx, and graphviz. Once +# ready, pass the ${QT_SRC_DIR} variable to cmake to enable this support. +# TODO: Disable GLES support if the "gles2-only" USE flag is disabled. Note +# that the "PySide2/QtGui/CMakeLists.txt" and +# "PySide2/QtOpenGLFunctions/CMakeLists.txt" files test for GLES support by +# testing whether the "Qt5::Gui" list property defined by +# "/usr/lib64/cmake/Qt5Gui/Qt5GuiConfig.cmake" at "dev-qt/qtgui" installation +# time contains the substring "opengles2". Since cmake does not permit +# properties to be overridden from the command line, these files must instead +# be conditionally patched to avoid these tests. An issue should be filed with +# upstream requesting a CLI-settable variable to control this. + +MY_P=pyside-setup-opensource-src-${PV} + +DESCRIPTION="Python bindings for the Qt framework" +HOMEPAGE="https://wiki.qt.io/PySide2" +SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${PV}-src/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}/sources/pyside2" + +# See "sources/pyside2/PySide2/licensecomment.txt" for licensing details. +# Shall we allow essential modules to be disabled? They are: +# (core), gui, widgets, printsupport, sql, network, testlib, concurrent, +# x11extras (for X) +LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 )" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE=" + 3d charts +concurrent datavis designer gles2-only +gui help location + multimedia +network positioning +printsupport qml quick + scxml sensors speech +sql svg test +testlib webchannel webengine websockets + +widgets +x11extras xml xmlpatterns +" + +# Manually reextract these requirements on version bumps by running the +# following one-liners from within "${S}": +# $ grep 'set.*_deps' PySide2/Qt*/CMakeLists.txt +# $ cat /lib64/cmake/Qt5*/Qt5*.cmake | grep -i DEPENDENCIES +# Note that the "designer" USE flag corresponds to the "Qt5UiTools" module. +REQUIRED_USE="${PYTHON_REQUIRED_USE} + 3d? ( gui network ) + charts? ( gui widgets ) + datavis? ( gui ) + designer? ( gui widgets xml ) + gles2-only? ( gui ) + help? ( gui sql widgets ) + location? ( gui network positioning quick ) + multimedia? ( gui network widgets ) + printsupport? ( gui widgets ) + qml? ( gui network ) + quick? ( gui network qml widgets network ) + speech? ( multimedia ) + sql? ( widgets ) + svg? ( widgets ) + testlib? ( widgets ) + webchannel? ( qml ) + webengine? ( + gui network positioning quick qml + widgets? ( printsupport network webchannel ) + ) + websockets? ( network ) + widgets? ( gui ) + x11extras? ( gui ) +" + +# Tests fail pretty bad and I'm not fixing them right now +RESTRICT="test" + +# Minimal supported version of Qt. +QT_PV="$(ver_cut 1-3)*:5" + +RDEPEND="${PYTHON_DEPS} + ~dev-python/shiboken2-${PV}[${PYTHON_USEDEP}] + =dev-qt/qtcore-${QT_PV} + =dev-qt/qtopengl-${QT_PV}[gles2-only=] + =dev-qt/qtserialport-${QT_PV} + 3d? ( =dev-qt/qt3d-${QT_PV}[qml?,gles2-only=] ) + charts? ( =dev-qt/qtcharts-${QT_PV}[qml?] ) + concurrent? ( =dev-qt/qtconcurrent-${QT_PV} ) + datavis? ( =dev-qt/qtdatavis3d-${QT_PV}[qml?,gles2-only=] ) + designer? ( =dev-qt/designer-${QT_PV} ) + gui? ( =dev-qt/qtgui-${QT_PV}[jpeg,gles2-only=] ) + help? ( =dev-qt/qthelp-${QT_PV} ) + location? ( =dev-qt/qtlocation-${QT_PV} ) + multimedia? ( =dev-qt/qtmultimedia-${QT_PV}[qml?,gles2-only=,widgets?] ) + network? ( =dev-qt/qtnetwork-${QT_PV} ) + positioning? ( =dev-qt/qtpositioning-${QT_PV}[qml?] ) + printsupport? ( =dev-qt/qtprintsupport-${QT_PV}[gles2-only=] ) + qml? ( =dev-qt/qtdeclarative-${QT_PV}[widgets?] ) + quick? ( + =dev-qt/qtdeclarative-${QT_PV}[widgets?] + =dev-qt/qtquickcontrols2-${QT_PV}[widgets?] + ) + scxml? ( =dev-qt/qtscxml-${QT_PV} ) + sensors? ( =dev-qt/qtsensors-${QT_PV}[qml?] ) + speech? ( =dev-qt/qtspeech-${QT_PV} ) + sql? ( =dev-qt/qtsql-${QT_PV} ) + svg? ( =dev-qt/qtsvg-${QT_PV} ) + testlib? ( =dev-qt/qttest-${QT_PV} ) + webchannel? ( =dev-qt/qtwebchannel-${QT_PV}[qml] ) + webengine? ( || ( + =dev-qt/qtwebengine-${QT_PV}[alsa,widgets?] + =dev-qt/qtwebengine-${QT_PV}[pulseaudio,widgets?] + ) + ) + websockets? ( =dev-qt/qtwebsockets-${QT_PV}[qml?] ) + widgets? ( =dev-qt/qtwidgets-${QT_PV}[gles2-only=] ) + x11extras? ( =dev-qt/qtx11extras-${QT_PV} ) + xml? ( =dev-qt/qtxml-${QT_PV} ) + xmlpatterns? ( =dev-qt/qtxmlpatterns-${QT_PV}[qml?] ) +" +DEPEND="${RDEPEND} + test? ( x11-misc/xvfb-run ) +" + +src_configure() { + # See COLLECT_MODULE_IF_FOUND macros in CMakeLists.txt + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt53DAnimation=$(usex !3d) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt53DCore=$(usex !3d) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt53DExtras=$(usex !3d) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt53DInput=$(usex !3d) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt53DLogic=$(usex !3d) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt53DRender=$(usex !3d) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Charts=$(usex !charts) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Concurrent=$(usex !concurrent) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5DataVisualization=$(usex !datavis) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Designer=$(usex !designer) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Gui=$(usex !gui) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Help=$(usex !help) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Location=$(usex !location) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Multimedia=$(usex !multimedia) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5MultimediaWidgets=$(usex !multimedia yes $(usex !widgets)) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Network=$(usex !network) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Positioning=$(usex !positioning) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5PrintSupport=$(usex !printsupport) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Qml=$(usex !qml) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Quick=$(usex !quick) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5QuickControls2=$(usex !quick) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5QuickWidgets=$(usex !quick yes $(usex !widgets)) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Script=yes + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5ScriptTools=yes + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Scxml=$(usex !scxml) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Sensors=$(usex !sensors) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5TextToSpeech=$(usex !speech) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Sql=$(usex !sql) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Svg=$(usex !svg) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Test=$(usex !testlib) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5UiTools=$(usex !designer) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebChannel=$(usex !webchannel) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebEngine=$(usex !webengine) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebEngineCore=$(usex !webengine) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebEngineWidgets=$(usex !webengine yes $(usex !widgets)) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5WebSockets=$(usex !websockets) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Widgets=$(usex !widgets) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5X11Extras=$(usex !x11extras) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5Xml=$(usex !xml) + -DCMAKE_DISABLE_FIND_PACKAGE_Qt5XmlPatterns=$(usex !xmlpatterns) + ) + + pyside2_configure() { + local mycmakeargs=( + "${mycmakeargs[@]}" + -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}" + -DPYTHON_EXECUTABLE="${PYTHON}" + -DPYTHON_SITE_PACKAGES="$(python_get_sitedir)" + -DSHIBOKEN_PYTHON_SHARED_LIBRARY_SUFFIX="-${EPYTHON}" + ) + cmake_src_configure + } + python_foreach_impl pyside2_configure +} + +src_compile() { + python_foreach_impl cmake_src_compile +} + +src_test() { + local -x PYTHONDONTWRITEBYTECODE + python_foreach_impl virtx cmake_src_test +} + +src_install() { + pyside2_install() { + cmake_src_install + python_optimize + + # Uniquify the shiboken2 pkgconfig dependency in the PySide2 pkgconfig + # file for the current Python target. See also: + # https://github.com/leycec/raiagent/issues/73 + sed -i -e 's~^Requires: shiboken2$~&-'${EPYTHON}'~' \ + "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}.pc || die + + # Uniquify the PySide2 pkgconfig file for the current Python target, + # preserving an unversioned "pyside2.pc" file arbitrarily associated + # with the last Python target. (See the previously linked issue.) + cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die + } + python_foreach_impl pyside2_install + + # CMakeLists.txt installs a "PySide2Targets-gentoo.cmake" file forcing + # downstream consumers (e.g., pyside2-tools) to target one + # "libpyside2-*.so" library linked to one Python interpreter. See also: + # https://bugreports.qt.io/browse/PYSIDE-1053 + # https://github.com/leycec/raiagent/issues/74 + sed -i -e 's~pyside2-python[[:digit:]]\+\.[[:digit:]]\+~pyside2${PYTHON_CONFIG_SUFFIX}~g' \ + "${ED}/usr/$(get_libdir)"/cmake/PySide2*/PySide2Targets-${CMAKE_BUILD_TYPE,,}.cmake || die +} diff --git a/dev-python/pywlroots/pywlroots-0.15.24-r2.ebuild b/dev-python/pywlroots/pywlroots-0.15.24-r2.ebuild index 176d25311aa5..8fe52d87a8d6 100644 --- a/dev-python/pywlroots/pywlroots-0.15.24-r2.ebuild +++ b/dev-python/pywlroots/pywlroots-0.15.24-r2.ebuild @@ -31,6 +31,8 @@ RDEPEND=" >=dev-python/xkbcommon-0.2[${PYTHON_USEDEP}] =gui-libs/wlroots-$(ver_cut 1-2)*:= x11-base/xwayland + gui-libs/egl-wayland + dev-libs/libinput " DEPEND="${RDEPEND}" diff --git a/dev-python/shiboken2/Manifest b/dev-python/shiboken2/Manifest index d7602001a4a7..cc4972e72deb 100644 --- a/dev-python/shiboken2/Manifest +++ b/dev-python/shiboken2/Manifest @@ -1 +1,2 @@ DIST pyside-setup-opensource-src-5.15.11.tar.xz 3584760 BLAKE2B c4d60439a218451eb0c505031524fe1e30a117b7e89a28b5cd7518c193a8d2de01a5db8cb3acdd97c81da6dddff99f786c6c763427f78cdd0af4031122ac2d24 SHA512 377b3f6a793313cf7f5bea0dcef6630bac32d79b247e213d0b1b719805b35692aa8dd9a8896c75c6266f05af38809f574051d64b1a2f958a48c90167feccfb91 +DIST pyside-setup-opensource-src-5.15.12.tar.xz 3585204 BLAKE2B a664555b5a98d5ebda39c8226062e12c2b3308e6d95866cd9268de6a8089aef5d0e7a4958821a8e84642f01bffe2a9323ba0752d33fc803d4eb4b29453e2f070 SHA512 843d7352bfb7c9765b5033939b2a6211148ad79a6012685b2d07775745edf04c8420359efb2a3ae4a8686de4daaeb7f531f73fd152f0a2fe7dd54de0080c3cf4 diff --git a/dev-python/shiboken2/shiboken2-5.15.12.ebuild b/dev-python/shiboken2/shiboken2-5.15.12.ebuild new file mode 100644 index 000000000000..9341f9eb4aee --- /dev/null +++ b/dev-python/shiboken2/shiboken2-5.15.12.ebuild @@ -0,0 +1,173 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# TODO: Split the "/usr/bin/shiboken2" binding generator from the +# "/usr/lib64/libshiboken2-*.so" family of shared libraries. The former +# requires everything (including Clang) at runtime; the latter only requires +# Qt and Python at runtime. Note that "pip" separates these two as well. See: +# https://doc.qt.io/qtforpython/shiboken2/faq.html#is-there-any-runtime-dependency-on-the-generated-binding +# Once split, the PySide2 ebuild should be revised to require +# "/usr/bin/shiboken2" at build time and "libshiboken2-*.so" at runtime. +# TODO: Add PyPy once officially supported. See also: +# https://bugreports.qt.io/browse/PYSIDE-535 +PYTHON_COMPAT=( python3_{8,9,10,11,12} ) + +inherit cmake llvm python-r1 toolchain-funcs + +MY_P=pyside-setup-opensource-src-${PV} + +DESCRIPTION="Python binding generator for C++ libraries" +HOMEPAGE="https://wiki.qt.io/PySide2" +SRC_URI="https://download.qt.io/official_releases/QtForPython/pyside2/PySide2-${PV}-src/${MY_P}.tar.xz" +S="${WORKDIR}/${MY_P}/sources/shiboken2" + +# The "sources/shiboken2/libshiboken" directory is triple-licensed under the +# GPL v2, v3+, and LGPL v3. All remaining files are licensed under the GPL v3 +# with version 1.0 of a Qt-specific exception enabling shiboken2 output to be +# arbitrarily relicensed. (TODO) +LICENSE="|| ( GPL-2 GPL-3+ LGPL-3 ) GPL-3" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~riscv ~x86" +IUSE="+docstrings numpy test vulkan" +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +# Tests fail pretty bad and I'm not fixing them right now +RESTRICT="test" + +# Minimal supported version of Qt. +QT_PV="$(ver_cut 1-3)*:5" + +# Since Clang is required at both build- and runtime, BDEPEND is omitted here. +LLVM_MAX_SLOT=15 +RDEPEND="${PYTHON_DEPS} + =dev-qt/qtcore-${QT_PV} + <sys-devel/clang-16:= + <sys-devel/clang-runtime-16:= + docstrings? ( + >=dev-libs/libxml2-2.6.32 + >=dev-libs/libxslt-1.1.19 + =dev-qt/qtxml-${QT_PV} + =dev-qt/qtxmlpatterns-${QT_PV} + ) + numpy? ( dev-python/numpy[${PYTHON_USEDEP}] ) + vulkan? ( dev-util/vulkan-headers ) +" +DEPEND="${RDEPEND} + test? ( =dev-qt/qttest-${QT_PV} ) +" + +DOCS=( AUTHORS ) + +# Ensure the path returned by get_llvm_prefix() contains clang as well. +llvm_check_deps() { + has_version "sys-devel/clang:${LLVM_SLOT}" +} + +src_prepare() { + # TODO: File upstream issue requesting a sane way to disable NumPy support. + if ! use numpy; then + sed -i -e '/\bprint(os\.path\.realpath(numpy))/d' \ + libshiboken/CMakeLists.txt || die + fi + + # Shiboken2 assumes Vulkan headers live under either "$VULKAN_SDK/include" + # or "$VK_SDK_PATH/include" rather than "${EPREFIX}/usr/include/vulkan". + if use vulkan; then + sed -i -e "s~\bdetectVulkan(&headerPaths);~headerPaths.append(HeaderPath{QByteArrayLiteral(\"${EPREFIX}/usr/include/vulkan\"), HeaderType::System});~" \ + ApiExtractor/clangparser/compilersupport.cpp || die + fi + + local clangver="$(CPP=clang clang-major-version)" + + # Clang 15 and older used the full version as a directory name. + if [[ ${clangver} -lt 16 ]]; then + clangver="$(CPP=clang clang-fullversion)" + fi + + # Shiboken2 assumes the "/usr/lib/clang/${CLANG_NEWEST_VERSION}/include/" + # subdirectory provides Clang builtin includes (e.g., "stddef.h") for the + # currently installed version of Clang, where ${CLANG_NEWEST_VERSION} is + # the largest version specifier that exists under the "/usr/lib/clang/" + # subdirectory. This assumption is false in edge cases, including when + # users downgrade from newer Clang versions but fail to remove those + # versions with "emerge --depclean". See also: + # https://github.com/leycec/raiagent/issues/85 + # + # Sadly, the clang-* family of functions exported by the "toolchain-funcs" + # eclass are defective, returning nonsensical placeholder strings if the + # end user has *NOT* explicitly configured their C++ compiler to be Clang. + # PySide2 does *NOT* care whether the end user has done so or not, as + # PySide2 unconditionally requires Clang in either case. See also: + # https://bugs.gentoo.org/619490 + sed -i -e 's~(findClangBuiltInIncludesDir())~(QStringLiteral("'"${EPREFIX}"'/usr/lib/clang/'"${clangver}"'/include"))~' \ + ApiExtractor/clangparser/compilersupport.cpp || die + + cmake_src_prepare +} + +src_configure() { + # Minimal tests for now, 2 failing with the extended version + # FIXME Subscripted generics cannot be used with class and instance checks + local mycmakeargs=( + -DBUILD_TESTS=$(usex test) + -DDISABLE_DOCSTRINGS=$(usex !docstrings) + ) + + shiboken2_configure() { + local mycmakeargs=( + "${mycmakeargs[@]}" + -DPYTHON_CONFIG_SUFFIX="-${EPYTHON}" + -DPYTHON_EXECUTABLE="${PYTHON}" + -DUSE_PYTHON_VERSION="${EPYTHON#python}" + ) + # CMakeLists.txt expects LLVM_INSTALL_DIR as an environment variable. + local -x LLVM_INSTALL_DIR="$(get_llvm_prefix "${LLVM_MAX_SLOT}")" + cmake_src_configure + } + python_foreach_impl shiboken2_configure +} + +src_compile() { + python_foreach_impl cmake_src_compile +} + +src_test() { + python_foreach_impl cmake_src_test +} + +src_install() { + shiboken2_install() { + cmake_src_install + python_optimize + + # Uniquify the "shiboken2" executable for the current Python target, + # preserving an unversioned "shiboken2" file arbitrarily associated + # with the last Python target. + cp "${ED}"/usr/bin/${PN}{,-${EPYTHON}} || die + + # Uniquify the Shiboken2 pkgconfig file for the current Python target, + # preserving an unversioned "shiboken2.pc" file arbitrarily associated + # with the last Python target. See also: + # https://github.com/leycec/raiagent/issues/73 + cp "${ED}/usr/$(get_libdir)"/pkgconfig/${PN}{,-${EPYTHON}}.pc || die + } + python_foreach_impl shiboken2_install + + # CMakeLists.txt installs a "Shiboken2Targets-gentoo.cmake" file forcing + # downstream consumers (e.g., PySide2) to target one "libshiboken2-*.so" + # library and one "shiboken2" executable linked to one Python interpreter. + # See also: + # https://bugreports.qt.io/browse/PYSIDE-1053 + # https://github.com/leycec/raiagent/issues/74 + sed -i \ + -e 's~shiboken2-python[[:digit:]]\+\.[[:digit:]]\+~shiboken2${PYTHON_CONFIG_SUFFIX}~g' \ + -e 's~/bin/shiboken2~/bin/shiboken2${PYTHON_CONFIG_SUFFIX}~g' \ + "${ED}/usr/$(get_libdir)"/cmake/Shiboken2*/Shiboken2Targets-${CMAKE_BUILD_TYPE,,}.cmake || die + + # Remove the broken "shiboken_tool.py" script. By inspection, this script + # reduces to a noop. Moreover, this script raises the following exception: + # FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/../shiboken_tool.py': '/usr/bin/../shiboken_tool.py' + rm "${ED}"/usr/bin/shiboken_tool.py || die +} diff --git a/dev-python/sqlalchemy/Manifest b/dev-python/sqlalchemy/Manifest index 9d28f6cc9c60..c7da6e29d511 100644 --- a/dev-python/sqlalchemy/Manifest +++ b/dev-python/sqlalchemy/Manifest @@ -1,3 +1,5 @@ DIST SQLAlchemy-1.4.50.tar.gz 8517526 BLAKE2B 835ed762b2b399167c9eb52400689619db33d30431241bfb0410a79d0e34104aec972e883c4159f9a69a754a60e1daffc6256ba74f02bc7dabf994c6752c8ae1 SHA512 d484c2673e67b0c45f05d2af20f930f274ea8e83ca41e2bd1c08723f564af58424b78be2ee507612fec6fc095dc215f75f52dfad68a98bcbf1774e150d956a29 +DIST SQLAlchemy-1.4.51.tar.gz 8521574 BLAKE2B 216550225c11d5367e5a50ec321a09078b4677973cf33eee1874beb9f855cfeb629a6df4d05e8ecc5b22052628de5cae2e468d18d50502a4560bd4ca7d85ab7d SHA512 be27a41f442428cdb5cc6a20af2de9424384457475d16a7d7167b718256e208766e2ba8d53bef2b314aafe87b3d9b0c5f9af6e4c03f53fb194671cfaca6e50b5 DIST SQLAlchemy-2.0.23.tar.gz 9474103 BLAKE2B 9ebfbca68106249a8c6c5e2e187b57953dab3a9d851e429ae6d86fa99b77069758385318a37aea8a23293a54418073e021d9b04ee88d467e57132d70af80af4d SHA512 4d79e25c48c2d4400b8cf1bf4f7066912f06c05b8dfceeec1a215e03fffa7efce5882bb5058538ddfe127ad35bab7fc9aa314ffdedc81f3b97fde9207d7dd1f7 DIST SQLAlchemy-2.0.24.tar.gz 9490665 BLAKE2B f7e845aad5a8cbafc24dd2a057a860b5eceefcf699706d01f78db13038639abbdcb4530290b135c31178d010c37ca908758651f5e0fd8142e97f23ecd4a48d72 SHA512 74343a592941632fd04625bc0a13d2b4720c810b7ff422637dc8aa64f0e8f768db8006fca50827a228475247f28df94dd0b0c97b8143c5eb6ae69c6f19578b47 +DIST SQLAlchemy-2.0.25.tar.gz 9508797 BLAKE2B 88f8927af1a20bdc3697e90112d515a04c64879bc806ae655d326f22322210853c2995ad884cb510a15d14ae12eb7612d867f701ab8f938ec0227abaab642497 SHA512 60b31a167f46a623f76e349f6a3f5a1696e1a04aee8dec2750396c715831a242a96e281ee7fcbfa26f82e6318573ab58e97d21bd93d02bbe3ff962777d809146 diff --git a/dev-python/sqlalchemy/sqlalchemy-1.4.51.ebuild b/dev-python/sqlalchemy/sqlalchemy-1.4.51.ebuild new file mode 100644 index 000000000000..92f70ecf5e96 --- /dev/null +++ b/dev-python/sqlalchemy/sqlalchemy-1.4.51.ebuild @@ -0,0 +1,107 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE="sqlite?" + +inherit distutils-r1 optfeature pypi + +MY_PN="SQLAlchemy" +DESCRIPTION="Python SQL toolkit and Object Relational Mapper" +HOMEPAGE=" + https://www.sqlalchemy.org/ + https://pypi.org/project/SQLAlchemy/ + https://github.com/sqlalchemy/sqlalchemy/ +" +SRC_URI="$(pypi_sdist_url --no-normalize "${MY_PN}")" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="examples +sqlite test" + +BDEPEND=" + test? ( + $(python_gen_impl_dep sqlite) + ) +" + +distutils_enable_tests pytest + +EPYTEST_IGNORE=( + # hardcode call counts specific to Python versions + test/aaa_profiling +) + +src_prepare() { + sed -i -e '/greenlet/d' setup.cfg || die + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # warning tests are unreliable + test/base/test_warnings.py + + # TODO + 'test/orm/test_cache_key.py::EmbeddedSubqTest::test_cache_key_gen[memory-_exclusions1]' + + # deprecations + test/engine/test_parseconnect.py::TestRegNewDBAPI::test_wrapper_hooks + test/engine/test_parseconnect.py::URLTest::test_component_set + test/engine/test_parseconnect.py::URLTest::test_password_custom_obj + test/engine/test_parseconnect.py::URLTest::test_update_query_dict + test/engine/test_parseconnect.py::URLTest::test_update_query_string + ) + local sqlite_version=$(sqlite3 --version | cut -d' ' -f1) + [[ ${EPYTHON} == pypy3 ]] && EPYTEST_DESELECT+=( + test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access + # https://github.com/sqlalchemy/sqlalchemy/issues/8762 + test/orm/test_query.py::YieldTest_sqlite+pysqlite_${sqlite_version//./_}::test_yield_per_close_on_interrupted_iteration_legacy + ) + if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution + test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]" + "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]" + ) + fi + + # upstream's test suite is horribly hacky; it relies on disabling + # the warnings plugin and turning warnings into errors; this also + # means that any DeprecationWarnings from third-party plugins cause + # everything to explode + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS= + # upstream automagically depends on xdist when it is importable + # note that we can't use xdist because it causes nodes to randomly + # crash on init + if has_version "dev-python/pytest-xdist[${PYTHON_USEDEP}]"; then + PYTEST_PLUGINS+=xdist.plugin + fi + epytest +} + +python_install_all() { + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + dodoc -r examples + fi + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "asyncio support" dev-python/greenlet + optfeature "MySQL support" \ + dev-python/mysqlclient \ + dev-python/pymysql + optfeature "postgresql support" dev-python/psycopg:2 +} diff --git a/dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild b/dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild new file mode 100644 index 000000000000..4cd69540a31d --- /dev/null +++ b/dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild @@ -0,0 +1,111 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) +PYTHON_REQ_USE="sqlite?" + +inherit distutils-r1 multiprocessing optfeature pypi + +MY_PN="SQLAlchemy" +DESCRIPTION="Python SQL toolkit and Object Relational Mapper" +HOMEPAGE=" + https://www.sqlalchemy.org/ + https://pypi.org/project/SQLAlchemy/ + https://github.com/sqlalchemy/sqlalchemy/ +" +SRC_URI="$(pypi_sdist_url --no-normalize "${MY_PN}")" +S="${WORKDIR}/${MY_PN}-${PV}" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="examples +sqlite test" + +RDEPEND=" + >=dev-python/typing-extensions-4.6.0[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + test? ( + $(python_gen_impl_dep sqlite) + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + sed -i -e '/greenlet/d' setup.cfg || die + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_IGNORE=( + test/ext/mypy/test_mypy_plugin_py3k.py + test/typing/test_mypy.py + # hardcode call counts specific to Python versions + test/aaa_profiling + ) + local EPYTEST_DESELECT=( + # warning tests are unreliable + test/base/test_warnings.py + ) + local sqlite_version=$(sqlite3 --version | cut -d' ' -f1) + case ${EPYTHON} in + pypy3) + EPYTEST_DESELECT+=( + test/ext/test_associationproxy.py::ProxyHybridTest::test_msg_fails_on_cls_access + test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_multi_elem_varg + test/ext/test_associationproxy.py::DictOfTupleUpdateTest::test_update_one_elem_varg + test/engine/test_processors.py::PyDateProcessorTest::test_date_invalid_string + test/engine/test_processors.py::PyDateProcessorTest::test_datetime_invalid_string + test/engine/test_processors.py::PyDateProcessorTest::test_time_invalid_string + "test/dialect/test_sqlite.py::TestTypes_sqlite+pysqlite_${sqlite_version//./_}::test_cant_parse_datetime_message" + "test/dialect/test_suite.py::ReturningGuardsTest_sqlite+pysqlite_${sqlite_version//./_}"::test_{delete,insert,update}_single + test/base/test_utils.py::ImmutableDictTest::test_pep584 + ) + ;; + esac + if ! has_version "dev-python/greenlet[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_execution + test/ext/asyncio/test_engine_py3k.py::TextSyncDBAPI::test_sync_driver_run_sync + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[False-True]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[True-True]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[has_terminate-is_asyncio]" + "test/engine/test_pool.py::PoolEventsTest::test_checkin_event_gc[not_has_terminate-is_asyncio]" + "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True-_exclusions0]" + "test/engine/test_pool.py::QueuePoolTest::test_userspace_disconnectionerror_weakref_finalizer[True]" + ) + fi + + # upstream's test suite is horribly hacky; it relies on disabling + # the warnings plugin and turning warnings into errors; this also + # means that any DeprecationWarnings from third-party plugins cause + # everything to explode + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p rerunfailures --reruns=10 --reruns-delay=2 \ + -p xdist -n "$(makeopts_jobs)" --dist=worksteal +} + +python_install_all() { + if use examples; then + docompress -x "/usr/share/doc/${PF}/examples" + dodoc -r examples + fi + + distutils-r1_python_install_all +} + +pkg_postinst() { + optfeature "asyncio support" dev-python/greenlet + optfeature "MySQL support" \ + dev-python/mysqlclient \ + dev-python/pymysql + optfeature "postgresql support" dev-python/psycopg:2 +} diff --git a/dev-python/traitlets/Manifest b/dev-python/traitlets/Manifest index 14208cfbef7e..298fb584ddf0 100644 --- a/dev-python/traitlets/Manifest +++ b/dev-python/traitlets/Manifest @@ -1 +1,2 @@ DIST traitlets-5.14.0.tar.gz 160561 BLAKE2B cca468f0566daf08517c45a7821dcef2727bf1d67dba3265c298da6bd7d86bf93f72e0c46f2518c2b07eeaa0900986c09256f7a858646175dc1c9289e0621894 SHA512 d0526bf137061709a3c5402dd0be59391cfbd39469d78784f7cbd94fb2150294b5c2b24d100c9eec64c63e42f9c53ebf334fd0222f6bf6426676ca9b811b41f5 +DIST traitlets-5.14.1.tar.gz 161107 BLAKE2B b247ce64383a6d677e426668cab844b8c476bd3bfaa6a1aa4d8325dd53c5c507aaa80b482e172771c491fea44de1568ca8455679a5fc915046d1d2bdba3b44d7 SHA512 c71f6a7825650eaf57d832e13c45b2526233082f371ab8ee035181c089558a11dc8ef4923b87a96cfdb80e83ba05d70d997686c031bde94c6bd523e032ba68fb diff --git a/dev-python/traitlets/traitlets-5.14.1.ebuild b/dev-python/traitlets/traitlets-5.14.1.ebuild new file mode 100644 index 000000000000..4ff88a4c3d98 --- /dev/null +++ b/dev-python/traitlets/traitlets-5.14.1.ebuild @@ -0,0 +1,40 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A configuration system for Python applications" +HOMEPAGE=" + https://github.com/ipython/traitlets/ + https://pypi.org/project/traitlets/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +BDEPEND=" + test? ( + >=dev-python/argcomplete-2.0[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx docs/source \ + dev-python/myst-parser \ + dev-python/pydata-sphinx-theme +distutils_enable_tests pytest + +python_test() { + local EPYTEST_IGNORE=( + tests/test_typing.py + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -p pytest_mock +} |
