summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-20 08:56:18 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2025-03-20 08:56:18 +0000
commita4ba7e428342eb91e7e06afd240c5618c96e03d0 (patch)
treeaeede425a280537996a45a3538e80b4f067ac166 /dev-python
parent31d4271c74f4334c8c37de8b6c5fd2634084bb76 (diff)
downloadbaldeagleos-repo-a4ba7e428342eb91e7e06afd240c5618c96e03d0.tar.gz
baldeagleos-repo-a4ba7e428342eb91e7e06afd240c5618c96e03d0.tar.xz
baldeagleos-repo-a4ba7e428342eb91e7e06afd240c5618c96e03d0.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/aiohttp/aiohttp-3.11.13.ebuild2
-rw-r--r--dev-python/authres/authres-1.2.0-r1.ebuild2
-rw-r--r--dev-python/bitarray/Manifest2
-rw-r--r--dev-python/bitarray/bitarray-3.2.0.ebuild (renamed from dev-python/bitarray/bitarray-3.1.0.ebuild)0
-rw-r--r--dev-python/boto3/Manifest2
-rw-r--r--dev-python/boto3/boto3-1.37.15.ebuild53
-rw-r--r--dev-python/boto3/boto3-1.37.16.ebuild53
-rw-r--r--dev-python/botocore/Manifest2
-rw-r--r--dev-python/botocore/botocore-1.37.15.ebuild67
-rw-r--r--dev-python/botocore/botocore-1.37.16.ebuild67
-rw-r--r--dev-python/cfn-lint/Manifest5
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.24.0.ebuild70
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.27.0.ebuild2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.31.1.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.25.1.ebuild)2
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.31.3.ebuild (renamed from dev-python/cfn-lint/cfn-lint-1.26.1.ebuild)2
-rw-r--r--dev-python/django/Manifest2
-rw-r--r--dev-python/django/django-5.2_rc1.ebuild99
-rw-r--r--dev-python/ensurepip-setuptools/Manifest1
-rw-r--r--dev-python/ensurepip-setuptools/ensurepip-setuptools-77.0.1.ebuild20
-rw-r--r--dev-python/faker/Manifest2
-rw-r--r--dev-python/faker/faker-37.0.1.ebuild42
-rw-r--r--dev-python/faker/faker-37.0.2.ebuild42
-rw-r--r--dev-python/google-api-python-client/Manifest1
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.165.0.ebuild50
-rw-r--r--dev-python/griffe/Manifest2
-rw-r--r--dev-python/griffe/griffe-1.6.1.ebuild (renamed from dev-python/griffe/griffe-1.5.7.ebuild)0
-rw-r--r--dev-python/hcloud/Manifest1
-rw-r--r--dev-python/hcloud/hcloud-2.4.0.ebuild49
-rw-r--r--dev-python/icalendar/Manifest1
-rw-r--r--dev-python/icalendar/icalendar-6.1.2.ebuild54
-rw-r--r--dev-python/iniconfig/Manifest1
-rw-r--r--dev-python/iniconfig/iniconfig-2.1.0.ebuild31
-rw-r--r--dev-python/logbook/Manifest1
-rw-r--r--dev-python/logbook/logbook-1.8.1.ebuild52
-rw-r--r--dev-python/markdown-exec/Manifest1
-rw-r--r--dev-python/markdown-exec/markdown-exec-1.10.2.ebuild34
-rw-r--r--dev-python/matplotlib/Manifest3
-rw-r--r--dev-python/matplotlib/files/matplotlib-3.9.3-test.patch249
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.0.ebuild315
-rw-r--r--dev-python/matplotlib/matplotlib-3.10.1.ebuild17
-rw-r--r--dev-python/matplotlib/matplotlib-3.9.2.ebuild301
-rw-r--r--dev-python/matplotlib/matplotlib-3.9.4.ebuild301
-rw-r--r--dev-python/mistune/Manifest1
-rw-r--r--dev-python/mistune/mistune-3.1.3.ebuild27
-rw-r--r--dev-python/mitmproxy-wireguard/mitmproxy-wireguard-0.1.20-r1.ebuild2
-rw-r--r--dev-python/mkdocstrings-python/Manifest3
-rw-r--r--dev-python/mkdocstrings-python/mkdocstrings-python-1.16.2.ebuild51
-rw-r--r--dev-python/mkdocstrings-python/mkdocstrings-python-1.16.6.ebuild (renamed from dev-python/mkdocstrings-python/mkdocstrings-python-1.16.3.ebuild)0
-rw-r--r--dev-python/owslib/Manifest1
-rw-r--r--dev-python/owslib/owslib-0.33.0.ebuild46
-rw-r--r--dev-python/pbs-installer/Manifest2
-rw-r--r--dev-python/pbs-installer/pbs-installer-2025.03.17.ebuild (renamed from dev-python/pbs-installer/pbs-installer-2025.02.12.ebuild)0
-rw-r--r--dev-python/platformdirs/Manifest1
-rw-r--r--dev-python/platformdirs/platformdirs-4.3.7.ebuild54
-rw-r--r--dev-python/protobuf/Manifest1
-rw-r--r--dev-python/protobuf/protobuf-5.29.4.ebuild29
-rw-r--r--dev-python/psycopg/psycopg-3.2.6.ebuild9
-rw-r--r--dev-python/pygccxml/Manifest1
-rw-r--r--dev-python/pygccxml/pygccxml-3.0.2.ebuild46
-rw-r--r--dev-python/pyglet/Manifest1
-rw-r--r--dev-python/pyglet/pyglet-2.1.2.ebuild84
-rw-r--r--dev-python/pyglet/pyglet-2.1.3.ebuild3
-rw-r--r--dev-python/pymongo/Manifest6
-rw-r--r--dev-python/pymongo/pymongo-4.10.1.ebuild228
-rw-r--r--dev-python/pymongo/pymongo-4.11.1.ebuild2
-rw-r--r--dev-python/pymongo/pymongo-4.11.3.ebuild (renamed from dev-python/pymongo/pymongo-4.11.2.ebuild)0
-rw-r--r--dev-python/pymongo/pymongo-4.11.ebuild237
-rw-r--r--dev-python/pymongo/pymongo-4.7.2.ebuild180
-rw-r--r--dev-python/pymongo/pymongo-4.8.0.ebuild205
-rw-r--r--dev-python/pysnmp/Manifest1
-rw-r--r--dev-python/pysnmp/pysnmp-7.1.17.ebuild49
-rw-r--r--dev-python/pyspf/pyspf-2.0.14-r3.ebuild2
-rw-r--r--dev-python/pystache/Manifest2
-rw-r--r--dev-python/pystache/pystache-0.6.8.ebuild (renamed from dev-python/pystache/pystache-0.6.6.ebuild)13
-rw-r--r--dev-python/pytest-check/Manifest1
-rw-r--r--dev-python/pytest-check/pytest-check-2.5.1.ebuild28
-rw-r--r--dev-python/python-ironicclient/files/python-ironicclient-5.10.0-test.patch163
-rw-r--r--dev-python/python-ironicclient/python-ironicclient-5.10.0-r1.ebuild5
-rw-r--r--dev-python/python-tests/python-tests-3.13.2-r100.ebuild68
-rw-r--r--dev-python/pythran/Manifest1
-rw-r--r--dev-python/pythran/pythran-0.16.1-r3.ebuild110
-rw-r--r--dev-python/pythran/pythran-0.17.0-r1.ebuild107
-rw-r--r--dev-python/pythran/pythran-0.17.0-r2.ebuild32
-rw-r--r--dev-python/pyzotero/Manifest1
-rw-r--r--dev-python/pyzotero/pyzotero-1.6.10.ebuild46
-rw-r--r--dev-python/setuptools-scm/Manifest1
-rw-r--r--dev-python/setuptools-scm/setuptools-scm-8.2.1.ebuild61
-rw-r--r--dev-python/setuptools/Manifest1
-rw-r--r--dev-python/setuptools/setuptools-77.0.1.ebuild135
-rw-r--r--dev-python/test/test-0.ebuild3
-rw-r--r--dev-python/trimesh/Manifest1
-rw-r--r--dev-python/trimesh/trimesh-4.6.5.ebuild79
-rw-r--r--dev-python/trove-classifiers/Manifest1
-rw-r--r--dev-python/trove-classifiers/trove-classifiers-2025.3.19.19.ebuild42
-rw-r--r--dev-python/typing-extensions/Manifest1
-rw-r--r--dev-python/typing-extensions/typing-extensions-4.13.0_rc1.ebuild33
-rw-r--r--dev-python/uv/Manifest2
-rw-r--r--dev-python/uv/uv-0.6.8.ebuild170
-rw-r--r--dev-python/xarray/Manifest4
-rw-r--r--dev-python/xarray/xarray-2024.10.0.ebuild126
-rw-r--r--dev-python/xarray/xarray-2024.11.0.ebuild132
-rw-r--r--dev-python/xarray/xarray-2025.3.0.ebuild (renamed from dev-python/xarray/xarray-2025.1.0-r1.ebuild)2
-rw-r--r--dev-python/xmlschema/Manifest1
-rw-r--r--dev-python/xmlschema/xmlschema-3.4.4.ebuild37
104 files changed, 1934 insertions, 2750 deletions
diff --git a/dev-python/aiohttp/aiohttp-3.11.13.ebuild b/dev-python/aiohttp/aiohttp-3.11.13.ebuild
index a0fbae8f985c..d6a173a61329 100644
--- a/dev-python/aiohttp/aiohttp-3.11.13.ebuild
+++ b/dev-python/aiohttp/aiohttp-3.11.13.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="+native-extensions test-rust"
RDEPEND="
diff --git a/dev-python/authres/authres-1.2.0-r1.ebuild b/dev-python/authres/authres-1.2.0-r1.ebuild
index 863e55ecfc7f..089c93ccb48c 100644
--- a/dev-python/authres/authres-1.2.0-r1.ebuild
+++ b/dev-python/authres/authres-1.2.0-r1.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
python_test() {
"${EPYTHON}" -m doctest -v authres/tests ||
diff --git a/dev-python/bitarray/Manifest b/dev-python/bitarray/Manifest
index 4fe44f1a2a82..48e00f3e2554 100644
--- a/dev-python/bitarray/Manifest
+++ b/dev-python/bitarray/Manifest
@@ -1,3 +1,3 @@
DIST bitarray-3.0.0.tar.gz 126627 BLAKE2B c00d45f2ac165c8bd801932cadf2437b1665f7acf2aea821f976c9550a188443d43b6ace08d3af8db2c27331dd090e51174f96b92aa8ebcf3eb5210d52b5d336 SHA512 36ff7305e66bb766888de7598d6596315caeb34acfb6dcc56130b9ddefea15b31e90eabb8b65ce676bbec08c38e8cd39784edfa8b50f53c3f7a6b7f23795fa85
-DIST bitarray-3.1.0.tar.gz 127114 BLAKE2B 1f2f764ef4072eb4c13c91e3c737cb53f849951f5b8d81cf3d7a41d81e28651b65110a446f9bb413cb433a17f43f6f579e38b24e002bc7c5906ef250f75de94e SHA512 2a1b267f4ead5e0d8daa502d6bda9462922d66cb129589814e90f710c807c6b23a118afd3676fa9834f8f9bac1cbf8a9c4340bdf6457fc1503ce712ace7584fa
DIST bitarray-3.1.1.tar.gz 135976 BLAKE2B b27949162c185e2b5631bd4758d6b7c070cc9ffcf9aa22dd343c29eb9e40b97e591f957b7e4882aadd805d84b7ac7c08ffa020431869aa180b2d6f6414abc1bc SHA512 dc34dff5c10c8eb5b0693a680a999c9ecd9d7ea0680404a6f97094fc450c96f5c4a16c49e4c5f4a5fea54ba46b6a49794d0a48c6ab7b0422f1a9b356d71c514c
+DIST bitarray-3.2.0.tar.gz 137064 BLAKE2B bb84759f4cfc35879645ebb4384194e9b14ff0b25fff5eaf4fc2d828d250f97a0417eee72e4eddf98d9a4761e8de421ec663e4e05f879d606ed5c6aea602e73b SHA512 cacaf04800309f7eda59f02473afb6497cd49c245cc01b1e472f6e9917e36332c05bc123b152c289fb3a7adeaa9b308190b1e183f749d8711bc91c47ea7c6e02
diff --git a/dev-python/bitarray/bitarray-3.1.0.ebuild b/dev-python/bitarray/bitarray-3.2.0.ebuild
index aea47d8e463c..aea47d8e463c 100644
--- a/dev-python/bitarray/bitarray-3.1.0.ebuild
+++ b/dev-python/bitarray/bitarray-3.2.0.ebuild
diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest
index 56c28a34dbee..8e6cf5dd9a8d 100644
--- a/dev-python/boto3/Manifest
+++ b/dev-python/boto3/Manifest
@@ -1,4 +1,6 @@
DIST boto3-1.37.13.gh.tar.gz 913692 BLAKE2B cc8b3dbe1f30d5969b8d0abb64b0ff6b7b6c72596c23dee90ad3ca08a0ac09b0b509dfb038ca4434461dd7375f155e5afaf541ed4224610f14793d5cf9a15ed6 SHA512 25fc69799cbabf7e834ddfda5e1a1dadaab42731721a64a09020a58b2c12ddae489eef5a28c687a7f04d39a3fb3ef007739acb3c59882f7d1cc04d64f6211e67
DIST boto3-1.37.14.gh.tar.gz 914511 BLAKE2B 0c175c4213ccb02e338fa42733032c6578983a313d3f1a6b0efdc90d1cd99b736af0a241959afe48ed16a4e16ca6202e2e4de4efe0a8b38b42a830f76001d794 SHA512 a238502382f19c697f6d6a1b8ea3293ead6232654a20a193fde6866a7a1915b3355bd0dec810eecad2b9023640623ae5ce1fdfa473743eeda89936eebd959ded
+DIST boto3-1.37.15.gh.tar.gz 914892 BLAKE2B 139f7b6b6f7d092113a0be77338c53ae955bccd29900ad630867788f935cdbb2a7212b03b322fb5c9366d6f68cab5ce0a7386685eb537e1655aecd4778fbbc7b SHA512 c5da973796066b56893f88a93867441e0186add4b86ec30791010c7e09deaeabb495bf40781cff847b818e31e801848233a422b3d2d0ad49dd6e51d2ebcdb05c
+DIST boto3-1.37.16.gh.tar.gz 915317 BLAKE2B 2404b868dea6b75a5036ab7852789c78fad85f929bc0aaafea74714c3f38eb934e0bfa5ac0928d206fc0975adc807b12ddb625883834532954b50721d683d4a9 SHA512 d571fa3264b2cdc3243da1fac271e1ff1c7d9b77aa2679f532b43277189db5be5cba322a8ceb003c587f05e786e59fd1ec0a05f0a717e3d705426012227eeebe
DIST boto3-1.37.4.gh.tar.gz 908620 BLAKE2B ed63365ccd6da9b97715e4110be2b562285a123139a90ddb10c1411d5bd5ba0de9c110177a31f03ecb7e257fd79a0de89a8be97493a83f3207050676f7022e04 SHA512 dbf40cb809ee1d3ef352b97f62c111d113293211226a63298979d8ea14833c83ac2e321714dac349bfe095f75120c2752d08a01c19e51d9b0fc947e27a910005
DIST boto3-1.37.9.gh.tar.gz 911836 BLAKE2B d190525b9c5e39b445042aba6d8e57da5e49165775901ceebe44b76fd2780ec85a2f5a8a08d3a9a5e451d42bbae19b679e565a7a9acc663258ea0b7909a9a798 SHA512 12cba48d5f2c158b372eaf4e44903e22ca963e5712c3c463fbfd20626a771efe30530852b6c9ab70132a26472ff1b4656095675a5de37524f6b489c25175f8fe
diff --git a/dev-python/boto3/boto3-1.37.15.ebuild b/dev-python/boto3/boto3-1.37.15.ebuild
new file mode 100644
index 000000000000..dfe05b3d9a81
--- /dev/null
+++ b/dev-python/boto3/boto3-1.37.15.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/boto3/boto3-1.37.16.ebuild b/dev-python/boto3/boto3-1.37.16.ebuild
new file mode 100644
index 000000000000..dfe05b3d9a81
--- /dev/null
+++ b/dev-python/boto3/boto3-1.37.16.ebuild
@@ -0,0 +1,53 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="The AWS SDK for Python"
+HOMEPAGE="
+ https://github.com/boto/boto3/
+ https://pypi.org/project/boto3/
+"
+SRC_URI="
+ https://github.com/boto/boto3/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ >=dev-python/botocore-${PV}[${PYTHON_USEDEP}]
+ >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}]
+ >=dev-python/s3transfer-0.11.0[${PYTHON_USEDEP}]
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # don't lock versions to narrow ranges
+ sed -e '/botocore/ d' \
+ -e '/jmespath/ d' \
+ -e '/s3transfer/ d' \
+ -i setup.py || die
+
+ # do not rely on bundled deps in botocore (sic!)
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest
index bdf7a911453f..e511f5441bce 100644
--- a/dev-python/botocore/Manifest
+++ b/dev-python/botocore/Manifest
@@ -1,4 +1,6 @@
DIST botocore-1.37.13.gh.tar.gz 14365580 BLAKE2B 5dac1351dde66b7a2591faedd6ff9f0a05b02d7fa5f2d9f212a25e979f8b6f2a177c23843ee9d5949e83ce9cb44cdb1c9b75a9ee3e9e21ad69fa99458d733fcf SHA512 6635b42a6c29e6fc8293535f939463a77bcfb9abd7211a3043d9da60ecf291fc7bd8704902bfca0667be37448b1d5230393afaf1d32ef5be821d8d60a8578144
DIST botocore-1.37.14.gh.tar.gz 14368684 BLAKE2B 43d5adc8f5fa3647246a2bd581f3ac1f14f90f96e8ece75e678d2a468baaaa3e1045698a09b8c41a5134028a4b6cb59b5a6cbc394b928d9309269784a3f3b1f9 SHA512 1df5055f3bedcc7f7120f041b707eff5622071b3ba6aa6954c239ec1a6b8295014961e99d6ceb817b051d15144ef0064262d1c2dc1768e48273875993a5a2e8d
+DIST botocore-1.37.15.gh.tar.gz 14375061 BLAKE2B ed93870aece21913f88ff87cd29d3e51bc868eb5fb75d183ac54953f0a7d5af0e379fd3e0b014d860ca7655d5b489e244dd18203f6a80dbf87f034a50d4de141 SHA512 0f29b962b125796dda97721155914bc4f78da102587dac3e0a38990929a38b58502c39ae4559d8c6dfb59aa4a277441856442dfee909eb68b35265c20a6e9cbd
+DIST botocore-1.37.16.gh.tar.gz 14377645 BLAKE2B 40a38516282eacbc398527d7d76d4c13478263b1bf6336f4fe9a6e119c75f5615f2b40566686a84da326a85139d190b8628ef7b30f31e42b8b5a16d237315dbe SHA512 491e87293f9e98bf802982a268ec191d6ea74b861a96d38991605c3c48e93fabe2edffe84dfe75e681c307dec58fa36dbc7d1876c4091f8b3b8c8fa5499f63af
DIST botocore-1.37.4.gh.tar.gz 14291786 BLAKE2B ab55a62f2291e623e61a0ec6712241815279ae6d8f25e678adbf6cf167265d216f44b0eae78f2b66a454253dc4ef977b90c38f1aa329c855b38fa844eaa478b7 SHA512 07921ca8d51ff2afd8a4dafa77b40b5c24afa0351d71dbf68cef716573ba1f695a331634734fb6d9822eee55c91829128dbf215920e3da92ea2b40b727d0a0f6
DIST botocore-1.37.9.gh.tar.gz 14346488 BLAKE2B 29ac550ad462ab7c83bad7989588ec62fb57959586a8ec91be9756d90712ad86e3dfd813a347e619b7cac3fd7afb56affcd81926e15d91b8d0ceae2cd4436a8d SHA512 e191c9485e95188049c02020fcb32c4429de6cfd78f237a2026200b7240890d5759f5cdd96166cd2aec035dac82d32db155fe00d9ec6be482c655cfdb44265f9
diff --git a/dev-python/botocore/botocore-1.37.15.ebuild b/dev-python/botocore/botocore-1.37.15.ebuild
new file mode 100644
index 000000000000..df85ee0d220c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.37.15.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/botocore/botocore-1.37.16.ebuild b/dev-python/botocore/botocore-1.37.16.ebuild
new file mode 100644
index 000000000000..df85ee0d220c
--- /dev/null
+++ b/dev-python/botocore/botocore-1.37.16.ebuild
@@ -0,0 +1,67 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="Low-level, data-driven core of boto 3"
+HOMEPAGE="
+ https://github.com/boto/botocore/
+ https://pypi.org/project/botocore/
+"
+SRC_URI="
+ https://github.com/boto/botocore/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ <dev-python/jmespath-2[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}]
+"
+# unbundled packages
+RDEPEND+="
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+src_prepare() {
+ # unpin deps
+ sed -i -e "s:>=.*':':" setup.py || die
+
+ # unbundle deps
+ rm -r botocore/vendored || die
+ find -name '*.py' -exec sed -i \
+ -e 's:from botocore[.]vendored import:import:' \
+ -e 's:from botocore[.]vendored[.]:from :' \
+ {} + || die
+
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # rely on bundled six
+ tests/functional/test_six_imports.py::test_no_bare_six_imports
+ tests/functional/test_six_threading.py::test_six_thread_safety
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests/{functional,unit}
+}
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 906fd65ed361..3e8ef108edae 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -1,7 +1,6 @@
-DIST cfn_lint-1.24.0.tar.gz 2803280 BLAKE2B b859d41231c915c1a06939c75af91da619cc7c3ed7cd95196e0dc708a460e320eaa312197007e54037601db861b5332bdb27d5bae9a5d603171adf492d89968a SHA512 c9d1984671fbcadc659211d74cdc797924d7a0cffe3baaa284438831fca61b53adfcc615b93e23e946058a9ffc278cc5c088e5c24f2745035f32e9f6cdae24be
-DIST cfn_lint-1.25.1.tar.gz 2837233 BLAKE2B 0779afe85f8cc1190f24fb9531c576b61a2921be1e725289c164c5113cfffeca6ad984832c0efa10cb6e7dbb78515b24fea3dbb5da3ef4b63765ed80eb1294af SHA512 f623dc24d3a6e3425e9c764498c874afcbc9406a31d8aa4f2c1a0a14e3dd4446584a0524d5a6d016bdcc95810907418b7dda9883d80d9ff2f3ae9385453d428a
-DIST cfn_lint-1.26.1.tar.gz 2943127 BLAKE2B ca87cf05d0b5ed3774c6c216f856c057bc04b9353f41feb4b1090c7d809685dc65057dab9b1b121fda78488c55bc8da2b3303a25a5047340843723a2e5d3849a SHA512 a8c14275188d64e7ff53d5dd798805a69cf3fc4b13ca9cce19775cd4033b0a0a5815efb9f6900ed8d4116c8877ce62117738098d500373ae6ba3984fe4170ff1
DIST cfn_lint-1.27.0.tar.gz 3023073 BLAKE2B 5540d44e40810b17ff6cbf699f14f0a80b70376e8ddf2b66e2623a6a29dbbbd76ef55645fb03f167639119ff6fd0584128b808bce210e9b06f9b7cf8e33b6f15 SHA512 be1b4ec9848d927d478130df3cfd1853be694e65999050d524eab90e08cff25f6751c3b83ecdb4e1da5c4ab69d96c57694d857ce39ece0b6b60c628776a7cc6b
DIST cfn_lint-1.28.0.tar.gz 3162534 BLAKE2B 120831c39c09419744c048d8c5d4ba8978ae50fe873841e3ab4bea82a83965bd5d7b9c2ccf1895e7fc981d4acc982827cd4a8af352ccdc6ecdab8dbf62396783 SHA512 69325f028beb6ddb05db144f2409575bdf4cc17efe9ee5c4a221aa82e09cafd6e97521398fbd52e5b797e67aedc3581d6455523490e23cd88d01e7af62436dd7
DIST cfn_lint-1.29.1.tar.gz 2829516 BLAKE2B a624ed18ffe214dafccf807cd71de3ca5285224d090ba1becbca76e541261061843153142487f48000530b8ab5818b434f8ffb8e131d8ad8d345d3590e5f9767 SHA512 bbf4cac928bd419b75b93e9d049d14bc36dd46a599fd497296aa47c8818462b74897716009689b7512454172257499142b18dc4af65e9f0bf011a2af45116ade
DIST cfn_lint-1.30.0.tar.gz 2832092 BLAKE2B 0d69bc3702447828c5a03662d00f62e1ee421a554354dc3e754ed509108d0f5ef031e4e256de51476bb4904bba34089ac263203bd688d3c27fff050655b5a35a SHA512 0a8819b5ca691a308622a1a394d19c633c06253f3b8a480a95c12dfcebb94220f0464f11e51ee9719f2d00d097520226d9c2ab6b8944ff0b00e117de21d458d9
+DIST cfn_lint-1.31.1.tar.gz 2855924 BLAKE2B 753c23cb4f45e17e9a2f5215f819d63a0cf330d4677bf89adce9da3cf3eea0ecbc7c192520747b1ffdbd830891fb5a6ffbc181d1bc924fe4f105c597a96969e8 SHA512 cf75ef2b8b9e24be00aa334604e2dbbe312e6cd45a527ecd8a150c7bf93f477258c606f86f87c815901182b2b2921fa23d47e5bade368e8bc3099024dc0e1d0f
+DIST cfn_lint-1.31.3.tar.gz 2856311 BLAKE2B 46c7dee3b3a70f59675dd3879604a0860b99b193ce37e11b05f60bb08d1f3e97da7887b8d13be48d5721826ca46f5bdca61945b8d2fc6558d9290eec5257fa64 SHA512 4d63d3d529b292125be9b139ebc73ae75024e61afa0928afd6f73f573aaadd9cb1e359cf4bc61aa245c05de86406b9894bca1519b682248946eff0664bbefeba
diff --git a/dev-python/cfn-lint/cfn-lint-1.24.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.24.0.ebuild
deleted file mode 100644
index f52ac728e3f2..000000000000
--- a/dev-python/cfn-lint/cfn-lint-1.24.0.ebuild
+++ /dev/null
@@ -1,70 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="CloudFormation Linter"
-HOMEPAGE="
- https://github.com/aws-cloudformation/cfn-lint/
- https://pypi.org/project/cfn-lint/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv x86"
-
-RDEPEND="
- >=dev-python/aws-sam-translator-1.94.0[${PYTHON_USEDEP}]
- dev-python/jsonpatch[${PYTHON_USEDEP}]
- >=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
- <dev-python/jsonschema-5[${PYTHON_USEDEP}]
- >=dev-python/jsonschema-3.0[${PYTHON_USEDEP}]
- dev-python/junit-xml[${PYTHON_USEDEP}]
- <dev-python/networkx-4[${PYTHON_USEDEP}]
- >dev-python/pyyaml-5.4[${PYTHON_USEDEP}]
- >=dev-python/regex-2021.7.1[${PYTHON_USEDEP}]
- >=dev-python/sarif-om-1.0.4[${PYTHON_USEDEP}]
- >=dev-python/sympy-1.0.0[${PYTHON_USEDEP}]
-"
-BDEPEND="
- test? (
- dev-python/defusedxml[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-src_prepare() {
- # unpin the deps
- sed -e 's:~=[0-9.]*::' -i pyproject.toml || die
- distutils-r1_src_prepare
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO
- test/unit/module/test_template.py::TestTemplate::test_build_graph
- # requires git repo
- test/unit/module/maintenance/test_update_documentation.py::TestUpdateDocumentation::test_update_docs
- # Internet
- test/unit/module/formatters/test_formatters.py::TestFormatters::test_sarif_formatter
- test/unit/module/maintenance/test_update_resource_specs.py::TestUpdateResourceSpecs::test_update_resource_specs_python_3
- # TODO: it looks as if AWS_DEFAULT_REGION didn't work
- test/unit/module/core/test_run_cli.py::TestCli::test_bad_config
- test/unit/module/core/test_run_cli.py::TestCli::test_override_parameters
- test/unit/module/core/test_run_cli.py::TestCli::test_positional_template_parameters
- test/unit/module/core/test_run_cli.py::TestCli::test_template_config
- # different graphviz version?
- test/unit/module/template/test_template.py::TestTemplate::test_build_graph
- )
-
- # from tox.ini
- local -x AWS_DEFAULT_REGION=us-east-1
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/cfn-lint/cfn-lint-1.27.0.ebuild b/dev-python/cfn-lint/cfn-lint-1.27.0.ebuild
index 3ae37d5581a5..f52ac728e3f2 100644
--- a/dev-python/cfn-lint/cfn-lint-1.27.0.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.27.0.ebuild
@@ -16,7 +16,7 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
RDEPEND="
>=dev-python/aws-sam-translator-1.94.0[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.25.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.31.1.ebuild
index 3ae37d5581a5..55473d6d5896 100644
--- a/dev-python/cfn-lint/cfn-lint-1.25.1.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.31.1.ebuild
@@ -19,7 +19,7 @@ SLOT="0"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
- >=dev-python/aws-sam-translator-1.94.0[${PYTHON_USEDEP}]
+ >=dev-python/aws-sam-translator-1.95.0[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
>=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
<dev-python/jsonschema-5[${PYTHON_USEDEP}]
diff --git a/dev-python/cfn-lint/cfn-lint-1.26.1.ebuild b/dev-python/cfn-lint/cfn-lint-1.31.3.ebuild
index 3ae37d5581a5..55473d6d5896 100644
--- a/dev-python/cfn-lint/cfn-lint-1.26.1.ebuild
+++ b/dev-python/cfn-lint/cfn-lint-1.31.3.ebuild
@@ -19,7 +19,7 @@ SLOT="0"
KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
RDEPEND="
- >=dev-python/aws-sam-translator-1.94.0[${PYTHON_USEDEP}]
+ >=dev-python/aws-sam-translator-1.95.0[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
>=dev-python/jschema-to-python-1.2.3[${PYTHON_USEDEP}]
<dev-python/jsonschema-5[${PYTHON_USEDEP}]
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index aa397703fe06..5fbda51204a0 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -6,5 +6,7 @@ DIST Django-5.1.7.checksum.txt 2407 BLAKE2B 8ed1a118ab754dfbe9978c28771c9a4925f2
DIST Django-5.1.7.tar.gz 10716510 BLAKE2B 0ed9a8e75715ab60da23e57b83931dd9a06360723439df6e2dd9690ad25ed688a13a1c3ebe35426325d612a0f6cded076dd3efb3a56f5f9e717854abacc36a11 SHA512 8c0d2d79eab1c60f4a50c94e5f584f0ed70835a8b3ac64f4c5c0397fc186cf8e9188926ad08545323a139976efc207c8429faa7f0b5948b21cef98482124980a
DIST Django-5.2b1.checksum.txt 2411 BLAKE2B ed45a877cfb217909b59351bc9b51e8b4d757b3bb812da4597056f79ff86d9d453dad815e4c5932b6b159e51ca696d982ae4cd8bdd78d53f0b9a058643b5e0d2 SHA512 f0a306a337fe54a6e8ab88a8196c5a9da8af0d03c825034f4141ca1e95cbf9092a30c6a346590e9a4b44c4a299178ecbbaacc86d81c58b7d14dc8eb9743f0343
DIST Django-5.2b1.tar.gz 10816962 BLAKE2B 8308cecd8870f9ca3ac96aab370d5f9eba4d4a9c580a19f7214a9bf504eee5c2388f46164a33113126364ffdf1e5f13cf9f30c73c49fb5c6eefe255aed4a30c2 SHA512 212b92758ab32fa29d4a60517a09ee7068fbbc4f8893a4473797641d104fa3c21b20b4dea6ec64471b07991da7d3749226f169ac7fee76651896b4518f016180
+DIST Django-5.2rc1.checksum.txt 2385 BLAKE2B 071ce02b5834ecb0273e3ef18ed457da50b6d191ea58cb1941c4bec7b00ef19149bc1eeddf20005fbe762d26b491ad694ee0ece4a915257a0d9cd6231f43fe71 SHA512 03bc004144844c1e0002007083af17efec222f1ec86b2d698a87cc85332e6b5c8c958790dfcc0e131ffe0ad2de43c909aecc8998436e4f9f9ec7cf161c046961
+DIST Django-5.2rc1.tar.gz 10817143 BLAKE2B 36e87232346fe176783786a2476005523017d89410457a2c9b7943ba1f54e5d6c26ad16b4d28cc9088a90af5233758e11f0adffeaf980b4546fa488ba7aa47f9 SHA512 78424f84b83a89d678f78c07fe01b8a1a26dfc10a2e64cc15c68a342dd382be8a538d959302f6a878a59a9a2b3c5607d008b9fd8e809982396282ee73533abec
DIST django-4.2.17-pypy3.patch.xz 5900 BLAKE2B 2a564fc31d8e2f3def5a532d3bca1a4426a496c659192f602d659e0c1a5f5882978baedb384cc3b67fda8c836513ce43aece80db1528c8e8b6e9ca420f7572ce SHA512 9c9d935aff6db7230a26931b5e7f5f94f3b5ff4fc8f7d4201178571de9d9c7929a0e1e558cc2d9b54b8ee91f85819a5680d24fad6251620515a4a020e3b2d66d
DIST django-5.0-pypy3.patch.xz 6124 BLAKE2B 7eba7cc70b30743cf4e186a2c5b0f27c13f49114a7a80bcaa2b25fdd7a959583c115a302c9bc6da97c32f6401cf8f3616818ba759190d317c5b033a0f0088766 SHA512 c550e2b2c1243d13cd1f4908f4b6df606355d1491e3bf72042e4b4777a4474306ff0f67b1c2eb4ab4d137cc85bde52dcdbd54bec245d2ba2e092545be8a2993b
diff --git a/dev-python/django/django-5.2_rc1.ebuild b/dev-python/django/django-5.2_rc1.ebuild
new file mode 100644
index 000000000000..7473f8504efc
--- /dev/null
+++ b/dev-python/django/django-5.2_rc1.ebuild
@@ -0,0 +1,99 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_REQ_USE='sqlite?,threads(+)'
+
+inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
+
+MY_P=${PN^}-${PV/_}
+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)/${MY_P}.tar.gz
+ verify-sig? ( https://media.djangoproject.com/pgp/${MY_P}.checksum.txt )
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+# admin fonts: Roboto (media-fonts/roboto)
+LICENSE+=" Apache-2.0"
+# admin icons, jquery, xregexp.js
+LICENSE+=" MIT"
+SLOT="0"
+IUSE="doc sqlite test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/asgiref-4[${PYTHON_USEDEP}]
+ >=dev-python/asgiref-3.8.1[${PYTHON_USEDEP}]
+ >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
+ sys-libs/timezone-data
+"
+BDEPEND="
+ test? (
+ $(python_gen_impl_dep sqlite)
+ ${RDEPEND}
+ >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
+ >=dev-python/jinja2-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-20240807 )
+"
+
+PATCHES=(
+ "${FILESDIR}"/django-4.0-bashcomp.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 \
+ "${MY_P}.checksum.txt" sha256 "${MY_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/ensurepip-setuptools/Manifest b/dev-python/ensurepip-setuptools/Manifest
index f35fa4a2cc4a..606ce237ee80 100644
--- a/dev-python/ensurepip-setuptools/Manifest
+++ b/dev-python/ensurepip-setuptools/Manifest
@@ -1,3 +1,4 @@
DIST setuptools-75.8.2-py3-none-any.whl 1229385 BLAKE2B e2890604e9acbf23aefc94ee99927bafdc189e45c84b0e4e0b48737d120ba60590438603195e180988b26e3e8fb378812507e2a0b513bf886c3b1eb673853da5 SHA512 083447a6bd375ca99e017ec4c5e3083ee4eee32b65d911b4d5ccadfa587ec213d43562d21d0f238753cc5c54354027b8425880d7248fbbd170b0c006613f4327
DIST setuptools-76.0.0-py3-none-any.whl 1236106 BLAKE2B 783411ca7c3ee2f2aaaba2d40abb010f7014eb640e6ebee125e0d80afd863634eb01a10343c086b46a7b928db14d5edc6270c92129d2b20bbf0ce36229de932a SHA512 6b2af35acbd3c73f19a5eac91cc13329ef6b0c9b9dbad18fdcfabb0625215a661d320d164a08018a08a3578c5bc3aedfd9ed9ecdaaf62ef08e30fcae34a3eefb
DIST setuptools-76.1.0-py3-none-any.whl 1236933 BLAKE2B c8e1d368f50aea8ed819d6c828505bbbecfd1d2f320c108df3910f8f49133aa12cbafbed5e626572232812671650cb4398a6771a21ed37d7d1ea882e87a08dbc SHA512 44330c0b2bf22a6cdc9b3cf087fbd7695a5e15a4e0e013c88252258fabb69ed89d9550b35b407f01711c66b45a964f687ce7c8f373ed0860e93842e70aa9e55b
+DIST setuptools-77.0.1-py3-none-any.whl 1254282 BLAKE2B 8034051467ae46c6c81c7dbdb071c0e3e87e21114e3c20e57db9d5e42838e94e07cd13c3829b586a8d3eb1836365757d00f6e95af822eabb805a38b7b9109d1d SHA512 a880771b05095c6bf0d4e522d4403de0dde7027241d0fe58e6c2487f3a779ef85a3c3aa1ac2f4c4f3c4979028335daf8bf16d0ad995b0da744097cd415b285ec
diff --git a/dev-python/ensurepip-setuptools/ensurepip-setuptools-77.0.1.ebuild b/dev-python/ensurepip-setuptools/ensurepip-setuptools-77.0.1.ebuild
new file mode 100644
index 000000000000..b76c3f6972d8
--- /dev/null
+++ b/dev-python/ensurepip-setuptools/ensurepip-setuptools-77.0.1.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit pypi
+
+DESCRIPTION="Shared setuptools wheel for ensurepip Python module"
+HOMEPAGE="https://pypi.org/project/setuptools/"
+SRC_URI="$(pypi_wheel_url "${PN#ensurepip-}")"
+S=${DISTDIR}
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+src_install() {
+ insinto /usr/lib/python/ensurepip
+ doins "${A}"
+}
diff --git a/dev-python/faker/Manifest b/dev-python/faker/Manifest
index f259dcf3ad03..3756c55a54e8 100644
--- a/dev-python/faker/Manifest
+++ b/dev-python/faker/Manifest
@@ -1,3 +1,5 @@
DIST faker-36.1.1.tar.gz 1874935 BLAKE2B 501926d322a468943f730f7de48a0e68ff9388f39e638170606f5aa3884029aa27a21bdda68cb19224432e1d44f8de63da591688150a62e8b33bea54f44ad083 SHA512 c5afc49c76a97b7326fbc30eeb3c1d6102cdfcc35f52a7db61d1f58b37b812554274e002cac9ff9003a9669ce9c106e02e71e697045920b4ed006e1292de8a93
DIST faker-36.2.1.tar.gz 1874849 BLAKE2B 355c3c5c4c0753d57ea7f63d510ebe07dcc1194d000d0a2c2aa81e70de486256999418c780d0f98e281b8a218cd6d68598dc936d05fc48205e07bcbac2036dd9 SHA512 81dca7225e10434f11036ddd4e9c3e88e30d2b9ca61531478b78aca77d7b7e2fb27ca6e5755c68b041e88fdfe805ac9688f5803899e4b895f4980428ed9076aa
DIST faker-37.0.0.tar.gz 1875487 BLAKE2B 4dcd442648bd089b97eca2e544ed24d37087837dd6f9f138f9c645ddb5de18a79910b99a22a884ed77ab26fdfd548096f8738b3d16b062b67e0a359b101848b8 SHA512 9142e0c24725066d7354943c24fdb9cbc28b362ab84d8a854e11ae8e983416d4de762e4d0df2c3d14082897ab353331749d13a0711fd841342308a30af3d70bf
+DIST faker-37.0.1.tar.gz 1875530 BLAKE2B 40c5bd083469f4406352e1ec709a588bde8adef4cd3afd67fae81091ab1e19a921ce02cbf81169b7b06c675a92c345729c93bda250f4805d881ce141f1b22434 SHA512 3ddb8d55284bdb244354af73b927412240232418cd93cbba5c684fe668a5e09ffdee845df85d582423b23697759c0a20ce29dd5315ad36d464c323d83b0a73b5
+DIST faker-37.0.2.tar.gz 1875441 BLAKE2B 9c98f9f19e4c9de4b216644f7173a0278f6d89822901bd5e4c8f2bbd6ccdba520a3182788feb7741753b7893ad8355c74ada8bbd00225366fdecb06aa43454be SHA512 a407c8f28cc31ae60aeb42c1f092d72905ac3f9e7bf35d48997123592aa48aa5ac2390f11f400034096eeb394609196d791fb6a441f12bd23e3fe6927771aa81
diff --git a/dev-python/faker/faker-37.0.1.ebuild b/dev-python/faker/faker-37.0.1.ebuild
new file mode 100644
index 000000000000..07e6ec6efccf
--- /dev/null
+++ b/dev-python/faker/faker-37.0.1.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python package that generates fake data for you"
+HOMEPAGE="
+ https://github.com/joke2k/faker/
+ https://pypi.org/project/Faker/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/tzdata[${PYTHON_USEDEP}]
+ !dev-ruby/faker
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )
+"
+
+# note: tests are flaky with xdist
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
+ epytest
+ epytest --exclusive-faker-session tests/pytest/session_overrides
+}
diff --git a/dev-python/faker/faker-37.0.2.ebuild b/dev-python/faker/faker-37.0.2.ebuild
new file mode 100644
index 000000000000..07e6ec6efccf
--- /dev/null
+++ b/dev-python/faker/faker-37.0.2.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN^}
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python package that generates fake data for you"
+HOMEPAGE="
+ https://github.com/joke2k/faker/
+ https://pypi.org/project/Faker/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ dev-python/tzdata[${PYTHON_USEDEP}]
+ !dev-ruby/faker
+"
+BDEPEND="
+ test? (
+ dev-python/freezegun[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP},tiff]
+ dev-python/validators[${PYTHON_USEDEP}]
+ )
+"
+
+# note: tests are flaky with xdist
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin
+ epytest
+ epytest --exclusive-faker-session tests/pytest/session_overrides
+}
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 892738285a12..3fd7e1f649f4 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,3 +1,4 @@
DIST google_api_python_client-2.162.0.tar.gz 12562719 BLAKE2B b011064f127a6d8f131121b3776b554551e39aadea780e3357194cf90877b5b1711d91b6cdf56fa0118b96f371216d443b66a284c04a9cda8af7d9bf3687932c SHA512 15febe68247e1cb6722c4c509b9f31f879cb058110b46297d4db6df8533fca4bc095ac8f3e7faddff2a32749e44e356179e7f99085592dd5e218b41981364f6a
DIST google_api_python_client-2.163.0.tar.gz 12588615 BLAKE2B bb586205a1567e6792dcf336c69c4c357bd22b06ebe172bc5e07a96ca1c8246483d44201546ebbf1fec4239210759e20eed332f44be5e842bc6b9b050d4190a0 SHA512 993f173fd6366b03b57944b44fdf5ef74815789ced2585211dba06c8ca41c37e5bbfa1582e4ed4944a3cc5bc65cce2f043eeae68a0e6832460f3f7f6941639f9
DIST google_api_python_client-2.164.0.tar.gz 12595711 BLAKE2B deea81a5cca626ab775daf381583d36cc7c2d58775db4e0741b812ce63cdbb4930f20320d84fd715925767ef0555ca93554578052d295df408e3620b998ae567 SHA512 43524613d65d6ebf60d6bf65654b66e7173faf1026a0f6c0ffea36d55c4e33fa5da595d2e3eb7ee7c00353ac963b5a51c958c83206809bcdc6a5a6bc13340d26
+DIST google_api_python_client-2.165.0.tar.gz 12636391 BLAKE2B 247508db35b4d083b62a1040465f6089626e7ad81f4d64e75a149150b80f83e7481ea58a66fe059858fd2658959f99dddd764808c8378b56507ba7a8fa72d88a SHA512 1d27d0166b8d8ab5fc2a4b48d1919e5db5ca598f2a29c911ef47cbedeff8893679c17c26e83fbef61bd07272b08456e09b10d86a65101324591f35340e78727c
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.165.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.165.0.ebuild
new file mode 100644
index 000000000000..b2220fafe3ef
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.165.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google API Client for Python"
+HOMEPAGE="
+ https://github.com/googleapis/google-api-python-client/
+ https://pypi.org/project/google-api-python-client/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ >=dev-python/httplib2-0.15[${PYTHON_USEDEP}]
+ <dev-python/httplib2-1[${PYTHON_USEDEP}]
+ >=dev-python/google-api-core-2.3.1[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-1.35.0[${PYTHON_USEDEP}]
+ >=dev-python/google-auth-httplib2-0.1.0[${PYTHON_USEDEP}]
+ >=dev-python/uritemplate-3.0.0[${PYTHON_USEDEP}]
+ <dev-python/uritemplate-5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mock[${PYTHON_USEDEP}]
+ dev-python/pandas[${PYTHON_USEDEP}]
+ dev-python/parameterized[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # require Internet access (and credentials)
+ tests/test_discovery.py::DiscoveryErrors::test_credentials_and_credentials_file_mutually_exclusive
+ tests/test_discovery.py::DiscoveryFromDocument::test_api_endpoint_override_from_client_options_mapping_object
+ tests/test_discovery.py::Universe::test_client_options_universe_configured_with_mtls
+ tests/test_discovery.py::Universe::test_universe_env_var_configured_with_mtls
+ )
+
+ epytest tests
+}
diff --git a/dev-python/griffe/Manifest b/dev-python/griffe/Manifest
index ec3ef8dee8ca..ec77cedf25c9 100644
--- a/dev-python/griffe/Manifest
+++ b/dev-python/griffe/Manifest
@@ -1,2 +1,2 @@
-DIST griffe-1.5.7.gh.tar.gz 393455 BLAKE2B d294a62e131ce5276c52e3f11adef5081c10131156cdb3c112761569d3776091e1c1dfea445252cc3595572baf1caab416ff510d89f84a4511d147f1aa36b762 SHA512 cfea773780a645f92f8ad32b0f2e682561f63cf3082f2e24bd1f944f1a907b35db15883cb7df726d34e03373e73fe5e855f3d00a455cc01cac265bced822b4ed
DIST griffe-1.6.0.gh.tar.gz 393773 BLAKE2B 62f1ed8109353013e2ef10bf32359dc66c467641b62ff0ecceb49718cafc773c5aab2cc151797e023dbff96f476e8b67d3bd7f5b664e3f5d6ea96f20e1744b60 SHA512 8ce0565ba8c43afb262d7e65b2eab369b10a57d4855a226a83ffea60bd83d7f624d5f15876c51dd20861ba5d652c012245bd55dd87dd0beeda75305f26f330bf
+DIST griffe-1.6.1.gh.tar.gz 394343 BLAKE2B 0ec76016c2701e08e4f0f8061e31aad830fb209f37c2a175d17bd28ecb533f60e59196ebd5c3c60869ac7fdf6579ee10cc66a7adeddd51da10a95e5aceded856 SHA512 eb62f6e77937dc8dd740cd0d77b7f0157a5be310d5813c9f3e26787bb8d1776a5318e0e8d917693b9bb3a42c0ea8715367752328b1c9306e594b1f6ba535d8d0
diff --git a/dev-python/griffe/griffe-1.5.7.ebuild b/dev-python/griffe/griffe-1.6.1.ebuild
index 6f7090dd3f3d..6f7090dd3f3d 100644
--- a/dev-python/griffe/griffe-1.5.7.ebuild
+++ b/dev-python/griffe/griffe-1.6.1.ebuild
diff --git a/dev-python/hcloud/Manifest b/dev-python/hcloud/Manifest
index 42d511efeb31..6a818b7cd316 100644
--- a/dev-python/hcloud/Manifest
+++ b/dev-python/hcloud/Manifest
@@ -1 +1,2 @@
DIST hcloud-python-2.3.0.gh.tar.gz 119846 BLAKE2B eab64db78ee9e5f33539142a869663d7a12cc08f25581a82e1d87d620452d1ce4877ff65654724f30ac602a7513e371f1f59455dcff5cdc2b94ba6751136d7b3 SHA512 8591b5406d51c8f71fdcb16bb423cc2317310484d3ef6a784d63fdb2dca9ec10d33a9fd6347f3c37e7a7c4772869a15013f8c6a83b5a2b867da0c41184c88d45
+DIST hcloud-python-2.4.0.gh.tar.gz 120779 BLAKE2B 9a81c91e7ddc90148b10ca370589e27cb06af9b8a7acff26979fa9ed4f4a095f0ebb458ba4b8223338d8c69123e0ca5763627a41a4d610786b2ac98594700098 SHA512 a22970ab1f1241368d424bc08d540da5f9287581d2a4ecdbba3feb7a97176ddafce66fc0397ee5e22b4131702cfabcab89347da3709a8b6d4d1aa71df001518b
diff --git a/dev-python/hcloud/hcloud-2.4.0.ebuild b/dev-python/hcloud/hcloud-2.4.0.ebuild
new file mode 100644
index 000000000000..4dec20f2ed8c
--- /dev/null
+++ b/dev-python/hcloud/hcloud-2.4.0.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+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/icalendar/Manifest b/dev-python/icalendar/Manifest
index ebd4c8facb8f..8473695d82d2 100644
--- a/dev-python/icalendar/Manifest
+++ b/dev-python/icalendar/Manifest
@@ -1 +1,2 @@
DIST icalendar-6.1.1.tar.gz 145256 BLAKE2B cf3cf5a79f25f6c2820e4a04fc02a1546949e99c4e3fa9e6a204b0e4eb13e475b0c5a1f3179009b77437a33ab360b561cdff59453bcd77b771fc223ad14a2494 SHA512 3afb10dcfd07d0348bb404e2bfef3b790e312764bed1147999a3322255d7c881a1513077b49b3ed6cfc03a22afa81a3211823d94a2414b00bc2c4503bed73264
+DIST icalendar-6.1.2.tar.gz 151266 BLAKE2B 3f6fd1074f48f9e7fbd6b91b1fc73c592752fe8d6885c460ac9278e715a7812022a606f89d32eaf67f214ae35641677330e8ee9b0f7106946c6c3872a875343a SHA512 6dfb0480894f107abe6d676c8addf437c114088491e55d253334bdda9b37c758c4d7943e98a16196b2f8811e67aef81f527d57b78fe86a279b76b7f5c8c91e6f
diff --git a/dev-python/icalendar/icalendar-6.1.2.ebuild b/dev-python/icalendar/icalendar-6.1.2.ebuild
new file mode 100644
index 000000000000..f2142f2410cf
--- /dev/null
+++ b/dev-python/icalendar/icalendar-6.1.2.ebuild
@@ -0,0 +1,54 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Package used for parsing and generating iCalendar files (RFC 2445)"
+HOMEPAGE="
+ https://github.com/collective/icalendar/
+ https://pypi.org/project/icalendar/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/tzdata[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+ test? (
+ dev-python/hypothesis[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs \
+ dev-python/sphinx-copybutton \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_prepare_all() {
+ # reset conf.py to not read version from an installed instance
+ sed -e "s:pkg_resources.get_distribution('icalendar').version:'${PV}':" \
+ -i docs/conf.py || die
+ distutils-r1_python_prepare_all
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # https://github.com/collective/icalendar/issues/791
+ 'src/icalendar/tests/test_issue_722_generate_vtimezone.py::test_we_can_identify_dateutil_timezones[Asia/Manila]'
+ 'src/icalendar/tests/test_timezone_identification.py::test_can_identify_dateutil[Asia/Manila]'
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/iniconfig/Manifest b/dev-python/iniconfig/Manifest
index b8e9cf1e05c2..879f445b75cb 100644
--- a/dev-python/iniconfig/Manifest
+++ b/dev-python/iniconfig/Manifest
@@ -1 +1,2 @@
DIST iniconfig-2.0.0.gh.tar.gz 8077 BLAKE2B bb24006bafed64bc28d7a784ed24663dbcea782ef241b9c7ccb5dc0268f6d6ce149882155617d4c021805457c7c5e4775437d267da6905266fb84e877f16e09c SHA512 e474aaa904070ed79dbbd2b4b572574ebb591b97a4ca0f9c4e4aef437af01035d2f73c48bb670afcec2cd8b7ea093b92d6b0c0eca7ba42033418a2b0e0ac80ad
+DIST iniconfig-2.1.0.gh.tar.gz 8195 BLAKE2B f72d682bebf84893a2e035742bb5bb59c40e37e7916e7c997144768f3a7b188f1df8a544aea216d9e38db54cd33abced66f1c99ee0c6ae5c9403187d10707e47 SHA512 2f973195ca65a3274961b32d1d478fef4e7beca7b9be27b7e88956d61b50eab4f8b10d491427aff23e973cb94cbcfe7dcc25e6767364a6ed52b3b81219549a20
diff --git a/dev-python/iniconfig/iniconfig-2.1.0.ebuild b/dev-python/iniconfig/iniconfig-2.1.0.ebuild
new file mode 100644
index 000000000000..fc412b637a19
--- /dev/null
+++ b/dev-python/iniconfig/iniconfig-2.1.0.ebuild
@@ -0,0 +1,31 @@
+# Copyright 2020-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Brain-dead simple config-ini parsing"
+HOMEPAGE="
+ https://github.com/pytest-dev/iniconfig/
+ https://pypi.org/project/iniconfig/
+"
+SRC_URI="
+ https://github.com/pytest-dev/iniconfig/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ dev-python/hatch-vcs[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests pytest
+
+export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
diff --git a/dev-python/logbook/Manifest b/dev-python/logbook/Manifest
index a428cd9d9447..923a154efdb3 100644
--- a/dev-python/logbook/Manifest
+++ b/dev-python/logbook/Manifest
@@ -1 +1,2 @@
DIST logbook-1.8.0.gh.tar.gz 364862 BLAKE2B 1b245223ab9d3b026967b626e1cba2fed3d03b5abc745be238f76c2ddebf8e0909597acdad3a3e70738b8c9b9e6350f4d23d5e02c8f1b1d8ff6ec5f6509d2b9f SHA512 73e4d9170af6c4db6eadf27e84419927136658c786b173e5eae91dc9499d3c374fe5a4a7e8f7bc463194b19648aee23aceba0cce9a63fd25a6ee0a53b1dbe8f9
+DIST logbook-1.8.1.gh.tar.gz 364883 BLAKE2B 1a200a5dddbd6e414c17e294e412737ab5bdebd18acf707be08aef47fd16d445f6b3d726614f67142c05a6136541d6f86b0e9893a5c9980b9545406c77e4b82f SHA512 3a7960a34c30cf14319dbb01d12dbfb3bf87d624b75d692e417a95ee5357c92b1fa46678f3c546d0e539f60367a13a19bfb0f83c27d151cb972e0cf4fb278105
diff --git a/dev-python/logbook/logbook-1.8.1.ebuild b/dev-python/logbook/logbook-1.8.1.ebuild
new file mode 100644
index 000000000000..7f2dea10fdbd
--- /dev/null
+++ b/dev-python/logbook/logbook-1.8.1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="A logging replacement for Python"
+HOMEPAGE="
+ https://logbook.readthedocs.io/en/stable/
+ https://github.com/getlogbook/logbook/
+ https://pypi.org/project/Logbook/
+"
+SRC_URI="
+ https://github.com/getlogbook/logbook/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~riscv ~x86"
+
+BDEPEND="
+ test? (
+ app-arch/brotli[${PYTHON_USEDEP},python]
+ >=dev-python/execnet-1.0.9[${PYTHON_USEDEP}]
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
+ dev-python/pyzmq[${PYTHON_USEDEP}]
+ >=dev-python/sqlalchemy-1.4[${PYTHON_USEDEP}]
+ )
+"
+distutils_enable_tests pytest
+distutils_enable_sphinx docs
+
+python_configure_all() {
+ export DISABLE_LOGBOOK_CEXT=1
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Delete test file requiring local connection to redis server
+ tests/test_queues.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p rerunfailures
+}
diff --git a/dev-python/markdown-exec/Manifest b/dev-python/markdown-exec/Manifest
index 8bd9dc8e7d53..8a1a9bfa37ea 100644
--- a/dev-python/markdown-exec/Manifest
+++ b/dev-python/markdown-exec/Manifest
@@ -1,2 +1,3 @@
DIST markdown_exec-1.10.0.tar.gz 76830 BLAKE2B 7c8194decf4d44cabecfddee27d74e8a513b227533b9eb1c5c2bdc100ca9f64e2ef3641386839167ac937d62c9ec13f511fd5cd76bca8050dd19bb74b4e399ea SHA512 996d4ad9ea06943d34ced435f2bd3b22c0b6a4453d5a59443966ad8caa767f1a3eea1c7c6f1f01056b4d2019550e202a2e11cd8e148a149c5ca35f9f87c45990
DIST markdown_exec-1.10.1.tar.gz 77711 BLAKE2B e30585bbaf8443c44de010d18e0755cfc23f7083b1b44c4c0e3ad782c8952ea3f0c78ae144bfc762049719f05c195fa1c4afe7c4cb9d776be0d46a47f2fd3ec2 SHA512 38e46b0422f9e09942ae5dcb6676d215e55347b18718aed6039a09b15c080eb59551cb304f918ee9d54e637ca272f420a8ccf985464616786ad0154ef1304fd3
+DIST markdown_exec-1.10.2.tar.gz 80842 BLAKE2B 0adf537d1e187179b49c1275820dc4f5ba9ee4a1d6edc584301f641fc3334e244ef05484dd5a01f824fae6ffca2db91651e6f51f93eeb882a468d2c695ae0fb4 SHA512 981d176caeef709581332a7d02d6f129859e12646159b0b879c579c6a95574e0c306adc1a265bbd46f6177f7e5c007999ae76d6db918b68e296949936e300eeb
diff --git a/dev-python/markdown-exec/markdown-exec-1.10.2.ebuild b/dev-python/markdown-exec/markdown-exec-1.10.2.ebuild
new file mode 100644
index 000000000000..d60ef65d9c00
--- /dev/null
+++ b/dev-python/markdown-exec/markdown-exec-1.10.2.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=pdm-backend
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Utilities to execute code blocks in Markdown files"
+HOMEPAGE="
+ https://pawamoy.github.io/markdown-exec/
+ https://pypi.org/project/markdown-exec/
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+IUSE="ansi"
+
+RDEPEND="
+ >=dev-python/pymdown-extensions-9[${PYTHON_USEDEP}]
+ ansi? (
+ dev-python/pygments-ansi-color[${PYTHON_USEDEP}]
+ )
+"
+BDEPEND="
+ test? (
+ dev-python/markupsafe[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/matplotlib/Manifest b/dev-python/matplotlib/Manifest
index dd3da063db73..fc4688516b14 100644
--- a/dev-python/matplotlib/Manifest
+++ b/dev-python/matplotlib/Manifest
@@ -1,6 +1,3 @@
DIST freetype-2.6.1.tar.gz 2302080 BLAKE2B 6a5fb98e5fa6cf4b7d7533ad44e364227d8c2f7dded4c552d6e22e204c32b7858f20d41d1e809ecdad6e5353d6cec81bea0e0b06a4533363a41ecab83ce3f7ca SHA512 ff2daed64d712737085924c50e75862fafbcbb24eef6d72dac9eaae63bb656d7245397fd828f5d3e47ac847f7ff83d73dedfdd61fde1f7d6e0f0cdeb49bcf83b
-DIST matplotlib-3.10.0.tar.gz 36686418 BLAKE2B b154d4d2512a7989d967e7e257ef148e530b1bb030375fe0443f0feb3adea8b0cdc0287d292587832542f6263ccbbb89860fa0b827301fb9dbed34f6a197a475 SHA512 31a71640ef9cbc8cae928156c70119a0bdc1a8c44c8dc5af5333f5484525dd6a375e6f263d739ad3422b0e35d474f7742e08c71c40df0f1f71b526e21adc17e1
DIST matplotlib-3.10.1.tar.gz 36743335 BLAKE2B e689dcaa314a6af8ce2934aac95208adf0f87822e4f84d6fb15ac1a17d162deea106636abf52b5332636ad8bb944301f16100b15d409b04ef2a8ecd287ea827c SHA512 1b52a421e61ca0a295d7b1d2bbe9bdcb1dd58f6c750b21d95e263547b20a17d58aadcc86f97ae0fdff9151d3c2f75a6c5419a35b258b698d777f42de7b598c4e
DIST matplotlib-3.9.0.tar.gz 36069890 BLAKE2B 02ddb25901b5a93a8daf6f26c98b92d5e35abe2e98783b039928338abb1d628adbf3fd4786c08cb1610bf405cb558ca31fc12dbde77ec5f2a633143c7ea659a1 SHA512 135ee2f97c26cb60479cc10bf8a833384c393993d8a905ab869f4c73b91a50ffa596f84ce349af7f1a0b08a21e1906394cf6a702bb567a9c3999d40f54974326
-DIST matplotlib-3.9.2.tar.gz 36088381 BLAKE2B c84d08b7afa1f0460b5b57447481ef90f22380c02d20227c3a45b6f603032a11359b223397f18c8dc9111ad36fbd7510e2d5496502b3202e3074ddf8e8258bb7 SHA512 4b7437eeb085915a90db64600d0e6c59501ea1513d07b8298a159a763461ef6947a0cb332dcde1a5f0996840320ca7dd1d972d7514ff6f87b036fc631e79885f
-DIST matplotlib-3.9.4.tar.gz 36106529 BLAKE2B f95791bce82bf62d922e3db7ebe8e34e5759896c26cf952e2c67e92d5c4e5e190c556ba3ff4d7160d60de3c90ed5e1dc4d7ca2866647ded6b96dd35e16d4e259 SHA512 adfa875cba0b030ee0efaf11ed1be881858dc13391c966a2d9485ae2358fccf0b5356e16966a0c9da9f682e4a9d2f3960551756aca30ddc048632346548b1447
diff --git a/dev-python/matplotlib/files/matplotlib-3.9.3-test.patch b/dev-python/matplotlib/files/matplotlib-3.9.3-test.patch
deleted file mode 100644
index 62461c655d88..000000000000
--- a/dev-python/matplotlib/files/matplotlib-3.9.3-test.patch
+++ /dev/null
@@ -1,249 +0,0 @@
-diff --git a/lib/matplotlib/tests/test_arrow_patches.py b/lib/matplotlib/tests/test_arrow_patches.py
-index 254b86cb54..1f93b1a476 100644
---- a/lib/matplotlib/tests/test_arrow_patches.py
-+++ b/lib/matplotlib/tests/test_arrow_patches.py
-@@ -68,7 +68,7 @@ def __prepare_fancyarrow_dpi_cor_test():
-
-
- @image_comparison(['fancyarrow_dpi_cor_100dpi.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.02,
-+ tol=0.015 if platform.machine() == 'x86_64' else 0.02,
- savefig_kwarg=dict(dpi=100))
- def test_fancyarrow_dpi_cor_100dpi():
- """
-@@ -83,7 +83,7 @@ def test_fancyarrow_dpi_cor_100dpi():
-
-
- @image_comparison(['fancyarrow_dpi_cor_200dpi.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.02,
-+ tol=0.018 if platform.machine() == 'x86_64' else 0.02,
- savefig_kwarg=dict(dpi=200))
- def test_fancyarrow_dpi_cor_200dpi():
- """
-@@ -116,7 +116,7 @@ def test_fancyarrow_dash():
-
-
- @image_comparison(['arrow_styles.png'], style='mpl20', remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.02)
-+ tol=0.005 if platform.machine() == 'x86_64' else 0.02)
- def test_arrow_styles():
- styles = mpatches.ArrowStyle.get_styles()
-
-diff --git a/lib/matplotlib/tests/test_axes.py b/lib/matplotlib/tests/test_axes.py
-index e99ef129eb..73ed9bd974 100644
---- a/lib/matplotlib/tests/test_axes.py
-+++ b/lib/matplotlib/tests/test_axes.py
-@@ -1186,7 +1186,7 @@ def test_imshow():
-
- @image_comparison(
- ['imshow_clip'], style='mpl20',
-- tol=1.24 if platform.machine() in ('aarch64', 'arm64', 'ppc64le', 's390x') else 0)
-+ tol=1.24)
- def test_imshow_clip():
- # As originally reported by Gellule Xg <gellule.xg@free.fr>
- # use former defaults to match existing baseline image
-@@ -2570,7 +2570,7 @@ def test_contour_hatching():
-
- @image_comparison(
- ['contour_colorbar'], style='mpl20',
-- tol=0.54 if platform.machine() in ('aarch64', 'arm64', 'ppc64le', 's390x') else 0)
-+ tol=0.54)
- def test_contour_colorbar():
- x, y, z = contour_dat()
-
-@@ -4931,7 +4931,7 @@ def test_vertex_markers():
-
-
- @image_comparison(['vline_hline_zorder', 'errorbar_zorder'],
-- tol=0 if platform.machine() == 'x86_64' else 0.026)
-+ tol=0.015 if platform.machine() == 'x86_64' else 0.026)
- def test_eb_line_zorder():
- x = list(range(10))
-
-@@ -8861,7 +8861,7 @@ def test_zorder_and_explicit_rasterization():
-
-
- @image_comparison(["preset_clip_paths.png"], remove_text=True, style="mpl20",
-- tol=0.027 if platform.machine() == "arm64" else 0)
-+ tol=0.027 if platform.machine() == "arm64" else 0.02)
- def test_preset_clip_paths():
- fig, ax = plt.subplots()
-
-diff --git a/lib/matplotlib/tests/test_colorbar.py b/lib/matplotlib/tests/test_colorbar.py
-index 35911afc79..852075c78d 100644
---- a/lib/matplotlib/tests/test_colorbar.py
-+++ b/lib/matplotlib/tests/test_colorbar.py
-@@ -235,7 +235,7 @@ def test_colorbar_single_ax_panchor_east(constrained):
-
-
- @image_comparison(['contour_colorbar.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.054)
-+ tol=0.01 if platform.machine() == 'x86_64' else 0.054)
- def test_contour_colorbar():
- fig, ax = plt.subplots(figsize=(4, 2))
- data = np.arange(1200).reshape(30, 40) - 500
-diff --git a/lib/matplotlib/tests/test_constrainedlayout.py b/lib/matplotlib/tests/test_constrainedlayout.py
-index 4dc4d9501e..015e46cbe4 100644
---- a/lib/matplotlib/tests/test_constrainedlayout.py
-+++ b/lib/matplotlib/tests/test_constrainedlayout.py
-@@ -655,11 +655,11 @@ def test_compressed1():
- fig.draw_without_rendering()
-
- pos = axs[0, 0].get_position()
-- np.testing.assert_allclose(pos.x0, 0.06195, atol=1e-3)
-- np.testing.assert_allclose(pos.y1, 0.8537, atol=1e-3)
-+ np.testing.assert_allclose(pos.x0, 0.06195, atol=2e-3)
-+ np.testing.assert_allclose(pos.y1, 0.8537, atol=2e-3)
- pos = axs[1, 2].get_position()
-- np.testing.assert_allclose(pos.x1, 0.8618, atol=1e-3)
-- np.testing.assert_allclose(pos.y0, 0.1934, atol=1e-3)
-+ np.testing.assert_allclose(pos.x1, 0.8618, atol=2e-3)
-+ np.testing.assert_allclose(pos.y0, 0.1934, atol=2e-3)
-
-
- @pytest.mark.parametrize('arg, state', [
-diff --git a/lib/matplotlib/tests/test_contour.py b/lib/matplotlib/tests/test_contour.py
-index a3e00c30ce..7366dc8b39 100644
---- a/lib/matplotlib/tests/test_contour.py
-+++ b/lib/matplotlib/tests/test_contour.py
-@@ -450,8 +450,7 @@ def test_contourf_log_extension(split_collections):
- @pytest.mark.parametrize("split_collections", [False, True])
- @image_comparison(
- ['contour_addlines.png'], remove_text=True, style='mpl20',
-- tol=0.15 if platform.machine() in ('aarch64', 'arm64', 'ppc64le', 's390x')
-- else 0.03)
-+ tol=0.15)
- # tolerance is because image changed minutely when tick finding on
- # colorbars was cleaned up...
- def test_contour_addlines(split_collections):
-diff --git a/lib/matplotlib/tests/test_figure.py b/lib/matplotlib/tests/test_figure.py
-index 6e6daa7706..7492fded94 100644
---- a/lib/matplotlib/tests/test_figure.py
-+++ b/lib/matplotlib/tests/test_figure.py
-@@ -26,7 +26,7 @@ import matplotlib.dates as mdates
-
-
- @image_comparison(['figure_align_labels'], extensions=['png', 'svg'],
-- tol=0 if platform.machine() == 'x86_64' else 0.01)
-+ tol=0.02)
- def test_align_labels():
- fig = plt.figure(layout='tight')
- gs = gridspec.GridSpec(3, 3)
-@@ -68,7 +68,7 @@ def test_align_labels():
-
- @image_comparison(['figure_align_titles_tight.png',
- 'figure_align_titles_constrained.png'],
-- tol=0 if platform.machine() == 'x86_64' else 0.022,
-+ tol=0.01 if platform.machine() == 'x86_64' else 0.022,
- style='mpl20')
- def test_align_titles():
- for layout in ['tight', 'constrained']:
-diff --git a/lib/matplotlib/tests/test_image.py b/lib/matplotlib/tests/test_image.py
-index 0c032fa536..5e417881e9 100644
---- a/lib/matplotlib/tests/test_image.py
-+++ b/lib/matplotlib/tests/test_image.py
-@@ -1417,7 +1417,7 @@ def test_nonuniform_and_pcolor():
-
- @image_comparison(
- ['rgba_antialias.png'], style='mpl20', remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.007)
-+ tol=0.007)
- def test_rgba_antialias():
- fig, axs = plt.subplots(2, 2, figsize=(3.5, 3.5), sharex=False,
- sharey=False, constrained_layout=True)
-diff --git a/lib/matplotlib/tests/test_legend.py b/lib/matplotlib/tests/test_legend.py
-index 3c2af27564..c65887b5e4 100644
---- a/lib/matplotlib/tests/test_legend.py
-+++ b/lib/matplotlib/tests/test_legend.py
-@@ -177,7 +177,7 @@ def test_multiple_keys():
-
-
- @image_comparison(['rgba_alpha.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.03)
-+ tol=0.02 if platform.machine() == 'x86_64' else 0.03)
- def test_alpha_rgba():
- fig, ax = plt.subplots()
- ax.plot(range(10), lw=5)
-@@ -186,7 +186,7 @@ def test_alpha_rgba():
-
-
- @image_comparison(['rcparam_alpha.png'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.03)
-+ tol=0.02 if platform.machine() == 'x86_64' else 0.03)
- def test_alpha_rcparam():
- fig, ax = plt.subplots()
- ax.plot(range(10), lw=5)
-@@ -214,7 +214,7 @@ def test_fancy():
-
-
- @image_comparison(['framealpha'], remove_text=True,
-- tol=0 if platform.machine() == 'x86_64' else 0.024)
-+ tol=0.02 if platform.machine() == 'x86_64' else 0.024)
- def test_framealpha():
- x = np.linspace(1, 100, 100)
- y = x
-diff --git a/lib/matplotlib/tests/test_lines.py b/lib/matplotlib/tests/test_lines.py
-index 902b7aa2c0..d5145a38f0 100644
---- a/lib/matplotlib/tests/test_lines.py
-+++ b/lib/matplotlib/tests/test_lines.py
-@@ -185,7 +185,7 @@ def test_set_drawstyle():
-
- @image_comparison(
- ['line_collection_dashes'], remove_text=True, style='mpl20',
-- tol=0 if platform.machine() == 'x86_64' else 0.65)
-+ tol=0.65)
- def test_set_line_coll_dash_image():
- fig, ax = plt.subplots()
- np.random.seed(0)
-diff --git a/lib/matplotlib/tests/test_units.py b/lib/matplotlib/tests/test_units.py
-index ae6372fea1..4f0dc25732 100644
---- a/lib/matplotlib/tests/test_units.py
-+++ b/lib/matplotlib/tests/test_units.py
-@@ -79,7 +79,7 @@ def quantity_converter():
- # Tests that the conversion machinery works properly for classes that
- # work as a facade over numpy arrays (like pint)
- @image_comparison(['plot_pint.png'], style='mpl20',
-- tol=0 if platform.machine() == 'x86_64' else 0.03)
-+ tol=0.002 if platform.machine() == 'x86_64' else 0.03)
- def test_numpy_facade(quantity_converter):
- # use former defaults to match existing baseline image
- plt.rcParams['axes.formatter.limits'] = -7, 7
-@@ -106,7 +106,7 @@ def test_numpy_facade(quantity_converter):
-
- # Tests gh-8908
- @image_comparison(['plot_masked_units.png'], remove_text=True, style='mpl20',
-- tol=0 if platform.machine() == 'x86_64' else 0.02)
-+ tol=0.02)
- def test_plot_masked_units():
- data = np.linspace(-5, 5)
- data_masked = np.ma.array(data, mask=(data > -2) & (data < 2))
-diff --git a/lib/matplotlib/tests/test_usetex.py b/lib/matplotlib/tests/test_usetex.py
-index 342face450..c7256586bc 100644
---- a/lib/matplotlib/tests/test_usetex.py
-+++ b/lib/matplotlib/tests/test_usetex.py
-@@ -15,6 +15,7 @@ import matplotlib.pyplot as plt
- pytestmark = needs_usetex
-
-
-+@pytest.mark.skip(reason="TODO: broken")
- @image_comparison(
- baseline_images=['test_usetex'],
- extensions=['pdf', 'png'],
-@@ -65,7 +66,7 @@ def test_mathdefault():
- fig.canvas.draw()
-
-
--@image_comparison(['eqnarray.png'])
-+@image_comparison(['eqnarray.png'], tol=23)
- def test_multiline_eqnarray():
- text = (
- r'\begin{eqnarray*}'
-@@ -163,7 +164,7 @@ except mpl.ExecutableNotFoundError:
-
-
- @image_comparison(baseline_images=['rotation'], extensions=['eps', 'pdf', 'png', 'svg'],
-- style='mpl20', tol=3.91 if _old_gs_version else 0)
-+ style='mpl20', tol=30)
- def test_rotation():
- mpl.rcParams['text.usetex'] = True
-
diff --git a/dev-python/matplotlib/matplotlib-3.10.0.ebuild b/dev-python/matplotlib/matplotlib-3.10.0.ebuild
deleted file mode 100644
index 98d59fda5be6..000000000000
--- a/dev-python/matplotlib/matplotlib-3.10.0.ebuild
+++ /dev/null
@@ -1,315 +0,0 @@
-# Copyright 1999-2025 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_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='tk?,threads(+)'
-
-inherit distutils-r1 pypi virtualx
-
-FT_PV=2.6.1
-DESCRIPTION="Pure python plotting library with matlab like syntax"
-HOMEPAGE="
- https://matplotlib.org/
- https://github.com/matplotlib/matplotlib/
- https://pypi.org/project/matplotlib/
-"
-SRC_URI+="
- test? (
- https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
- )
-"
-
-# Main license: matplotlib
-# Some modules: BSD
-# matplotlib/backends/qt4_editor: MIT
-# Fonts: BitstreamVera, OFL-1.1
-LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
-IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
-
-DEPEND="
- media-libs/freetype:2
- >=media-libs/qhull-2013:=
- >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
-"
-# internal copy of pycxx highly patched
-# dev-python/pycxx
-RDEPEND="
- ${DEPEND}
- >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
- >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
- >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
- >=dev-python/pyparsing-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
- >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
- media-fonts/dejavu
- media-fonts/stix-fonts
- media-libs/libpng:0
- virtual/imagemagick-tools[jpeg,tiff]
- cairo? (
- dev-python/cairocffi[${PYTHON_USEDEP}]
- )
- excel? (
- dev-python/xlwt[${PYTHON_USEDEP}]
- )
- gtk3? (
- >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- latex? (
- virtual/latex-base
- app-text/dvipng
- app-text/ghostscript-gpl
- app-text/poppler[utils]
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-luatex
- dev-texlive/texlive-xetex
- )
- qt6? (
- $(python_gen_cond_dep '
- || (
- dev-python/pyqt6[gui,widgets,${PYTHON_USEDEP}]
- dev-python/pyside:6[gui,widgets,${PYTHON_USEDEP}]
- )
- ' 'python3*')
- )
- webagg? (
- >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
- )
- wxwidgets? (
- $(python_gen_cond_dep '
- dev-python/wxpython:*[${PYTHON_USEDEP}]
- ' python3_{10..12})
- )
-"
-
-BDEPEND="
- ${RDEPEND}
- dev-python/pybind11[${PYTHON_USEDEP}]
- >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
- virtual/pkgconfig
- test? (
- $(python_gen_impl_dep 'tk')
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
- !hppa? ( !s390? (
- || (
- media-video/ffmpeg[openh264]
- media-video/ffmpeg[x264]
- )
- ) )
- gtk3? (
- >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- # do not unpack freetype
- unpack "${P//_/}.tar.gz"
-}
-
-python_prepare_all() {
- # Affects installed _version.py, bug #854600
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
- local PATCHES=(
- "${FILESDIR}"/matplotlib-3.10.0-test.patch
- )
-
- # increase lock timeout to 30 s
- sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
-
- distutils-r1_python_prepare_all
-}
-
-src_configure() {
- unset DISPLAY # bug #278524
- export XDG_RUNTIME_DIR="${T}/runtime-dir"
- mkdir "${XDG_RUNTIME_DIR}" || die
- chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
- DISTUTILS_ARGS=(
- -Dsystem-freetype=true
- -Dsystem-qhull=true
- -Dmacosx=false
- )
-}
-
-src_test() {
- mkdir subprojects/packagecache || die
- cp "${DISTDIR}/freetype-${FT_PV}.tar.gz" subprojects/packagecache/ || die
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken by -Wdefault
- "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
- "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
- tests/test_testing.py::test_warn_to_fail
- tests/test_legend.py::test_legend_nolabels_warning
- # TODO?
- tests/test_backend_qt.py::test_fig_sigint_override
- tests/test_backend_qt.py::test_ipython
- tests/test_backend_nbagg.py::test_ipynb
- # leak tests are fragile
- tests/test_backends_interactive.py::test_figure_leak_20490
- # major "images not close", new texlive perhaps
- tests/test_contour.py::test_all_algorithms
- # "no warnings"
- tests/test_backend_pdf.py::test_invalid_metadata
- tests/test_figure.py::test_too_many_figures
- # Requires qt5
- tests/test_backends_interactive.py::test_qt5backends_uses_qt5
- 'tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
- 'tests/test_backends_interactive.py::test_interactive_backend[toolbar2-MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
- 'tests/test_backends_interactive.py::test_interactive_backend[toolmanager-MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
- 'tests/test_backends_interactive.py::test_blitting_events[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
- 'tests/test_backends_interactive.py::test_blitting_events[MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
- 'tests/test_backends_interactive.py::test_interactive_thread_safety[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
- 'tests/test_backends_interactive.py::test_interactive_timers[MPLBACKEND=qtagg-QT_API=PyQt5-BACKEND_DEPS=PyQt5]'
- 'tests/test_backends_interactive.py::test_interactive_timers[MPLBACKEND=qtcairo-QT_API=PyQt5-BACKEND_DEPS=PyQt5,cairocffi]'
- # Tests mixing qt5 and qt6, requires installing all Qt4Py impl.
- tests/test_backends_interactive.py::test_cross_Qt_imports
- )
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # TODO: warning isn't passed through
- tests/test_image.py::test_large_image
- # TODO
- tests/test_pickle.py::test_complete
- tests/test_pickle.py::test_no_pyplot
- tests/test_pickle.py::test_pickle_load_from_subprocess
- tests/test_pickle.py::test_simple
- tests/test_texmanager.py::test_openin_any_paranoid
- tests/test_widgets.py::test_check_buttons
- tests/test_widgets.py::test_check_buttons_lines
- tests/test_widgets.py::test_check_radio_buttons_image
- tests/test_widgets.py::test_radio_buttons
- )
- ;;
- pypy3.11)
- EPYTEST_DESELECT+=(
- # TODO: warning isn't passed through
- tests/test_image.py::test_large_image
- # TODO
- tests/test_axes.py::test_axes_clear_reference_cycle
- tests/test_pickle.py::test_complete
- tests/test_pickle.py::test_no_pyplot
- tests/test_pickle.py::test_pickle_load_from_subprocess
- tests/test_pickle.py::test_simple
- tests/test_texmanager.py::test_openin_any_paranoid
- )
- ;;
- python3.11)
- EPYTEST_DESELECT+=(
- # https://github.com/matplotlib/matplotlib/issues/23384
- "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
- "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
- )
- ;;
- python3.12)
- EPYTEST_DESELECT+=(
- tests/test_constrainedlayout.py::test_compressed1
- )
- ;;
- esac
-
- case ${ABI} in
- hppa)
- EPYTEST_DESELECT+=(
- 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
- 'tests/test_quiver.py::test_barbs[png]'
- 'tests/test_quiver.py::test_barbs_pivot[png]'
- 'tests/test_quiver.py::test_barbs_flip[png]'
- 'tests/test_text.py::test_parse_math'
- 'tests/test_text.py::test_parse_math_rcparams'
- )
- ;&
- alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
- EPYTEST_DESELECT+=(
- # too large for 32-bit platforms
- 'tests/test_axes.py::test_psd_csd[png]'
- )
- ;;
- *)
- ;;
- esac
-
- # we need to rebuild mpl against bundled freetype, otherwise
- # over 1000 tests will fail because of mismatched font rendering
- local DISTUTILS_ARGS=(
- "${DISTUTILS_ARGS[@]}"
- -Dsystem-freetype=false
- )
- distutils_pep517_install "${BUILD_DIR}"/test
- cp -r "${BUILD_DIR}"/{install,test}"${EPREFIX}/usr/bin" || die
- local -x PATH=${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}
-
- pushd lib >/dev/null || die
- local path
- local sitedir=${BUILD_DIR}/test$(python_get_sitedir)
- # sigh, upstream doesn't install these
- while IFS= read -d '' path; do
- cp -r "${path}" "${sitedir}/${path}" || die
- done < <(
- find \( \
- -name baseline_images -o \
- -name '*.ipynb' -o \
- -name '*.pfb' -o \
- -name '*.ttf' -o \
- -name tinypages \
- \) -print0
- )
- popd >/dev/null || die
-
- # speed tests up
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # pretend we're on CI to increase timeouts
- local -x CI=1
- nonfatal epytest --pyargs matplotlib -m "not network" \
- -p rerunfailures --reruns=3 \
- -o tmp_path_retention_policy=all || die
-}
diff --git a/dev-python/matplotlib/matplotlib-3.10.1.ebuild b/dev-python/matplotlib/matplotlib-3.10.1.ebuild
index 610a46559736..66acfc29071f 100644
--- a/dev-python/matplotlib/matplotlib-3.10.1.ebuild
+++ b/dev-python/matplotlib/matplotlib-3.10.1.ebuild
@@ -29,7 +29,7 @@ SRC_URI+="
# Fonts: BitstreamVera, OFL-1.1
LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets"
DEPEND="
@@ -261,7 +261,20 @@ python_test() {
'tests/test_text.py::test_parse_math'
'tests/test_text.py::test_parse_math_rcparams'
)
- ;&
+ ;;
+ arm)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_ps.py::test_savefig_to_stringio
+ # too large for 32-bit platforms
+ 'tests/test_axes.py::test_psd_csd[png]'
+ )
+ ;;
+ sparc64)
+ EPYTEST_DESELECT+=(
+ tests/test_backend_pgf.py::test_pdf_pages_metadata_check
+ tests/test_backend_pgf.py::test_minus_signs_with_tex
+ )
+ ;;
alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
EPYTEST_DESELECT+=(
# too large for 32-bit platforms
diff --git a/dev-python/matplotlib/matplotlib-3.9.2.ebuild b/dev-python/matplotlib/matplotlib-3.9.2.ebuild
deleted file mode 100644
index 11bdcd193022..000000000000
--- a/dev-python/matplotlib/matplotlib-3.9.2.ebuild
+++ /dev/null
@@ -1,301 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='tk?,threads(+)'
-
-inherit distutils-r1 pypi virtualx
-
-FT_PV=2.6.1
-DESCRIPTION="Pure python plotting library with matlab like syntax"
-HOMEPAGE="
- https://matplotlib.org/
- https://github.com/matplotlib/matplotlib/
- https://pypi.org/project/matplotlib/
-"
-SRC_URI+="
- test? (
- https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
- )
-"
-
-# Main license: matplotlib
-# Some modules: BSD
-# matplotlib/backends/qt4_editor: MIT
-# Fonts: BitstreamVera, OFL-1.1
-LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-IUSE="cairo excel gtk3 latex qt5 tk webagg wxwidgets"
-
-DEPEND="
- media-libs/freetype:2
- >=media-libs/qhull-2013:=
- >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
-"
-# internal copy of pycxx highly patched
-# dev-python/pycxx
-RDEPEND="
- ${DEPEND}
- >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
- >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
- >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
- >=dev-python/pyparsing-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
- >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
- media-fonts/dejavu
- media-fonts/stix-fonts
- media-libs/libpng:0
- virtual/imagemagick-tools[jpeg,tiff]
- cairo? (
- dev-python/cairocffi[${PYTHON_USEDEP}]
- )
- excel? (
- dev-python/xlwt[${PYTHON_USEDEP}]
- )
- gtk3? (
- >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- latex? (
- virtual/latex-base
- app-text/dvipng
- app-text/ghostscript-gpl
- app-text/poppler[utils]
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-luatex
- dev-texlive/texlive-xetex
- )
- qt5? (
- $(python_gen_cond_dep '
- dev-python/pyqt5[gui,widgets,${PYTHON_USEDEP}]
- ' 'python3*')
- )
- webagg? (
- >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
- )
- wxwidgets? (
- $(python_gen_cond_dep '
- dev-python/wxpython:*[${PYTHON_USEDEP}]
- ' python3_{10..12})
- )
-"
-
-BDEPEND="
- ${RDEPEND}
- dev-python/pybind11[${PYTHON_USEDEP}]
- >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
- virtual/pkgconfig
- test? (
- $(python_gen_impl_dep 'tk')
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
- !hppa? ( !s390? (
- || (
- media-video/ffmpeg[openh264]
- media-video/ffmpeg[x264]
- )
- ) )
- gtk3? (
- >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- # do not unpack freetype
- unpack "${P}.tar.gz"
-}
-
-python_prepare_all() {
- # Affects installed _version.py, bug #854600
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
- local PATCHES=(
- "${FILESDIR}"/matplotlib-3.9.0-test.patch
- )
-
- # increase lock timeout to 30 s
- sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
-
- distutils-r1_python_prepare_all
-}
-
-src_configure() {
- unset DISPLAY # bug #278524
- export XDG_RUNTIME_DIR="${T}/runtime-dir"
- mkdir "${XDG_RUNTIME_DIR}" || die
- chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
- DISTUTILS_ARGS=(
- -Dsystem-freetype=true
- -Dsystem-qhull=true
- -Dmacosx=false
- )
-}
-
-src_test() {
- mkdir subprojects/packagecache || die
- cp "${DISTDIR}/freetype-${FT_PV}.tar.gz" subprojects/packagecache/ || die
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken by -Wdefault
- "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
- "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
- tests/test_testing.py::test_warn_to_fail
- tests/test_legend.py::test_legend_nolabels_warning
- # TODO?
- tests/test_backend_qt.py::test_fig_sigint_override
- tests/test_backend_qt.py::test_ipython
- tests/test_backend_nbagg.py::test_ipynb
- # leak tests are fragile
- tests/test_backends_interactive.py::test_figure_leak_20490
- # major "images not close", new texlive perhaps
- tests/test_contour.py::test_all_algorithms
- # "no warnings"
- tests/test_backend_pdf.py::test_invalid_metadata
- tests/test_figure.py::test_too_many_figures
- )
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # TODO: warning isn't passed through
- tests/test_image.py::test_large_image
- # TODO
- tests/test_pickle.py::test_complete
- tests/test_pickle.py::test_no_pyplot
- tests/test_pickle.py::test_pickle_load_from_subprocess
- tests/test_pickle.py::test_simple
- tests/test_texmanager.py::test_openin_any_paranoid
- tests/test_widgets.py::test_check_buttons
- tests/test_widgets.py::test_check_buttons_lines
- tests/test_widgets.py::test_check_radio_buttons_image
- tests/test_widgets.py::test_radio_buttons
- )
- if has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
- has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
- then
- EPYTEST_DESELECT+=(
- # TypeError is raised when exception is raised in a starred
- # expression referencing a generator that uses "yield from"
- # and raises -- non-critical, since some exception is raised
- # after all
- # https://foss.heptapod.net/pypy/pypy/-/issues/4032
- tests/test_axes.py::test_bad_plot_args
- tests/test_axes.py::test_plot_errors
- tests/test_axes.py::test_plot_format_errors
- )
- fi
- ;;
- python3.11)
- EPYTEST_DESELECT+=(
- # https://github.com/matplotlib/matplotlib/issues/23384
- "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
- "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
- )
- ;;
- python3.12)
- EPYTEST_DESELECT+=(
- tests/test_constrainedlayout.py::test_compressed1
- )
- ;;
- esac
-
- case ${ABI} in
- hppa)
- EPYTEST_DESELECT+=(
- 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
- 'tests/test_quiver.py::test_barbs[png]'
- 'tests/test_quiver.py::test_barbs_pivot[png]'
- 'tests/test_quiver.py::test_barbs_flip[png]'
- 'tests/test_text.py::test_parse_math'
- 'tests/test_text.py::test_parse_math_rcparams'
- )
- ;&
- alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
- EPYTEST_DESELECT+=(
- # too large for 32-bit platforms
- 'tests/test_axes.py::test_psd_csd[png]'
- )
- ;;
- *)
- ;;
- esac
-
- # we need to rebuild mpl against bundled freetype, otherwise
- # over 1000 tests will fail because of mismatched font rendering
- local DISTUTILS_ARGS=(
- "${DISTUTILS_ARGS[@]}"
- -Dsystem-freetype=false
- )
- distutils_pep517_install "${BUILD_DIR}"/test
- cp -r "${BUILD_DIR}"/{install,test}"${EPREFIX}/usr/bin" || die
- local -x PATH=${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}
-
- pushd lib >/dev/null || die
- local path
- local sitedir=${BUILD_DIR}/test$(python_get_sitedir)
- # sigh, upstream doesn't install these
- while IFS= read -d '' path; do
- cp -r "${path}" "${sitedir}/${path}" || die
- done < <(
- find \( \
- -name baseline_images -o \
- -name '*.ipynb' -o \
- -name '*.pfb' -o \
- -name '*.ttf' -o \
- -name tinypages \
- \) -print0
- )
- popd >/dev/null || die
-
- # speed tests up
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # pretend we're on CI to increase timeouts
- local -x CI=1
- nonfatal epytest --pyargs matplotlib -m "not network" \
- -p rerunfailures --reruns=3 \
- -o tmp_path_retention_policy=all || die
-}
diff --git a/dev-python/matplotlib/matplotlib-3.9.4.ebuild b/dev-python/matplotlib/matplotlib-3.9.4.ebuild
deleted file mode 100644
index b54890d76a69..000000000000
--- a/dev-python/matplotlib/matplotlib-3.9.4.ebuild
+++ /dev/null
@@ -1,301 +0,0 @@
-# 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_{9,10,11,12,13} pypy3 )
-PYTHON_REQ_USE='tk?,threads(+)'
-
-inherit distutils-r1 pypi virtualx
-
-FT_PV=2.6.1
-DESCRIPTION="Pure python plotting library with matlab like syntax"
-HOMEPAGE="
- https://matplotlib.org/
- https://github.com/matplotlib/matplotlib/
- https://pypi.org/project/matplotlib/
-"
-SRC_URI+="
- test? (
- https://downloads.sourceforge.net/project/freetype/freetype2/${FT_PV}/freetype-${FT_PV}.tar.gz
- )
-"
-
-# Main license: matplotlib
-# Some modules: BSD
-# matplotlib/backends/qt4_editor: MIT
-# Fonts: BitstreamVera, OFL-1.1
-LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1"
-SLOT="0"
-KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc x86 ~arm64-macos ~x64-macos"
-IUSE="cairo excel gtk3 latex qt5 tk webagg wxwidgets"
-
-DEPEND="
- media-libs/freetype:2
- >=media-libs/qhull-2013:=
- >=dev-python/numpy-1.25:=[${PYTHON_USEDEP}]
-"
-# internal copy of pycxx highly patched
-# dev-python/pycxx
-RDEPEND="
- ${DEPEND}
- >=dev-python/contourpy-1.0.1[${PYTHON_USEDEP}]
- >=dev-python/cycler-0.10.0-r1[${PYTHON_USEDEP}]
- >=dev-python/fonttools-4.22.0[${PYTHON_USEDEP}]
- >=dev-python/kiwisolver-1.3.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-20.0[${PYTHON_USEDEP}]
- >=dev-python/pillow-8[jpeg,webp,${PYTHON_USEDEP}]
- >=dev-python/pyparsing-2.3.1[${PYTHON_USEDEP}]
- >=dev-python/python-dateutil-2.7[${PYTHON_USEDEP}]
- >=dev-python/pytz-2019.3[${PYTHON_USEDEP}]
- media-fonts/dejavu
- media-fonts/stix-fonts
- media-libs/libpng:0
- virtual/imagemagick-tools[jpeg,tiff]
- cairo? (
- dev-python/cairocffi[${PYTHON_USEDEP}]
- )
- excel? (
- dev-python/xlwt[${PYTHON_USEDEP}]
- )
- gtk3? (
- >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- latex? (
- virtual/latex-base
- app-text/dvipng
- app-text/ghostscript-gpl
- app-text/poppler[utils]
- dev-texlive/texlive-fontsrecommended
- dev-texlive/texlive-latexextra
- dev-texlive/texlive-luatex
- dev-texlive/texlive-xetex
- )
- qt5? (
- $(python_gen_cond_dep '
- dev-python/pyqt5[gui,widgets,${PYTHON_USEDEP}]
- ' 'python3*')
- )
- webagg? (
- >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
- )
- wxwidgets? (
- $(python_gen_cond_dep '
- dev-python/wxpython:*[${PYTHON_USEDEP}]
- ' python3_{10..12})
- )
-"
-
-BDEPEND="
- ${RDEPEND}
- dev-python/pybind11[${PYTHON_USEDEP}]
- >=dev-python/setuptools-scm-7[${PYTHON_USEDEP}]
- virtual/pkgconfig
- test? (
- $(python_gen_impl_dep 'tk')
- dev-python/psutil[${PYTHON_USEDEP}]
- dev-python/pytest-rerunfailures[${PYTHON_USEDEP}]
- >=dev-python/tornado-6.0.4[${PYTHON_USEDEP}]
- !hppa? ( !s390? (
- || (
- media-video/ffmpeg[openh264]
- media-video/ffmpeg[x264]
- )
- ) )
- gtk3? (
- >=dev-python/pygobject-3.40.1-r1:3[cairo?,${PYTHON_USEDEP}]
- x11-libs/gtk+:3[introspection]
- )
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_unpack() {
- # do not unpack freetype
- unpack "${P}.tar.gz"
-}
-
-python_prepare_all() {
- # Affects installed _version.py, bug #854600
- export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
- local PATCHES=(
- "${FILESDIR}"/matplotlib-3.9.3-test.patch
- )
-
- # increase lock timeout to 30 s
- sed -i -e 's:retries = 50:retries = 300:' lib/matplotlib/cbook.py || die
-
- distutils-r1_python_prepare_all
-}
-
-src_configure() {
- unset DISPLAY # bug #278524
- export XDG_RUNTIME_DIR="${T}/runtime-dir"
- mkdir "${XDG_RUNTIME_DIR}" || die
- chmod 0700 "${XDG_RUNTIME_DIR}" || die
-
- DISTUTILS_ARGS=(
- -Dsystem-freetype=true
- -Dsystem-qhull=true
- -Dmacosx=false
- )
-}
-
-src_test() {
- mkdir subprojects/packagecache || die
- cp "${DISTDIR}/freetype-${FT_PV}.tar.gz" subprojects/packagecache/ || die
- virtx distutils-r1_src_test
-}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # broken by -Wdefault
- "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg6-MatplotlibDeprecationWarning]"
- "tests/test_rcparams.py::test_validator_invalid[validate_strlist-arg7-MatplotlibDeprecationWarning]"
- tests/test_testing.py::test_warn_to_fail
- tests/test_legend.py::test_legend_nolabels_warning
- # TODO?
- tests/test_backend_qt.py::test_fig_sigint_override
- tests/test_backend_qt.py::test_ipython
- tests/test_backend_nbagg.py::test_ipynb
- # leak tests are fragile
- tests/test_backends_interactive.py::test_figure_leak_20490
- # major "images not close", new texlive perhaps
- tests/test_contour.py::test_all_algorithms
- # "no warnings"
- tests/test_backend_pdf.py::test_invalid_metadata
- tests/test_figure.py::test_too_many_figures
- )
-
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- # TODO: warning isn't passed through
- tests/test_image.py::test_large_image
- # TODO
- tests/test_pickle.py::test_complete
- tests/test_pickle.py::test_no_pyplot
- tests/test_pickle.py::test_pickle_load_from_subprocess
- tests/test_pickle.py::test_simple
- tests/test_texmanager.py::test_openin_any_paranoid
- tests/test_widgets.py::test_check_buttons
- tests/test_widgets.py::test_check_buttons_lines
- tests/test_widgets.py::test_check_radio_buttons_image
- tests/test_widgets.py::test_radio_buttons
- )
- if has_version "<dev-python/pypy3_10-exe-7.3.13_p2" ||
- has_version "<dev-python/pypy3_10-exe-bin-7.3.13_p2"
- then
- EPYTEST_DESELECT+=(
- # TypeError is raised when exception is raised in a starred
- # expression referencing a generator that uses "yield from"
- # and raises -- non-critical, since some exception is raised
- # after all
- # https://foss.heptapod.net/pypy/pypy/-/issues/4032
- tests/test_axes.py::test_bad_plot_args
- tests/test_axes.py::test_plot_errors
- tests/test_axes.py::test_plot_format_errors
- )
- fi
- ;;
- python3.11)
- EPYTEST_DESELECT+=(
- # https://github.com/matplotlib/matplotlib/issues/23384
- "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtagg', 'QT_API': 'PyQt5'}]"
- "tests/test_backends_interactive.py::test_figure_leak_20490[time_mem1-{'MPLBACKEND': 'qtcairo', 'QT_API': 'PyQt5'}]"
- )
- ;;
- python3.12)
- EPYTEST_DESELECT+=(
- tests/test_constrainedlayout.py::test_compressed1
- )
- ;;
- esac
-
- case ${ABI} in
- hppa)
- EPYTEST_DESELECT+=(
- 'tests/test_mathtext.py::test_mathtext_exceptions[hspace without value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[hspace with invalid value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[function without space]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[accent without space]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[frac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[frac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[binom without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[binom with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[genfrac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[sqrt with invalid value]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overline without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overline with empty parameter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[left with invalid delimiter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[right with invalid delimiter]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses with sizing]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unclosed parentheses without sizing]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[dfrac with empty parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[overset without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[underset without parameters]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[unknown symbol]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[double superscript]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[double subscript]'
- 'tests/test_mathtext.py::test_mathtext_exceptions[super on sub without braces]'
- 'tests/test_quiver.py::test_barbs[png]'
- 'tests/test_quiver.py::test_barbs_pivot[png]'
- 'tests/test_quiver.py::test_barbs_flip[png]'
- 'tests/test_text.py::test_parse_math'
- 'tests/test_text.py::test_parse_math_rcparams'
- )
- ;&
- alpha|arm|m68k|o32|ppc|s390|sh|sparc|x86)
- EPYTEST_DESELECT+=(
- # too large for 32-bit platforms
- 'tests/test_axes.py::test_psd_csd[png]'
- )
- ;;
- *)
- ;;
- esac
-
- # we need to rebuild mpl against bundled freetype, otherwise
- # over 1000 tests will fail because of mismatched font rendering
- local DISTUTILS_ARGS=(
- "${DISTUTILS_ARGS[@]}"
- -Dsystem-freetype=false
- )
- distutils_pep517_install "${BUILD_DIR}"/test
- cp -r "${BUILD_DIR}"/{install,test}"${EPREFIX}/usr/bin" || die
- local -x PATH=${BUILD_DIR}/test${EPREFIX}/usr/bin:${PATH}
-
- pushd lib >/dev/null || die
- local path
- local sitedir=${BUILD_DIR}/test$(python_get_sitedir)
- # sigh, upstream doesn't install these
- while IFS= read -d '' path; do
- cp -r "${path}" "${sitedir}/${path}" || die
- done < <(
- find \( \
- -name baseline_images -o \
- -name '*.ipynb' -o \
- -name '*.pfb' -o \
- -name '*.ttf' -o \
- -name tinypages \
- \) -print0
- )
- popd >/dev/null || die
-
- # speed tests up
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- # pretend we're on CI to increase timeouts
- local -x CI=1
- nonfatal epytest --pyargs matplotlib -m "not network" \
- -p rerunfailures --reruns=3 \
- -o tmp_path_retention_policy=all || die
-}
diff --git a/dev-python/mistune/Manifest b/dev-python/mistune/Manifest
index 69a6bd511324..ed99f5072185 100644
--- a/dev-python/mistune/Manifest
+++ b/dev-python/mistune/Manifest
@@ -1 +1,2 @@
DIST mistune-3.1.2.tar.gz 94613 BLAKE2B 89d7c8fc94c7b4fb3860fb720dff170b5505e474beda1f2c6b97a8812d8ac7c2e47b604c542739d96355adc60d0ab7f5e482f17714e0a338f1babd1b6812da50 SHA512 62fe0a8849a36bc3e07854a9d3d333d1155e6a1e84cab0ade824b98869df2dbdc5741dea3e26b7af8e72e8339c7991f00729d890f5af2289c57865585a5d681a
+DIST mistune-3.1.3.tar.gz 94347 BLAKE2B 3464e6b5e4e48faacc303cbf50b15fca235eb9af4fd862bfa7eb4f97a97b4fcefdf4d221151c1e2e546693b3c539d6c71844fe6a2234a2fd9303fb5a9f29f1fd SHA512 6728543398f0e86612adbf2828b4706da8901738cb8f14df68797bf9cb20e8b9fc15b63e9cd88ee6dd8199fc47676bc4586c54063412256548e429bc4c27488b
diff --git a/dev-python/mistune/mistune-3.1.3.ebuild b/dev-python/mistune/mistune-3.1.3.ebuild
new file mode 100644
index 000000000000..0707bb168a76
--- /dev/null
+++ b/dev-python/mistune/mistune-3.1.3.ebuild
@@ -0,0 +1,27 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="The fastest markdown parser in pure Python"
+HOMEPAGE="
+ https://github.com/lepture/mistune/
+ https://pypi.org/project/mistune/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
+
+distutils_enable_tests pytest
+
+RDEPEND="
+ $(python_gen_cond_dep '
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ ' 3.10)
+"
diff --git a/dev-python/mitmproxy-wireguard/mitmproxy-wireguard-0.1.20-r1.ebuild b/dev-python/mitmproxy-wireguard/mitmproxy-wireguard-0.1.20-r1.ebuild
index 749ef99984d0..42fa7f8e54ca 100644
--- a/dev-python/mitmproxy-wireguard/mitmproxy-wireguard-0.1.20-r1.ebuild
+++ b/dev-python/mitmproxy-wireguard/mitmproxy-wireguard-0.1.20-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 2022-2024 Gentoo Authors
+# Copyright 2022-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
diff --git a/dev-python/mkdocstrings-python/Manifest b/dev-python/mkdocstrings-python/Manifest
index 05ac7877299b..62f7f3c222fb 100644
--- a/dev-python/mkdocstrings-python/Manifest
+++ b/dev-python/mkdocstrings-python/Manifest
@@ -1,3 +1,2 @@
-DIST mkdocstrings_python-1.16.2.tar.gz 423492 BLAKE2B 2f5c7d8c3f5b6b1256b6f15334bc131cf0281883bf8072400ab195d724eddf2c8367c081abe571e0f4fd889c97181effc1764bd1e701da00fe44593007c12919 SHA512 52c78484139df79a1a9d0924a03c08e6902e91ebb3dc1db129c3bf372d670578206d00335d0a3ef34af0c33cebe592f829023ba645102839da76be07c72be739
-DIST mkdocstrings_python-1.16.3.tar.gz 424073 BLAKE2B 7ad6114c3424dcd4b9f2da916eaf69a67bb5d6d53286d5e60c95af8cab333a9c56f106df3057107fddfd83e1f0f0875b5a4d6c6ff097b0416cd8bdb84fc81599 SHA512 7778ff0e8c2677ea84b61b5ddd623ccd0db2c6eeef3a6beb988d2a85ac0d8f4fb5f5ffeabc823ef0d9e486217efababc8d647b6e7b1873d00f26d6785f051cd3
DIST mkdocstrings_python-1.16.5.tar.gz 426979 BLAKE2B b6c7185c4f5abae35d7feade0d3dd36cdc1eecc5ac631f2af354e57037507f3d291bc1ff0326b665058acc73f68834e853a2d07d831fb0c08bf262111659267e SHA512 07a4a0698769a4daa0cae4607cb98e7124013a8f7190390a16818c0e21de18d78e5dcac39206d2062160cad61310b77212fe279a5cffbfb2183d49d24c792d79
+DIST mkdocstrings_python-1.16.6.tar.gz 201565 BLAKE2B 0e555d5e85959cceab121e557c39bebb2b05f2ed5ff098f1fa3d8c1714b80d271be7e559c2b1124ac4fca1877cf0627f075da31af2406cf97340f5320ad4eb0d SHA512 8091d9ed36eba2b420092efff874d4904f3d655d6b5b86090b8a7a403f6287581e345a001e4f26d57d789740674299af7b4a5f19ebeaf7976620b3688404ecbd
diff --git a/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.2.ebuild b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.2.ebuild
deleted file mode 100644
index c42dd5127852..000000000000
--- a/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.2.ebuild
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=pdm-backend
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="Python handler for dev-python/mkdocstrings"
-HOMEPAGE="
- https://mkdocstrings.github.io/python/
- https://github.com/mkdocstrings/python/
- https://pypi.org/project/mkdocstrings-python/
-"
-
-LICENSE="ISC"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~riscv"
-
-RDEPEND="
- >=dev-python/griffe-0.49[${PYTHON_USEDEP}]
- >=dev-python/mkdocstrings-0.28.2[${PYTHON_USEDEP}]
- >=dev-python/mkdocs-autorefs-1.4[${PYTHON_USEDEP}]
- $(python_gen_cond_dep '
- >=dev-python/typing-extensions-4.0[${PYTHON_USEDEP}]
- ' 3.10)
-"
-BDEPEND="
- test? (
- >=dev-python/beautifulsoup4-4.12.3[${PYTHON_USEDEP}]
- >=dev-python/inline-snapshot-0.18[${PYTHON_USEDEP}]
- dev-python/mkdocs-material[${PYTHON_USEDEP}]
- )
-"
-
-distutils_enable_tests pytest
-
-export PDM_BUILD_SCM_VERSION=${PV}
-
-python_test() {
- local EPYTEST_DESELECT=(
- # "None" meaning particular formatter not installed
- "tests/test_rendering.py::test_format_code[None-print('Hello')]"
- "tests/test_rendering.py::test_format_code[None-aaaaa(bbbbb, ccccc=1) + ddddd.eeeee[ffff] or {ggggg: hhhhh, iiiii: jjjjj}]"
- )
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest -p inline_snapshot
-}
diff --git a/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.3.ebuild b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.6.ebuild
index f1b21b66ce1a..f1b21b66ce1a 100644
--- a/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.3.ebuild
+++ b/dev-python/mkdocstrings-python/mkdocstrings-python-1.16.6.ebuild
diff --git a/dev-python/owslib/Manifest b/dev-python/owslib/Manifest
index 5a8d28e56fc3..5d0d75ff4da6 100644
--- a/dev-python/owslib/Manifest
+++ b/dev-python/owslib/Manifest
@@ -1 +1,2 @@
DIST OWSLib-0.32.1.gh.tar.gz 1060242 BLAKE2B 03f32ca140b1b337af0eff9676c61c075e27b97d582e46fefddd0563bfa7b71c152a94055df1808294860395271031adb045df1ba3b1ba103f2d423d2eab4eab SHA512 1d8ff92295a26395459b2a8caa92120c2bb813d33eaaba95476af09c32eb92cd2d52f9b29422d93837c8456cbf63535b5b60a196c212a1d349c803db9349543e
+DIST OWSLib-0.33.0.gh.tar.gz 1073327 BLAKE2B dd0ea8dd04f2ee1cd2b972b8d0b0c5425d0c611f9dd32aeb3e9a4799ecc3f9b9132e280099b038769c47b35211cd2f192dd4ced304240ab48a3996643329bd7b SHA512 64833cf3b390e9db85bfd20ed5b77cf026a6e946f7b538e1227c7b8eb50809d6c9099693e52ea39bd3c7098bdfd8a519c7290751c9743ba5cdcae5733b22143f
diff --git a/dev-python/owslib/owslib-0.33.0.ebuild b/dev-python/owslib/owslib-0.33.0.ebuild
new file mode 100644
index 000000000000..74715a0d3628
--- /dev/null
+++ b/dev-python/owslib/owslib-0.33.0.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+MY_P=OWSLib-${PV}
+DESCRIPTION="Library for client programming with Open Geospatial Consortium web service"
+HOMEPAGE="
+ https://geopython.github.io/OWSLib/
+ https://github.com/geopython/owslib/
+ https://pypi.org/project/OWSLib/
+"
+SRC_URI="
+ https://github.com/geopython/${PN}/archive/${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+RDEPEND="
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ dev-python/pyyaml[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pytest-httpserver[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -m "not online"
+}
diff --git a/dev-python/pbs-installer/Manifest b/dev-python/pbs-installer/Manifest
index ad8aec634dbd..a1900c109a2b 100644
--- a/dev-python/pbs-installer/Manifest
+++ b/dev-python/pbs-installer/Manifest
@@ -1,2 +1,2 @@
-DIST pbs-installer-2025.02.12.gh.tar.gz 84756 BLAKE2B e2b9063f36b0e53877dbf88536194c89a74ea4abaeeecf823caf95d98a680608f1e4b673fde6d528b69e55dc81a9b5533065ea79f3262ba33dd9453d7656fdd8 SHA512 9f342684f4338dd1dd9b409a31d0cf2626d444f3222adbcf9fc93c54e79f8870d07804265a0935c139ae9c5261bed76225fe22aa36d3736fb511a024dc174a91
DIST pbs-installer-2025.03.11.gh.tar.gz 84837 BLAKE2B 32860346f216907a320881e9107a194870a460f39c51d6a4f4f366119de0717b36a7dbf6a98be99a6aef30212eb48e9e949c1d9ae95642ea7bda34264549cd55 SHA512 5b323d6b1a116516a03843ffcea2e0217c53b7726089ba57f1633dd0072c4217d3d229b32f8a5746f034b54f84be1a0a12bfe3ea6d73ab3fff45c76205230e9f
+DIST pbs-installer-2025.03.17.gh.tar.gz 84857 BLAKE2B 84a53ba5257817ae877dc2e65ddeb0cdcc10b88ed72888a773986d66bc349fcfb8892bb8974cc5b81fdf8d5e295771da0fcb21822537bd6ede14f669ad883535 SHA512 8ab4f418c9415ce6395334147a982fe6d04bd0952f33a859a67346c6666c00fdae92d200849fbeb13c7e03fba1c088b04d31a6dbbee5adf44b812a32659624c0
diff --git a/dev-python/pbs-installer/pbs-installer-2025.02.12.ebuild b/dev-python/pbs-installer/pbs-installer-2025.03.17.ebuild
index 3844530d8280..3844530d8280 100644
--- a/dev-python/pbs-installer/pbs-installer-2025.02.12.ebuild
+++ b/dev-python/pbs-installer/pbs-installer-2025.03.17.ebuild
diff --git a/dev-python/platformdirs/Manifest b/dev-python/platformdirs/Manifest
index 4b85d64b912e..3df9d1334cb3 100644
--- a/dev-python/platformdirs/Manifest
+++ b/dev-python/platformdirs/Manifest
@@ -1 +1,2 @@
DIST platformdirs-4.3.6.tar.gz 21302 BLAKE2B 3488d33c70c420a7234fa773a7b61eaabc85e7aabfa75c9de308074ef653b534823a133038eb8098d41f987596d7fa6c70abd6cdde28234590261ecd6c8a9f56 SHA512 8a14126346f5472798074bd9ef73b39cd0c6517951556f7ab839d2c1993d8001a3359101fe3a7a00e803d8a5540cf33057d99e1a2e93b1bd5e20a948c89e4e44
+DIST platformdirs-4.3.7.tar.gz 21291 BLAKE2B 8abe5b99140d1968d0341c025a65cd373d798b4b3848686888e754aad95d5d7e526db9618b2f44300d5b84700655b1562fa40929362a78ed50502a6ef54a55fa SHA512 d2d131aabc448d80581e930b7bb6ced950ce7f2fe595243f0a57ab2e990f7c6669cc45fb4592971f7601f268455451881ceaf303618b5f963056e818c1580bcc
diff --git a/dev-python/platformdirs/platformdirs-4.3.7.ebuild b/dev-python/platformdirs/platformdirs-4.3.7.ebuild
new file mode 100644
index 000000000000..97f77a4f8ac1
--- /dev/null
+++ b/dev-python/platformdirs/platformdirs-4.3.7.ebuild
@@ -0,0 +1,54 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A small Python module for determining appropriate platform-specific dirs"
+HOMEPAGE="
+ https://pypi.org/project/platformdirs/
+ https://github.com/tox-dev/platformdirs/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ test? (
+ dev-python/appdirs[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "hatchling' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease setuptools bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "${PN}"
+ version = "${PV}"
+ description = 'A small Python package for determining appropriate platform-specific dirs, e.g. a "user data dir".'
+ EOF
+ # sigh
+ cat > src/platformdirs/version.py <<-EOF || die
+ __version__ = version = '${PV}'
+ __version_tuple__ = version_tuple = (${PV//./, })
+ EOF
+}
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -p pytest_mock
+}
diff --git a/dev-python/protobuf/Manifest b/dev-python/protobuf/Manifest
index 2238ce99e655..f159ab88d003 100644
--- a/dev-python/protobuf/Manifest
+++ b/dev-python/protobuf/Manifest
@@ -8,6 +8,7 @@ DIST protobuf-5.27.5.py.tar.gz 401551 BLAKE2B ab51b7a99af041ae2cd96751b2d73092c5
DIST protobuf-5.28.0.py.tar.gz 422388 BLAKE2B 208f92bdb2bc0b92dca76de4d13eda0c98bc4784cb2ce9d57690682d9327fb2a66646241ecc02e96be602b6763b177b3192ca457732540d1fa8c33afecd8d76f SHA512 91f05915ace778ee76a07856049410c48c02a665f6c4665df9ac3e32992a67235a93fb4e19c9f991821652f236b87749c3d79cfabd8c6508fdc17a2ee612cee5
DIST protobuf-5.28.3.py.tar.gz 422479 BLAKE2B ce571a63641cbb9af0aafd21b140c0732028bf04ae5aafe60301b3b1e31defc9b4d7d1d8f088e5b01fa7911617230feb5f58e38c0909b8f88676e62c59385a69 SHA512 5c42d50c6fbccf03acb95872d3233f75ff20333924e4eba6b36c095824f850121c9aa1664a5826dcb3a7dc79e9647e4f7decdee0d78a1a8557373613645d6507
DIST protobuf-5.29.2.py.tar.gz 424901 BLAKE2B ea90ff2bda8e2d264b9870d34a2aecf3e86691d144b420c39db1bcfb425723ef91ece5a2d7d448d026160866ee93d2c5d0e506a99712a5c22165f7c07865dc54 SHA512 7b7a0b116f03e5c64e9342ac0f9143bf8a41fe716697bcd58e20a410fb5d1043a174e68b33209178c5e3605421a145a11a17338ca1171597194eb0a5cfd2e63d
+DIST protobuf-5.29.4.py.tar.gz 424902 BLAKE2B 54941b008ff5ebd007076448828564128d98e9a6a4613c87057c359124940d341358fe28107b929e3e842ac7e1b34ed54c30219ed95cbb418826592e2458a01f SHA512 634faf103ed8320762593689796d26e6b988e1b40277b12dc7356983c07d5d1da8cac1530e4f16c0a1494abfb885f26bf9884988029e863515cf535c62d96c77
DIST protobuf-python-4.25.4.tar.gz 380283 BLAKE2B 3ded7b654fa4db54b0dff2309f096bcab634b9d587bd94dae4ab49fb2fe9dc8f821c52deed43b026e06189b3b7a1a6697074942c1fa732ec82257233bf1b2f90 SHA512 7b91a9473fafe62b723741faec8e8531c604b025a49ef8be79778f8a48c84c475518447b24f5a08a0a8a8ecb1ff22e2106a3183197b76be3b2b8c6c994d93920
DIST protobuf-python-5.27.2.tar.gz 401640 BLAKE2B 9d3420b75536ffd452cc2a3317a6ad1e16a62df36085f1e329f0178026032f5533e1a96f7b613f91093ac12a44d7ad4059ebededea636f38ded29da563afd075 SHA512 b3afcf13e223d7e855ac0aa000cc395e3ea1301b2e3dfe3c0d5435d8031be3726e6aec1fb6228c572aa1685f75aba2d97d2c9dfdb6d9e058a2e88321d6ba9180
DIST protobuf-python-5.27.4.tar.gz 401622 BLAKE2B 4a7f211a4f4b3e7a338f8be6a7c6cdec2df629d6f9b62dfc276d6029864dfb541468a5e4d221f4540ae9281e5fc622ee898daeb178f9d98bac9932af0c8625db SHA512 2b817947363ab8d31bd484c18d33234004c7f5e6cb7bff55657cc33e1f325e22c7ccf83c19e255e839d6061fc62d632af9b36bc4fef0d4b33623b278239043b2
diff --git a/dev-python/protobuf/protobuf-5.29.4.ebuild b/dev-python/protobuf/protobuf-5.29.4.ebuild
new file mode 100644
index 000000000000..bbc42cb227ba
--- /dev/null
+++ b/dev-python/protobuf/protobuf-5.29.4.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2008-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+# Default implementation currently is upb, which doesn't match dev-libs/protobuf
+# https://github.com/protocolbuffers/protobuf/blob/main/python/README.md#implementation-backends
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+PYPI_PN="protobuf"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Google's Protocol Buffers - Python bindings"
+HOMEPAGE="
+ https://protobuf.dev/
+ https://pypi.org/project/protobuf/
+"
+
+# Rename sdist to avoid conflicts with dev-libs/protobuf
+SRC_URI="
+ $(pypi_sdist_url) -> ${P}.py.tar.gz
+"
+
+LICENSE="BSD"
+SLOT="0/$(ver_cut 1-3)"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux ~x64-macos"
diff --git a/dev-python/psycopg/psycopg-3.2.6.ebuild b/dev-python/psycopg/psycopg-3.2.6.ebuild
index a7b3f48ff593..93518ee84ce8 100644
--- a/dev-python/psycopg/psycopg-3.2.6.ebuild
+++ b/dev-python/psycopg/psycopg-3.2.6.ebuild
@@ -95,6 +95,15 @@ python_test() {
tests/test_dns_srv.py::test_srv
)
+ case ${ARCH} in
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # TODO
+ tests/types/test_numpy.py::test_classes_identities
+ )
+ ;;
+ esac
+
local impls=( python )
if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then
impls+=( c )
diff --git a/dev-python/pygccxml/Manifest b/dev-python/pygccxml/Manifest
index 73cd7d4a628e..7e02ba97b661 100644
--- a/dev-python/pygccxml/Manifest
+++ b/dev-python/pygccxml/Manifest
@@ -1,2 +1,3 @@
DIST pygccxml-2.6.1.gh.tar.gz 3154561 BLAKE2B 95fb9df63f4175eab707211cb14d178437928ddad76eeb416d8cf4a48b29c211d80ba55533deb0a12e6bad4435df9bf82a1321b37cdc8db39d217f2995d1215e SHA512 b0ccd12b50d93287189fa86be6e11f44e28869045e6d7f6f84f34220cea642fc267eee150fe544bb54839b7f467f64af4a6025c84b94df7793645f2d444ae60d
DIST pygccxml-3.0.0.gh.tar.gz 3155557 BLAKE2B a485f5b25d724c0c67a4a6108b298ecf5da9bd3fd365f513ce424239d3e94d76a88cdc1b7839fd69b5dc897a3e7e4f86721a8411ca9c6faa37da9edae509d387 SHA512 061150cabbe3eb8853dcd48be91d741f7af405f6682bd6a6000e83bf5c5da8ed572467131f98234158f86deac6c8881736fa47b6a89149edbe10c00729e863b5
+DIST pygccxml-3.0.2.gh.tar.gz 3156023 BLAKE2B add33e230db83cadd5fd394e7e65c8815227abb3d5f86e76c54bcbc13ba52ffa55698d98785802ac51d9396f009972a093476e489280548469d5000aff8aa010 SHA512 d94b9175bd88bc92d039b758e2052d3c72e510cc381cbd974d670ff6cc06f80f7918bcd8da06efd82729d294e0972cee60690c7b0e24ab2c62a53c366bae9fb5
diff --git a/dev-python/pygccxml/pygccxml-3.0.2.ebuild b/dev-python/pygccxml/pygccxml-3.0.2.ebuild
new file mode 100644
index 000000000000..46d668b6f074
--- /dev/null
+++ b/dev-python/pygccxml/pygccxml-3.0.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1
+
+DESCRIPTION="A specialized XML reader to navigate C++ declarations"
+HOMEPAGE="
+ https://github.com/CastXML/pygccxml/
+ https://pypi.org/project/pygccxml/
+"
+SRC_URI="
+ https://github.com/CastXML/pygccxml/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Boost-1.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~riscv ~x86"
+
+DEPEND="
+ ${PYTHON_DEPS}
+ dev-libs/castxml
+"
+RDEPEND="
+ ${DEPEND}
+"
+
+distutils_enable_tests pytest
+distutils_enable_sphinx docs dev-python/sphinx-rtd-theme
+
+EPYTEST_DESELECT=(
+ tests/test_smart_pointer.py
+)
+
+python_prepare_all() {
+ local PATCHES=(
+ "${FILESDIR}/${PN}-2.4.0-doc.patch"
+ )
+
+ distutils-r1_python_prepare_all
+}
diff --git a/dev-python/pyglet/Manifest b/dev-python/pyglet/Manifest
index 37473ee595ee..f3a78f7d923c 100644
--- a/dev-python/pyglet/Manifest
+++ b/dev-python/pyglet/Manifest
@@ -1,2 +1 @@
-DIST pyglet-2.1.2.gh.tar.gz 6535497 BLAKE2B 96195c8bf42d09bcf0ead5e1541ad93af56d8b5d63d88c472b4c5e32f587b40f158b3e84028eb8449ba32500a9585d6dc3ebf85054909b4df7d9ad358f264237 SHA512 d8c3d64ba9fa8d34a5dc52fe6010af2eea6effd8f9d1297c879979c256634317e391035a24e577b903f1be4635513446ece156277010e42b417796434c6e35de
DIST pyglet-2.1.3.gh.tar.gz 6534900 BLAKE2B edf8715213682b184050f1ab2d51913e787acf03e6911b68d7076afb9427ec6d60efbc28145f4e5b7e228d00d0aa5daa5ebb5a8c5a118f2006ab447360e8440f SHA512 fbdc45888ed0cbb380115365b96db82c57ffbfc8f03c03265a276992e154cc5ec81c752e6fc8940003d96c489009eefe0976e3f87129fea1605ab6db7b4fe1bf
diff --git a/dev-python/pyglet/pyglet-2.1.2.ebuild b/dev-python/pyglet/pyglet-2.1.2.ebuild
deleted file mode 100644
index 8c0de624ea48..000000000000
--- a/dev-python/pyglet/pyglet-2.1.2.ebuild
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=flit
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1 virtualx xdg-utils
-
-MY_P=${P/_/.}
-DESCRIPTION="Cross-platform windowing and multimedia library for Python"
-HOMEPAGE="
- https://pyglet.org/
- https://github.com/pyglet/pyglet/
- https://pypi.org/project/pyglet/
-"
-SRC_URI="
- https://github.com/pyglet/pyglet/archive/v${PV/_/.}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
-IUSE="examples image +sound"
-
-RDEPEND="
- virtual/glu
- virtual/opengl
- image? (
- || (
- dev-python/pillow[${PYTHON_USEDEP}]
- x11-libs/gtk+:2
- )
- )
- sound? (
- || (
- media-libs/libpulse
- media-libs/openal
- )
- )
-"
-# ffmpeg? ( media-libs/avbin-bin )
-BDEPEND="
- test? (
- dev-python/pillow[${PYTHON_USEDEP}]
- media-libs/fontconfig
- )
-"
-
-distutils_enable_tests pytest
-
-src_test() {
- virtx distutils-r1_src_test
-}
-
-python_test() {
- xdg_environment_reset
-
- local EPYTEST_DESELECT=(
- # lacking device/server permissions
- tests/unit/media/test_listener.py::test_openal_listener
- tests/unit/media/test_listener.py::test_pulse_listener
- # fragile to system load
- tests/unit/media/test_player.py::PlayerTestCase::test_pause_resume
- tests/unit/test_clock_freq.py::test_elapsed_time_between_tick
- )
-
- # Specify path to avoid running interactive tests
- # We could add in integration tests, but they're slow
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- nonfatal epytest tests/unit || die "Tests failed with ${EPYTHON}"
-}
-
-python_install_all() {
- if use examples; then
- dodoc -r examples
- docompress -x /usr/share/doc/${PF}/examples
- fi
-
- distutils-r1_python_install_all
-}
diff --git a/dev-python/pyglet/pyglet-2.1.3.ebuild b/dev-python/pyglet/pyglet-2.1.3.ebuild
index 43a5eacb13d6..b6f49260b849 100644
--- a/dev-python/pyglet/pyglet-2.1.3.ebuild
+++ b/dev-python/pyglet/pyglet-2.1.3.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
+KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv x86 ~amd64-linux ~x86-linux"
IUSE="examples image +sound"
RDEPEND="
@@ -47,6 +47,7 @@ BDEPEND="
test? (
dev-python/pillow[${PYTHON_USEDEP}]
media-libs/fontconfig
+ x11-base/xorg-server[-minimal]
)
"
diff --git a/dev-python/pymongo/Manifest b/dev-python/pymongo/Manifest
index 41311ce6f027..ddfd81fc1e92 100644
--- a/dev-python/pymongo/Manifest
+++ b/dev-python/pymongo/Manifest
@@ -1,6 +1,2 @@
-DIST mongo-python-driver-4.10.1.gh.tar.gz 1957402 BLAKE2B 66f7c166af7c7467ca7cb20266d313e453ab485516c17e8eda5a4771b4818778c00ad314e7bd5868a95f2045f879a73617f64549db634257f1abbc7a9a095181 SHA512 200bda479cd951beef6234a15120a043b4399cadd8ef2fda69bfcd6904e1e0e43d179626092dc81d89f48806768bf8147c55108c91620920f5544f712bf3be51
DIST mongo-python-driver-4.11.1.gh.tar.gz 2111810 BLAKE2B 120168770b1f4a61f7f6327bb7b933e1bf848871ed7a6cb152837a95b438b17236e6b10b1fe54fc29a0791d8ad785033b2d726129dae69e9403ff5b1e3c2b929 SHA512 64f7d2baa90c23f3b5d91192cc4bcc6d3199f81b6b2844c19a1059779a5e6681a45e65872452230b6c1c8c193749324eb30af75f080f8830f9642f575da80bf9
-DIST mongo-python-driver-4.11.2.gh.tar.gz 2112201 BLAKE2B 261dcdacab32b516db4f980947dbf73005c9b972186c3720100495707bc96ed21ec4a8b251c1278f9b315d011ba87a6976e0033c768164abf7228efb061d703c SHA512 210a868c8e6dff923b03683e457085d631153bec2b6ddef85407c04c3f4399bb235331e3851b1193d9a2bed46a77f273ccb5ebf0fde437693a141a7a81673ce9
-DIST mongo-python-driver-4.11.gh.tar.gz 2111008 BLAKE2B 0f65410b5eead108dec0016c23c3e004251ab2db04f3a7b2a31a8757abdddf526cea695400c8cdf2bb4f7fc8c711ee4d2e5f883d0db8b309843a71e194e75016 SHA512 454109e9c9da8fec6785f50e34dfe253f9fd1a82d69cadd5c0366590c6ca6aeac180f16a0e011f855e72c6a949a0cf06f477c7396d4c9f4da6f936646a5d8c20
-DIST mongo-python-driver-4.7.2.gh.tar.gz 1548375 BLAKE2B a40dbe153f36cdf2836583aa0116f447d08376ce7980a09d0f21cea37a34ab318e5ff0b34b7fe1721cf7fc5d5443a1dbe0982d59cb941b0da8a4a99abdc7b19d SHA512 1de8bd14301e365eb53252dedaaaf8c9056dd534662543e2a500511e5f5f67a69e1f11a8a8575efdbd8852bb47b632d59762f66024d32973d20dc17c4448b9be
-DIST mongo-python-driver-4.8.0.gh.tar.gz 1550149 BLAKE2B 9462480b17f3da54918883fbcb28a4324e6a00a9c2c34b16267ebcd378170f7fd34ec7290f7a0e3c4c38a5f1f803428cb6a0c64a562d956b3a19c37130697012 SHA512 17513a278187424fea1876d288651e385be759f23eebceca8d04a15182b15ffd64956193bb53e4a90e8b2197c2ebbade274737091f5d2e5fb4398539674c41df
+DIST mongo-python-driver-4.11.3.gh.tar.gz 2112671 BLAKE2B 2c19b974461657b805484ad58bb7a3678950be716cbfc0e68853699560221dc3b8094eb8546e3b42efbc933596ebd98da35cc7a195f9690a02e4ff15855dd292 SHA512 f8e282085467b1ef6272ce13859ef7a88fdce9a674a3c40cf6f7e1352baecd80cf3394904834805e0921ce1c339bbc4ff54d1e33eadba7ee9c5f3f7a05e6fd99
diff --git a/dev-python/pymongo/pymongo-4.10.1.ebuild b/dev-python/pymongo/pymongo-4.10.1.ebuild
deleted file mode 100644
index d468267f2c19..000000000000
--- a/dev-python/pymongo/pymongo-4.10.1.ebuild
+++ /dev/null
@@ -1,228 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ~loong ~mips ~ppc ppc64 ~riscv ~s390 ~sparc x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
- test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
- test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/test_client.py::ClientUnitTest::test_detected_environment_logging
- test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
- test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
-
- # hangs?
- test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
- )
-
- local run_separately=(
- # need to run some tests separately and then restart mongodb
- # to prevent it from crashing
- # https://bugs.gentoo.org/934389
- # note that this list must not overlap with EPYTEST_DESELECT
- test/test_bulk.py
- test/test_change_stream.py
- test/test_collection.py
- test/test_crud_unified.py
- test/test_gridfs.py
- test/test_gridfs_bucket.py
- )
- local run_separately2=(
- test/test_command_monitoring.py
- test/test_connection_monitoring.py
- test/test_cursor.py
- test/test_database.py
- test/test_grid_file.py
- test/test_monitoring.py
- )
- local run_separately_async=(
- test/asynchronous/test_database.py
- test/asynchronous/test_grid_file.py
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest -p asyncio
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local stage failed=
- for stage in {1..5}; do
- # Now, the hard part: we need to find a free port for mongod.
- # We're just trying to run it random port numbers and check the log
- # for bind errors. It shall be noted that 'mongod --fork' does not
- # return failure when it fails to bind.
-
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- LC_ALL=C \
- mongod --dbpath "${dbpath}" --nojournal \
- --bind_ip ${DB_IP} --port ${DB_PORT} \
- --unixSocketPrefix "${TMPDIR}" \
- --logpath "${logpath}" --fork \
- && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- local async=( -p asyncio -m default_async )
- local def=( -p asyncio -m "default or encryption" )
- case ${stage} in
- 1)
- nonfatal epytest "${def[@]}" "${run_separately[@]}" || failed=1
- ;;
- 2)
- nonfatal epytest "${def[@]}" "${run_separately2[@]}" || failed=1
- ;;
- 3)
- EPYTEST_DESELECT+=(
- "${run_separately[@]}"
- "${run_separately2[@]}"
- )
- nonfatal epytest "${def[@]}" || failed=1
- ;;
- 4)
- nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1
- ;;
- 5)
- EPYTEST_DESELECT+=(
- "${run_separately_async[@]}"
- )
- nonfatal epytest "${async[@]}" || failed=1
- ;;
- esac
-
- mongod --dbpath "${dbpath}" --shutdown || die
- done
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pymongo/pymongo-4.11.1.ebuild b/dev-python/pymongo/pymongo-4.11.1.ebuild
index 8cff3ea1ac02..ee78c1cfaf3e 100644
--- a/dev-python/pymongo/pymongo-4.11.1.ebuild
+++ b/dev-python/pymongo/pymongo-4.11.1.ebuild
@@ -23,7 +23,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
+KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~mips ppc ppc64 ~riscv ~s390 sparc x86"
IUSE="doc kerberos +native-extensions +test-full"
RDEPEND="
diff --git a/dev-python/pymongo/pymongo-4.11.2.ebuild b/dev-python/pymongo/pymongo-4.11.3.ebuild
index 3423f94e4005..3423f94e4005 100644
--- a/dev-python/pymongo/pymongo-4.11.2.ebuild
+++ b/dev-python/pymongo/pymongo-4.11.3.ebuild
diff --git a/dev-python/pymongo/pymongo-4.11.ebuild b/dev-python/pymongo/pymongo-4.11.ebuild
deleted file mode 100644
index 3423f94e4005..000000000000
--- a/dev-python/pymongo/pymongo-4.11.ebuild
+++ /dev/null
@@ -1,237 +0,0 @@
-# Copyright 1999-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- dev-python/pytest-asyncio[${PYTHON_USEDEP}]
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging
- test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning
- test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs
- test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/test_client.py::ClientUnitTest::test_detected_environment_logging
- test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
- test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
-
- # hangs?
- test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks
-
- # broken async tests?
- test/asynchronous/test_encryption.py
- )
-
- local run_separately=(
- # need to run some tests separately and then restart mongodb
- # to prevent it from crashing
- # https://bugs.gentoo.org/934389
- # note that this list must not overlap with EPYTEST_DESELECT
- test/test_bulk.py
- test/test_change_stream.py
- test/test_collection.py
- test/test_crud_unified.py
- test/test_gridfs.py
- )
- local run_separately2=(
- test/test_command_monitoring.py
- test/test_connection_monitoring.py
- test/test_cursor.py
- test/test_database.py
- test/test_grid_file.py
- )
- local run_separately3=(
- test/test_gridfs_bucket.py
- test/test_monitoring.py
- )
- local run_separately_async=(
- test/asynchronous/test_database.py
- test/asynchronous/test_grid_file.py
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest -p asyncio
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local stage failed=
- for stage in {1..6}; do
- # Now, the hard part: we need to find a free port for mongod.
- # We're just trying to run it random port numbers and check the log
- # for bind errors. It shall be noted that 'mongod --fork' does not
- # return failure when it fails to bind.
-
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- LC_ALL=C \
- mongod --dbpath "${dbpath}" --nojournal \
- --bind_ip ${DB_IP} --port ${DB_PORT} \
- --unixSocketPrefix "${TMPDIR}" \
- --logpath "${logpath}" --fork \
- && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- local async=( -p asyncio -m default_async )
- local def=( -p asyncio -m "default or encryption" )
- case ${stage} in
- 1)
- nonfatal epytest "${def[@]}" "${run_separately[@]}" || failed=1
- ;;
- 2)
- nonfatal epytest "${def[@]}" "${run_separately2[@]}" || failed=1
- ;;
- 3)
- nonfatal epytest "${def[@]}" "${run_separately3[@]}" || failed=1
- ;;
- 4)
- EPYTEST_DESELECT+=(
- "${run_separately[@]}"
- "${run_separately2[@]}"
- "${run_separately3[@]}"
- )
- nonfatal epytest "${def[@]}" || failed=1
- ;;
- 5)
- nonfatal epytest "${async[@]}" "${run_separately_async[@]}" || failed=1
- ;;
- 6)
- EPYTEST_DESELECT+=(
- "${run_separately_async[@]}"
- )
- nonfatal epytest "${async[@]}" || failed=1
- ;;
- esac
-
- mongod --dbpath "${dbpath}" --shutdown || die
- done
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pymongo/pymongo-4.7.2.ebuild b/dev-python/pymongo/pymongo-4.7.2.ebuild
deleted file mode 100644
index 469adae2c24d..000000000000
--- a/dev-python/pymongo/pymongo-4.7.2.ebuild
+++ /dev/null
@@ -1,180 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- test? (
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- DISTUTILS_ARGS+=( --no_ext )
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
- test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/test_client.py::ClientUnitTest::test_detected_environment_logging
- test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
- test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
- )
- local run_separately=(
- # need to run some tests separately and then restart mongodb
- # to prevent it from crashing
- # https://bugs.gentoo.org/934389
- # note that this list must not overlap with EPYTEST_DESELECT
- test/test_change_stream.py
- test/test_collation.py
- test/test_database.py
- test/test_gridfs.py
- test/test_gridfs_bucket.py
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local stage failed=
- for stage in 1 2; do
- # Now, the hard part: we need to find a free port for mongod.
- # We're just trying to run it random port numbers and check the log
- # for bind errors. It shall be noted that 'mongod --fork' does not
- # return failure when it fails to bind.
-
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- LC_ALL=C \
- mongod --dbpath "${dbpath}" --nojournal \
- --bind_ip ${DB_IP} --port ${DB_PORT} \
- --unixSocketPrefix "${TMPDIR}" \
- --logpath "${logpath}" --fork \
- && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- case ${stage} in
- 1)
- nonfatal epytest "${run_separately[@]}" || failed=1
- ;;
- 2)
- EPYTEST_DESELECT+=( "${run_separately[@]}" )
- nonfatal epytest || failed=1
- ;;
- esac
-
- mongod --dbpath "${dbpath}" --shutdown || die
- done
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pymongo/pymongo-4.8.0.ebuild b/dev-python/pymongo/pymongo-4.8.0.ebuild
deleted file mode 100644
index 273c377abd60..000000000000
--- a/dev-python/pymongo/pymongo-4.8.0.ebuild
+++ /dev/null
@@ -1,205 +0,0 @@
-# Copyright 1999-2024 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=hatchling
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit check-reqs distutils-r1
-
-MY_P=mongo-python-driver-${PV}
-DESCRIPTION="Python driver for MongoDB"
-HOMEPAGE="
- https://github.com/mongodb/mongo-python-driver/
- https://pypi.org/project/pymongo/
-"
-SRC_URI="
- https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ppc ppc64 ~riscv ~s390 sparc x86"
-IUSE="doc kerberos +native-extensions +test-full"
-
-RDEPEND="
- <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}]
- kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] )
-"
-BDEPEND="
- dev-python/setuptools[${PYTHON_USEDEP}]
- test? (
- test-full? (
- >=dev-db/mongodb-2.6.0
- )
- )
-"
-
-distutils_enable_sphinx doc
-distutils_enable_tests pytest
-
-reqcheck() {
- if use test && use test-full; then
- # During the tests, database size reaches 1.5G.
- local CHECKREQS_DISK_BUILD=1536M
-
- check-reqs_${1}
- fi
-}
-
-pkg_pretend() {
- reqcheck pkg_pretend
-}
-
-pkg_setup() {
- reqcheck pkg_setup
-}
-
-src_prepare() {
- distutils-r1_src_prepare
- # we do not want hatch-requirements-txt and its ton of NIH deps
- sed -i -e '/requirements/d' pyproject.toml || die
-}
-
-python_compile() {
- # causes build errors to be fatal
- local -x TOX_ENV_NAME=whatever
- local DISTUTILS_ARGS=()
- # unconditionally implicitly disabled on pypy3
- if ! use native-extensions; then
- export NO_EXT=1
- else
- export PYMONGO_C_EXT_MUST_BUILD=1
- unset NO_EXT
- fi
-
- distutils-r1_python_compile
-}
-
-python_test() {
- rm -rf bson pymongo || die
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- local EPYTEST_DESELECT=(
- # network-sandbox
- test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver
- test/test_client.py::ClientUnitTest::test_detected_environment_logging
- test/test_client.py::ClientUnitTest::test_detected_environment_warning
- test/test_client.py::TestClient::test_service_name_from_kwargs
- test/test_client.py::TestClient::test_srv_max_hosts_kwarg
- test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive
- test/test_srv_polling.py
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true
- test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet
-
- # broken regularly by changes in mypy
- test/test_typing.py::TestMypyFails::test_mypy_failures
-
- # fragile to timing? fails because we're getting too many logs
- test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified
- )
- local run_separately=(
- # need to run some tests separately and then restart mongodb
- # to prevent it from crashing
- # https://bugs.gentoo.org/934389
- # note that this list must not overlap with EPYTEST_DESELECT
- test/test_bulk.py
- test/test_change_stream.py
- test/test_collection.py
- test/test_crud_unified.py
- test/test_gridfs.py
- test/test_gridfs_bucket.py
- test/test_gridfs_spec.py
- )
- local run_separately2=(
- # sigh
- test/test_command_monitoring.py
- test/test_connection_monitoring.py
- test/test_cursor.py
- test/test_database.py
- test/test_grid_file.py
- test/test_monitoring.py
- )
-
- if ! use test-full; then
- # .invalid is guaranteed to return NXDOMAIN per RFC 6761
- local -x DB_IP=mongodb.invalid
- epytest
- return
- fi
-
- # Yes, we need TCP/IP for that...
- local -x DB_IP=127.0.0.1
- local -x DB_PORT=27000
-
- local dbpath=${TMPDIR}/mongo.db
- local logpath=${TMPDIR}/mongod.log
-
- local stage failed=
- for stage in 1 2 3; do
- # Now, the hard part: we need to find a free port for mongod.
- # We're just trying to run it random port numbers and check the log
- # for bind errors. It shall be noted that 'mongod --fork' does not
- # return failure when it fails to bind.
-
- mkdir -p "${dbpath}" || die
- while true; do
- ebegin "Trying to start mongod on port ${DB_PORT}"
-
- LC_ALL=C \
- mongod --dbpath "${dbpath}" --nojournal \
- --bind_ip ${DB_IP} --port ${DB_PORT} \
- --unixSocketPrefix "${TMPDIR}" \
- --logpath "${logpath}" --fork \
- && sleep 2
-
- # Now we need to check if the server actually started...
- if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then
- # yay!
- eend 0
- break
- elif grep -q 'Address already in use' "${logpath}"; then
- # ay, someone took our port!
- eend 1
- : $(( DB_PORT += 1 ))
- continue
- else
- eend 1
- eerror "Unable to start mongod for tests. See the server log:"
- eerror " ${logpath}"
- die "Unable to start mongod for tests."
- fi
- done
-
- case ${stage} in
- 1)
- nonfatal epytest "${run_separately[@]}" || failed=1
- ;;
- 2)
- nonfatal epytest "${run_separately2[@]}" || failed=1
- ;;
- 3)
- EPYTEST_DESELECT+=(
- "${run_separately[@]}"
- "${run_separately2[@]}"
- )
- nonfatal epytest || failed=1
- ;;
- esac
-
- mongod --dbpath "${dbpath}" --shutdown || die
- done
-
- [[ ${failed} ]] && die "Tests fail with ${EPYTHON}"
-
- rm -rf "${dbpath}" || die
-}
diff --git a/dev-python/pysnmp/Manifest b/dev-python/pysnmp/Manifest
index 9f6de676219f..520c63b208e2 100644
--- a/dev-python/pysnmp/Manifest
+++ b/dev-python/pysnmp/Manifest
@@ -1 +1,2 @@
DIST pysnmp-7.1.16.tar.gz 379606 BLAKE2B 7ba59e52b7d27ef9400e1ec4c2aee395f86873b03b9bbb3a313e23c3af69965b245e2f3d5c4c3cdc98ee257aa4bc41c213b9d0237e9d5bc960dda2a4606c57ff SHA512 ee6a86dbf104f510eb698cc705d24f2c67efcede0b4605f7ba0aa5f3b1ebdec50608eb1144a16e6418213f824f996a7185c1452fd144d5a0df1a4f2650dbf3a4
+DIST pysnmp-7.1.17.tar.gz 366560 BLAKE2B 43a1483af845ce16e6b99e6ae4858d797ec21450012302817d67d790bfba7b435fb443eedc29b58bf2c69d534263710d835655a955b578a680b8054cd0f2f78e SHA512 01fa8483499374e26ed7672de4a30865f197c6b14beb679fec1b2750c7a2c983f3b74851418c9830a37fb8a73881beeaca844a1dc8eab2a5081eb8038be8bfe2
diff --git a/dev-python/pysnmp/pysnmp-7.1.17.ebuild b/dev-python/pysnmp/pysnmp-7.1.17.ebuild
new file mode 100644
index 000000000000..f802845870d1
--- /dev/null
+++ b/dev-python/pysnmp/pysnmp-7.1.17.ebuild
@@ -0,0 +1,49 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=poetry
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python SNMP library"
+HOMEPAGE="
+ https://pypi.org/project/pysnmp/
+ https://github.com/lextudio/pysnmp/
+"
+
+LICENSE="BSD-2"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~sparc ~x86"
+PROPERTIES="test_network"
+RESTRICT="test"
+
+RDEPEND="
+ >=dev-python/cryptography-43.0.1[${PYTHON_USEDEP}]
+ >=dev-python/pyasn1-0.4.8[${PYTHON_USEDEP}]
+ >=dev-python/pysmi-1.5.7[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+# TODO
+# distutils_enable_sphinx docs/source dev-python/furo dev-python/sphinx-copybutton dev-python/sphinx-sitemap
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # TODO
+ tests/smi/manager/test_mib-tree-inspection.py::test_getNodeName_by_symbol_description_with_module_name_2
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ mibdump CISCO-ENHANCED-IPSEC-FLOW-MIB.py || die
+ mibdump LEXTUDIO-TEST-MIB || die
+ mibdump NET-SNMP-EXAMPLES-MIB || die
+ mibdump IF-MIB || die
+ epytest -p asyncio
+}
diff --git a/dev-python/pyspf/pyspf-2.0.14-r3.ebuild b/dev-python/pyspf/pyspf-2.0.14-r3.ebuild
index 64ed834f8c03..fadad02c1bbc 100644
--- a/dev-python/pyspf/pyspf-2.0.14-r3.ebuild
+++ b/dev-python/pyspf/pyspf-2.0.14-r3.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="PSF-2"
SLOT="0"
-KEYWORDS="amd64 arm64 x86"
+KEYWORDS="amd64 arm64 ~riscv x86"
IUSE="test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/pystache/Manifest b/dev-python/pystache/Manifest
index a99010343a1f..8acbd64924a3 100644
--- a/dev-python/pystache/Manifest
+++ b/dev-python/pystache/Manifest
@@ -1,2 +1,2 @@
-DIST pystache-0.6.6.gh.tar.gz 272592 BLAKE2B c79efc37991c4fd0ea7995017bb225d6426e1a09c1d0d4d700da91400e340e8548e79b75ffb3d7ae485eb1d305709b2640ad2555f484068496e2f68681ad8ebc SHA512 debbeedc99201825c87274c14dafa757f48833de0a210444e1939e16decb06126f1fa4fd13b384fbaf28cdc9269d26a87c462db792b0b420a84e08c4f4484346
DIST pystache-0.6.7.gh.tar.gz 272905 BLAKE2B f99a65d4fa0fc54200a1a84735de7140f5c29bad1908b38678f3978c15ecb2a0c08f354b4148d5313ecc757355eaaecdb1a536933175ff24056664ca34b8d216 SHA512 97cbce10a38c83bdb080f44dc09c594a93c9656f779b90945a384d1c7c7252ad9dd5124ae0304b39dc3df026568121b15926e6dd53598e0cd994d15e91829ddd
+DIST pystache-0.6.8.gh.tar.gz 273350 BLAKE2B 55ca9cca131dbd61cb30b3cf37d677069f721f6ff80d8452b3abc51b76e5963a0bb68c35caa3afe4ad0cb0071e91866b7342eb01c636f39689bdecb38a91e6fc SHA512 b2eecabdc39f86713b4f3387b4a80afaa0a80ecc0a34482e3d9341467660666a7bdcd83d21fc9fd3b61a764a1c840a5ba8041f9a66a3b130c849e8bd8cf1f9b5
diff --git a/dev-python/pystache/pystache-0.6.6.ebuild b/dev-python/pystache/pystache-0.6.8.ebuild
index 45309e2aeff2..3f40c89db84b 100644
--- a/dev-python/pystache/pystache-0.6.6.ebuild
+++ b/dev-python/pystache/pystache-0.6.8.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2024 Gentoo Authors
+# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -38,15 +38,4 @@ BDEPEND="
distutils_enable_tests pytest
-distutils_enable_sphinx \
- docs/source \
- dev-python/sphinx-rtd-theme \
- dev-python/recommonmark \
- dev-python/sphinxcontrib-apidoc
-
export SETUPTOOLS_SCM_PRETEND_VERSION=${PV}
-
-src_prepare() {
- sed -i '/sphinx_git/d' "${S}"/setup.cfg "${S}"/docs/source/conf.py
- default
-}
diff --git a/dev-python/pytest-check/Manifest b/dev-python/pytest-check/Manifest
index 4c404ed49565..67abbf1aba05 100644
--- a/dev-python/pytest-check/Manifest
+++ b/dev-python/pytest-check/Manifest
@@ -1 +1,2 @@
DIST pytest_check-2.5.0.tar.gz 26844 BLAKE2B 3428071078f9a15ae33937be56957c537c4c98344cb3a5cda798f71caa6bd99e067113af64f548380c949bf6a79202db84e98da16f861d73ad23053a3ea2ec05 SHA512 0a3738f67f1a8467504919d5289398811af8b6bbacef81e27942ce467d3d9e373f2ec9497e4f1794ead2e3f8f9552da538c2472236b9c882cfd2ee3822c50d39
+DIST pytest_check-2.5.1.tar.gz 26889 BLAKE2B 3922c81743a9065860a40501b07c258005a128f8377a7060032fb20cb06dbfba9567211ee51e05a3776384d3b3b7f2612353c724c5412b41cc7405f826364916 SHA512 5407f88036d47d88e41da369400209191dda5f3814c4c964056d1bb561931d212068f11844fc382a1e42821ca850baa483420741c44b2e1574370453305085d9
diff --git a/dev-python/pytest-check/pytest-check-2.5.1.ebuild b/dev-python/pytest-check/pytest-check-2.5.1.ebuild
new file mode 100644
index 000000000000..fbcaf827b75d
--- /dev/null
+++ b/dev-python/pytest-check/pytest-check-2.5.1.ebuild
@@ -0,0 +1,28 @@
+# Copyright 2021-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="pytest plugin that allows multiple failures per test"
+HOMEPAGE="
+ https://github.com/okken/pytest-check/
+ https://pypi.org/project/pytest-check/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+
+RDEPEND="
+ >=dev-python/pytest-7.0.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/python-ironicclient/files/python-ironicclient-5.10.0-test.patch b/dev-python/python-ironicclient/files/python-ironicclient-5.10.0-test.patch
new file mode 100644
index 000000000000..336af0fd6a9f
--- /dev/null
+++ b/dev-python/python-ironicclient/files/python-ironicclient-5.10.0-test.patch
@@ -0,0 +1,163 @@
+From 0684eafa407973aec608fbcfac13e146511c10e2 Mon Sep 17 00:00:00 2001
+From: Riccardo Pittau <elfosardo@gmail.com>
+Date: Thu, 6 Mar 2025 12:08:08 +0100
+Subject: [PATCH 3/3] Fix bare metal info order in unit tests
+
+Info on bare metal components have changed order
+
+Change-Id: Ibbd76a115175caea9db038d0b6601b83f9c0c3e8
+(cherry picked from commit b969cc865ab7b59214fe3fa86115d88decfe2823)
+---
+ .../unit/osc/v1/test_baremetal_chassis.py | 4 +-
+ .../unit/osc/v1/test_baremetal_conductor.py | 15 ++---
+ .../tests/unit/osc/v1/test_baremetal_node.py | 58 ++++++++++---------
+ 3 files changed, 40 insertions(+), 37 deletions(-)
+
+diff --git a/ironicclient/tests/unit/osc/v1/test_baremetal_chassis.py b/ironicclient/tests/unit/osc/v1/test_baremetal_chassis.py
+index 9af4853..6422ea0 100644
+--- a/ironicclient/tests/unit/osc/v1/test_baremetal_chassis.py
++++ b/ironicclient/tests/unit/osc/v1/test_baremetal_chassis.py
+@@ -50,14 +50,14 @@ class TestChassisCreate(TestChassis):
+ self.arglist = []
+ self.verifylist = []
+ self.collist = (
++ 'uuid',
+ 'description',
+ 'extra',
+- 'uuid',
+ )
+ self.datalist = (
++ baremetal_fakes.baremetal_chassis_uuid,
+ baremetal_fakes.baremetal_chassis_description,
+ baremetal_fakes.baremetal_chassis_extra,
+- baremetal_fakes.baremetal_chassis_uuid,
+ )
+ self.actual_kwargs = {}
+
+diff --git a/ironicclient/tests/unit/osc/v1/test_baremetal_conductor.py b/ironicclient/tests/unit/osc/v1/test_baremetal_conductor.py
+index e9708a9..4c00834 100644
+--- a/ironicclient/tests/unit/osc/v1/test_baremetal_conductor.py
++++ b/ironicclient/tests/unit/osc/v1/test_baremetal_conductor.py
+@@ -212,17 +212,18 @@ class TestBaremetalConductorShow(TestBaremetalConductor):
+ *args, fields=None
+ )
+
+- collist = ('alive',
+- 'conductor_group',
+- 'drivers',
+- 'hostname',
+- )
++ collist = (
++ 'hostname',
++ 'conductor_group',
++ 'alive',
++ 'drivers',
++ )
+ self.assertEqual(collist, columns)
+ datalist = (
+- baremetal_fakes.baremetal_alive,
++ baremetal_fakes.baremetal_hostname,
+ baremetal_fakes.baremetal_conductor_group,
++ baremetal_fakes.baremetal_alive,
+ baremetal_fakes.baremetal_drivers,
+- baremetal_fakes.baremetal_hostname,
+ )
+ self.assertEqual(datalist, tuple(data))
+
+diff --git a/ironicclient/tests/unit/osc/v1/test_baremetal_node.py b/ironicclient/tests/unit/osc/v1/test_baremetal_node.py
+index 3194910..a1fab2b 100644
+--- a/ironicclient/tests/unit/osc/v1/test_baremetal_node.py
++++ b/ironicclient/tests/unit/osc/v1/test_baremetal_node.py
+@@ -759,22 +759,23 @@ class TestBaremetalCreate(TestBaremetal):
+ self.cmd = baremetal_node.CreateBaremetalNode(self.app, None)
+ self.arglist = ['--driver', 'fake_driver']
+ self.verifylist = [('driver', 'fake_driver')]
+- self.collist = ('chassis_uuid',
+- 'instance_uuid',
+- 'maintenance',
+- 'name',
+- 'power_state',
+- 'provision_state',
+- 'uuid'
+- )
++ self.collist = (
++ 'uuid',
++ 'name',
++ 'instance_uuid',
++ 'power_state',
++ 'provision_state',
++ 'maintenance',
++ 'chassis_uuid'
++ )
+ self.datalist = (
+- baremetal_fakes.baremetal_chassis_uuid_empty,
+- baremetal_fakes.baremetal_instance_uuid,
+- baremetal_fakes.baremetal_maintenance,
++ baremetal_fakes.baremetal_uuid,
+ baremetal_fakes.baremetal_name,
++ baremetal_fakes.baremetal_instance_uuid,
+ baremetal_fakes.baremetal_power_state,
+ baremetal_fakes.baremetal_provision_state,
+- baremetal_fakes.baremetal_uuid,
++ baremetal_fakes.baremetal_maintenance,
++ baremetal_fakes.baremetal_chassis_uuid_empty,
+ )
+ self.actual_kwargs = {
+ 'driver': 'fake_driver'
+@@ -3704,25 +3705,26 @@ class TestBaremetalShow(TestBaremetal):
+ *args, fields=None
+ )
+
+- collist = ('chassis_uuid',
+- 'instance_uuid',
+- 'maintenance',
+- 'name',
+- 'power_state',
+- 'provision_state',
+- 'uuid'
+- )
++ collist = (
++ 'uuid',
++ 'name',
++ 'instance_uuid',
++ 'power_state',
++ 'provision_state',
++ 'maintenance',
++ 'chassis_uuid',
++ )
+ self.assertEqual(collist, columns)
+ self.assertNotIn('ports', columns)
+ self.assertNotIn('states', columns)
+ datalist = (
+- baremetal_fakes.baremetal_chassis_uuid_empty,
+- baremetal_fakes.baremetal_instance_uuid,
+- baremetal_fakes.baremetal_maintenance,
++ baremetal_fakes.baremetal_uuid,
+ baremetal_fakes.baremetal_name,
++ baremetal_fakes.baremetal_instance_uuid,
+ baremetal_fakes.baremetal_power_state,
+ baremetal_fakes.baremetal_provision_state,
+- baremetal_fakes.baremetal_uuid
++ baremetal_fakes.baremetal_maintenance,
++ baremetal_fakes.baremetal_chassis_uuid_empty,
+ )
+ self.assertEqual(datalist, tuple(data))
+
+@@ -4828,10 +4830,10 @@ class TestNodeHistoryEventGet(TestBaremetal):
+ columns, data = self.cmd.take_action(parsed_args)
+ self.baremetal_mock.node.get_history_event.assert_called_once_with(
+ 'node_uuid', 'event_uuid')
+- expected_columns = ('conductor', 'created_at', 'event', 'event_type',
+- 'severity', 'user', 'uuid')
+- expected_data = ('lap-conductor', 'time', 'meow', 'purring', 'info',
+- '0191', 'abcdef1')
++ expected_columns = ('uuid', 'created_at', 'severity', 'event',
++ 'event_type', 'conductor', 'user')
++ expected_data = ('abcdef1', 'time', 'info', 'meow', 'purring',
++ 'lap-conductor', '0191')
+
+ self.assertEqual(expected_columns, columns)
+ self.assertEqual(expected_data, tuple(data))
+--
+2.49.0
+
diff --git a/dev-python/python-ironicclient/python-ironicclient-5.10.0-r1.ebuild b/dev-python/python-ironicclient/python-ironicclient-5.10.0-r1.ebuild
index 59dad531a38a..bf1b363570a2 100644
--- a/dev-python/python-ironicclient/python-ironicclient-5.10.0-r1.ebuild
+++ b/dev-python/python-ironicclient/python-ironicclient-5.10.0-r1.ebuild
@@ -47,3 +47,8 @@ BDEPEND="
"
distutils_enable_tests unittest
+
+PATCHES=(
+ # https://bugs.gentoo.org/951568
+ "${FILESDIR}/${P}-test.patch"
+)
diff --git a/dev-python/python-tests/python-tests-3.13.2-r100.ebuild b/dev-python/python-tests/python-tests-3.13.2-r100.ebuild
new file mode 100644
index 000000000000..4b4ec8eeaf49
--- /dev/null
+++ b/dev-python/python-tests/python-tests-3.13.2-r100.ebuild
@@ -0,0 +1,68 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit python-r1 verify-sig
+
+MY_PV=${PV/_}
+MY_P="Python-${MY_PV%_p*}"
+PYVER=$(ver_cut 1-2)t
+PATCHSET="python-gentoo-patches-${MY_PV}"
+
+DESCRIPTION="Test modules from dev-lang/python"
+HOMEPAGE="
+ https://www.python.org/
+ https://github.com/python/cpython/
+"
+SRC_URI="
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz
+ https://dev.gentoo.org/~mgorny/dist/python/${PATCHSET}.tar.xz
+ verify-sig? (
+ https://www.python.org/ftp/python/${PV%%_*}/${MY_P}.tar.xz.asc
+ )
+"
+S="${WORKDIR}/${MY_P}/Lib"
+
+LICENSE="PSF-2"
+SLOT="${PYVER}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+
+RDEPEND="
+ ${PYTHON_DEPS}
+ ~dev-lang/python-${PV}:${PYVER}
+"
+BDEPEND="
+ ${RDEPEND}
+ verify-sig? ( >=sec-keys/openpgp-keys-python-20221025 )
+"
+
+VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/python.org.asc
+
+src_unpack() {
+ if use verify-sig; then
+ verify-sig_verify_detached "${DISTDIR}"/${MY_P}.tar.xz{,.asc}
+ fi
+ default
+}
+
+src_prepare() {
+ local PATCHES=(
+ "${WORKDIR}/${PATCHSET}"
+ )
+
+ cd .. || die
+ default
+}
+
+src_install() {
+ python_setup
+ # keep in sync with TESTSUBDIRS in Makefile.pre.in
+ python_moduleinto "/usr/lib/python${PYVER}"
+ python_domodule test
+ python_moduleinto "/usr/lib/python${PYVER}/idlelib"
+ python_domodule idlelib/idle_test
+}
diff --git a/dev-python/pythran/Manifest b/dev-python/pythran/Manifest
index b9c36750ccd4..4780cea6d973 100644
--- a/dev-python/pythran/Manifest
+++ b/dev-python/pythran/Manifest
@@ -1,2 +1 @@
-DIST pythran-0.16.1.gh.tar.gz 3680817 BLAKE2B 2a4b928e9d0ce68248eb543c97da5afca900d81bc660377313617149c5aae7529a371bfd3604dd9feb6e38f834360fef881c8324ae72b585d8ab86e867c2f6b3 SHA512 7a89546b52bdae9bdaeba42768ac822c584a3714b8f4e32417d793454dc0b5492342dfd393d92f8ecee12c854bc39e418f5860aadd00d328afef7b17ebddec99
DIST pythran-0.17.0.gh.tar.gz 3697173 BLAKE2B 90f765283e4346392eb69d8e6fadf4b00469779bd7fb8dc99084ed0d2d940a1ca949c9dd0eb0fc484c2938de79b1e3650c417dc1cd30786b25b6781c519a629d SHA512 af14cd497bcbef7ac97b42b80e297e641bd520f51938b04a68ebf01de86d6900926653c01ff99b1af7f699674094241099101f1501acfae2be5dc9d1724af777
diff --git a/dev-python/pythran/pythran-0.16.1-r3.ebuild b/dev-python/pythran/pythran-0.16.1-r3.ebuild
deleted file mode 100644
index ef24d53f9b53..000000000000
--- a/dev-python/pythran/pythran-0.16.1-r3.ebuild
+++ /dev/null
@@ -1,110 +0,0 @@
-# Copyright 2021-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1
-
-MY_P=${P/_p/.post}
-DESCRIPTION="Ahead of Time compiler for numeric kernels"
-HOMEPAGE="
- https://pypi.org/project/pythran/
- https://github.com/serge-sans-paille/pythran/
-"
-SRC_URI="
- https://github.com/serge-sans-paille/pythran/archive/${PV/_p/.post}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~s390 ~sparc x86"
-
-RDEPEND="
- dev-libs/boost
- dev-cpp/xsimd
- =dev-python/beniget-0.4*[${PYTHON_USEDEP}]
- =dev-python/gast-0.5*[${PYTHON_USEDEP}]
- dev-python/numpy:=[${PYTHON_USEDEP}]
- >=dev-python/ply-3.4[${PYTHON_USEDEP}]
- || (
- <dev-python/setuptools-73[${PYTHON_USEDEP}]
- >=dev-python/setuptools-73.0.1[${PYTHON_USEDEP}]
- )
-"
-DEPEND="
- test? (
- dev-libs/boost
- dev-cpp/xsimd
- )
-"
-BDEPEND="
- test? (
- dev-python/ipython[${PYTHON_USEDEP}]
- dev-python/pip[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- virtual/cblas
- !!dev-python/setuptools-declarative-requirements
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_configure() {
- # vendored C++ headers -- use system copies
- rm -r pythran/{boost,xsimd} || die
-
- if use test ; then
- # https://bugs.gentoo.org/916461
- sed -i \
- -e 's|blas=blas|blas=cblas|' \
- -e 's|libs=|libs=cblas|' \
- pythran/pythran-*.cfg || die
- fi
-}
-
-python_test() {
- local -x COLUMNS=80
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-
- local EPYTEST_DESELECT=(
- # TODO
- pythran/tests/test_numpy_ufunc_unary.py::TestNumpyUFuncUnary::test_signbit0
- )
-
- if has_version ">=dev-python/numpy-2[${PYTHON_USEDEP}]"; then
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- pythran/tests/test_distutils.py::TestDistutils::test_setup_bdist_install3
- pythran/tests/test_distutils.py::TestDistutils::test_setup_build3
- pythran/tests/test_distutils.py::TestDistutils::test_setup_sdist_install
- pythran/tests/test_distutils.py::TestDistutils::test_setup_sdist_install2
- pythran/tests/test_distutils.py::TestDistutils::test_setup_sdist_install3
- pythran/tests/test_exception.py::TestException::test_multiple_tuple_exception_register
- pythran/tests/test_ndarray.py::TestNdarray::test_ndarray_fancy_indexing1
- pythran/tests/test_numpy_fft.py::TestNumpyFFTN::test_fftn_1
- pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_ravel0
- pythran/tests/test_numpy_func3.py::TestNumpyFunc3::test_list_imag0
- pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_uniform_size_int
- pythran/tests/test_set.py::TestSet::test_fct_symmetric_difference_update
- )
- ;;
- python3.13)
- EPYTEST_DESELECT+=(
- # repr() differences?
- pythran/tests/test_xdoc.py::TestDoctest::test_tutorial
- pythran/tests/test_xdoc.py::TestDoctest::test_utils
- )
- esac
- fi
-
- epytest
-}
diff --git a/dev-python/pythran/pythran-0.17.0-r1.ebuild b/dev-python/pythran/pythran-0.17.0-r1.ebuild
deleted file mode 100644
index 37d304a634ac..000000000000
--- a/dev-python/pythran/pythran-0.17.0-r1.ebuild
+++ /dev/null
@@ -1,107 +0,0 @@
-# Copyright 2021-2025 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
-
-inherit distutils-r1
-
-MY_P=${P/_p/.post}
-DESCRIPTION="Ahead of Time compiler for numeric kernels"
-HOMEPAGE="
- https://pypi.org/project/pythran/
- https://github.com/serge-sans-paille/pythran/
-"
-SRC_URI="
- https://github.com/serge-sans-paille/pythran/archive/${PV/_p/.post}.tar.gz
- -> ${MY_P}.gh.tar.gz
-"
-S=${WORKDIR}/${MY_P}
-
-LICENSE="BSD"
-SLOT="0"
-KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
-
-RDEPEND="
- dev-libs/boost
- dev-cpp/xsimd
- =dev-python/beniget-0.4*[${PYTHON_USEDEP}]
- =dev-python/gast-0.6*[${PYTHON_USEDEP}]
- dev-python/numpy:=[${PYTHON_USEDEP}]
- >=dev-python/ply-3.4[${PYTHON_USEDEP}]
- >=dev-python/setuptools-73.0.1[${PYTHON_USEDEP}]
-"
-DEPEND="
- test? (
- dev-libs/boost
- dev-cpp/xsimd
- )
-"
-BDEPEND="
- test? (
- dev-python/ipython[${PYTHON_USEDEP}]
- dev-python/pip[${PYTHON_USEDEP}]
- dev-python/packaging[${PYTHON_USEDEP}]
- dev-python/scipy[${PYTHON_USEDEP}]
- dev-python/wheel[${PYTHON_USEDEP}]
- virtual/cblas
- !!dev-python/setuptools-declarative-requirements
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-src_configure() {
- # vendored C++ headers -- use system copies
- rm -r pythran/{boost,xsimd} || die
-
- if use test ; then
- # https://bugs.gentoo.org/916461
- sed -i \
- -e 's|blas=blas|blas=cblas|' \
- -e 's|libs=|libs=cblas|' \
- pythran/pythran-*.cfg || die
- fi
-}
-
-python_test() {
- local -x COLUMNS=80
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
-
- local EPYTEST_DESELECT=(
- # TODO
- pythran/tests/test_numpy_ufunc_unary.py::TestNumpyUFuncUnary::test_signbit0
- )
-
- if has_version ">=dev-python/numpy-2[${PYTHON_USEDEP}]"; then
- case ${EPYTHON} in
- pypy3)
- EPYTEST_DESELECT+=(
- pythran/tests/test_distutils.py::TestDistutils::test_setup_bdist_install3
- pythran/tests/test_distutils.py::TestDistutils::test_setup_build3
- pythran/tests/test_distutils.py::TestDistutils::test_setup_sdist_install
- pythran/tests/test_distutils.py::TestDistutils::test_setup_sdist_install2
- pythran/tests/test_distutils.py::TestDistutils::test_setup_sdist_install3
- pythran/tests/test_distutils.py::TestMeson::test_meson_build
- pythran/tests/test_exception.py::TestException::test_multiple_tuple_exception_register
- pythran/tests/test_ndarray.py::TestNdarray::test_ndarray_fancy_indexing1
- pythran/tests/test_numpy_fft.py::TestNumpyFFTN::test_fftn_1
- pythran/tests/test_numpy_func0.py::TestNumpyFunc0::test_ravel0
- pythran/tests/test_numpy_func3.py::TestNumpyFunc3::test_list_imag0
- pythran/tests/test_numpy_random.py::TestNumpyRandom::test_numpy_uniform_size_int
- pythran/tests/test_set.py::TestSet::test_fct_symmetric_difference_update
- )
- ;;
- python3.13)
- EPYTEST_DESELECT+=(
- # repr() differences?
- pythran/tests/test_xdoc.py::TestDoctest::test_tutorial
- )
- esac
- fi
-
- epytest
-}
diff --git a/dev-python/pythran/pythran-0.17.0-r2.ebuild b/dev-python/pythran/pythran-0.17.0-r2.ebuild
index e57419cf27dc..a27b99d44da4 100644
--- a/dev-python/pythran/pythran-0.17.0-r2.ebuild
+++ b/dev-python/pythran/pythran-0.17.0-r2.ebuild
@@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P}
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86"
+KEYWORDS="amd64 arm arm64 ~loong ppc64 ~riscv ~s390 ~sparc x86"
RDEPEND="
dev-libs/boost
@@ -70,16 +70,32 @@ src_configure() {
}
python_test() {
- local EPYTEST_DESELECT=()
+ local EPYTEST_DESELECT=(
+ # multiple extra deps (meson, openblas)
+ # also broken on pypy3*
+ pythran/tests/test_distutils.py::TestMeson::test_meson_build
+ )
+
+ case ${ARCH} in
+ arm)
+ EPYTEST_DESELECT+=(
+ # TODO
+ pythran/tests/test_numpy_fft.py::TestNumpyFFT::test_fft_3d_axis
+ pythran/tests/test_numpy_fft.py::TestNumpyFFTN
+ )
+ ;&
+ arm|x86)
+ EPYTEST_DESELECT+=(
+ # https://github.com/serge-sans-paille/pythran/issues/2290
+ pythran/tests/test_conversion.py::TestConversion::test_builtin_type9
+ pythran/tests/test_ndarray.py::TestNdarray::test_ndarray_uintp
+ pythran/tests/test_numpy_ufunc_unary.py::TestNumpyUFuncUnary::test_numpy_ufunc_unary_numpy_ufunc_unary_numpy_uint32_scalar_float
+ )
+ ;;
+ esac
if has_version ">=dev-python/numpy-2[${PYTHON_USEDEP}]"; then
case ${EPYTHON} in
- pypy3*)
- EPYTEST_DESELECT+=(
- # tries to link to libpypy*.so
- pythran/tests/test_distutils.py::TestMeson::test_meson_build
- )
- ;;
python3.13)
EPYTEST_DESELECT+=(
# repr() differences?
diff --git a/dev-python/pyzotero/Manifest b/dev-python/pyzotero/Manifest
index 20a92ca0cb8f..13ed9ee54a85 100644
--- a/dev-python/pyzotero/Manifest
+++ b/dev-python/pyzotero/Manifest
@@ -1,2 +1,3 @@
+DIST pyzotero-1.6.10.tar.gz 552327 BLAKE2B a716c476f5e2f6f5505e32c2b7837b2e5cb70dac480a3f012999eaa9302e608e3745b7ad9fcb88dfd0f39863949062fd05baf0ca01919e6f85c20fdfa2267258 SHA512 e0f550eff328b8d99a10c5caf6f2d79e1842313f9deaa87ab0b9caeafd10e82d4c48537213a55a4178191783131a202a12f00198a76e222cd4ca5ed1830e92a1
DIST pyzotero-1.6.8.tar.gz 543598 BLAKE2B 86a4d770c16eabb07959cd9653980e12628d3dbf78ceebd724f83b1f54489b6c800a1fd65f2711c2d1e344ebd1bb2ac61e8d7dbe1091eca30ec3672df82409fd SHA512 34dd7a9f6bf8ed5ec2ee7ca4a9c533efbc20454439da4a9e59b3ab793f26074cb683fd0bebf66f819aa5c03e2dbdfabb3043ab3772beb35264ce9640a6e8752d
DIST pyzotero-1.6.9.tar.gz 552275 BLAKE2B 6f27ac6be25147e88d0fd3e8f3825185c348ebf17e8402ffcce7195ff336dd068d1d5f165c00c96968eaee0e0e05c77f4bcf2e567e18db162e67b634501c1726 SHA512 3d333442716b47771526fc1916ec8aa78cdbd6ddbfb4728712ff68c11b22028a2ff901fd74dace97d951972d6d4d8a7142e9756c0c6df2ac50e5558b5c5f8c95
diff --git a/dev-python/pyzotero/pyzotero-1.6.10.ebuild b/dev-python/pyzotero/pyzotero-1.6.10.ebuild
new file mode 100644
index 000000000000..2cf81fc7bd4f
--- /dev/null
+++ b/dev-python/pyzotero/pyzotero-1.6.10.ebuild
@@ -0,0 +1,46 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A Python client for the Zotero API"
+HOMEPAGE="
+ https://github.com/urschrei/pyzotero/
+ https://pypi.org/project/pyzotero/
+"
+
+LICENSE="BlueOak-1.0.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+RDEPEND="
+ app-text/zotero-bin
+ dev-python/bibtexparser[${PYTHON_USEDEP}]
+ >=dev-python/feedparser-6.0.11[${PYTHON_USEDEP}]
+ >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}]
+ dev-python/pytz[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}]
+ test? (
+ dev-python/httpretty[${PYTHON_USEDEP}]
+ dev-python/ipython[${PYTHON_USEDEP}]
+ dev-python/pytest-asyncio[${PYTHON_USEDEP}]
+ dev-python/python-dateutil[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx doc \
+ dev-python/sphinx-rtd-theme
+distutils_enable_tests pytest
+
+python_test() {
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest -o addopts= -p asyncio
+}
diff --git a/dev-python/setuptools-scm/Manifest b/dev-python/setuptools-scm/Manifest
index ddd6fc517f05..db039bba5023 100644
--- a/dev-python/setuptools-scm/Manifest
+++ b/dev-python/setuptools-scm/Manifest
@@ -1 +1,2 @@
DIST setuptools_scm-8.2.0.tar.gz 77572 BLAKE2B 105ddebf318a1bc0d1f0ee0e5232f5af8a43a8ed0908bd6ffceb6ba188ff8640b681a0a98006f67cc8c2f82917e6e0565f8a1aba44e8d7ff29700e3d158dde22 SHA512 3f4c4eb8a3e4f71a29187486cdc00b1e9af9b577c55a58b5ad03e6c6bad50b638b2e23ed8ee3db739481f8380d126635b42213b16172e79ba9f6ec81ce774e27
+DIST setuptools_scm-8.2.1.tar.gz 78075 BLAKE2B e026c02cd172b6a7cbcea93c2ceeeaaff9912722063523b1f12039b7d9c147a9b5d1267e907867e27d8c8deb14e9d32e4c48cdf5683ec796a0c1fc01dabf1843 SHA512 4afa1bba1a9e3791be5b2cda945ee9c6a0d3b085a528ec9d74ca4e3649522d947594aade9e146164df3548a853aed96c62a14c617d38b50a7797f8e1f53f7ab1
diff --git a/dev-python/setuptools-scm/setuptools-scm-8.2.1.ebuild b/dev-python/setuptools-scm/setuptools-scm-8.2.1.ebuild
new file mode 100644
index 000000000000..f342244a272d
--- /dev/null
+++ b/dev-python/setuptools-scm/setuptools-scm-8.2.1.ebuild
@@ -0,0 +1,61 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Manage versions by scm tags via setuptools"
+HOMEPAGE="
+ https://github.com/pypa/setuptools-scm/
+ https://pypi.org/project/setuptools-scm/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+# there's an optional dep on rich for cute logs
+RDEPEND="
+ dev-python/packaging[${PYTHON_USEDEP}]
+ >=dev-python/setuptools-61[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-2.0.2[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+BDEPEND="
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ test? (
+ dev-python/build[${PYTHON_USEDEP}]
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+ dev-vcs/git
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # the usual nondescript gpg-agent failure
+ testing/test_git.py::test_git_getdate_signed_commit
+
+ # fetching from the Internet
+ testing/test_regressions.py::test_pip_download
+
+ # calls flake8, unpredictable
+ testing/test_functions.py::test_dump_version_flake8
+ )
+
+ if has_version dev-python/nose; then
+ EPYTEST_DESELECT+=(
+ # https://bugs.gentoo.org/892639
+ testing/test_integration.py::test_pyproject_support
+ )
+ fi
+
+ epytest
+}
diff --git a/dev-python/setuptools/Manifest b/dev-python/setuptools/Manifest
index 8c5b6f19c9ee..0a166809e166 100644
--- a/dev-python/setuptools/Manifest
+++ b/dev-python/setuptools/Manifest
@@ -1,3 +1,4 @@
DIST setuptools-75.8.2.tar.gz 1344083 BLAKE2B 7d4dff2c0948bb411ef5f70e5f5f91bc0e230b155a97419d263f88e54a94390fd7dcadad14105f4d886a25024bf4c95e776ae7b25e4b1d6f17e45e6060b99da2 SHA512 adf7f5d2eab7621b03c86e3f96857b176631108dc8a0eba2b16b87e394bff0b607998bc24cc074cd3f7b0ed6dbe0bd753cce5af2f108fce2473fb50b22f32913
DIST setuptools-76.0.0.tar.gz 1349387 BLAKE2B 4293d1b0719c70c17bde8b6091f394420a300175b787f0a1aa5a42cc81b4dfad186f1d0927b32124f37f78a730a049e16cfd87dbc71fa1ed5c1bb632634ece84 SHA512 8272f0f2823d8f093d24eeb12270f978dab52d1a609c08275248024decf2b47bc5b1ce352f22ea198bd93eb3375c829757e573921721e05f5269651669df9b2e
DIST setuptools-76.1.0.tar.gz 1350273 BLAKE2B ba4a2b83b793394fdddaa1ce817b8ea65db395d9f5ef5b2293f54b56d88570bc5db307d609c1f1531d720ece5333808a38fc1788832b2d5783ffd2b498a2b7ee SHA512 3e937bbf68c313ac8fe7dedbd3f644598dca623d564a943edc53fddf6726c3d8dd1f6efcd5bc9350ee1c98e0d8005c9854eefc162baefb1aaabd7d8cff9893d9
+DIST setuptools-77.0.1.tar.gz 1366225 BLAKE2B 7c49143cabfd4d8fc0ca668e10e4b23e8c44de529f6f9a00166cd3f8a95a1a2c566bd7024c3327cabbac736e64c80b5fe701e3bc28a0b2463baa1c6051c64704 SHA512 3481e4e76f539a53f93ff5b1650bfc24f164b0331edd27680399b473c5b4c8409e5ea5dc3aaa1db1924dff64c4e8dba2a4ef385a5e207ef9f624c881139445e3
diff --git a/dev-python/setuptools/setuptools-77.0.1.ebuild b/dev-python/setuptools/setuptools-77.0.1.ebuild
new file mode 100644
index 000000000000..822ccb8b69c8
--- /dev/null
+++ b/dev-python/setuptools/setuptools-77.0.1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# please keep this ebuild at EAPI 8 -- sys-apps/portage dep
+EAPI=8
+
+# please bump dev-python/ensurepip-setuptools along with this package!
+
+DISTUTILS_USE_PEP517=standalone
+PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 )
+PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" )
+PYTHON_REQ_USE="xml(+)"
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of extensions to Distutils"
+HOMEPAGE="
+ https://github.com/pypa/setuptools/
+ https://pypi.org/project/setuptools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos ~x64-solaris"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ !<dev-python/setuptools-rust-1.8.0
+ dev-python/jaraco-collections[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-functools-4[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-text-3.7.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/more-itertools-8.12.0-r1[${PYTHON_USEDEP}]
+ >=dev-python/packaging-24.2[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-4.2.2[${PYTHON_USEDEP}]
+ >=dev-python/wheel-0.44.0[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}]
+ ' 3.10)
+ !<=dev-libs/gobject-introspection-1.76.1-r0
+ !=dev-libs/gobject-introspection-1.78.1-r0
+ !=dev-libs/gobject-introspection-1.80.1-r1
+"
+BDEPEND="
+ ${RDEPEND}
+ test? (
+ $(python_gen_cond_dep '
+ >=dev-python/build-1.0.3[${PYTHON_USEDEP}]
+ >=dev-python/ini2toml-0.14[${PYTHON_USEDEP}]
+ >=dev-python/filelock-3.4.0[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-envs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-path-3.7.2[${PYTHON_USEDEP}]
+ >=dev-python/jaraco-test-5.5[${PYTHON_USEDEP}]
+ dev-python/pip[${PYTHON_USEDEP}]
+ dev-python/pip-run[${PYTHON_USEDEP}]
+ dev-python/pyproject-hooks[${PYTHON_USEDEP}]
+ dev-python/pytest[${PYTHON_USEDEP}]
+ >=dev-python/pytest-home-0.5[${PYTHON_USEDEP}]
+ dev-python/pytest-subprocess[${PYTHON_USEDEP}]
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ dev-python/pytest-xdist[${PYTHON_USEDEP}]
+ >=dev-python/tomli-w-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/virtualenv-20[${PYTHON_USEDEP}]
+ ' "${PYTHON_TESTED[@]}")
+ )
+"
+# setuptools-scm is here because installing plugins apparently breaks stuff at
+# runtime, so let's pull it early. See bug #663324.
+#
+# trove-classifiers are optionally used in validation, if they are
+# installed. Since we really oughtn't block them, let's always enforce
+# the newest version for the time being to avoid errors.
+# https://github.com/pypa/setuptools/issues/4459
+PDEPEND="
+ dev-python/setuptools-scm[${PYTHON_USEDEP}]
+ >=dev-python/trove-classifiers-2024.10.16[${PYTHON_USEDEP}]
+"
+
+src_prepare() {
+ local PATCHES=(
+ # TODO: remove this when we're 100% PEP517 mode
+ "${FILESDIR}/setuptools-62.4.0-py-compile.patch"
+ # https://github.com/abravalheri/validate-pyproject/pull/221
+ "${FILESDIR}/setuptools-75.6.0-disable-trove-classifiers.patch"
+ )
+
+ distutils-r1_src_prepare
+
+ # breaks tests
+ sed -i -e '/--import-mode/d' pytest.ini || die
+
+ # remove bundled dependencies
+ rm -r */_vendor || die
+}
+
+python_test() {
+ if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then
+ return
+ fi
+
+ local EPYTEST_DESELECT=(
+ # network
+ setuptools/tests/test_build_meta.py::test_legacy_editable_install
+ setuptools/tests/test_distutils_adoption.py
+ setuptools/tests/test_editable_install.py
+ setuptools/tests/test_virtualenv.py::test_no_missing_dependencies
+ setuptools/tests/test_virtualenv.py::test_test_command_install_requirements
+ # TODO
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_basic
+ setuptools/tests/config/test_setupcfg.py::TestConfigurationReader::test_ignore_errors
+ # expects bundled deps in virtualenv
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_in_sdist
+ setuptools/tests/config/test_apply_pyprojecttoml.py::TestMeta::test_example_file_not_in_wheel
+ # fails if python-xlib is installed
+ setuptools/tests/test_easy_install.py::TestSetupRequires::test_setup_requires_with_allow_hosts
+ # TODO, probably some random package
+ setuptools/tests/config/test_setupcfg.py::TestOptions::test_cmdclass
+ # broken by unbundling
+ setuptools/tests/test_setuptools.py::test_wheel_includes_vendored_metadata
+ # fails on normalized metadata, perhaps different dep version?
+ setuptools/tests/test_build_meta.py::TestBuildMetaBackend::test_build_with_pyproject_config
+ # TODO
+ setuptools/tests/test_sdist.py::test_sanity_check_setuptools_own_sdist
+ # relies on -Werror
+ setuptools/_static.py::setuptools._static.Dict
+ setuptools/_static.py::setuptools._static.List
+ # TODO
+ setuptools/dist.py::setuptools.dist.Distribution._find_pattern
+ )
+
+ local EPYTEST_XDIST=1
+ local -x PRE_BUILT_SETUPTOOLS_WHEEL=${DISTUTILS_WHEEL_PATH}
+ epytest -o tmp_path_retention_policy=all \
+ -m "not uses_network" setuptools
+}
diff --git a/dev-python/test/test-0.ebuild b/dev-python/test/test-0.ebuild
index d8bf93f40c8d..fa246954612a 100644
--- a/dev-python/test/test-0.ebuild
+++ b/dev-python/test/test-0.ebuild
@@ -42,4 +42,7 @@ RDEPEND="
<dev-lang/python-3.13.0_rc1_p3-r1:3.13
)
' python3_13)
+ $(python_gen_cond_dep '
+ dev-python/python-tests:3.13t
+ ' python3_13t)
"
diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest
index 1cd3c8b45a18..dd98f08f41d7 100644
--- a/dev-python/trimesh/Manifest
+++ b/dev-python/trimesh/Manifest
@@ -1 +1,2 @@
DIST trimesh-4.6.4.gh.tar.gz 13624427 BLAKE2B b61caf9a08f219bd0dc7f6f55262dd798d3ce7c56e7a9daf3486365ec8b035b19c63f1d99ddc68ecfa9e940480e2f4307229a4fb8371e75a583f5cf8d9c29db0 SHA512 2f52ea216d448fbab32938f905137df6aac593f88343672e0e93a808f2dfece8eb477e82185c0d1150245742f2c4bb4be8c704757e428cba87f528dc1ebdb3d7
+DIST trimesh-4.6.5.gh.tar.gz 13625081 BLAKE2B 81c5527ad7cdb1dc78b61a3bfbf2fb3ff6e3b412050b77fdf249a1af7b4be9aacb3bdc19331cc334803eee998be0e5390c3282d400598aa5be3b41fd701ed3f9 SHA512 b1fc5de064fd06c3bf453e507ff6c3e14dcfb2c8d1d909b4a3c2bc2e894e2aac57342b85c0d170b0a161f3ae27b9ca2490df601fb047c1873703cb71ce97f1fa
diff --git a/dev-python/trimesh/trimesh-4.6.5.ebuild b/dev-python/trimesh/trimesh-4.6.5.ebuild
new file mode 100644
index 000000000000..9a55e3b051f5
--- /dev/null
+++ b/dev-python/trimesh/trimesh-4.6.5.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} )
+
+inherit distutils-r1 optfeature
+
+DESCRIPTION="Python library for loading and using triangular meshes"
+HOMEPAGE="
+ https://trimesh.org/
+ https://github.com/mikedh/trimesh/
+ https://pypi.org/project/trimesh/
+"
+SRC_URI="
+ https://github.com/mikedh/${PN}/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/charset-normalizer[${PYTHON_USEDEP}]
+ dev-python/colorlog[${PYTHON_USEDEP}]
+ dev-python/httpx[${PYTHON_USEDEP}]
+ dev-python/jsonschema[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ dev-python/networkx[${PYTHON_USEDEP}]
+ >=dev-python/numpy-1.20[${PYTHON_USEDEP}]
+ dev-python/pillow[${PYTHON_USEDEP}]
+ dev-python/pycollada[${PYTHON_USEDEP}]
+ dev-python/pyglet[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ dev-python/scipy[${PYTHON_USEDEP}]
+ >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}]
+ dev-python/svg-path[${PYTHON_USEDEP}]
+ dev-python/sympy[${PYTHON_USEDEP}]
+ dev-python/xxhash[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
+ dev-python/pillow[webp,${PYTHON_USEDEP}]
+ )
+"
+
+EPYTEST_TIMEOUT=1800
+EPYTEST_XDIST=1
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # requires manifold3d
+ tests/test_boolean.py::test_multiple_difference
+ # timing nonsense
+ tests/test_bounds.py::BoundsTest::test_obb_mesh_large
+ )
+ local EPYTEST_IGNORE=(
+ # require pyinstrument
+ tests/test_sweep.py
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
+
+pkg_postinst() {
+ optfeature_header "${PN} functionality can be extended by installing the following packages:"
+ optfeature "making GUI applications with 3D stuff" dev-python/glooey
+ optfeature "2D triangulations of polygons" dev-python/mapbox-earcut
+ optfeature "loading a number of additional mesh formats" dev-python/meshio
+ optfeature "figuring out how much memory we have" dev-python/psutil
+ optfeature "marching cubes and other nice stuff" dev-python/scikit-image
+}
diff --git a/dev-python/trove-classifiers/Manifest b/dev-python/trove-classifiers/Manifest
index 0bbdd117f5d3..b92a52f6d421 100644
--- a/dev-python/trove-classifiers/Manifest
+++ b/dev-python/trove-classifiers/Manifest
@@ -1,2 +1,3 @@
DIST trove_classifiers-2025.3.13.13.tar.gz 16266 BLAKE2B c5bea5e7cba406c466d0fba3f00b9ad519d9639833407f76ea171e7783ae662bcca89c584c75d4e0b74d753acdf9107e17458f0af3e840b8035263e1056507c7 SHA512 15e6f8bd6ca8150efb8bc8d90d1c6e3774f9b740dfdd5c7e34870cfc73ca31faa1450bdc9ec26452c383259f5e6171d291d07cdcaf49c87ea9275704faaaa61f
+DIST trove_classifiers-2025.3.19.19.tar.gz 16280 BLAKE2B be2679f7ea31e9cafa1e161e6b5932a1ba05f84c3ad2e74ca8a1711c75ddb99016e82b72e1fbdd0193fb2c59c96af53edb5a01747c580893adec5b865b211cc9 SHA512 2e531939642f0436650cbd12b8d40faa2a32211575c39a23508194ea65c2d0b01ade63fe2c59d6098e6e92f2a6648ded3b55a3d359ff5d5b056722f1af9291cc
DIST trove_classifiers-2025.3.3.18.tar.gz 16239 BLAKE2B 439b7c7aadae4a2dfb55a065b57853cf5f1f5752072c6e52fcde0ed63bc95a8d17ad9e618983f3302af0bb2b91af5e7db3d076d001008d0c06a62bdf5680facf SHA512 a84ee9e3ff20664b433bd07835e0050fa9cd149d18bbcbd2514abb8f1d056725788c64e37c8863b779070728795f5aa01c0a38b8088082ddc37a10629b9ae492
diff --git a/dev-python/trove-classifiers/trove-classifiers-2025.3.19.19.ebuild b/dev-python/trove-classifiers/trove-classifiers-2025.3.19.19.ebuild
new file mode 100644
index 000000000000..e43d7ad35d9d
--- /dev/null
+++ b/dev-python/trove-classifiers/trove-classifiers-2025.3.19.19.ebuild
@@ -0,0 +1,42 @@
+# Copyright 2022-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Canonical source for classifiers on PyPI (pypi.org)"
+HOMEPAGE="
+ https://github.com/pypa/trove-classifiers/
+ https://pypi.org/project/trove-classifiers/
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+distutils_enable_tests pytest
+
+src_configure() {
+ grep -q 'build-backend = "setuptools' pyproject.toml ||
+ die "Upstream changed build-backend, recheck"
+ # write a custom pyproject.toml to ease hatchling bootstrap
+ cat > pyproject.toml <<-EOF || die
+ [build-system]
+ requires = ["flit_core >=3.2,<4"]
+ build-backend = "flit_core.buildapi"
+
+ [project]
+ name = "trove-classifiers"
+ version = "${PV}"
+ description = "Canonical source for classifiers on PyPI (pypi.org)."
+ EOF
+}
+
+python_test() {
+ epytest
+ "${EPYTHON}" -m tests.lib || die
+}
diff --git a/dev-python/typing-extensions/Manifest b/dev-python/typing-extensions/Manifest
index ef63c13168bf..70cc78e4abcd 100644
--- a/dev-python/typing-extensions/Manifest
+++ b/dev-python/typing-extensions/Manifest
@@ -1 +1,2 @@
DIST typing_extensions-4.12.2.tar.gz 85321 BLAKE2B 8f32740675f5da226c6fd5fa95e0b903794d76cc25d759bee6b136913a3eedc7a702cdc7709587cae13ba3b3d44a7bb1acbdad61333fe655382e3d01d63a3fa7 SHA512 b06f26ae55194f37ee48dcb894bf583051c9e74f639f25195990f56330eae7b585ab4b8655ca575539f48254c20f1920628db6db10512953d1f6364e3c076a27
+DIST typing_extensions-4.13.0rc1.tar.gz 106487 BLAKE2B 82e8107db7aa7e61e0a2ddc775b0accd116281847bc459213165b53b42cf235bd812d753bc68e857ba16aca960d40ff12e43d697ad5d973891ecf1704cf9f838 SHA512 058daa21f1d310a9cef0b09136aa2d2f0553d0c61e6d170e039281c3337e5da81493d507f5364b0b47e48f095fab314382341be8015e9932353fe5df500be5f8
diff --git a/dev-python/typing-extensions/typing-extensions-4.13.0_rc1.ebuild b/dev-python/typing-extensions/typing-extensions-4.13.0_rc1.ebuild
new file mode 100644
index 000000000000..5f37a92f4605
--- /dev/null
+++ b/dev-python/typing-extensions/typing-extensions-4.13.0_rc1.ebuild
@@ -0,0 +1,33 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=flit
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Backported and Experimental Type Hints for Python 3.7+"
+HOMEPAGE="
+ https://pypi.org/project/typing-extensions/
+ https://github.com/python/typing_extensions/
+"
+
+LICENSE="PSF-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris"
+
+BDEPEND="
+ >=dev-python/flit-core-3.11[${PYTHON_USEDEP}]
+ test? (
+ dev-python/test[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests unittest
+
+python_test() {
+ cd src || die
+ eunittest
+}
diff --git a/dev-python/uv/Manifest b/dev-python/uv/Manifest
index fa553236b551..6bef93c0dcfd 100644
--- a/dev-python/uv/Manifest
+++ b/dev-python/uv/Manifest
@@ -9,3 +9,5 @@ DIST uv-0.6.6-crates.tar.xz 60230976 BLAKE2B 9b0dcb0d8246fc275f5b508c48661f08446
DIST uv-0.6.6.gh.tar.gz 3767860 BLAKE2B 09bcb296f10ecebc9bda81091ea9c7f589b9b44169981676b5013088c001301d2302bab8514d4c6fb9542ba0bc0d07377e68a46c35f667a6a408f86e499a1a89 SHA512 49ad9fdb411e719b5a2aae6d48750932c8ad65bace2b0a747a54b475bcd0a40da368712d074b4b3afdf28cc8003532aca712b3714d54323f184ee1358521d7c5
DIST uv-0.6.7-crates.tar.xz 60339544 BLAKE2B 5bde165c809ee9a66c23a1811d461502021b2038c747deaa250b2f30e947712e6ccad23f188fc93b000edaaf53b657d90971803acff94ade6c61a29684cf5601 SHA512 d339b9cc8b4b19ba802d203f476da311d060962e07cffaeedd0aed05b21125b6a959a971d3654db3e26087c15331588dd6ebba2ab9e52fcd91b1a38a2dc8e9e7
DIST uv-0.6.7.gh.tar.gz 3791242 BLAKE2B ca24f6945d6a442c32a574b901cf47dac3ede08603255b62feded82d36179a578aada04fca402d7738d2b3b78adfe22e4d1dbded502cafb2c5d4eb0407a5b5d4 SHA512 992f8a64f3d0c8f57be6959f91242ce7420c6ee94839f067dc142f895fb2c0b9ab4161b6a51112241e30c8836eefb7e5bc747f867c28bf09b95e0aaa52de8350
+DIST uv-0.6.8-crates.tar.xz 58007724 BLAKE2B bcf38b328d17e61cb74e9c1e51e0459fe91fd3b9124510e3f26606a3216189d2eb223cffd70dafce18cafe2340efc86f84379abf97444f79a57635dff0429590 SHA512 289cc35931ea54eb466e65cb279f842f06695ca09fae574dc5a3ba519db39c7441de9bf13c8c490cfa975f103b04988a943ea6de088090bbea0a944178064dbf
+DIST uv-0.6.8.gh.tar.gz 3793571 BLAKE2B 7bdcbaee54edb8114328410590406b2bb7240c597e9b5450a56a59de477467246fa6746ba21602cbd27b828c2c9606406d1701b6149b4b7160ac7ff21fe775bb SHA512 edf3e45e773bc4db3e1ee7a76419ef62beadc882f2dbe6342ec334520e170f941b55d376469677a2b8107a6ab8e38d9c704bfae6700e4f2f4932db9fda57478c
diff --git a/dev-python/uv/uv-0.6.8.ebuild b/dev-python/uv/uv-0.6.8.ebuild
new file mode 100644
index 000000000000..44cb91d40951
--- /dev/null
+++ b/dev-python/uv/uv-0.6.8.ebuild
@@ -0,0 +1,170 @@
+# Copyright 2024-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+CRATES="
+"
+
+declare -A GIT_CRATES=(
+ [async_zip]='https://github.com/charliermarsh/rs-async-zip;c909fda63fcafe4af496a07bfda28a5aae97e58d;rs-async-zip-%commit%'
+ [pubgrub]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%'
+ [tl]='https://github.com/astral-sh/tl;6e25b2ee2513d75385101a8ff9f591ef51f314ec;tl-%commit%'
+ [version-ranges]='https://github.com/astral-sh/pubgrub;b70cf707aa43f21b32f3a61b8a0889b15032d5c4;pubgrub-%commit%/version-ranges'
+)
+
+RUST_MIN_VER="1.83.0"
+
+inherit cargo check-reqs
+
+CRATE_PV=${PV}
+DESCRIPTION="A Python package installer and resolver, written in Rust"
+HOMEPAGE="
+ https://github.com/astral-sh/uv/
+ https://pypi.org/project/uv/
+"
+# pypi sdist misses scripts/, needed for tests
+SRC_URI="
+ https://github.com/astral-sh/uv/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+ ${CARGO_CRATE_URIS}
+"
+if [[ ${PKGBUMPING} != ${PVR} ]]; then
+ SRC_URI+="
+ https://github.com/gentoo-crate-dist/uv/releases/download/${CRATE_PV}/uv-${CRATE_PV}-crates.tar.xz
+ "
+fi
+
+# most of the code
+LICENSE="|| ( Apache-2.0 MIT )"
+# crates/pep508-rs is || ( Apache-2.0 BSD-2 ) which is covered below
+# Dependent crate licenses
+LICENSE+="
+ 0BSD Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD-2 BSD Boost-1.0
+ ISC MIT MPL-2.0 Unicode-3.0 Unicode-DFS-2016 ZLIB
+"
+# ring crate
+LICENSE+=" openssl"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~x86"
+IUSE="test"
+RESTRICT="test"
+PROPERTIES="test_network"
+
+DEPEND="
+ app-arch/bzip2:=
+ app-arch/xz-utils:=
+ app-arch/zstd:=
+"
+RDEPEND="
+ ${DEPEND}
+"
+BDEPEND="
+ test? (
+ dev-lang/python:3.8
+ dev-lang/python:3.9
+ dev-lang/python:3.10
+ dev-lang/python:3.11
+ dev-lang/python:3.12
+ !!~dev-python/uv-0.5.0
+ )
+"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+check_space() {
+ local CHECKREQS_DISK_BUILD=3G
+ use debug && CHECKREQS_DISK_BUILD=9G
+ check-reqs_pkg_setup
+}
+
+pkg_pretend() {
+ check_space
+}
+
+pkg_setup() {
+ check_space
+ rust_pkg_setup
+}
+
+src_prepare() {
+ default
+
+ # enable system libraries where supported
+ export ZSTD_SYS_USE_PKG_CONFIG=1
+ # TODO: unbundle libz-ng-sys, tikv-jemalloc-sys?
+
+ # remove unbundled sources, just in case
+ find "${ECARGO_VENDOR}"/{bzip2,lzma,zstd}-sys-*/ -name '*.c' -delete || die
+
+ # bzip2-sys requires a pkg-config file
+ # https://github.com/alexcrichton/bzip2-rs/issues/104
+ mkdir "${T}/pkg-config" || die
+ export PKG_CONFIG_PATH=${T}/pkg-config${PKG_CONFIG_PATH+:${PKG_CONFIG_PATH}}
+ cat >> "${T}/pkg-config/bzip2.pc" <<-EOF || die
+ Name: bzip2
+ Version: 9999
+ Description:
+ Libs: -lbz2
+ EOF
+}
+
+src_configure() {
+ local myfeatures=(
+ git
+ pypi
+ python
+ )
+
+ cargo_src_configure --no-default-features
+}
+
+src_compile() {
+ cd crates/uv || die
+ cargo_src_compile
+}
+
+src_test() {
+ # work around https://github.com/astral-sh/uv/issues/4376
+ local -x PATH=${BROOT}/usr/lib/python-exec/python3.12:${PATH}
+ local -x COLUMNS=100
+ local -x PYTHONDONTWRITEBYTECODE=
+ # fix tests failing because of our config
+ local -x XDG_CONFIG_DIRS=${T}
+
+ cd crates/uv || die
+ cargo_src_test --no-fail-fast
+}
+
+src_install() {
+ cd crates/uv || die
+ cargo_src_install
+
+ insinto /etc/xdg/uv
+ newins - uv.toml <<-EOF || die
+ # These defaults match Fedora, see:
+ # https://src.fedoraproject.org/rpms/uv/pull-request/18
+
+ # By default ("automatic"), uv downloads missing Python versions
+ # automatically and keeps them in the user's home directory.
+ # Disable that to make downloading opt-in, and especially
+ # to avoid unnecessarily fetching custom Python when the distro
+ # package would be preferable. Python builds can still be
+ # downloaded manually via "uv python install".
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-downloads
+ python-downloads = "manual"
+
+ # By default ("managed"), uv always prefers self-installed
+ # Python versions over the system Python, independently
+ # of versions. Since we generally expect users to use that
+ # to install old Python versions not in ::gentoo anymore,
+ # this effectively means that uv would end up preferring very
+ # old Python versions over the newer ones that are provided
+ # by the system. Default to using the system versions to avoid
+ # this counter-intuitive behavior.
+ #
+ # https://docs.astral.sh/uv/reference/settings/#python-preference
+ python-preference = "system"
+ EOF
+}
diff --git a/dev-python/xarray/Manifest b/dev-python/xarray/Manifest
index ce94f7c4a681..97dbac239aa4 100644
--- a/dev-python/xarray/Manifest
+++ b/dev-python/xarray/Manifest
@@ -1,6 +1,4 @@
-DIST xarray-2024.10.0.tar.gz 3788358 BLAKE2B 974e84e4584201a435e6b2eb48e882f09c44b4fd66583fb86aad4002e404bb07480598e27b1ae5b66863b8f69026d62affdf999f0a6d316966e05841cf1f21b9 SHA512 3a17548cdc3d3b6123c81c124a47b1e538b223e8955593064b37dcc23f61b7cbaf62df57d74a0b8f8cd55f21bfd1a8c69622cb328d08e4212cf0c16d464416dd
-DIST xarray-2024.11.0.tar.gz 3247277 BLAKE2B 2011ba6fa587a6fe96792a7d5a8f253dc589aea59af909c14b7c6a6295eda555df3a12d225fea0af503a778551c8a542fa743a5027c27b60c3e2f8cb4f6c3281 SHA512 0f2d22391eb851b82b804ebd9404a9863143a9ca647fa0d52d9c1b421f94187739986e8c1205274840f46329478846802b11304c02c5dad58ae9ffc6062b1cec
DIST xarray-2024.9.0.tar.gz 3747432 BLAKE2B 4b2a3be1712194710aa00f4416479d93171ba3bcc49a68edf2bff65a2224c334807d4db9e63a95d6da7f7bd08170771cdad73f2d224837c35ccfcb2c72b881fb SHA512 179e1a6689095a091c49d6fe3b34e72afbfcfbf4d10056a695e4804cee2fc5e6da1ff9b3073ecce790618031286a2f383f00042d38c49e94a672ee6c2214b85b
-DIST xarray-2025.1.0.tar.gz 3256313 BLAKE2B 28d16b4d7ee99252ce684e4e0ed69b6eb06a3f476c0dbdd6b952bae08a68357bcdc3dde427a788ebffa4498856eb1af78fe9a625541bf6616a32a5daa7862468 SHA512 ea70284f3a9b8bc1dc217354683e67101ea03514ace39a3bdd9f96bf58c36ae6846330ef647f72475e25087f272a33114ba88ecdfed5e18a5df8593efa6e19fd
DIST xarray-2025.1.1.tar.gz 3257038 BLAKE2B 2a1efed4dbd9de3f099d6fbc89f31f477dfa31f9067b976a5c18d1d8699d21428a6bb5d94a6ca7f31b296f4b132e8ef4e312aca25fc3da6a5d7dec4022f084c4 SHA512 a0cde2c8e38887878bcde25fd3ea6ee436b522ca73f52359d2c8ac1993447472d7cd5e5d4b11016ec48d1b86dba08e9207caf00b2b43ab896c777395e51f7943
DIST xarray-2025.1.2.tar.gz 3271214 BLAKE2B e41848061158bdda3042b5fafdc251b686ec0aba957a560d6205a14dcb4d604c32f62de7051148690e8d5cf3939dbf54e12ca9c3e3347767a8da9aecceb7d07c SHA512 604d552435a5c986818042de13b9163626ce2138e891f938e67d2885f51107fb741c81cfde5c4029575ba7011e0ac2edd3b88da76f5d7c54157a091d21e9761d
+DIST xarray-2025.3.0.tar.gz 3292399 BLAKE2B 6d892e4ac788a90aa244225874a6b0d68fdd476b8867e5cf6a78b894c7b0fbc6dcfcdf4899ac0ee2cc2aa81cb25c73dcc40863629f62ff68dc8ab99ef0ad72a4 SHA512 84750291edb163767938da69425b14294c3aff4618de50a61df9529b9ccf543798ec5d00a8a317b04ade45cf5a2f1d482b63fc1cf69ae52acf4d841da6580850
diff --git a/dev-python/xarray/xarray-2024.10.0.ebuild b/dev-python/xarray/xarray-2024.10.0.ebuild
deleted file mode 100644
index 0dcfe478b127..000000000000
--- a/dev-python/xarray/xarray-2024.10.0.ebuild
+++ /dev/null
@@ -1,126 +0,0 @@
-# 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_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="N-D labeled arrays and datasets in Python"
-HOMEPAGE="
- https://xarray.pydata.org/
- https://github.com/pydata/xarray/
- https://pypi.org/project/xarray/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 arm64 ~riscv ~x86"
-IUSE="big-endian"
-
-RDEPEND="
- <dev-python/numpy-2.1[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.24[${PYTHON_USEDEP}]
- >=dev-python/pandas-2.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-23.1[${PYTHON_USEDEP}]
-"
-# note: most of the test dependencies are optional
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/bottleneck[${PYTHON_USEDEP}]
- dev-python/cftime[${PYTHON_USEDEP}]
- dev-python/hypothesis[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- !riscv? ( !x86? (
- dev-python/netcdf4[bzip2,szip,${PYTHON_USEDEP}]
- ) )
- dev-python/toolz[${PYTHON_USEDEP}]
- !hppa? ( >=dev-python/scipy-1.4[${PYTHON_USEDEP}] )
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO: these fail with filter errors even if netcdf4 is built
- # with blosc/zstd support
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[zstd]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4hc]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zlib]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]'
- )
-
- if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
- )
-
- if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_calendar_ops.py::test_interp_calendar
- )
- fi
- fi
-
- if use big-endian ; then
- EPYTEST_DESELECT+=(
- # Appears to be a numpy issue in display? See bug #916460.
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-20-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-09-21T00:12:44.145224808-ns-float64-1e+30-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225216-ns-float64--9.223372036854776e+18-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:21:52.901038080-ns-float32-20.0-True]'
- )
- fi
-
- if [[ ${ABI} != *64* ]]; then
- EPYTEST_DESELECT+=(
- # these tests hardcode object sizes for 64-bit arches
- # https://github.com/pydata/xarray/issues/9127
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex_long
- xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex
- xarray/tests/test_formatting.py::test_array_repr_dtypes_unix
-
- # converting timestamps into ns, causing an overflow
- xarray/tests/test_cftimeindex.py::test_asi8
- xarray/tests/test_coding_times.py::test_decode_cf_time_bounds
- xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range
- xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units
- )
- fi
-
- case ${ARCH} in
- arm64)
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- )
- ;;
- esac
-
- if has_version ">=dev-python/numpy-2[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_dataset.py::TestDataset::test_polyfit_warnings
- # https://github.com/pandas-dev/pandas/issues/56996
- xarray/tests/test_backends.py::test_use_cftime_false_standard_calendar_in_range
- # TODO
- 'xarray/tests/test_dtypes.py::test_maybe_promote[q-expected19]'
- 'xarray/tests/test_dtypes.py::test_maybe_promote[Q-expected20]'
- 'xarray/tests/test_conventions.py::TestCFEncodedDataStore::test_roundtrip_mask_and_scale[dtype0-create_unsigned_masked_scaled_data-create_encoded_unsigned_masked_scaled_data]'
- 'xarray/tests/test_conventions.py::TestCFEncodedDataStore::test_roundtrip_mask_and_scale[dtype1-create_unsigned_masked_scaled_data-create_encoded_unsigned_masked_scaled_data]'
- )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/xarray/xarray-2024.11.0.ebuild b/dev-python/xarray/xarray-2024.11.0.ebuild
deleted file mode 100644
index 01c76abddff9..000000000000
--- a/dev-python/xarray/xarray-2024.11.0.ebuild
+++ /dev/null
@@ -1,132 +0,0 @@
-# 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_{9,10,11,12,13} )
-
-inherit distutils-r1 pypi
-
-DESCRIPTION="N-D labeled arrays and datasets in Python"
-HOMEPAGE="
- https://xarray.pydata.org/
- https://github.com/pydata/xarray/
- https://pypi.org/project/xarray/
-"
-
-LICENSE="Apache-2.0"
-SLOT="0"
-KEYWORDS="amd64 ~arm64 ~riscv ~x86"
-IUSE="big-endian"
-
-RDEPEND="
- <dev-python/numpy-2.1[${PYTHON_USEDEP}]
- >=dev-python/numpy-1.24[${PYTHON_USEDEP}]
- >=dev-python/pandas-2.1[${PYTHON_USEDEP}]
- >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
-"
-# note: most of the test dependencies are optional
-BDEPEND="
- dev-python/setuptools-scm[${PYTHON_USEDEP}]
- test? (
- dev-python/bottleneck[${PYTHON_USEDEP}]
- dev-python/cftime[${PYTHON_USEDEP}]
- dev-python/hypothesis[${PYTHON_USEDEP}]
- dev-python/matplotlib[${PYTHON_USEDEP}]
- !riscv? ( !x86? (
- dev-python/netcdf4[bzip2,szip,${PYTHON_USEDEP}]
- ) )
- dev-python/toolz[${PYTHON_USEDEP}]
- !hppa? ( >=dev-python/scipy-1.4[${PYTHON_USEDEP}] )
- )
-"
-
-EPYTEST_XDIST=1
-distutils_enable_tests pytest
-
-python_test() {
- local EPYTEST_DESELECT=(
- # TODO: these fail with filter errors even if netcdf4 is built
- # with blosc/zstd support
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[zstd]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_lz4hc]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zlib]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]'
- )
-
- if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_missing.py::test_interpolate_na_2d[coords1]'
- )
-
- if ! has_version "dev-python/scipy[${PYTHON_USEDEP}]" ; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_calendar_ops.py::test_interp_calendar
- )
- fi
- fi
-
- if use big-endian ; then
- EPYTEST_DESELECT+=(
- # Appears to be a numpy issue in display? See bug #916460.
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-20-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-09-21T00:12:44.145224808-ns-float64-1e+30-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225216-ns-float64--9.223372036854776e+18-True]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145224193-ns-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:12:43.145225-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1970-01-01T00:00:01.000001-us-int64-None-False]'
- 'xarray/tests/test_coding_times.py::test_roundtrip_datetime64_nanosecond_precision[1677-09-21T00:21:52.901038080-ns-float32-20.0-True]'
- )
- fi
-
- if [[ ${ABI} != *64* ]]; then
- EPYTEST_DESELECT+=(
- # these tests hardcode object sizes for 64-bit arches
- # https://github.com/pydata/xarray/issues/9127
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex
- xarray/tests/test_dataarray.py::TestDataArray::test_repr_multiindex_long
- xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex
- xarray/tests/test_formatting.py::test_array_repr_dtypes_unix
-
- # converting timestamps into ns, causing an overflow
- xarray/tests/test_cftimeindex.py::test_asi8
- xarray/tests/test_coding_times.py::test_decode_cf_time_bounds
- xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range
- xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units
- )
- fi
-
- case ${ARCH} in
- arm64)
- EPYTEST_DESELECT+=(
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]'
- )
- ;;
- esac
-
- if has_version ">=dev-python/numpy-2[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_dataset.py::TestDataset::test_polyfit_warnings
- # https://github.com/pandas-dev/pandas/issues/56996
- xarray/tests/test_backends.py::test_use_cftime_false_standard_calendar_in_range
- # TODO
- 'xarray/tests/test_dtypes.py::test_maybe_promote[q-expected19]'
- 'xarray/tests/test_dtypes.py::test_maybe_promote[Q-expected20]'
- 'xarray/tests/test_conventions.py::TestCFEncodedDataStore::test_roundtrip_mask_and_scale[dtype0-create_unsigned_masked_scaled_data-create_encoded_unsigned_masked_scaled_data]'
- 'xarray/tests/test_conventions.py::TestCFEncodedDataStore::test_roundtrip_mask_and_scale[dtype1-create_unsigned_masked_scaled_data-create_encoded_unsigned_masked_scaled_data]'
- )
- fi
-
- if ! has_version "dev-python/seaborn[${PYTHON_USEDEP}]"; then
- EPYTEST_DESELECT+=(
- xarray/tests/test_plot.py::TestContour::test_colors
- )
- fi
-
- local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
-}
diff --git a/dev-python/xarray/xarray-2025.1.0-r1.ebuild b/dev-python/xarray/xarray-2025.3.0.ebuild
index 0866f3804b53..341ef4c9e486 100644
--- a/dev-python/xarray/xarray-2025.1.0-r1.ebuild
+++ b/dev-python/xarray/xarray-2025.3.0.ebuild
@@ -114,5 +114,5 @@ python_test() {
fi
local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
- epytest
+ epytest -o addopts=
}
diff --git a/dev-python/xmlschema/Manifest b/dev-python/xmlschema/Manifest
index 8845f13151e3..926a7c922b39 100644
--- a/dev-python/xmlschema/Manifest
+++ b/dev-python/xmlschema/Manifest
@@ -1 +1,2 @@
DIST xmlschema-3.4.3.tar.gz 585144 BLAKE2B e93ed5fed2f108f9a067b2c96aff884bda4980d57ad0efedacb7c0302cb7cebc99ce49d98e4272a50f6c6bc79a401218c75cbde682028558bbe6e815b6aeaad3 SHA512 7645ea820ec6f469e560ffaba10948b185d9dcfc7a5d4cde1a5062f20b904cb97ffbc7f57893768879a192cbb63208a5c6f79775d09be650d24a54b1bb7e9176
+DIST xmlschema-3.4.4.tar.gz 591585 BLAKE2B 03c215df5d8929d1371dadeaebbbd509b8a9a0f3c01f94999ffa7eac547a2ced80f48dbd74faeb1aa9e59fca06e1c92d44db41f11ceed367bf2b4b822e30476d SHA512 a8fa3d295b2fec631a9dc54d800c19e6a7e57981541b536b2a699573bb0de45be1d65f4f73e63017620358711effef9f2d1745ca5e10ddd5e04b02565301d697
diff --git a/dev-python/xmlschema/xmlschema-3.4.4.ebuild b/dev-python/xmlschema/xmlschema-3.4.4.ebuild
new file mode 100644
index 000000000000..c4b4fd46e50e
--- /dev/null
+++ b/dev-python/xmlschema/xmlschema-3.4.4.ebuild
@@ -0,0 +1,37 @@
+# Copyright 2019-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="An XML Schema validator and decoder"
+HOMEPAGE="
+ https://github.com/sissaschool/xmlschema/
+ https://pypi.org/project/xmlschema/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos"
+IUSE="test"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+ <dev-python/elementpath-5[${PYTHON_USEDEP}]
+ >=dev-python/elementpath-4.4.0[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ ${RDEPEND}
+ dev-python/jinja2[${PYTHON_USEDEP}]
+ dev-python/lxml[${PYTHON_USEDEP}]
+ )
+"
+
+python_test() {
+ "${EPYTHON}" tests/test_all.py -v || die "Tests fail with ${EPYTHON}"
+}