summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2024-01-03 13:56:25 +0000
committerV3n3RiX <venerix@koprulu.sector>2024-01-03 13:56:25 +0000
commit94b475013eb88e152032d5f8c684a7d9ce91e319 (patch)
tree09d40138872fbeea80b96af571a1da4de80bcf73 /dev-python
parent8d3527b916ca7e0a2c8d9b8d064253a2eda02c1f (diff)
gentoo auto-resync : 03:01:2024 - 13:56:25
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/Manifest.gzbin268940 -> 268925 bytes
-rw-r--r--dev-python/comm/Manifest2
-rw-r--r--dev-python/comm/comm-0.2.1.ebuild30
-rw-r--r--dev-python/ddt/Manifest2
-rw-r--r--dev-python/ddt/ddt-1.7.1.ebuild33
-rw-r--r--dev-python/django/Manifest6
-rw-r--r--dev-python/django/django-4.2.9.ebuild100
-rw-r--r--dev-python/django/django-5.0.1.ebuild100
-rw-r--r--dev-python/hcloud/Manifest2
-rw-r--r--dev-python/hcloud/hcloud-1.33.2.ebuild49
-rw-r--r--dev-python/inflect/Manifest2
-rw-r--r--dev-python/inflect/inflect-7.0.0.ebuild8
-rw-r--r--dev-python/netaddr/Manifest2
-rw-r--r--dev-python/netaddr/netaddr-0.10.1.ebuild27
-rw-r--r--dev-python/numpy/Manifest2
-rw-r--r--dev-python/numpy/numpy-1.26.3.ebuild169
-rw-r--r--dev-python/pdm/Manifest2
-rw-r--r--dev-python/pdm/pdm-2.11.2.ebuild81
-rw-r--r--dev-python/pillow/Manifest4
-rw-r--r--dev-python/pillow/metadata.xml2
-rw-r--r--dev-python/pillow/pillow-10.2.0.ebuild134
-rw-r--r--dev-python/pipx/Manifest2
-rw-r--r--dev-python/pipx/pipx-1.4.1.ebuild48
-rw-r--r--dev-python/pyrate-limiter/Manifest2
-rw-r--r--dev-python/pyrate-limiter/pyrate-limiter-3.1.1.ebuild71
-rw-r--r--dev-python/pyside2-tools/Manifest2
-rw-r--r--dev-python/pyside2-tools/pyside2-tools-5.15.12.ebuild72
-rw-r--r--dev-python/pyside2/Manifest2
-rw-r--r--dev-python/pyside2/pyside2-5.15.12.ebuild222
-rw-r--r--dev-python/shiboken2/Manifest2
-rw-r--r--dev-python/shiboken2/shiboken2-5.15.12.ebuild173
-rw-r--r--dev-python/sqlalchemy/Manifest4
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-1.4.51.ebuild107
-rw-r--r--dev-python/sqlalchemy/sqlalchemy-2.0.25.ebuild111
-rw-r--r--dev-python/traitlets/Manifest2
-rw-r--r--dev-python/traitlets/traitlets-5.14.1.ebuild40
36 files changed, 1613 insertions, 4 deletions
diff --git a/dev-python/Manifest.gz b/dev-python/Manifest.gz
index bc8dd55fb346..bc4d33d1d99e 100644
--- a/dev-python/Manifest.gz
+++ b/dev-python/Manifest.gz
Binary files differ
diff --git a/dev-python/comm/Manifest b/dev-python/comm/Manifest
index 386f20f7ba47..3432f1fa011d 100644
--- a/dev-python/comm/Manifest
+++ b/dev-python/comm/Manifest
@@ -1,3 +1,5 @@
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
EBUILD comm-0.2.0.ebuild 720 BLAKE2B e23412a690867c990a83168ea611c14f84ecc609b64896547d13ae32cbf90c87fb886e958293c3a3d4754f6275eb048eba126bc04918ba21d64813d71e8ab369 SHA512 193cfa58cbe8dd828242e8ea939881579c685859984dea7c843569ae48e2af1c329cd82a2359ac46b83252a20b5ec682c8d5d145d5dc4b4a4ed4ef696d541025
+EBUILD comm-0.2.1.ebuild 728 BLAKE2B c290e662d72726202b6ea740ebed3d09a1856a4d0c060445849e9821620f3a9d57d57069b6977f7997be58490a178b3973fc16d995c4d7cdbcc6377589136f2c SHA512 1a36619face02deddec7b8501e62663dc0894cdfb4188b57670d0fd7cd783d21819dfecf163553cea78bb365df1b2533f37540fefa289481354f2d38e5c99434
MISC metadata.xml 384 BLAKE2B c122aaf6c2b9e6776b19efa2549030f0267c1d553f92862c5ecf21926f30a9c3cd7564434a573cca6fdbb85485eb49213b4d95100e8de2a29ced9c9c1fa81153 SHA512 b06853ad3cb1775ad70e44c48bca74bcf85c11715291974e7e3ee496344256fc57b91920812f19809e7cf14f6a7f7938531934d6a12740baec0dd984d5d48632
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..6ddbbf5df8d5
--- /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=( pypy3 python3_{10..12} )
+
+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 e60593d6fc41..4ec170136c2b 100644
--- a/dev-python/ddt/Manifest
+++ b/dev-python/ddt/Manifest
@@ -1,5 +1,7 @@
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
EBUILD ddt-1.6.0.ebuild 679 BLAKE2B f9fbf57c975527be3a5a08e3f187066e6f4176e6bbaf205daaddca93442f9a0dea7a82b1cf7fcb5b4af258a84889d7cb3d78b8d43186947dcd58e44d9b1fc581 SHA512 c67793c746cf677a717ced7754417c891554a69435f397802ad81820eac769d5b7021cb630d624ab75c7518b817395e704bd14072a4e705e04646fc57423cc8a
EBUILD ddt-1.7.0.ebuild 724 BLAKE2B 4e11840b7147bb942d6b0e989b9725a1a5c8f0c5c81e7b651414da1b65483d631ff00d8bdda7fa0416546e2abcf7f95cfee9119f08b9e066a3decf1a0d69beac SHA512 c59219638ba0781d611193497afb4f3136b0486e9e34f82899560eae5f31eff5171e1a4483d5367e9769508a3d353fb7e18ec93c88cb29e13532b8a7aad83d3c
+EBUILD ddt-1.7.1.ebuild 730 BLAKE2B 34cd52b8222a9538293cde8819cd40c39531a7b00207574729555d43afe4f7bcc555da75f52e2dbbc32c88772347e4417d6ffc0277e4985423861ce5f4b2fedc SHA512 7ed28b5363e3c5880fa2070d9a4bec39881cbf0643eb12dacf76da6f22baa117085e15970d25072fdd357c38dacae89618018cea3fa74b679ccf6972451a319a
MISC metadata.xml 637 BLAKE2B d7aca1ac2fde8171ceb8fab19b6be2f32125d3ceb411adb504e66a024bbaebb3be0234f17ea0c07073c647d4e613cac889cb241c49ade87f168218056fb8afee SHA512 7416856917a9b619b7884f9a8fde9fb30ee03223e9c8dd45920c43f296a469ee70d79ba999bf495d97ac41d310d17949674f87c0d365ac940eae37aca2ef8d94
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..fd4045468251
--- /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_{10..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 e7f71efa75a6..bc380fb3469a 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -8,6 +8,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
@@ -16,5 +20,7 @@ EBUILD django-3.2.22.ebuild 3017 BLAKE2B e16c0f15ab99d5d3636aac0d2e507fd52d4709b
EBUILD django-4.1.12-r1.ebuild 2828 BLAKE2B 649c3e8f77e1f19beafb795fa35e78390826f5c7520e571bafb41d297d1bffdf250a239eed368335fca985cd5ee78c4c3c17c69cc8bcb116f62da941ca0daa40 SHA512 68bc9302c3426df90a1985e494838bce679177331cce34019a84a9edf80d6ed9869ce2a352a0d58169a094c83b4a7a0fd74ff99c6ae555fa6ec7527d04341af6
EBUILD django-4.1.12.ebuild 2640 BLAKE2B 6a2b9d1f80a7a16c6b892c6cb1c242668aa3d300037662be339e2112a7ef57beb698e7887ec75d6ae480cad09efceb598b2d37d1caf6f63b06d093f861a63e8d SHA512 e4628c3bd55bddbb36d0f5364a3fada8a42547fe87eee76c076014b61e714214fee9534cb29ddb00ade89a606622f684749195165ac09e15640bbe4bc96d08c2
EBUILD django-4.2.8-r1.ebuild 2825 BLAKE2B db6bf6510deb8c304034bc3d0cfc8f47a0ae939c3a1a356ee74cf13bc564cf171f27a8a7e7f3c1218d2b9d93a9a47f6cbbdb419da30d62a102819166ba6afac2 SHA512 5f289ccf8890485ef49b65c5cfe1495335e13dedbf8dc13852b756725cd95fde04aa0c76bbdcf236a90e98ddd780e0f7fd4bf14184de3e347ff8673fb34d1ca6
+EBUILD django-4.2.9.ebuild 2829 BLAKE2B edce13ba1bb9ccebb08c1637893a51aee1b969cb49d19dfbd9967610f77fac1f6e5954ed17a17c0ac8ae3ac2d7bc7108cb51717e30fd12734ff3a8d92d63bb21 SHA512 e570e192c4851d59bf4e98ca2cf354c688cd5757935993042c7e187edba82deb2988c9caf0ab37514cd1f8838d252250070d9296949ba534198ac267f0a1fbc0
EBUILD django-5.0-r1.ebuild 2816 BLAKE2B 2a6dddc144987215f56d2ad6347e0d41bab1ef2641e4f54a9ba7d4205aa3eb5b7876139e46bfd86d90bac768ff2e7b76b66c1e39ec6a1d6c2659743f22f43f84 SHA512 1e417518688b91076257ec067a2f746d7d39593ba7944761e7cd06772d387dba8e792e7b7e820e3ca064f5a2a4fd634ea7492071aadda5078ef542d421653867
+EBUILD django-5.0.1.ebuild 2857 BLAKE2B 09b9334029a7911afb4ecb699b9ce0606029d51d4f9342ebd23a0566ab0503cff7a6deddaa9e439ca10929328e8be642c49783af8618f2ec8d98ff93a39bb4e5 SHA512 54e147fcb459dc2ef1744519271305ce83989201027bdc554d7dd4b7f1b83ba17eb797cc6a3fadcd21265ebb7e2b8e6bcab3d079d55ffec2bf10d1828254fe01
MISC metadata.xml 400 BLAKE2B 6b3414ac734f078d90c82b44edd2f9f70e494e98da8a3d874d18006ae5e0eb5f7060b98b402094d6045e800bf525586f2566e6f554a8b2999cce37bdcc5472a0 SHA512 1cf0bb6ef93da3abbd1a66878462b1b8672a9b8fccd7f968b427e429caa6ecf30cb703a6060d621ccad1ba77b927d2b0e632b04b0a47975918ccbfcc5f2b85f7
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..927c7bb1f192
--- /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=( pypy3 python3_{10..12} )
+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..1ff45ba52cdf
--- /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=( pypy3 python3_{10..12} )
+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 10a5bcd1d425..44ef509bb599 100644
--- a/dev-python/hcloud/Manifest
+++ b/dev-python/hcloud/Manifest
@@ -1,5 +1,7 @@
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
EBUILD hcloud-1.32.0.ebuild 1131 BLAKE2B 635b12b80f9609d9c911a2d5bad3b082f1496d9e1cca1b2fd7429913f1d67508b4fa7532653433121aec6e315faca5b6b3e14ed48fe18c2ecd096c5ae4dcd708 SHA512 deb6df221c879f66c16ce9882f01b47bb67dd73bd24d15569580d7c6c16bd7e369692cb13125fcd38cfba403e7dd1de9bcaee5a5794db188d7e427f3bbde03f7
EBUILD hcloud-1.33.0.ebuild 1132 BLAKE2B 36c8da11a3c3e0a252a19fc9f62ac9baa408e6cfd28948cec5b0a490898702cb2885c5376b47a319c3ed9969ef38d9817449841ebcd50f5440865404627b3af1 SHA512 0181d301d65203d7fd0679a5a4973b5e264402b799f645c1dcafb6354fdea734e60858716c97690eb077ed222aa05532166d06b7f1273fd0a22b647583d9624a
+EBUILD hcloud-1.33.2.ebuild 1132 BLAKE2B 49914fc418495f38b2166e8e6f689c5d05de98c470a18c639a496fa49ff7e1308057f92d2fd4382bf2392b8c33de252d7138aa5b06e85e6a601b64614a02a32c SHA512 ba4c306e40b97e02f89fd2898c258716528fdc595a808974ad0262f8874ca66d41e681695e085d5d05dc2ec891773d3e6b8a28d7ebf5888eba5bbe7977ba5f95
MISC metadata.xml 483 BLAKE2B c945a22b776b5bf73deabf93718a1dea3a9b98f7257467e845106f71910347a803f96ef969227d7c10a119f1e35b904bcb7501b9672bf3ce5a2bef112d903e56 SHA512 4a6540a06d57eb3bc8c455d982531427157fbf1a85abf4b909032b0880c9e2847b295b3c9b02378be35e88f74876357503dd04bbe544ff9a9612df2b1c321b1c
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..4d1d123f8d66
--- /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_{10..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/Manifest b/dev-python/inflect/Manifest
index 01954918f962..7de503df5f62 100644
--- a/dev-python/inflect/Manifest
+++ b/dev-python/inflect/Manifest
@@ -1,3 +1,3 @@
DIST inflect-7.0.0.tar.gz 70963 BLAKE2B ae896109acd33946e05902d121ecbd95e04dc33a1d6da6035148521de5baff8cff877a5c56c104bde29d56025e231e20f97e0ee50686de0ec19b567d53612314 SHA512 b2ca39d0e36cda8c8c42d208443d3b84b10d659dcd0d368273503d6e76df19c61ac3c623d526ea918ca8b347d6db8bdfb691609e480eaa33dd4f1c37e008473b
-EBUILD inflect-7.0.0.ebuild 721 BLAKE2B ab468c5fb4a0707c0eaeb4640b58f58b686dc8a6cab988da0a18e46b8eb3da16044aa01d76ce72161d6b082f0bc87d9b10f880c20e9ba57491d24d16a130a69f SHA512 0b2215e5d511d86a2cb3c64bbcd0d27ca8eb3ed41caa4d266df34c88f5605a1f6034a5133e80ce9ec006d839be7632603438a144b96421892aa20988b350c0d9
+EBUILD inflect-7.0.0.ebuild 855 BLAKE2B fa90de879fde3c8a0a687be3c3a6e97e7bc2f29766ea063d2c90a58e8b1d96359173dd7d9f5470a321b2197d29b1e9175a9b801361a2ad42dca7ecc1688445ab SHA512 820625729dca5578d240b26c10f1a4af207c42d9501f91e8e27a8ee7cb685d5b948217c41b2724def2ce57c232149875c74164cb13e3d598b4e860721eb24da8
MISC metadata.xml 557 BLAKE2B 1a327bb3ea2f7ecb0b3100d9f443c9c0c20a89f1e560eac79cef20a6f12855355dab9c71bab94881774e2be6fc2b4bd9530e1155caecdf687228db259ed34bba SHA512 d719ba7da2f6544cada37998dbc6b104cebb6419ab65bd164411928953c5898da2f5f2f789b72d41f7b46ee7a5570fc6646d331e0df39b34c1fa0685fb9165ab
diff --git a/dev-python/inflect/inflect-7.0.0.ebuild b/dev-python/inflect/inflect-7.0.0.ebuild
index 24d03c10562d..2081c97362fb 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 06bbe113b1d0..6b68bffccffd 100644
--- a/dev-python/netaddr/Manifest
+++ b/dev-python/netaddr/Manifest
@@ -1,5 +1,7 @@
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
EBUILD netaddr-0.10.0.ebuild 636 BLAKE2B 73c7342bcccf8ac1b7feac256288417dc34a89295705540fce0ce40f61bf393ebe899c354ea9d39375e6b2418ad623351e4491f80c1962f3ae3f3511148a1b4e SHA512 5f416424a0ed480c2f924a82cb0e0b059498e6cf5f4a41863edf43e060806c50b73a63d034916016422c79bf7b9de515f51acb48e806dcf9fdfdfd6baa8c55ed
+EBUILD netaddr-0.10.1.ebuild 636 BLAKE2B aa074482178a7991594f0a1a0bc1d7afef290f57e1810c40acb96e7171d897110e9776870678c8605202ed4f7de4a3b35224bc50abc2bfef97586ee710838361 SHA512 d323c6e77448887eb857378fc58dbb349b53595cede6a4e20f0f5274db9c28e8cb9c922e9ef73fd9c51915d8a04136864541b546ae2900c0e26e53c8151c5ca2
EBUILD netaddr-0.9.0.ebuild 633 BLAKE2B 65cc2e8b9defc19609ebe3131a5065027edd3a2bccce9a67453e926f2cad4ba1eb28a1f3d38ec6ef98015c3e12901f879c4b911bc214d3decf622e70014ad354 SHA512 07aef639ef2516abfc87bed219eb855d8c9d58c34aa6e4f51593976840b04b8798b02761add82ec36d3f6d09bc189d6dda0b73471bc366d77960f9a294485ff3
MISC metadata.xml 580 BLAKE2B fa813dd9ba11bbe59493df919e010a21ccc3d94a3683e5687953eb6bf6b759b61e03de1d4f7810cc7f2d189fe936c7fab754713ac315c06f7a24c86c0c7da67d SHA512 bd4d624a37b55968e2ac085f7f254343a6e2903ce50c0a54244238a0f436b67ef6a13e60f39c6cee4c043312602f19cdca6b6d67ac9a75677e7af8f14afeed1b
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..0ee7e6d93665
--- /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_{10..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 44dfe9349dd3..8d508682b5cb 100644
--- a/dev-python/numpy/Manifest
+++ b/dev-python/numpy/Manifest
@@ -1,6 +1,8 @@
AUX numpy-1.26.1-more-arches.patch 683 BLAKE2B dcf9cd87747981a010be254a49569108ddca41c9ccfebaa04694e832aced6f717bd5edd7a9e5853d6c89eea02fb46c48a534a13d9021d655fc82cc2bda40e7be SHA512 4ca8fafbe15d8f68090283ca1e60d23ccdc3a4ba6f607d9f83533dff44a229a8c92ef9acf886673a57438c6bb6b0e0e21b86de8ae9eba31be5599a9807ab24be
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
EBUILD numpy-1.26.1.ebuild 4492 BLAKE2B 7ac29b9adf17c2529b2f0ad62c2a96d7c87d51d1ca7dc467b143ad64f477783ed9b3103f7dcc87d5a2d235e3d6ed97cac56cdfc5e809aa5331ae282fd058f335 SHA512 0fc32e2aea726a1d914b5db9fc8dee3f12030eba943529f71fdc84b070fe8fb81fa93f641aca9990642ec10b2ab45a32372a65527110ff31bafc913c5e243771
EBUILD numpy-1.26.2.ebuild 4768 BLAKE2B 2882cc830e7e2141134270199bd92abac234b673982826100cf4594b3b9161656227fa4e338d397b8540ae65321494c15142b8566e8c44f7f72e45fd1100c0e7 SHA512 6816912cd402080ef6e4b54515a231efc966a9ee49a570f7b76b64f47ef5b850f048786d028cd83d51a0da163c5c3b902fbe50c459ac5140acdd81867ee92d60
+EBUILD numpy-1.26.3.ebuild 4791 BLAKE2B 9e61e6efcb91334238c2c48be8278f608fd9b196e161042804e1f13677e67c5e3ccabde8976205b0d2333708a5f2956e11303b5ab7b90790efbd3a19db8c6a99 SHA512 3c8b45670d572463e5fb9dcf7cbf99d13d54b659695fda8d316ce5f3350fe6b07ce04ca44bf1faaaebafcdce0e27e76ef755191f245adb2522b76a5a3fd23c55
MISC metadata.xml 932 BLAKE2B 7a4af31f613bab05ff542da48bf6ff1484d9df2459f559516e71329451dd739d3df0fead507c8033d94ab9ed516b68efe7f21819a8cd6ca303643d8c8bc34e86 SHA512 32cb8c1ab61521a02cbec38f6ea383f074e50d46aa3462ddcb85710f9d348e8e628cf2a5725e3cd921cc32f02885a1b5f02125639f0ec885384eeeff7f468a06
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..d8b21ae0f7e8
--- /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_{10..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 e69be70cb5d2..93ae51cb36a6 100644
--- a/dev-python/pdm/Manifest
+++ b/dev-python/pdm/Manifest
@@ -1,3 +1,5 @@
DIST pdm-2.11.1.tar.gz 2595425 BLAKE2B cebaf5a86045a9826a8d6a77985a064fe3e05af403818a4629f7a978a58a4fd07e4d12ba4a69542cd4cf2a090d28a826ebadf0d703543b0551f49b61039d6d38 SHA512 e62bd64b1b302bffe0f7f18a68244b108a10969108ce98df028bd56662b336db8bf019fb1d516cc1dc579b838c674ef8601b8f7056e8547a89c5d3311cd037d9
+DIST pdm-2.11.2.tar.gz 2595716 BLAKE2B 10d1c78160f45099cdbbac6f6ef402b4c9f892e229fe56e54f164b4d7c3317cc8808639b97990e9fefda879d693cba32b48fc7b4c787704e7893c0844351227f SHA512 f27c1b5704469cc846b21a090f2098dacd486b833093af661644717a6dd6cdc627b086027b1c71037d5f3b179e72eac6dde3a98320eaff4f033ae9c96b37ab2c
EBUILD pdm-2.11.1.ebuild 2712 BLAKE2B d47e697c77ce58da6f7d628694a96ec7534b36cab5974be6613be4d515c8e847a44be31df074288b28318bbc0228503beb86ae0227ad4ce740930a003f3e60a6 SHA512 809ac800f8231d092a52c0a6a98327839ce8a471a3cd5af2932b3e7a16951a1e43bed43453e38746ea59c9de43fff2b02269776f7c2f0d685531df43667fe850
+EBUILD pdm-2.11.2.ebuild 2701 BLAKE2B 3fb9bd26ddf5a8b28bcc87f3bde500b9301bbb5f3782bb04ab309cf3107b188566f16c7c12cba6e8f833f4f10a8413cf9ede13f8d3b8d34c0e0cc363868171ee SHA512 e6fa3ba598008e041f293fba99cf9b9cfb1e060cd2d5693c384e0c331484e3eb1679d834c88a8451b7d3b55a6593f6682a4f521f3c3bec08bffb18c0b1d86d62
MISC metadata.xml 474 BLAKE2B c1471e124a955920e30f73dfa43a87999c30c2bb9615590f601befcc07f7d939ec68908e67c7345fca4cb0f0524d33507aeac9936fa30d449d1dde17094048d3 SHA512 a07256061dda5a8cf8b0e15205ac36651a4e5b594fdedbfe16d1d3264e1ac42847d1dc222d2857232ac5206d67feda432751695d85d0c4c7b03fd7228db8b1ab
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..170c13d740d0
--- /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_{10..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 0966e8d68c6e..ae691ed5bffd 100644
--- a/dev-python/pillow/Manifest
+++ b/dev-python/pillow/Manifest
@@ -1,6 +1,8 @@
AUX pillow-10.1.0-olefile-0.47.patch 1456 BLAKE2B de5fda5245b9674f7a695bcde5125eeb326fdfa29c6cca2a7406c12b31af1d8e4b4ef2919c99e2ce8ed08dc6cb441b7728190cce23b7d4e1a384605a584a086b SHA512 3eef1572704eba1fa5047f866c11b563f0c79e04ae1da5f70aa2fb9876dbf21583376326c47d44691732492c092b0c4821fbd18f62de4de9a1970b6e177384dd
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
EBUILD pillow-10.0.1.ebuild 3501 BLAKE2B 9f690f40ca87ce944906fd315fa702735587500b2c3948431206803aad95a09895920819eb5a44f39c2b12c01de7400042743e516fbf5c86615c39d62b067d16 SHA512 ae4ddcfdf4e60fe86eb2643f839e3a0d72dcb1e7b2d78ce6a9f476945e81d673d1b2319b09d1f69bfd6d1f27b6ed693355e1fd85536f51d6b2220484f65bdeb5
EBUILD pillow-10.1.0-r1.ebuild 3606 BLAKE2B bcec30251d71e5c9cc439bad1fef9e701721af432a05187165880ee2ba9e776ac6c7208275168e6843727d33987a7482977aacd1d6e7f77b492bd74d9ee10ebd SHA512 4ced9aa36035a8c9865497378df8fead39e50c9d61b8b47fb218031a1ba9f6ea9086d9104b594e75936ef41870e435601ee51d621f61cd1531dc6d99a1ce61cd
-MISC metadata.xml 480 BLAKE2B b42e6b01b1572a0688ef93025a0baaa95b9fd0c3a5eabcddcea7145dd880a95f11859b255ae24a376ca792559ffcf940c67da1b19f2f579dbc6ef6de68903749 SHA512 b98a33136aef4498051370bce3295b000687ddb80b4d909b26b32af61b4e4638d07269f7924ae039420af63236aa74b51e23d2feae1c83349683073c69714582
+EBUILD pillow-10.2.0.ebuild 3516 BLAKE2B 1323caacc3a055d90f917fe9fea0383e4ee4b1935971c59eb43a4fb2d78e855886b9b72a4c7d6b1ccaf3baa39d233c25e588d53a96fc37a7f27be76f7cdd21ff SHA512 ea7357541ed9f0e39addc85540118265716f1102dcb5e643eecf1b4a3a0a3d52216fe9223c2b0167b5d87982c14b6c77ffab2407e43fe332a166d4ef3af2f2ab
+MISC metadata.xml 480 BLAKE2B 9fe5188b0a5eb4f19b53f34efad5c7da2ba086dd5eb9ed2e4fce8b6a6fac14d9a848392980cd1d2eaff5b334d7c5e39f58d60b763f44879d852dfb0b4f5e3efc SHA512 2b15d9e07b13a6028e87a3d5f0e72b2d252cfb2fa843783acfd2a9dd38bb6f0641f94d067f3a900fede445c606da361d509de2d4541513126b57c6782f69a5bb
diff --git a/dev-python/pillow/metadata.xml b/dev-python/pillow/metadata.xml
index 2f366954d43d..f29ae70ed9b4 100644
--- a/dev-python/pillow/metadata.xml
+++ b/dev-python/pillow/metadata.xml
@@ -9,7 +9,7 @@
<flag name="imagequant">Build with Image Quantization Library support</flag>
</use>
<upstream>
- <remote-id type="pypi">Pillow</remote-id>
+ <remote-id type="pypi">pillow</remote-id>
<remote-id type="github">python-pillow/Pillow</remote-id>
</upstream>
</pkgmetadata>
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..d28c11268929
--- /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_{10..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 7767715784e8..402e53e6a992 100644
--- a/dev-python/pipx/Manifest
+++ b/dev-python/pipx/Manifest
@@ -1,3 +1,5 @@
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
EBUILD pipx-1.4.0.ebuild 1015 BLAKE2B f485027bfea36ae7437318770b311a066fc733c02e1def5e131cfcc49d54663e7cb08acaef41c44b51d3c48e01595d257b991a1457fb001cd2465ec894557438 SHA512 0ba78cc0064af06a5eb9251307badd83191d0c34db2417ba0e32167ef64e2c564abf489b4e7f0b3de4bf6ac93343862e689092a8d491cefc969c96a018d94716
+EBUILD pipx-1.4.1.ebuild 1020 BLAKE2B 4fb48a4dfe04c9160322d98d47b656328189284cf8f300079f12c9eae5bab326c5b9496b4f03b7561f73614dc832eded03e51634f183e8d136109519a5b25c8b SHA512 5ffdfdaa4e1ba555bd1174ac1ef66c465e522e8c1aa143b4403691b3e03f489e603afcc5073d49df7f95407246d8cfc03c15c9db585857d0ca36be3c86176d46
MISC metadata.xml 361 BLAKE2B 64a1d56c1c20595adff59c8df102b6301c8d8eb9ff7c4c2a9e326d0c144d1cbf10a1dd2c61b64eb3ffc757955e689cecbe5c69528d59e9b79007150a9327a74b SHA512 edb195766bc66572ead0b5913a26be82df533cfea7d22d4aadc90c2644c22e458e34f227092a556bc644de35f6e64184b3683ea9015ae6d9126dffe47340d8b0
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..1b7ee2c493b3
--- /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_{10..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 b56d89e535bb..e27a66509de7 100644
--- a/dev-python/pyrate-limiter/Manifest
+++ b/dev-python/pyrate-limiter/Manifest
@@ -1,5 +1,7 @@
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
EBUILD pyrate-limiter-2.10.0.ebuild 1616 BLAKE2B d349d41a6c4f25164f1fa1f86f990ffb61e69e97e4b23e7ec9e2800cc17f10afaa7904f325956a2cb9443be14bcb563da94c8733b54d1ce9e7b0011a4fe29fa1 SHA512 76d89db635828ed2ff88c46f090b0ba41d364b20787df37c4b162da8071558440124dfabd3f2a9b06bcc0540f28d974d234e65333fa095860e2bd00f9ba0cd1a
EBUILD pyrate-limiter-3.1.0.ebuild 1616 BLAKE2B fb0dff4190bb7ad074839d572629e462ac6ed0c14ce3639e622c79db169b17ff4143208f424d9ae7991dd12e1ba381132436b9a957d9706ed973fb8db55f89e8 SHA512 37da1d33d820edb4d992432f368b77cd9fa6090a7ac08c3d76bd2e7823ea19bd95d276030fc2a3b3a6b56777a436a6b61b30ef04721b0880f222d3d5b94ea3f2
+EBUILD pyrate-limiter-3.1.1.ebuild 1698 BLAKE2B 5638265799b3446a0c003a7656744a69080e99fb086cb4e120356bfee54ff3c98f03ceca0ecc2d1b9acf131a03b47ee0eefeb7bcc567a9eacd5c0ffd3bb03edc SHA512 985e9ec78eb3f1505698f83ca64de3ea60ea4efd80a278446d5bc9393729cde9f917114cb259b6dc8cd9c96a2561abd34245de8307778cd89190e1b739113de2
MISC metadata.xml 525 BLAKE2B 8daa0c59b247c8ec215a3868315f383614b24bf36a80950f3a94968856a27ee2eb90cedba36784355926c509a26b530f3de44be729beeee0f22595cc0b9467b5 SHA512 429e23f33cd2889a7e989333a03ee374cbec2e264d354bf1c299263f2c9167059eb17f1c975b67cd4af7011843c3478d5296033666566bca97749ca85dfcab44
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..36c4f841a191
--- /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_{10..11} )
+
+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 a4221c672f47..687544a23959 100644
--- a/dev-python/pyside2-tools/Manifest
+++ b/dev-python/pyside2-tools/Manifest
@@ -1,4 +1,6 @@
AUX pyside2-tools-5.15.11-no-copy-uic.patch 1343 BLAKE2B dbabe4c0a46b0f3ccb160df34626258154efaa69554507b87e0cebe638c93b9abc6d3cf6d72f0c90833d21646e9b44a2ea0bbebeb2f11f92a748adf4f9663277 SHA512 4dbc2bbca3c16aafeeba8d2384d15dd28d7f8611027850293f165af37f9cf0ba17b1617cee06125c2e37edb011ecdeb00feb84edb8cf6c901b9e32b6d9cba639
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
EBUILD pyside2-tools-5.15.11-r1.ebuild 1605 BLAKE2B 5b3ea48f88ca7191bedb0c31e12de2b52ec58f775d78d2f09db90b0ee955c380738cf0749c23cbdd1e1a5f076801d68311d3b8df9123a114e50ba8280b021987 SHA512 1676ef6da4ae0045d52840e061d41c9fc2fc58326b1662e95fcf7596344b744fbd382b71a116f632f53200cebe822f3904a267c0c1caf8d29e74f07b048573c5
+EBUILD pyside2-tools-5.15.12.ebuild 1608 BLAKE2B eafda6eeb14eeac635a3b7530db01f35d3f3d95e48ce8a50dcd9d0e4073d6283d1d2d3b8d10f4213dd4bd7c91f2047a7431e75074d4a1de9c40ea50b4bb5c8dc SHA512 4213ca7f1b86d3695a4069bc1b9b47ef39c72bfc70faaed0c6560b22b7b2625287ba0d052309cc7b394795c98b111906b08962633284f59aa9bc0ad085af83d4
MISC metadata.xml 402 BLAKE2B 28348df442d189eadb56e04dfda71c1d5a56868aae85611a7d77ecdc7651e34ce02563c8da1270aad55758e2dd4301de44434e0bbdb010ef484e240068602ede SHA512 a54866110e38c24d67d60286c64b63dc0b537c55eb201b84b9173b47710b6e8a840d9072ca46fbef969bf481e43e1d8824b20655d7fe6b300cfd5333c3f74a41
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 170479b1bcd3..0aee42f0fa7e 100644
--- a/dev-python/pyside2/Manifest
+++ b/dev-python/pyside2/Manifest
@@ -1,3 +1,5 @@
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
EBUILD pyside2-5.15.11-r1.ebuild 9056 BLAKE2B 849743dcf296e1d16dbcb6a0551a844fc0708d194447b23deb4120ec71612c45bb0ec25919809a1a89c46636d87daf57311bccf9225f82a98458b602be28f552 SHA512 a04efeb82c7ea12f035a094f68b65fe4c1cdce047b92b47f594b206e31d1424627fd22377b5abec244832069677b04ec498fcdfb58d1e8c24ed2a05015436997
+EBUILD pyside2-5.15.12.ebuild 9059 BLAKE2B 5ffcf6d5799fa7dad8a8ef635d0dc89964d4c495ba6b7ad9fc135c6f3f2c1f1e049948eac28649b9dcc8059b06d61d04ad5c63e28150f399013f8e7b1c2c7795 SHA512 cf49e5cd99685d7adfe5da279ff46a1851b586c6b3b7686325ec7880da2ddc1e9afd5382052e1b64fa90e41d3b8310915f8c31eac6c2b5e2cfec818d9ada26e0
MISC metadata.xml 2143 BLAKE2B 0e07f94230c96f0d0cad7fc8c066356f20770d8ec285aaa049bc3650ec2f81837512d6ef217472ce799ce85a1e0a93d275d8b13f770bd68e6e86e5de495c26e8 SHA512 7bbd56f0e8bdece4cde891e8f864802fe872861fd1fa1398b3dac5554e212545acd47aa763389e685e37b2d2b8679212e06b0a8c589f824b71bcce4811973102
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/shiboken2/Manifest b/dev-python/shiboken2/Manifest
index 7ff55c51081f..95092f3baac4 100644
--- a/dev-python/shiboken2/Manifest
+++ b/dev-python/shiboken2/Manifest
@@ -1,3 +1,5 @@
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
EBUILD shiboken2-5.15.11.ebuild 6616 BLAKE2B 442cf00add86790e07f5f5241257f827b0fa0c239450104071a9bad4311449b3b37d9ac2b67eb3f9d9432f52d7e10836f310d0200b98ba26e493621613dcd066 SHA512 2e545a7fa8be1a072aa98f6cd55f6435aba534a4b179f7f3fcf8c344f88b1e114ac216c7790f9f598a99ef73be31f24f51d09c35abbb09daba39229b609001ae
+EBUILD shiboken2-5.15.12.ebuild 6619 BLAKE2B cdb70bfe06c358c669b16839a9bc193b694bec0c686612418954a8758dc5a79f19bc162d0d2ce89ceda080157e5811667ac7d9853e4ed95abc93934b861e7031 SHA512 192b1063be8a95f8052af1b5450b7e4719b6369cbf09b83c48ceabd93994f4abaa3a9b61bd4deabd024dcdc4f9a6e783f5cd5606d0b9acd910e1291a6350adea
MISC metadata.xml 730 BLAKE2B 803b825adb9fcd4379b1e3fba57d6b1916a81ced12f3b3c7d3ddcd68a0c03e85fcf31d5b07a70deebe073f267fe93a0529f7ffb4b1a9508a2223894883044f3b SHA512 5a462077fee2bd3ac87ab79274be0a718fd9b273fca4946d2d2734cefdf5817e6b4dc478a828b3bc783c63e64a62a6662b482d61eefe57386c15f9703a57fb24
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..aa7b12139425
--- /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_{10..11} )
+
+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 c822382886c7..62fa17591ec0 100644
--- a/dev-python/sqlalchemy/Manifest
+++ b/dev-python/sqlalchemy/Manifest
@@ -1,7 +1,11 @@
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
EBUILD sqlalchemy-1.4.50.ebuild 3436 BLAKE2B abdcc6fb1e0d44d9e54a54d7fb8c4970112b70086a3874c40fa5bb5484a4da4ed4068abcacd2ef2f32f6b57fbe35ecef2a8b19ac1e713bc69f6b15aa187b145a SHA512 2a126cc89c7d68aa4e9b3c725d65896e17603c10a7d79973f8c0f40b65f27adfbde929b2b665e1ecd823b61b0d20380f8e21aa33ecb00d24cb49416a1d752ade
+EBUILD sqlalchemy-1.4.51.ebuild 3444 BLAKE2B 929755a525657f9ef367e8106ca980019f6efe2818b00d8e8365aeab8e8d3a130cd87f290b440ad9ea29840ec572db4d7a7f1ca0a989fe6889960899abc3583a SHA512 1b787df6d8639abe10fb52de1d92832690ef6b486ecfb883b29b7dbb78c4f776b82dbb508cc3790081bdb14cb57228db154eee2c226b1cfe75058f06d946c888
EBUILD sqlalchemy-2.0.23.ebuild 3954 BLAKE2B 740aa280e123b67e95b0bb5feef7966a9ea33235c4a1120d7bb0515a3e8ff98978f3395fe13eddac86f09d34c0ad9ace81987f01010ec99e0fe7d20d7c1baea0 SHA512 f07db24c65f5315ea885c8268fcbdbf913685165e364252200b30cd8ee704404a825bb25230fa61594a7047b5339012ab14d500e1c64c873b0beff6fc63290fe
EBUILD sqlalchemy-2.0.24.ebuild 3962 BLAKE2B 0e0afe117c8c7ca3e1da26edbf33a628758e68ea346cc0bb889048c74cfe8e7d1bfce05a2ec6cbce2a13c850120ffe905e992a355d8f3919ec5383a5ce4b4d65 SHA512 5756af0e3699eab96f248f313a1ce41dfaa31807d43ed197b8e38550404312428a11752f751441d30c141cfed192a31d1304f37b0e73f4d16f47989a49f89755
+EBUILD sqlalchemy-2.0.25.ebuild 3962 BLAKE2B 257ac594f9b76b02da6801683e8567085b3655fbd3aaf771fcc866f6e6f77d30b84d023000dae93f5c69e567ebb4fb54e15a11d9aff310f150122e9fed316fa6 SHA512 6b2f134d62958445e5e2049138ed296347c4734e7e81dbff51a6cb0b1323762ebca97e2acf492ba1c54a5a491e35ce095c68a480fae5781623099cfe34db9963
MISC metadata.xml 444 BLAKE2B 5fbfcf8f16e52ab5bb691b0b33a8491d94e42a80409114cd9b306af7d4b0eb8b6660fabc663adee53080c635217961301b78df536995b91afe9288d255f73d62 SHA512 b432b65ed3033d34ac0784d007909eb838b309b6a4785eebb1a3f808e43dfc41c786cd55e4dd048776c65127aac170bdd9fb9e5a8ae63accb5f65e300bca9676
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..c8561de0d6de
--- /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=( pypy3 python3_{10..11} )
+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..f6836f064aa4
--- /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=( pypy3 python3_{10..12} )
+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 78dba011eb8d..df1bc61706dc 100644
--- a/dev-python/traitlets/Manifest
+++ b/dev-python/traitlets/Manifest
@@ -1,3 +1,5 @@
DIST traitlets-5.14.0.tar.gz 160561 BLAKE2B cca468f0566daf08517c45a7821dcef2727bf1d67dba3265c298da6bd7d86bf93f72e0c46f2518c2b07eeaa0900986c09256f7a858646175dc1c9289e0621894 SHA512 d0526bf137061709a3c5402dd0be59391cfbd39469d78784f7cbd94fb2150294b5c2b24d100c9eec64c63e42f9c53ebf334fd0222f6bf6426676ca9b811b41f5
+DIST traitlets-5.14.1.tar.gz 161107 BLAKE2B b247ce64383a6d677e426668cab844b8c476bd3bfaa6a1aa4d8325dd53c5c507aaa80b482e172771c491fea44de1568ca8455679a5fc915046d1d2bdba3b44d7 SHA512 c71f6a7825650eaf57d832e13c45b2526233082f371ab8ee035181c089558a11dc8ef4923b87a96cfdb80e83ba05d70d997686c031bde94c6bd523e032ba68fb
EBUILD traitlets-5.14.0.ebuild 883 BLAKE2B 08f74af57bdf3f82950e48c4ef7d81d49f90187c51ff2d642dc305f407622bb5ed1bfb4ec0c21094db1e1ed93c4459624b9c81231733ebf3c38fb20657c3759a SHA512 1749742f1e5b03a35fd13acbf0f71cc182536ce7e50e72a130f0faa1bb18244a78b7c133b9a4ad695bdf1bf63738971650890af966a51d83f627a7a72431a381
+EBUILD traitlets-5.14.1.ebuild 891 BLAKE2B 9a94e42b36bad2a827959100b693470da610b2275c476df243a419c7f7bfa1714ce4033cb95ca811f83d2779108f1505cc0caea61418dc17e684f2f6b29a4b04 SHA512 b73b2302d57df2d7fb02a25ed04cfb3a910f59ae25fa000ab1514fea75dc9cee9d7cecc24117c01a3464f1be265e7fd83af1b83389219b00245060befce0ba3a
MISC metadata.xml 737 BLAKE2B dadf9c19ed06cc70940023c180cb2256534ccba2881b4a0b5d7673ae9959838c129f82b1a5d2b9c13e408442ef2f9ec906484b01baa4408417143a712f4bfa56 SHA512 3a9e54cabaac875c27747642794f54b90216ee103e5de336d6e4e76d3a08c045ec08eabebe59c47b6fab2dabdeb43f16a8579a9448cbc19ab169ceb08740508d
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..9247ee0cd585
--- /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=( pypy3 python3_{10..12} )
+
+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
+}