summaryrefslogtreecommitdiff
path: root/dev-python
diff options
context:
space:
mode:
authorLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-07-10 18:19:51 +0000
committerLiguros - Gitlab CI/CD [develop] <gitlab@liguros.net>2024-07-10 18:19:51 +0000
commit9acfcb10ddc85aba0512558817fd7287a8eeef01 (patch)
tree629242a2634af6d16804241ed5c6905aa5d083f6 /dev-python
parent23495ecd827bdeb79c2c0f4d206cd2c69b75ff12 (diff)
downloadbaldeagleos-repo-9acfcb10ddc85aba0512558817fd7287a8eeef01.tar.gz
baldeagleos-repo-9acfcb10ddc85aba0512558817fd7287a8eeef01.tar.xz
baldeagleos-repo-9acfcb10ddc85aba0512558817fd7287a8eeef01.zip
Adding metadata
Diffstat (limited to 'dev-python')
-rw-r--r--dev-python/cfn-lint/Manifest1
-rw-r--r--dev-python/cfn-lint/cfn-lint-1.5.2.ebuild70
-rw-r--r--dev-python/colored-traceback/Manifest1
-rw-r--r--dev-python/colored-traceback/colored-traceback-0.4.0.ebuild24
-rw-r--r--dev-python/django/Manifest6
-rw-r--r--dev-python/django/django-3.2.25.ebuild110
-rw-r--r--dev-python/django/django-4.2.13.ebuild101
-rw-r--r--dev-python/django/django-4.2.14.ebuild2
-rw-r--r--dev-python/django/django-5.0.6.ebuild103
-rw-r--r--dev-python/django/django-5.0.7.ebuild2
-rw-r--r--dev-python/django/files/django-3.1-bashcomp.patch56
-rw-r--r--dev-python/django/files/django-3.2.19-py311.patch183
-rw-r--r--dev-python/django/files/django-3.2.20-urlsplit.patch111
-rw-r--r--dev-python/google-api-python-client/Manifest1
-rw-r--r--dev-python/google-api-python-client/google-api-python-client-2.137.0.ebuild50
-rw-r--r--dev-python/imap-tools/Manifest4
-rw-r--r--dev-python/imap-tools/imap-tools-1.7.0.ebuild (renamed from dev-python/imap-tools/imap-tools-1.5.0.ebuild)0
-rw-r--r--dev-python/importlib-resources/files/importlib-resources-6.4.0-be.patch40
-rw-r--r--dev-python/importlib-resources/importlib-resources-6.4.0.ebuild5
-rw-r--r--dev-python/ipython/ipython-8.25.0.ebuild2
-rw-r--r--dev-python/mapbox-earcut/Manifest (renamed from dev-python/mapbox_earcut/Manifest)0
-rw-r--r--dev-python/mapbox-earcut/mapbox-earcut-1.0.1-r1.ebuild (renamed from dev-python/mapbox_earcut/mapbox_earcut-1.0.1-r1.ebuild)0
-rw-r--r--dev-python/mapbox-earcut/metadata.xml (renamed from dev-python/mapbox_earcut/metadata.xml)0
-rw-r--r--dev-python/mypy/mypy-1.10.1.ebuild5
-rw-r--r--dev-python/nanobind/nanobind-2.0.0-r1.ebuild2
-rw-r--r--dev-python/netcdf4/Manifest1
-rw-r--r--dev-python/netcdf4/metadata.xml5
-rw-r--r--dev-python/netcdf4/netcdf4-1.6.5.ebuild56
-rw-r--r--dev-python/netcdf4/netcdf4-1.7.1-r1.ebuild (renamed from dev-python/netcdf4/netcdf4-1.7.1.ebuild)5
-rw-r--r--dev-python/patsy/files/patsy-0.5.6-np2.patch51
-rw-r--r--dev-python/patsy/patsy-0.5.6-r2.ebuild51
-rw-r--r--dev-python/pyopencl/pyopencl-2024.2.7.ebuild2
-rw-r--r--dev-python/pytest-recording/Manifest1
-rw-r--r--dev-python/pytest-recording/pytest-recording-0.13.2.ebuild46
-rw-r--r--dev-python/pytools/Manifest1
-rw-r--r--dev-python/pytools/pytools-2024.1.7.ebuild34
-rw-r--r--dev-python/recurring-ical-events/Manifest1
-rw-r--r--dev-python/recurring-ical-events/recurring-ical-events-2.2.3.ebuild45
-rw-r--r--dev-python/rtree/Manifest2
-rw-r--r--dev-python/rtree/metadata.xml24
-rw-r--r--dev-python/rtree/rtree-1.0.0.ebuild30
-rw-r--r--dev-python/rtree/rtree-1.3.0.ebuild36
-rw-r--r--dev-python/siphash24/Manifest1
-rw-r--r--dev-python/siphash24/metadata.xml9
-rw-r--r--dev-python/siphash24/siphash24-1.6.ebuild29
-rw-r--r--dev-python/spyder/spyder-5.5.4.ebuild2
-rw-r--r--dev-python/spyder/spyder-5.5.5.ebuild2
-rw-r--r--dev-python/spyder/spyder-6.0.0_beta2.ebuild2
-rw-r--r--dev-python/tables/files/tables-3.9.2-numpy-2.patch264
-rw-r--r--dev-python/tables/files/tables-3.9.2-py313.patch73
-rw-r--r--dev-python/tables/tables-3.9.2-r1.ebuild89
-rw-r--r--dev-python/trimesh/trimesh-4.4.0.ebuild6
-rw-r--r--dev-python/trimesh/trimesh-4.4.2.ebuild6
-rw-r--r--dev-python/types-docutils/Manifest1
-rw-r--r--dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild17
-rw-r--r--dev-python/types-setuptools/Manifest1
-rw-r--r--dev-python/types-setuptools/types-setuptools-70.3.0.20240710.ebuild17
-rw-r--r--dev-python/xarray/xarray-2024.6.0-r1.ebuild108
58 files changed, 1149 insertions, 748 deletions
diff --git a/dev-python/cfn-lint/Manifest b/dev-python/cfn-lint/Manifest
index 8000d4689302..ed6936c7f602 100644
--- a/dev-python/cfn-lint/Manifest
+++ b/dev-python/cfn-lint/Manifest
@@ -5,3 +5,4 @@ DIST cfn_lint-1.4.0.tar.gz 2428307 BLAKE2B 43987652c8f12dd24f62f9122b4aebb19edd2
DIST cfn_lint-1.4.2.tar.gz 2485843 BLAKE2B c2e64721b537ab38cad3c3f6d40c509741fb03f61202d7dace4023f4b5b3a7840b7deb88892d9d282d223756a1e3908680ed166cdf216b0c76abdc29d0749967 SHA512 c9761e253ba77198264eabdd9c4e6a290bb9010533628958853c8d5a0f5f7317338f271588b5cef2ac1667f6ed5e1a6e43a3192aa9ff7202b0ca6db061284818
DIST cfn_lint-1.5.0.tar.gz 2404325 BLAKE2B ba8b87334693da5b55365d47403a51922bc4230abe7b4179941c77e02cea6fff0934539cb83438830d71213ee7b8c6d73c6a49bd4ae6c2fb8093d0a2365b8aee SHA512 76513cebaf4e1d04c5846f40aca4be4ca6838c0f06948c8ce38739ef8d4b310c233f2d0a260ec7db8346ae56f0a5a0d1ab8ed618efdc4e03829840e66f3479f8
DIST cfn_lint-1.5.1.tar.gz 2341772 BLAKE2B 00c1801a4f632febaf7a63f3a4b75b1cf21411584672096db56cfe497b83c64991aa049764e9be3bfba593d6ec8c5150f1f06e831de52df68ccc5b74fbe1cf46 SHA512 68acff7ad0532c4b3385ee620506c1391b7e9581663c04d5e763d67d265e05cf96f689dd4cfa9bfebdb0f3ac890835d02d1367900d64fa424ba7bc8bf1fb37a8
+DIST cfn_lint-1.5.2.tar.gz 2353616 BLAKE2B 2f7231c1c0b51668c1994558a6bfac24c250087736d1edab8dc3d266a5503c6298336749fb9e49f8b4953df6dcbe53a028cefde7c122fe942d0974c1f193413c SHA512 36fee3f67566c831224ce00efe2851df6df8f159ad6d843636948de9babfb56bbaa2789cfd6d8373493b482471d9caa046925f4a4d6bc61c5cae62ec8820a9b3
diff --git a/dev-python/cfn-lint/cfn-lint-1.5.2.ebuild b/dev-python/cfn-lint/cfn-lint-1.5.2.ebuild
new file mode 100644
index 000000000000..cb4c0566bc6f
--- /dev/null
+++ b/dev-python/cfn-lint/cfn-lint-1.5.2.ebuild
@@ -0,0 +1,70 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 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.89.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/colored-traceback/Manifest b/dev-python/colored-traceback/Manifest
index 5f9e6ef0eece..6fabe18aa267 100644
--- a/dev-python/colored-traceback/Manifest
+++ b/dev-python/colored-traceback/Manifest
@@ -1 +1,2 @@
DIST colored-traceback-0.3.0.tar.gz 3837 BLAKE2B bf79942de0d0791b567dce21609be87319da11596b90e67018ee74069ea63b072b73778283112f9f52270fef046220eff355993d38f84ecd80d895da0401a010 SHA512 013d779df231295319c29a48fe81a5ddfd1b77b1734dedf630a914bdf0ea89e19a8ec028ae40c55125209e748f4027a74d04ec816f6c6d3c21aca52d2dd58e37
+DIST colored-traceback-0.4.0.tar.gz 4619 BLAKE2B 311c814820397774f466b2da1e64c1016ac4250ab4807b2c0c15bba74cf5c3b9f47fad24f6579de42af5c0c66455109fe5fe4e1611b47df2f7a37e083af23e51 SHA512 a477643ae646d93e4938351077760246d627ce4e2e7fc257dedb1b30a308c6851fbb5c265e168a3179ee60a970c8e3e0936b78ad0770f26a62027ed1b50082d2
diff --git a/dev-python/colored-traceback/colored-traceback-0.4.0.ebuild b/dev-python/colored-traceback/colored-traceback-0.4.0.ebuild
new file mode 100644
index 000000000000..c8faba164c41
--- /dev/null
+++ b/dev-python/colored-traceback/colored-traceback-0.4.0.ebuild
@@ -0,0 +1,24 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Automatically color Python's uncaught exception tracebacks"
+HOMEPAGE="
+ https://github.com/staticshock/colored-traceback.py/
+ https://pypi.org/project/colored-traceback/
+"
+
+LICENSE="ISC"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+
+RDEPEND="
+ dev-python/pygments[${PYTHON_USEDEP}]
+"
diff --git a/dev-python/django/Manifest b/dev-python/django/Manifest
index 2940b328c10c..3ac93beb70d7 100644
--- a/dev-python/django/Manifest
+++ b/dev-python/django/Manifest
@@ -1,11 +1,5 @@
-DIST Django-3.2.25.checksum.txt 2560 BLAKE2B e082c588f4e124c9d71c1914e475fd70ed9b68583d65ea59ba0822b96de36c2edc98b4d9192f3d7c75467306fe03404303f6c2a98a026bdb5308bbd1dee89f99 SHA512 49a1610dcd61cbd322f0a5d7fe3cf249c0c4288b194fc8c2bdf7ec6fb8f92b69ca68dcdb71b79998cd80b978b70f48069669d996b6503261ba726c77c8b87672
-DIST Django-3.2.25.tar.gz 9836336 BLAKE2B 586520e0689b2594dd8ce4abb173418aedfde80cc84012d2a4207cbfc67120cbf405a8dfc8d069bb946f027f0eef22b233bd3b3ce569b01ea8fdc7836a6e530f SHA512 ccba83abd1777123186d685e21b96f41abf216a692d18ffe764d2e519eb9d1f6011d08c86b3affdd891591ca4ed7fee27ffa4750d19b486ca775ee680fdb0cb1
-DIST Django-4.2.13.checksum.txt 2578 BLAKE2B c4dee2c255a77da0655f685852bfac937e6afbfa32c6f5048916675d806c1d9218ff40117c99d7e63ee06b05dd88af4db9460672c3628c948cb17e5ca2f56817 SHA512 0994eef854b991c2db290712aff892e900ef3bab84607e385b4f78e3213b816739e42d5010afaaf30f6c68d5bc52b509b7c6e797e8e87db499a49f75b4cfd232
-DIST Django-4.2.13.tar.gz 10430886 BLAKE2B 09e8743de500f11c32c540d23d9aae1377c83177089732c78c03501dc560fd7b4316d6032534c923c354539421e519ed8439fc09d61500cea479c9eaf115f160 SHA512 2d141e2d710dbd55999db9c7005ca4a8d291dad57f0ef246eb41d4ffed76e62035b36969c5f338c3158ccd2d1677eb23de0b8f783606b4c62a3ee45e8988b712
DIST Django-4.2.14.checksum.txt 2579 BLAKE2B 9cf59d23c8fa0ad9b86f30a492d981a3084c31fd0c7e8ea212c62377385bcb45369ee3f29573c8e129f8d248ca4e94d4c1a4172048b9a9b2f66cc3291e972367 SHA512 c36efc19f8cc90db89dfe3ffaedff724f4b5a049f6def7acb194f8114a2ae519c5c07dea5452c09618629c9d585867de4b028bcef382f43d24f753f4a100c1c6
DIST Django-4.2.14.tar.gz 10432993 BLAKE2B 0139669111f834bcb79fea5fa2bc43386d62a65790fda9d762f8ac4e2a32f2a3740629e31c863b2643fa13b893938c33b066c21f27857f391715b7cec88dfad7 SHA512 2663454c48f57a441d1620faad30ac25750d1e71bf34eddbdef3e6d8dd208913752ab657447ffea5e9d3a0676a4a4d501fa88a40a0ca0fd361df0782a6b3306b
-DIST Django-5.0.6.checksum.txt 2568 BLAKE2B c4c94e1a245248ed59707fb8aeb97a8379e679c50829d0470eefd2f870de32d5b57cb4841ac44809483993bc515514c3e2b0cdf0f1768681a4ba1930e2d278a3 SHA512 231954ae528beff69fbfa385aba192f19d56e862f1a2e5e40ccbba60ce31b59a075af31d75ab9e5767c9405a37f14fd3c5c41e74f60f6b7d6821391a43992301
-DIST Django-5.0.6.tar.gz 10639679 BLAKE2B 2198f273f28f89eb12db481e3531a963e2f5215677f0227d2ce8940cf1c2076acafe9bf1064595b481c6d65fadd7c6d6c7cda5fbbded81a87895e697338c78fd SHA512 6dab32357c423762a4fdd7372aec0ae4855861431fb9a90d4a818144e675cf891c0673a11351ddf8344f31624ce0ea8c9d9c6bc3c4514f38380aecb48a684894
DIST Django-5.0.7.checksum.txt 2569 BLAKE2B 0d4cecf064da9313058606569fcb014c5f3d5ec3c60a5a056cd8242ed9a8349b6d273c38010ba3d41fac85e5551a21748a7739772ad310f8c64224243745eac5 SHA512 9ec2e5e3ac0cb99be9349373c2cf47c6055e0bb729e5bb7e476350cd39595c4c82e7eab9a7eb286a9199834bed65d7f3d31ba59509d6e2e827b0f9c743aa9fcd
DIST Django-5.0.7.tar.gz 10642686 BLAKE2B 559c3e3dd3971081e8572a707f59054ec84d9922493caddec9e008c5e850e8beb7bfbca291e4e7157e94d4fcd655983e3444f1c8f078342c8b66b3e8ce122ab7 SHA512 29aa4cd7bfdc5c00479c9d60d988653bab76dcfd8cd553ab446f6c274f99677ccaef0571b0afdf1579215918f500d87a0b098a98452c7526e89b1ab64f00b037
DIST django-4.2.8-pypy3.patch.xz 5900 BLAKE2B b7dc5c5fc162817a218ee6d025ed8a65559b80e4506e49ac393428c26e2621f9e7c5010b36f2412dea8194a9f1086ab21f97286eabd696c6a786285eb07393cf SHA512 f953b5adbd1364f1d84dde55087ccb493256b1327701275fd2fe99f3cd41751d18e002b6e21afc96892e1671428a6b8f3c2e4b88252c3c278f1a79e286bb73e3
diff --git a/dev-python/django/django-3.2.25.ebuild b/dev-python/django/django-3.2.25.ebuild
deleted file mode 100644
index 10ee91bb3717..000000000000
--- a/dev-python/django/django-3.2.25.ebuild
+++ /dev/null
@@ -1,110 +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_{8,9,10,11,12} )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P^}.tar.gz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-S="${WORKDIR}/${P^}"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~ppc ~ppc64 ~riscv ~sparc x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- >=dev-python/asgiref-3.3.4[${PYTHON_USEDEP}]
- dev-python/pytz[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.2.2[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/jinja[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/selenium[${PYTHON_USEDEP}]
- dev-python/tblib[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20201201 )
-"
-
-PATCHES=(
- "${FILESDIR}"/${PN}-3.1-bashcomp.patch
- "${FILESDIR}"/django-3.2.19-py311.patch
- # needed for Python 3.11
- "${FILESDIR}"/django-3.2.20-urlsplit.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P^}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_prepare_all() {
- # Fails because of warnings
- sed -i 's/test_dumpdata_proxy_with_concrete/_&/' tests/fixtures/tests.py || die
- # TODO: this suddenly started failing
- sed -i -e 's:test_custom_fields:_&:' tests/inspectdb/tests.py || die
-
- distutils-r1_python_prepare_all
-}
-
-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 ||
- 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:2
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-4.2.13.ebuild b/dev-python/django/django-4.2.13.ebuild
deleted file mode 100644
index c52b042721a5..000000000000
--- a/dev-python/django/django-4.2.13.ebuild
+++ /dev/null
@@ -1,101 +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_{8,9,10,11,12} pypy3 )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P^}.tar.gz
- https://dev.gentoo.org/~mgorny/dist/python/django-4.2.8-pypy3.patch.xz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-S="${WORKDIR}/${P^}"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0"
-KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- <dev-python/asgiref-4[${PYTHON_USEDEP}]
- >=dev-python/asgiref-3.6.0[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- dev-python/docutils[${PYTHON_USEDEP}]
- dev-python/jinja[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- dev-python/selenium[${PYTHON_USEDEP}]
- dev-python/tblib[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20230606 )
-"
-
-PATCHES=(
- "${FILESDIR}"/django-4.0-bashcomp.patch
- "${WORKDIR}"/django-4.2.8-pypy3.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P^}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_test() {
- # Tests have non-standard assumptions about PYTHONPATH,
- # and don't work with ${BUILD_DIR}/lib.
- PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
- -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp extras/django_bash_completion ${PN}-admin
- bashcomp_alias ${PN}-admin django-admin.py
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature_header "Additional Backend support can be enabled via:"
- optfeature "MySQL backend support" dev-python/mysqlclient
- optfeature "PostgreSQL backend support" dev-python/psycopg:0
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-4.2.14.ebuild b/dev-python/django/django-4.2.14.ebuild
index 609a2915bdfa..c52b042721a5 100644
--- a/dev-python/django/django-4.2.14.ebuild
+++ b/dev-python/django/django-4.2.14.ebuild
@@ -28,7 +28,7 @@ LICENSE+=" Apache-2.0"
# admin icons, jquery, xregexp.js
LICENSE+=" MIT"
SLOT="0"
-KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86 ~x64-macos"
IUSE="doc sqlite test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/django/django-5.0.6.ebuild b/dev-python/django/django-5.0.6.ebuild
deleted file mode 100644
index 35d6e6723339..000000000000
--- a/dev-python/django/django-5.0.6.ebuild
+++ /dev/null
@@ -1,103 +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_{8,9,10,11,12} pypy3 )
-PYTHON_REQ_USE='sqlite?,threads(+)'
-
-inherit bash-completion-r1 distutils-r1 multiprocessing optfeature verify-sig
-
-DESCRIPTION="High-level Python web framework"
-HOMEPAGE="
- https://www.djangoproject.com/
- https://github.com/django/django/
- https://pypi.org/project/Django/
-"
-SRC_URI="
- https://media.djangoproject.com/releases/$(ver_cut 1-2)/${P^}.tar.gz
- https://dev.gentoo.org/~mgorny/dist/python/django-5.0-pypy3.patch.xz
- verify-sig? ( https://media.djangoproject.com/pgp/${P^}.checksum.txt )
-"
-S="${WORKDIR}/${P^}"
-
-LICENSE="BSD"
-# admin fonts: Roboto (media-fonts/roboto)
-LICENSE+=" Apache-2.0"
-# admin icons, jquery, xregexp.js
-LICENSE+=" MIT"
-SLOT="0"
-KEYWORDS="~alpha amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86 ~x64-macos"
-IUSE="doc sqlite test"
-RESTRICT="!test? ( test )"
-
-RDEPEND="
- <dev-python/asgiref-4[${PYTHON_USEDEP}]
- >=dev-python/asgiref-3.7.0[${PYTHON_USEDEP}]
- >=dev-python/sqlparse-0.3.1[${PYTHON_USEDEP}]
- sys-libs/timezone-data
-"
-BDEPEND="
- test? (
- $(python_gen_impl_dep sqlite)
- ${RDEPEND}
- >=dev-python/docutils-0.19[${PYTHON_USEDEP}]
- >=dev-python/jinja-2.11.0[${PYTHON_USEDEP}]
- dev-python/numpy[${PYTHON_USEDEP}]
- dev-python/pillow[webp,${PYTHON_USEDEP}]
- dev-python/pyyaml[${PYTHON_USEDEP}]
- >=dev-python/selenium-4.8.0[${PYTHON_USEDEP}]
- >=dev-python/tblib-1.5.0[${PYTHON_USEDEP}]
- sys-devel/gettext
- )
- verify-sig? ( >=sec-keys/openpgp-keys-django-20230606 )
-"
-
-PATCHES=(
- "${FILESDIR}"/django-4.0-bashcomp.patch
- "${WORKDIR}"/django-5.0-pypy3.patch
- # https://github.com/django/django/commit/3426a5c33c36266af42128ee9eca4921e68ea876
- "${FILESDIR}"/django-5.0.6-py313.patch
-)
-
-distutils_enable_sphinx docs --no-autodoc
-
-VERIFY_SIG_OPENPGP_KEY_PATH=/usr/share/openpgp-keys/django.asc
-
-src_unpack() {
- if use verify-sig; then
- cd "${DISTDIR}" || die
- verify-sig_verify_signed_checksums \
- "${P^}.checksum.txt" sha256 "${P^}.tar.gz"
- cd "${WORKDIR}" || die
- fi
-
- default
-}
-
-python_test() {
- # Tests have non-standard assumptions about PYTHONPATH,
- # and don't work with ${BUILD_DIR}/lib.
- PYTHONPATH=. "${EPYTHON}" tests/runtests.py --settings=test_sqlite \
- -v2 --parallel="${EPYTEST_JOBS:-$(makeopts_jobs)}" ||
- die "Tests fail with ${EPYTHON}"
-}
-
-python_install_all() {
- newbashcomp extras/django_bash_completion ${PN}-admin
- bashcomp_alias ${PN}-admin django-admin.py
-
- distutils-r1_python_install_all
-}
-
-pkg_postinst() {
- optfeature_header "Additional Backend support can be enabled via:"
- optfeature "MySQL backend support" dev-python/mysqlclient
- optfeature "PostgreSQL backend support" dev-python/psycopg:0
- optfeature_header
- optfeature "GEO Django" "sci-libs/gdal[geos]"
- optfeature "Memcached support" dev-python/pylibmc dev-python/python-memcached
- optfeature "ImageField Support" dev-python/pillow
- optfeature "Password encryption" dev-python/bcrypt
-}
diff --git a/dev-python/django/django-5.0.7.ebuild b/dev-python/django/django-5.0.7.ebuild
index ffca07c83c88..35d6e6723339 100644
--- a/dev-python/django/django-5.0.7.ebuild
+++ b/dev-python/django/django-5.0.7.ebuild
@@ -28,7 +28,7 @@ LICENSE+=" Apache-2.0"
# admin icons, jquery, xregexp.js
LICENSE+=" MIT"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~x64-macos"
+KEYWORDS="~alpha amd64 arm arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc x86 ~x64-macos"
IUSE="doc sqlite test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/django/files/django-3.1-bashcomp.patch b/dev-python/django/files/django-3.1-bashcomp.patch
deleted file mode 100644
index 1652842aaa38..000000000000
--- a/dev-python/django/files/django-3.1-bashcomp.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From e0a8c0663debeb222bf78b97678f60929313b60a Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
-Date: Wed, 6 May 2020 07:24:05 +0200
-Subject: [PATCH] Remove completions unsuitable for autoloading
-
-The override of 'python*' completions, as well as the attempt
-to './manage.py' completion are not going to work with autoloader.
-Strip them.
----
- extras/django_bash_completion | 33 +--------------------------------
- 1 file changed, 1 insertion(+), 32 deletions(-)
-
-diff --git a/extras/django_bash_completion b/extras/django_bash_completion
-index fa77d59aff..dfeb439a2e 100755
---- a/extras/django_bash_completion
-+++ b/extras/django_bash_completion
-@@ -37,35 +37,4 @@ _django_completion()
- DJANGO_AUTO_COMPLETE=1 $1 ) )
- }
- # When the django-admin.py deprecation ends, remove django-admin.py.
--complete -F _django_completion -o default django-admin.py manage.py django-admin
--
--_python_django_completion()
--{
-- if [[ ${COMP_CWORD} -ge 2 ]]; then
-- local PYTHON_EXE=${COMP_WORDS[0]##*/}
-- if echo "$PYTHON_EXE" | grep -qE "python([3-9]\.[0-9])?"; then
-- local PYTHON_SCRIPT=${COMP_WORDS[1]##*/}
-- if echo "$PYTHON_SCRIPT" | grep -qE "manage\.py|django-admin(\.py)?"; then
-- COMPREPLY=( $( COMP_WORDS=( "${COMP_WORDS[*]:1}" )
-- COMP_CWORD=$(( COMP_CWORD-1 ))
-- DJANGO_AUTO_COMPLETE=1 ${COMP_WORDS[*]} ) )
-- fi
-- fi
-- fi
--}
--
--# Support for multiple interpreters.
--unset pythons
--if command -v whereis &>/dev/null; then
-- python_interpreters=$(whereis python | cut -d " " -f 2-)
-- for python in $python_interpreters; do
-- [[ $python != *-config ]] && pythons="${pythons} ${python##*/}"
-- done
-- unset python_interpreters
-- pythons=$(echo "$pythons" | tr " " "\n" | sort -u | tr "\n" " ")
--else
-- pythons=python
--fi
--
--complete -F _python_django_completion -o default $pythons
--unset pythons
-+complete -F _django_completion -o default django-admin.py django-admin
---
-2.28.0
-
diff --git a/dev-python/django/files/django-3.2.19-py311.patch b/dev-python/django/files/django-3.2.19-py311.patch
deleted file mode 100644
index 976537289ff3..000000000000
--- a/dev-python/django/files/django-3.2.19-py311.patch
+++ /dev/null
@@ -1,183 +0,0 @@
-From 2882cf6f184c7578219e2b5266623e82c0e9b8a2 Mon Sep 17 00:00:00 2001
-From: Mariusz Felisiak <felisiak.mariusz@gmail.com>
-Date: Thu, 7 Apr 2022 07:02:21 +0200
-Subject: [PATCH] Refs #33173 -- Fixed test_runner/test_utils tests on Python
- 3.11+.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Python 3.11 uses fully qualified test name in unittest output. See
-https://github.com/python/cpython/commit/755be9b1505af591b9f2ee424a6525b6c2b65ce9
-
-(rebased by Michał Górny)
----
- django/utils/version.py | 1 +
- tests/test_runner/test_debug_sql.py | 30 ++++++++++++++++++-----------
- tests/test_runner/test_parallel.py | 11 ++++++++---
- tests/test_utils/tests.py | 9 +++++++--
- 4 files changed, 35 insertions(+), 16 deletions(-)
-
-diff --git a/django/utils/version.py b/django/utils/version.py
-index 74c327525e..0c2bfc626e 100644
---- a/django/utils/version.py
-+++ b/django/utils/version.py
-@@ -15,6 +15,7 @@ PY37 = sys.version_info >= (3, 7)
- PY38 = sys.version_info >= (3, 8)
- PY39 = sys.version_info >= (3, 9)
- PY310 = sys.version_info >= (3, 10)
-+PY311 = sys.version_info >= (3, 11)
-
-
- def get_version(version=None):
-diff --git a/tests/test_runner/test_debug_sql.py b/tests/test_runner/test_debug_sql.py
-index 0e8e4207d6..2b5fed7a76 100644
---- a/tests/test_runner/test_debug_sql.py
-+++ b/tests/test_runner/test_debug_sql.py
-@@ -4,6 +4,7 @@ from io import StringIO
- from django.db import connection
- from django.test import TestCase
- from django.test.runner import DiscoverRunner
-+from django.utils.version import PY311
-
- from .models import Person
-
-@@ -100,20 +101,27 @@ class TestDebugSQL(unittest.TestCase):
- '''"test_runner_person"."first_name" = 'subtest-fail';'''),
- ]
-
-+ # Python 3.11 uses fully qualified test name in the output.
-+ method_name = ".runTest" if PY311 else ""
-+ test_class_path = "test_runner.test_debug_sql.TestDebugSQL"
- verbose_expected_outputs = [
-- 'runTest (test_runner.test_debug_sql.TestDebugSQL.FailingTest) ... FAIL',
-- 'runTest (test_runner.test_debug_sql.TestDebugSQL.ErrorTest) ... ERROR',
-- 'runTest (test_runner.test_debug_sql.TestDebugSQL.PassingTest) ... ok',
-+ f"runTest ({test_class_path}.FailingTest{method_name}) ... FAIL",
-+ f"runTest ({test_class_path}.ErrorTest{method_name}) ... ERROR",
-+ f"runTest ({test_class_path}.PassingTest{method_name}) ... ok",
- # If there are errors/failures in subtests but not in test itself,
- # the status is not written. That behavior comes from Python.
-- 'runTest (test_runner.test_debug_sql.TestDebugSQL.FailingSubTest) ...',
-- 'runTest (test_runner.test_debug_sql.TestDebugSQL.ErrorSubTest) ...',
-- ('''SELECT COUNT(*) AS "__count" '''
-- '''FROM "test_runner_person" WHERE '''
-- '''"test_runner_person"."first_name" = 'pass';'''),
-- ('''SELECT COUNT(*) AS "__count" '''
-- '''FROM "test_runner_person" WHERE '''
-- '''"test_runner_person"."first_name" = 'subtest-pass';'''),
-+ f"runTest ({test_class_path}.FailingSubTest{method_name}) ...",
-+ f"runTest ({test_class_path}.ErrorSubTest{method_name}) ...",
-+ (
-+ """SELECT COUNT(*) AS "__count" """
-+ """FROM "test_runner_person" WHERE """
-+ """"test_runner_person"."first_name" = 'pass';"""
-+ ),
-+ (
-+ """SELECT COUNT(*) AS "__count" """
-+ """FROM "test_runner_person" WHERE """
-+ """"test_runner_person"."first_name" = 'subtest-pass';"""
-+ ),
- ]
-
- def test_setupclass_exception(self):
-diff --git a/tests/test_runner/test_parallel.py b/tests/test_runner/test_parallel.py
-index c1a89bd0f0..0f1adcf208 100644
---- a/tests/test_runner/test_parallel.py
-+++ b/tests/test_runner/test_parallel.py
-@@ -2,7 +2,7 @@ import unittest
-
- from django.test import SimpleTestCase
- from django.test.runner import RemoteTestResult
--from django.utils.version import PY37
-+from django.utils.version import PY37, PY311
-
- try:
- import tblib
-@@ -78,8 +78,13 @@ class RemoteTestResultTest(SimpleTestCase):
- self.assertEqual(len(events), 4)
-
- event = events[1]
-- self.assertEqual(event[0], 'addSubTest')
-- self.assertEqual(str(event[2]), 'dummy_test (test_runner.test_parallel.SampleFailingSubtest) (index=0)')
-+ self.assertEqual(event[0], "addSubTest")
-+ self.assertEqual(
-+ str(event[2]),
-+ "dummy_test (test_runner.test_parallel.SampleFailingSubtest%s) (index=0)"
-+ # Python 3.11 uses fully qualified test name in the output.
-+ % (".dummy_test" if PY311 else ""),
-+ )
- trailing_comma = '' if PY37 else ','
- self.assertEqual(repr(event[3][1]), "AssertionError('0 != 1'%s)" % trailing_comma)
-
-diff --git a/tests/test_utils/tests.py b/tests/test_utils/tests.py
-index 9255315e98..8f72057afe 100644
---- a/tests/test_utils/tests.py
-+++ b/tests/test_utils/tests.py
-@@ -26,6 +26,7 @@ from django.test.utils import (
- )
- from django.urls import NoReverseMatch, path, reverse, reverse_lazy
- from django.utils.deprecation import RemovedInDjango41Warning
-+from django.utils.version import PY311
-
- from .models import Car, Person, PossessedCar
- from .views import empty_response
-@@ -78,9 +79,11 @@ class SkippingTestCase(SimpleTestCase):
- SkipTestCase('test_foo').test_foo,
- ValueError,
- "skipUnlessDBFeature cannot be used on test_foo (test_utils.tests."
-- "SkippingTestCase.test_skip_unless_db_feature.<locals>.SkipTestCase) "
-+ "SkippingTestCase.test_skip_unless_db_feature.<locals>.SkipTestCase%s) "
- "as SkippingTestCase.test_skip_unless_db_feature.<locals>.SkipTestCase "
- "doesn't allow queries against the 'default' database."
-+ # Python 3.11 uses fully qualified test name in the output.
-+ % (".test_foo" if PY311 else ""),
- )
-
- def test_skip_if_db_feature(self):
-@@ -122,9 +125,11 @@ class SkippingTestCase(SimpleTestCase):
- SkipTestCase('test_foo').test_foo,
- ValueError,
- "skipIfDBFeature cannot be used on test_foo (test_utils.tests."
-- "SkippingTestCase.test_skip_if_db_feature.<locals>.SkipTestCase) "
-+ "SkippingTestCase.test_skip_if_db_feature.<locals>.SkipTestCase%s) "
- "as SkippingTestCase.test_skip_if_db_feature.<locals>.SkipTestCase "
- "doesn't allow queries against the 'default' database."
-+ # Python 3.11 uses fully qualified test name in the output.
-+ % (".test_foo" if PY311 else ""),
- )
-
-
---
-2.40.0
-
-From 0981a4bc273e2a87ad10c602d9547e006e06d8dd Mon Sep 17 00:00:00 2001
-From: Mariusz Felisiak <felisiak.mariusz@gmail.com>
-Date: Fri, 7 Apr 2023 11:07:54 +0200
-Subject: [PATCH] Refs #34118 -- Fixed CustomChoicesTests.test_uuid_unsupported
- on Python 3.11.4+.
-
-https://github.com/python/cpython/commit/5342f5e713e0cc45b6f226d2d053a8cde1b4d68e
-
-Follow up to 38e63c9e61152682f3ff982c85a73793ab6d3267.
----
- tests/model_enums/tests.py | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/tests/model_enums/tests.py b/tests/model_enums/tests.py
-index ffc199ce42..c4ca6c91d7 100644
---- a/tests/model_enums/tests.py
-+++ b/tests/model_enums/tests.py
-@@ -259,7 +259,7 @@ class CustomChoicesTests(SimpleTestCase):
- pass
-
- def test_uuid_unsupported(self):
-- msg = 'UUID objects are immutable'
-- with self.assertRaisesMessage(TypeError, msg):
-+ with self.assertRaises(TypeError):
-+
- class Identifier(uuid.UUID, models.Choices):
- A = '972ce4eb-a95f-4a56-9339-68c208a76f18'
---
-2.40.1
-
diff --git a/dev-python/django/files/django-3.2.20-urlsplit.patch b/dev-python/django/files/django-3.2.20-urlsplit.patch
deleted file mode 100644
index 4883da38c0f5..000000000000
--- a/dev-python/django/files/django-3.2.20-urlsplit.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 74fee3f5cab1481dcb299b6eeaf82f862470bafa Mon Sep 17 00:00:00 2001
-From: mendespedro <windowsxpedro@gmail.com>
-Date: Wed, 15 Dec 2021 11:55:19 -0300
-Subject: [PATCH] Fixed #33367 -- Fixed URLValidator crash in some edge cases.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[backported to 3.2.x by Michał Górny]
----
- django/core/validators.py | 13 +++---
- .../forms_tests/field_tests/test_urlfield.py | 40 +++++++++++++++----
- 2 files changed, 40 insertions(+), 13 deletions(-)
-
-diff --git a/django/core/validators.py b/django/core/validators.py
-index b9b58dfa61..aad21f95ea 100644
---- a/django/core/validators.py
-+++ b/django/core/validators.py
-@@ -111,15 +111,16 @@ class URLValidator(RegexValidator):
- raise ValidationError(self.message, code=self.code, params={'value': value})
-
- # Then check full URL
-+ try:
-+ splitted_url = urlsplit(value)
-+ except ValueError:
-+ raise ValidationError(self.message, code=self.code, params={'value': value})
- try:
- super().__call__(value)
- except ValidationError as e:
- # Trivial case failed. Try for possible IDN domain
- if value:
-- try:
-- scheme, netloc, path, query, fragment = urlsplit(value)
-- except ValueError: # for example, "Invalid IPv6 URL"
-- raise ValidationError(self.message, code=self.code, params={'value': value})
-+ scheme, netloc, path, query, fragment = splitted_url
- try:
- netloc = punycode(netloc) # IDN -> ACE
- except UnicodeError: # invalid domain part
-@@ -130,7 +131,7 @@ class URLValidator(RegexValidator):
- raise
- else:
- # Now verify IPv6 in the netloc part
-- host_match = re.search(r'^\[(.+)\](?::\d{2,5})?$', urlsplit(value).netloc)
-+ host_match = re.search(r'^\[(.+)\](?::\d{1,5})?$', splitted_url.netloc)
- if host_match:
- potential_ip = host_match[1]
- try:
-@@ -142,7 +143,7 @@ class URLValidator(RegexValidator):
- # section 3.1. It's defined to be 255 bytes or less, but this includes
- # one byte for the length of the name and one byte for the trailing dot
- # that's used to indicate absolute names in DNS.
-- if len(urlsplit(value).hostname) > 253:
-+ if splitted_url.hostname is None or len(splitted_url.hostname) > 253:
- raise ValidationError(self.message, code=self.code, params={'value': value})
-
-
-diff --git a/tests/forms_tests/field_tests/test_urlfield.py b/tests/forms_tests/field_tests/test_urlfield.py
-index 19e4351c6a..68b148e7b7 100644
---- a/tests/forms_tests/field_tests/test_urlfield.py
-+++ b/tests/forms_tests/field_tests/test_urlfield.py
-@@ -135,13 +135,39 @@ class URLFieldTest(FormFieldAssertionsMixin, SimpleTestCase):
- def test_urlfield_10(self):
- """URLField correctly validates IPv6 (#18779)."""
- f = URLField()
-- urls = (
-- 'http://[12:34::3a53]/',
-- 'http://[a34:9238::]:8080/',
-- )
-- for url in urls:
-- with self.subTest(url=url):
-- self.assertEqual(url, f.clean(url))
-+ tests = [
-+ 'foo',
-+ 'com.',
-+ '.',
-+ 'http://',
-+ 'http://example',
-+ 'http://example.',
-+ 'http://.com',
-+ 'http://invalid-.com',
-+ 'http://-invalid.com',
-+ 'http://inv-.alid-.com',
-+ 'http://inv-.-alid.com',
-+ '[a',
-+ 'http://[a',
-+ # Non-string.
-+ 23,
-+ # Hangs "forever" before fixing a catastrophic backtracking,
-+ # see #11198.
-+ 'http://%s' % ('X' * 60,),
-+ # A second example, to make sure the problem is really addressed,
-+ # even on domains that don't fail the domain label length check in
-+ # the regex.
-+ 'http://%s' % ("X" * 200,),
-+ # urlsplit() raises ValueError.
-+ '////]@N.AN',
-+ # Empty hostname.
-+ '#@A.bO',
-+ ]
-+ msg = "'Enter a valid URL.'"
-+ for value in tests:
-+ with self.subTest(value=value):
-+ with self.assertRaisesMessage(ValidationError, msg):
-+ f.clean(value)
-
- def test_urlfield_not_string(self):
- f = URLField(required=False)
---
-2.41.0
-
diff --git a/dev-python/google-api-python-client/Manifest b/dev-python/google-api-python-client/Manifest
index 84f739a366f9..f8d9b09c2c68 100644
--- a/dev-python/google-api-python-client/Manifest
+++ b/dev-python/google-api-python-client/Manifest
@@ -1,2 +1,3 @@
DIST google-api-python-client-2.134.0.tar.gz 11393129 BLAKE2B f5339dfa42f621dbdd145295a2c2710ef9e6e2af543ff5b9643bea884f9e0678065999d60cbf150a56e7b0d8c283588c53461c86eeb491a6ba2ad0c553a48344 SHA512 09a137ee3e3d8f38129fc02d8ffed8934daf6cfcd13904692f44038332da026b30d952048148c8c4fe5c4fed3347196574a860f58e1943312d19f6f03a01ab36
DIST google-api-python-client-2.136.0.tar.gz 11443821 BLAKE2B ee313274ec25e1262ad54b800cf524e58400886876d9133b7c6e1d9668e81bce7b73f96511679bcc2a0f565ca9b89c7d6bc7087213e53575542c5e0b5e566ff9 SHA512 e5e8302c71953f0971d3b3159d7689cd76520efa4cee9ca541e78a5fcb14387506963cb20da06ac5760af814ece5ded0bc3942381aa9e96fd6c620eb8933a6ed
+DIST google_api_python_client-2.137.0.tar.gz 11477114 BLAKE2B e0d7e64bfdd86bd882c8762b8d78fcd390152e569ca32df16fcbe91290508565086e4ca7e958d8d48ecaa6d5d23a0b1188b85f6a53004af54139977602c4f72c SHA512 442c08033fb12dbdcab3e45b911a9d43d93a4841369cd14344c9201a40b453d88ce602c3f45d965713ca826bec1f3e333f9425008d1cf1f59b6441283eb09807
diff --git a/dev-python/google-api-python-client/google-api-python-client-2.137.0.ebuild b/dev-python/google-api-python-client/google-api-python-client-2.137.0.ebuild
new file mode 100644
index 000000000000..10fa88d021bb
--- /dev/null
+++ b/dev-python/google-api-python-client/google-api-python-client-2.137.0.ebuild
@@ -0,0 +1,50 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 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/imap-tools/Manifest b/dev-python/imap-tools/Manifest
index d7e67de42161..79976bf96866 100644
--- a/dev-python/imap-tools/Manifest
+++ b/dev-python/imap-tools/Manifest
@@ -1,5 +1,5 @@
-DIST imap-tools-1.5.0.gh.tar.gz 250330 BLAKE2B 16960db2cc62be3f92c6ebc8e06855d3150169c0fd357a4f8b6b8b0cfc0f01267cb2464646fc27631a7461f56f8feecc37bb292134d3f5985f5f064dc70bd764 SHA512 706597dff180935adcf41537b33aa1304ddefd2e1b366640b1102108ad9b778defe2e1fce3efdcc8c0b15e8dcd96ab0400b867815ae60df2965b4be52025035c
DIST imap-tools-1.6.0.gh.tar.gz 252727 BLAKE2B 2d075c2ca41adfcef4253b3085086bd99c08e5cfe7cc9c9b1327adebcd9fd875804da09b57320ed53723a8911f67c6deee58bc11c33a06e034f53bef6580bb05 SHA512 2bcb44232c0f2416e7372ba7336a7029ff2dfc84ad2354149c446df2ec50970be0c315b8612e9ebbd5f49fa9544ce9e9d662f80d2daefd4e15d013e37eb9c061
-EBUILD imap-tools-1.5.0.ebuild 730 BLAKE2B ffa7d1b6169e7bc2b45ae95411db811c3dbf5600e67c82c7d2e99b44aff29289358997ad0b7e49f680463380ad0750c93268d258eb3eccd860270aec20261e77 SHA512 1bf7fe3054092530f4331e70daf304dbff73ee7bbb6738d39c37241234e65a2a5d6d24eceb87730e70321fd93fda9c3196153565c9a08e69f15549372fc223dd
+DIST imap-tools-1.7.0.gh.tar.gz 252739 BLAKE2B ff04de8e6cb1341a5b33faaa94120da3cff57ab37f72a31d4e9a01c2b4a8b4b1294e4c8512a7a52a61fdad6f6011123c8553717cf6f53491f78e2d06ca3c4026 SHA512 080a954d1cb784763963f7f432c379b8560ecc49fc17741b7d37e9d0fa4d20629f6124474620e22791ed8a459039320674a1d9894d5873e03d98a6971ddc7964
EBUILD imap-tools-1.6.0.ebuild 730 BLAKE2B ffa7d1b6169e7bc2b45ae95411db811c3dbf5600e67c82c7d2e99b44aff29289358997ad0b7e49f680463380ad0750c93268d258eb3eccd860270aec20261e77 SHA512 1bf7fe3054092530f4331e70daf304dbff73ee7bbb6738d39c37241234e65a2a5d6d24eceb87730e70321fd93fda9c3196153565c9a08e69f15549372fc223dd
+EBUILD imap-tools-1.7.0.ebuild 730 BLAKE2B ffa7d1b6169e7bc2b45ae95411db811c3dbf5600e67c82c7d2e99b44aff29289358997ad0b7e49f680463380ad0750c93268d258eb3eccd860270aec20261e77 SHA512 1bf7fe3054092530f4331e70daf304dbff73ee7bbb6738d39c37241234e65a2a5d6d24eceb87730e70321fd93fda9c3196153565c9a08e69f15549372fc223dd
MISC metadata.xml 447 BLAKE2B 59e17459538187a7c9da7fbe7283f25c5131bf3188563709971176266ee42c8e27cdbf744cab7fe77c9b81b618c1246feb6450e969fb2bbe8ec996958315d158 SHA512 2d90e11910d114c0a84231c76b0103e3f4f7187294c68eb1542d396b0122baf3b066813fa95fd9386a6fbaeb778e43e8cc095747aeb7012d26d355c99e2e06ad
diff --git a/dev-python/imap-tools/imap-tools-1.5.0.ebuild b/dev-python/imap-tools/imap-tools-1.7.0.ebuild
index 40545998dd31..40545998dd31 100644
--- a/dev-python/imap-tools/imap-tools-1.5.0.ebuild
+++ b/dev-python/imap-tools/imap-tools-1.7.0.ebuild
diff --git a/dev-python/importlib-resources/files/importlib-resources-6.4.0-be.patch b/dev-python/importlib-resources/files/importlib-resources-6.4.0-be.patch
new file mode 100644
index 000000000000..a4c20249af4f
--- /dev/null
+++ b/dev-python/importlib-resources/files/importlib-resources-6.4.0-be.patch
@@ -0,0 +1,40 @@
+From 3167e4b9de35ea3010d84429b7eafb9a7c2afbb4 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Wed, 10 Jul 2024 07:33:47 +0200
+Subject: [PATCH] Fix functional API tests to be endian-agnostic
+
+Fix the "backslashreplace" tests for the functional API to be
+endian-agnostic. The tests used to rely on `.encode("utf-16")`
+producing the same data as found in the test file. However, on big
+endian platforms it would produce a big endian encoding, while the test
+file is little endian. To avoid the problem, explicitly specify
+`utf-16-le` encoding. Since this meant that the BOM is no longer
+produced, explicitly include it in input.
+
+Fixes #312
+---
+ importlib_resources/tests/test_functional.py | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/importlib_resources/tests/test_functional.py b/importlib_resources/tests/test_functional.py
+index 69706cf..255bd13 100644
+--- a/importlib_resources/tests/test_functional.py
++++ b/importlib_resources/tests/test_functional.py
+@@ -82,7 +82,7 @@ def test_read_text(self):
+ 'utf-16.file',
+ errors='backslashreplace',
+ ),
+- 'Hello, UTF-16 world!\n'.encode('utf-16').decode(
++ '\ufeffHello, UTF-16 world!\n'.encode('utf-16-le').decode(
+ errors='backslashreplace',
+ ),
+ )
+@@ -130,7 +130,7 @@ def test_open_text(self):
+ ) as f:
+ self.assertEqual(
+ f.read(),
+- 'Hello, UTF-16 world!\n'.encode('utf-16').decode(
++ '\ufeffHello, UTF-16 world!\n'.encode('utf-16-le').decode(
+ errors='backslashreplace',
+ ),
+ )
diff --git a/dev-python/importlib-resources/importlib-resources-6.4.0.ebuild b/dev-python/importlib-resources/importlib-resources-6.4.0.ebuild
index 5e10aed7404b..ad0db1bcd555 100644
--- a/dev-python/importlib-resources/importlib-resources-6.4.0.ebuild
+++ b/dev-python/importlib-resources/importlib-resources-6.4.0.ebuild
@@ -28,3 +28,8 @@ BDEPEND="
"
distutils_enable_tests unittest
+
+PATCHES=(
+ # https://github.com/python/importlib_resources/pull/313
+ "${FILESDIR}/${P}-be.patch"
+)
diff --git a/dev-python/ipython/ipython-8.25.0.ebuild b/dev-python/ipython/ipython-8.25.0.ebuild
index af6c2290b4e2..c06942db625c 100644
--- a/dev-python/ipython/ipython-8.25.0.ebuild
+++ b/dev-python/ipython/ipython-8.25.0.ebuild
@@ -18,7 +18,7 @@ HOMEPAGE="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
+KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~ia64 ~loong ppc ppc64 ~riscv ~s390 sparc x86 ~arm64-macos ~x64-macos"
IUSE="examples notebook nbconvert qt5 +smp test"
RESTRICT="!test? ( test )"
diff --git a/dev-python/mapbox_earcut/Manifest b/dev-python/mapbox-earcut/Manifest
index c972a5a3bb86..c972a5a3bb86 100644
--- a/dev-python/mapbox_earcut/Manifest
+++ b/dev-python/mapbox-earcut/Manifest
diff --git a/dev-python/mapbox_earcut/mapbox_earcut-1.0.1-r1.ebuild b/dev-python/mapbox-earcut/mapbox-earcut-1.0.1-r1.ebuild
index 9fc282465da5..9fc282465da5 100644
--- a/dev-python/mapbox_earcut/mapbox_earcut-1.0.1-r1.ebuild
+++ b/dev-python/mapbox-earcut/mapbox-earcut-1.0.1-r1.ebuild
diff --git a/dev-python/mapbox_earcut/metadata.xml b/dev-python/mapbox-earcut/metadata.xml
index 853174b8f2ab..853174b8f2ab 100644
--- a/dev-python/mapbox_earcut/metadata.xml
+++ b/dev-python/mapbox-earcut/metadata.xml
diff --git a/dev-python/mypy/mypy-1.10.1.ebuild b/dev-python/mypy/mypy-1.10.1.ebuild
index 24c0486b2860..3d6616e153a7 100644
--- a/dev-python/mypy/mypy-1.10.1.ebuild
+++ b/dev-python/mypy/mypy-1.10.1.ebuild
@@ -63,14 +63,15 @@ PATCHES=(
# test files (https://github.com/mypyc/mypyc/issues/1014)
export CCACHE_DISABLE=1
-src_compile() {
+python_compile() {
local -x MYPY_USE_MYPYC=$(usex native-extensions 1 0)
case ${EPYTHON} in
python3.13)
# https://github.com/mypyc/mypyc/issues/1056
MYPY_USE_MYPYC=0
+ ;;
esac
- distutils-r1_src_compile
+ distutils-r1_python_compile
}
python_test() {
diff --git a/dev-python/nanobind/nanobind-2.0.0-r1.ebuild b/dev-python/nanobind/nanobind-2.0.0-r1.ebuild
index 9aa8bec468a8..45a5d845329d 100644
--- a/dev-python/nanobind/nanobind-2.0.0-r1.ebuild
+++ b/dev-python/nanobind/nanobind-2.0.0-r1.ebuild
@@ -20,7 +20,7 @@ SRC_URI="
LICENSE="BSD"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~riscv"
RDEPEND=">=dev-cpp/robin-map-1.3.0"
DEPEND="${RDEPEND}"
diff --git a/dev-python/netcdf4/Manifest b/dev-python/netcdf4/Manifest
index 4bfb7a2252a8..cfcb9ed6d7f8 100644
--- a/dev-python/netcdf4/Manifest
+++ b/dev-python/netcdf4/Manifest
@@ -1,2 +1 @@
-DIST netCDF4-1.6.5.tar.gz 764969 BLAKE2B 6337099fbb66a53f2cda7a39e1b0dbb7b3ab9e6ec04177fc0deca1c86003bc20d9ed5d6ba72d5917766c1b9784c39c7cff328a7b5494aeb46bcc1ac895c13e7c SHA512 10f9b62399cf2d155f44b56d6d0f15950f610e855755bcb6d7d1756ded9ed513e83677ab70f7bc75eaffaca1703f37cc0a48c565927df7eb67beeb5a0be6f8d0
DIST netcdf4-1.7.1.tar.gz 827831 BLAKE2B a0b6956be7749133f4823f385ea82b84975985814b90e7172ecbfb6d4590cf0809471672375a2331181735d7af622f6302adf2dad5fd95f09e24078bbdc20581 SHA512 69b7465f1d7b138b9f2f18732528207c7a573e0a5637c964a881fddc8f01a53b16c7250c22824a6ee0e3383dccd7f93b1971f95a9d1558d6088709efa7558ce7
diff --git a/dev-python/netcdf4/metadata.xml b/dev-python/netcdf4/metadata.xml
index e9074c2ff151..b347abf0342d 100644
--- a/dev-python/netcdf4/metadata.xml
+++ b/dev-python/netcdf4/metadata.xml
@@ -17,5 +17,10 @@
should be familiar to users of that module.
</longdescription>
+ <use>
+ <flag name="blosc">
+ Allow using blosc compression via <pkg>dev-libs/c-blosc</pkg>
+ </flag>
+ </use>
<origin>gentoo-staging</origin>
</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/netcdf4/netcdf4-1.6.5.ebuild b/dev-python/netcdf4/netcdf4-1.6.5.ebuild
deleted file mode 100644
index 23b4da2494ef..000000000000
--- a/dev-python/netcdf4/netcdf4-1.6.5.ebuild
+++ /dev/null
@@ -1,56 +0,0 @@
-# Copyright 1999-2023 Gentoo Authors
-# Distributed under the terms of the GNU General Public License v2
-
-EAPI=8
-
-DISTUTILS_EXT=1
-DISTUTILS_USE_PEP517=setuptools
-PYPI_NO_NORMALIZE=1
-PYPI_PN=netCDF4
-PYTHON_COMPAT=( python3_{8,9,10,11,12} )
-
-inherit distutils-r1 optfeature pypi
-
-DESCRIPTION="Python/numpy interface to the netCDF C library"
-HOMEPAGE="
- https://unidata.github.io/netcdf4-python/
- https://github.com/unidata/netcdf4-python/
- https://pypi.org/project/netCDF4/
-"
-
-LICENSE="MIT"
-SLOT="0"
-KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="test"
-RESTRICT="!test? ( test )"
-
-DEPEND="
- dev-python/numpy[${PYTHON_USEDEP}]
- sci-libs/hdf5:=
- sci-libs/netcdf:=[hdf5]
-"
-RDEPEND="
- ${DEPEND}
- dev-python/certifi[${PYTHON_USEDEP}]
- dev-python/cftime[${PYTHON_USEDEP}]
-"
-BDEPEND="
- dev-python/cython[${PYTHON_USEDEP}]
- test? (
- ${RDEPEND}
- dev-python/packaging[${PYTHON_USEDEP}]
- sci-libs/netcdf[tools(+)]
- )
-"
-
-python_test() {
- local -x NO_NET=1
- cd test || die
- "${EPYTHON}" run_all.py || die
-}
-
-pkg_postinst() {
- optfeature "HDF4 support" sci-libs/hdf "sci-libs/netcdf[hdf]"
- optfeature "MPI parallel IO support" "sci-libs/hdf5[mpi]" "sci-libs/netcdf[mpi]"
- optfeature "OPeNDAP support" net-misc/curl "sci-libs/netcdf[dap]"
-}
diff --git a/dev-python/netcdf4/netcdf4-1.7.1.ebuild b/dev-python/netcdf4/netcdf4-1.7.1-r1.ebuild
index 090b298a7a96..07571a049868 100644
--- a/dev-python/netcdf4/netcdf4-1.7.1.ebuild
+++ b/dev-python/netcdf4/netcdf4-1.7.1-r1.ebuild
@@ -20,13 +20,13 @@ HOMEPAGE="
LICENSE="MIT"
SLOT="0"
KEYWORDS="~amd64 ~arm64 ~x86 ~amd64-linux ~x86-linux"
-IUSE="test"
+IUSE="blosc bzip2 mpi test szip zstd"
RESTRICT="!test? ( test )"
DEPEND="
dev-python/numpy[${PYTHON_USEDEP}]
sci-libs/hdf5:=
- sci-libs/netcdf:=[hdf5]
+ sci-libs/netcdf:=[blosc(-)=,bzip2(-)=,hdf5,mpi=,szip=,zstd(-)=]
"
RDEPEND="
${DEPEND}
@@ -50,6 +50,5 @@ python_test() {
pkg_postinst() {
optfeature "HDF4 support" sci-libs/hdf "sci-libs/netcdf[hdf]"
- optfeature "MPI parallel IO support" "sci-libs/hdf5[mpi]" "sci-libs/netcdf[mpi]"
optfeature "OPeNDAP support" net-misc/curl "sci-libs/netcdf[dap]"
}
diff --git a/dev-python/patsy/files/patsy-0.5.6-np2.patch b/dev-python/patsy/files/patsy-0.5.6-np2.patch
new file mode 100644
index 000000000000..169eadb851fe
--- /dev/null
+++ b/dev-python/patsy/files/patsy-0.5.6-np2.patch
@@ -0,0 +1,51 @@
+diff --git a/patsy/highlevel.py b/patsy/highlevel.py
+index 78d2942..298739d 100644
+--- a/patsy/highlevel.py
++++ b/patsy/highlevel.py
+@@ -178,7 +178,7 @@ def _do_highlevel_design(formula_like, data, eval_env,
+ else:
+ # subok=True is necessary here to allow DesignMatrixes to pass
+ # through
+- (lhs, rhs) = (None, asarray_or_pandas(formula_like, subok=True))
++ (lhs, rhs) = (None, asarray_or_pandas(formula_like, subok=True, copy=None))
+ # some sort of explicit matrix or matrices were given. Currently we
+ # have them in one of these forms:
+ # -- an ndarray or subclass
+diff --git a/patsy/state.py b/patsy/state.py
+index 933c588..c489a4b 100644
+--- a/patsy/state.py
++++ b/patsy/state.py
+@@ -103,7 +103,7 @@ class Center(object):
+ pass
+
+ def transform(self, x):
+- x = asarray_or_pandas(x)
++ x = asarray_or_pandas(x, copy=None)
+ # This doesn't copy data unless our input is a DataFrame that has
+ # heterogeneous types. And in that case we're going to be munging the
+ # types anyway, so copying isn't a big deal.
+diff --git a/patsy/util.py b/patsy/util.py
+index 3116e11..7ac6f79 100644
+--- a/patsy/util.py
++++ b/patsy/util.py
+@@ -69,7 +69,7 @@ def asarray_or_pandas(a, copy=False, dtype=None, subok=False):
+
+ def test_asarray_or_pandas():
+ import warnings
+- assert type(asarray_or_pandas([1, 2, 3])) is np.ndarray
++ assert type(asarray_or_pandas([1, 2, 3], copy=True)) is np.ndarray
+ with warnings.catch_warnings() as w:
+ warnings.filterwarnings('ignore', 'the matrix subclass',
+ PendingDeprecationWarning)
+@@ -83,9 +83,9 @@ def test_asarray_or_pandas():
+ assert np.array_equal(a, a_copy)
+ a_copy[0] = 100
+ assert not np.array_equal(a, a_copy)
+- assert np.allclose(asarray_or_pandas([1, 2, 3], dtype=float),
++ assert np.allclose(asarray_or_pandas([1, 2, 3], dtype=float, copy=None),
+ [1.0, 2.0, 3.0])
+- assert asarray_or_pandas([1, 2, 3], dtype=float).dtype == np.dtype(float)
++ assert asarray_or_pandas([1, 2, 3], dtype=float, copy=None).dtype == np.dtype(float)
+ a_view = asarray_or_pandas(a, dtype=a.dtype)
+ a_view[0] = 99
+ assert a[0] == 99
diff --git a/dev-python/patsy/patsy-0.5.6-r2.ebuild b/dev-python/patsy/patsy-0.5.6-r2.ebuild
new file mode 100644
index 000000000000..a07678f094d0
--- /dev/null
+++ b/dev-python/patsy/patsy-0.5.6-r2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Python module to describe statistical models and design matrices"
+HOMEPAGE="
+ https://patsy.readthedocs.io/en/latest/index.html
+ https://github.com/pydata/patsy/
+ https://pypi.org/project/patsy/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux"
+
+RDEPEND="
+ dev-python/numpy[${PYTHON_USEDEP}]
+ dev-python/six[${PYTHON_USEDEP}]
+ !hppa? (
+ dev-python/scipy[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+PATCHES=(
+ # https://github.com/pydata/patsy/issues/210
+ # ([probably] non-upstreamable hack)
+ "${FILESDIR}/${P}-np2.patch"
+)
+
+python_test() {
+ local EPYTEST_DESELECT=()
+
+ case ${EPYTHON} in
+ python3.13)
+ EPYTEST_DESELECT+=(
+ patsy/eval.py::test_EvalEnvironment_eq
+ )
+ ;;
+ esac
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/pyopencl/pyopencl-2024.2.7.ebuild b/dev-python/pyopencl/pyopencl-2024.2.7.ebuild
index be683f0bea90..c9599985a413 100644
--- a/dev-python/pyopencl/pyopencl-2024.2.7.ebuild
+++ b/dev-python/pyopencl/pyopencl-2024.2.7.ebuild
@@ -17,7 +17,7 @@ HOMEPAGE="
LICENSE="GPL-2"
SLOT="0"
-KEYWORDS="~amd64"
+KEYWORDS="~amd64 ~riscv"
IUSE="examples opengl"
# Running tests on GPUs requires both appropriate hardware and additional permissions
diff --git a/dev-python/pytest-recording/Manifest b/dev-python/pytest-recording/Manifest
index ee9bd183e1f4..b244968a18c2 100644
--- a/dev-python/pytest-recording/Manifest
+++ b/dev-python/pytest-recording/Manifest
@@ -1 +1,2 @@
DIST pytest_recording-0.13.1.tar.gz 24987 BLAKE2B 70c7d65823e1a6507353dcab61659a4fe05a4f3d81471dfa3818ca34f6b6c1c22444ee6c1d04b67e87db93ffba63e8bf091beb7d3f60723bc1f7fa8dfde641cd SHA512 1f815b45361165a9fa2655c0cfb5a69193a556e748dc5d69aac0f49a36e943a60a990c3f503a29aae58f9409661f5f47041a30766fb1b5276789eec255b1556b
+DIST pytest_recording-0.13.2.tar.gz 25270 BLAKE2B b11a4504ec92e5ddeb53d447224cb595d0e2a1cb3ac09e76eafffc8fa8884df07ffc1b739d15095bb4023161bf6b3f45f86e2a912c86649584976a0c786984f9 SHA512 b93b40d8a843a23c7f9d3fe6c9a4076c5d43cdc4439926f641b2a5b1831fb3cdb5511594e4c2e3268bda564c0d56bdd9167a8f2b8a0cac767266e41047ea1c8c
diff --git a/dev-python/pytest-recording/pytest-recording-0.13.2.ebuild b/dev-python/pytest-recording/pytest-recording-0.13.2.ebuild
new file mode 100644
index 000000000000..700030ea88d0
--- /dev/null
+++ b/dev-python/pytest-recording/pytest-recording-0.13.2.ebuild
@@ -0,0 +1,46 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=hatchling
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="A pytest plugin to record network interactions via VCR.py"
+HOMEPAGE="
+ https://pypi.org/project/pytest-recording/
+ https://github.com/kiwicom/pytest-recording/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64"
+
+RDEPEND="
+ >=dev-python/pytest-3.5.0[${PYTHON_USEDEP}]
+ >=dev-python/vcrpy-2.0.1[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ dev-python/pytest-httpbin[${PYTHON_USEDEP}]
+ dev-python/pytest-mock[${PYTHON_USEDEP}]
+ dev-python/requests[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+python_test () {
+ local EPYTEST_DESELECT=(
+ # Internet
+ # https://github.com/kiwicom/pytest-recording/issues/131
+ tests/test_blocking_network.py::test_block_network_with_allowed_hosts
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ local -x PYTEST_PLUGINS=pytest_recording.plugin
+ PYTEST_PLUGINS+=,pytest_httpbin.plugin,pytest_mock
+ epytest
+}
diff --git a/dev-python/pytools/Manifest b/dev-python/pytools/Manifest
index de282a6bf6a5..f1cad9524054 100644
--- a/dev-python/pytools/Manifest
+++ b/dev-python/pytools/Manifest
@@ -1,2 +1,3 @@
DIST pytools-2024.1.5.tar.gz 80774 BLAKE2B 37e9e14d5a62cdad34ddbfd0eabec747c392ba1506aacc76322f090699192369915882ba948fa07cd7a45369d3391343d9b2554def851e844976bc0442ddcfb6 SHA512 af7b79f1e26a43459765627ce6e6740953c38e05e26f3ec17360ccdf588ac320eabb5540fbbf9570cde324b8aae2412878316e9930e5195f467dbf5b74ca76b8
DIST pytools-2024.1.6.tar.gz 81344 BLAKE2B ff68e2606170bf54e3f609ee7f4cfe58e063f43dcfb2706d5ed7659ea2fde863e6315d0d81dff2e62a3378f195413561a927b0c1e7bedc06388cf4893c07b873 SHA512 a9e934f1cbaf0ace32420f9b74224a06ce8421ee291b837292133969c6788c4cc8bea01446cd4d1505aca9fa81e8ae0d3eacf60d3285186e66d67d5abe10ce3e
+DIST pytools-2024.1.7.tar.gz 82211 BLAKE2B 07da2dbd2d19ec11a481f71aac1273f64e3eb00483b1a633d42a08e36aa8d76e0cae0235538f58d0c2acf12079544b168a97d78c9aa1d3421525e6fe47f1db82 SHA512 9833cf5c3b72cb89bf25dde5f15c5970db5dd86e1eaf1dbfb8e7024ac0854fa200f6bb64f8ebd346998c4ca792ee0dca898b0de0f839445c64e2279dcc771788
diff --git a/dev-python/pytools/pytools-2024.1.7.ebuild b/dev-python/pytools/pytools-2024.1.7.ebuild
new file mode 100644
index 000000000000..40d671010f10
--- /dev/null
+++ b/dev-python/pytools/pytools-2024.1.7.ebuild
@@ -0,0 +1,34 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+PYTHON_REQ_USE='sqlite'
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Collection of tools missing from the Python standard library"
+HOMEPAGE="
+ https://mathema.tician.de/software/pytools/
+ https://github.com/inducer/pytools/
+ https://pypi.org/project/pytools/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+# NB: numpy is now an "extra" (optional) dep -- we can remove it from
+# RDEPEND If revdeps don't need it
+RDEPEND="
+ >=dev-python/numpy-1.6[${PYTHON_USEDEP}]
+ >=dev-python/platformdirs-2.2[${PYTHON_USEDEP}]
+ >=dev-python/siphash24-1.6[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4[${PYTHON_USEDEP}]
+ ' 3.10)
+"
+
+distutils_enable_tests pytest
diff --git a/dev-python/recurring-ical-events/Manifest b/dev-python/recurring-ical-events/Manifest
index 729d6fb052a4..422fa97146f4 100644
--- a/dev-python/recurring-ical-events/Manifest
+++ b/dev-python/recurring-ical-events/Manifest
@@ -1,2 +1,3 @@
DIST python-recurring-ical-events-2.2.1.gh.tar.gz 332458 BLAKE2B 337823e2a98c43015ffd7e848ab4fe43429f787ceb8ff262dca9d73668a785d6245f9e64779c900f1a84a2d7713832621d42044309f38c44bba79fc2853d066f SHA512 1bd6337b5b8670b2c587d54eae26291c381adba76c38e21a937db8a16480d9b4c6eaddda6660fd0c345f67e38ed4f7cfe9e528ecce3686bce9659f4ef30d278c
DIST python-recurring-ical-events-2.2.2.gh.tar.gz 335683 BLAKE2B 1cad8f90f5dcf9e84ac7688e15b8535aaef0c00a0e65a036ef7f38e1b030cc4c017247149d8ef9d099a28a919d015603ebb71c18a44b8bbf26f3f4c3eefbf942 SHA512 0429a344c70c1a844ed2705112776971413e4ed61a54ccb665f0246b208416ad2ce855ff31766bd628439d08432bf4fea8cbf43f878c35835ba6b137bffa3b85
+DIST python-recurring-ical-events-2.2.3.gh.tar.gz 337134 BLAKE2B 6a119c427e176c92f822186aa910eb133f04157069f7a4e632c0b784ab5e71ae37584ceaddf1d0a6d533854d790322130964222eaa00948c6af2bae89491ef00 SHA512 569a21056947d19d85cbf93e02b3fb9236163535d478188a6cdb5b5d7a5e3b460ecf41ac3a2b858e446273aba5d8c5a9b69eebbb3f32ce453e2ee90a31ed1acf
diff --git a/dev-python/recurring-ical-events/recurring-ical-events-2.2.3.ebuild b/dev-python/recurring-ical-events/recurring-ical-events-2.2.3.ebuild
new file mode 100644
index 000000000000..f2dcb9da25ef
--- /dev/null
+++ b/dev-python/recurring-ical-events/recurring-ical-events-2.2.3.ebuild
@@ -0,0 +1,45 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1
+
+MY_P=python-${P}
+DESCRIPTION="Repeat ICalendar events by RRULE, RDATE and EXDATE"
+HOMEPAGE="
+ https://github.com/niccokunzmann/python-recurring-ical-events/
+ https://pypi.org/project/recurring-ical-events/
+"
+SRC_URI="
+ https://github.com/niccokunzmann/python-recurring-ical-events/archive/v${PV}.tar.gz
+ -> ${MY_P}.gh.tar.gz
+"
+S=${WORKDIR}/${MY_P}
+
+LICENSE="LGPL-3+"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ <dev-python/icalendar-7[${PYTHON_USEDEP}]
+ >=dev-python/icalendar-5.0.9[${PYTHON_USEDEP}]
+ >=dev-python/python-dateutil-2.8.1[${PYTHON_USEDEP}]
+ <dev-python/x-wr-timezone-1.0.0[${PYTHON_USEDEP}]
+ >=dev-python/x-wr-timezone-0.0.5[${PYTHON_USEDEP}]
+"
+BDEPEND="
+ test? (
+ >=dev-python/icalendar-6[${PYTHON_USEDEP}]
+ >=dev-python/pytz-2023.3[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_tests pytest
+
+EPYTEST_IGNORE=(
+ test/test_readme.py
+)
diff --git a/dev-python/rtree/Manifest b/dev-python/rtree/Manifest
new file mode 100644
index 000000000000..0fac7140604c
--- /dev/null
+++ b/dev-python/rtree/Manifest
@@ -0,0 +1,2 @@
+DIST Rtree-1.0.0.tar.gz 48837 BLAKE2B 60e516155e7e48158494b7ea4720dc71ece2111fb94e320976a6dd691d2458b8586c2bf8109a37d86db211ac342d77877b435bdb54627a94c898642e8520a071 SHA512 9a414cd65b27ba35313dd7185dece83f5d7235867f6f0c72c2902d7ffd72808138dbf30d8fe11c8bbf0ec463072e5f6112d75b5fdd5a1dab7720c56d3632d576
+DIST rtree-1.3.0.tar.gz 48190 BLAKE2B 1a9ed3617ca14e3a88e5800e871e3d3edd58bc31d5dcad3c30a4a3a51b44678beacfddc1c72cbd984139e8e9acfffda45cc478857dacba5b44e7775f29ef890f SHA512 28810b769d90914e5aea9ea0b7f27b946c8d19495965696624d4fdd94c6ad462eb5ce7004d2c41e017d14a69bc913f43fdcef5293abe8504b66d8dcd5f4955a2
diff --git a/dev-python/rtree/metadata.xml b/dev-python/rtree/metadata.xml
new file mode 100644
index 000000000000..c27b56f54e6f
--- /dev/null
+++ b/dev-python/rtree/metadata.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>3dprint@gentoo.org</email>
+ <name>Gentoo 3D Printer Project</name>
+ </maintainer>
+ <maintainer type="person">
+ <email>andrewammerlaan@gentoo.org</email>
+ <name>Andrew Ammerlaan</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ <name>Python</name>
+ </maintainer>
+ <longdescription>
+ Rtree is a ctypes Python wrapper of libspatialindex that provides a number of advanced spatial indexing
+ features for the spatially curious Python user.
+ </longdescription>
+ <upstream>
+ <bugs-to>https://github.com/Toblerity/rtree/issues</bugs-to>
+ </upstream>
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/rtree/rtree-1.0.0.ebuild b/dev-python/rtree/rtree-1.0.0.ebuild
new file mode 100644
index 000000000000..1a9f5236a094
--- /dev/null
+++ b/dev-python/rtree/rtree-1.0.0.ebuild
@@ -0,0 +1,30 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYPI_PN=${PN^}
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="R-Tree spatial index for Python GIS"
+HOMEPAGE="https://rtree.readthedocs.io"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="amd64 arm64 ~x86"
+
+RDEPEND="
+ sci-libs/libspatialindex
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? ( dev-python/numpy[${PYTHON_USEDEP}] )
+"
+
+distutils_enable_sphinx docs/source
+distutils_enable_tests pytest
diff --git a/dev-python/rtree/rtree-1.3.0.ebuild b/dev-python/rtree/rtree-1.3.0.ebuild
new file mode 100644
index 000000000000..63a72d333c22
--- /dev/null
+++ b/dev-python/rtree/rtree-1.3.0.ebuild
@@ -0,0 +1,36 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+DISTUTILS_USE_PEP517=setuptools
+PYPI_PN=${PN^}
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="R-Tree spatial index for Python GIS"
+HOMEPAGE="
+ https://rtree.readthedocs.io/
+ https://github.com/Toblerity/rtree/
+ https://pypi.org/project/Rtree/
+"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~x86"
+
+RDEPEND="
+ sci-libs/libspatialindex
+ dev-python/typing-extensions[${PYTHON_USEDEP}]
+"
+
+BDEPEND="
+ test? (
+ dev-python/numpy[${PYTHON_USEDEP}]
+ )
+"
+
+distutils_enable_sphinx docs/source \
+ dev-python/sphinx-issues
+distutils_enable_tests pytest
diff --git a/dev-python/siphash24/Manifest b/dev-python/siphash24/Manifest
new file mode 100644
index 000000000000..8e1b28ee7ad9
--- /dev/null
+++ b/dev-python/siphash24/Manifest
@@ -0,0 +1 @@
+DIST siphash24-1.6.tar.gz 19659 BLAKE2B d2f454ab64b7c50bd415a5821ce50fd97b43d9c13999d134b260a1a19863bf827a4baf4599b0647b5f936ec27d9f1985f94fd3adc4fa5112f2f7ad03afac5abb SHA512 2a04c35445e63f00e440797a84ed1714b5576ad3fa4c4933e5199ce3322056188eca0c0947ae4370fce9a2028a7677c9c8bfcf771be1dde884b7a02ef1edeb65
diff --git a/dev-python/siphash24/metadata.xml b/dev-python/siphash24/metadata.xml
new file mode 100644
index 000000000000..7ad11570cc7d
--- /dev/null
+++ b/dev-python/siphash24/metadata.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>python@gentoo.org</email>
+ </maintainer>
+
+ <origin>gentoo-staging</origin>
+</pkgmetadata> \ No newline at end of file
diff --git a/dev-python/siphash24/siphash24-1.6.ebuild b/dev-python/siphash24/siphash24-1.6.ebuild
new file mode 100644
index 000000000000..536bb818b748
--- /dev/null
+++ b/dev-python/siphash24/siphash24-1.6.ebuild
@@ -0,0 +1,29 @@
+# Copyright 2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=meson-python
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Streaming-capable SipHash-1-3 and SipHash-2-4 Implementation"
+HOMEPAGE="
+ https://github.com/dnicolodi/python-siphash24/
+ https://pypi.org/project/siphash24/
+"
+
+LICENSE="|| ( Apache-2.0 LGPL-2.1+ )"
+SLOT="0"
+KEYWORDS="~amd64 ~arm64 ~riscv"
+
+DEPEND="
+ dev-libs/c-siphash
+"
+BDEPEND="
+ >=dev-python/cython-3.0.2[${PYTHON_USEDEP}]
+"
+
+distutils_enable_tests unittest
diff --git a/dev-python/spyder/spyder-5.5.4.ebuild b/dev-python/spyder/spyder-5.5.4.ebuild
index 66e709fbd6a0..14ee4971306b 100644
--- a/dev-python/spyder/spyder-5.5.4.ebuild
+++ b/dev-python/spyder/spyder-5.5.4.ebuild
@@ -55,7 +55,7 @@ RDEPEND="
>=dev-python/qtconsole-5.5.1[${PYTHON_USEDEP}]
<dev-python/qtconsole-5.6.0[${PYTHON_USEDEP}]
>=dev-python/QtPy-2.1.0[${PYTHON_USEDEP},pyqt5,svg,webengine]
- >=sci-libs/rtree-0.9.7[${PYTHON_USEDEP}]
+ >=dev-python/rtree-0.9.7[${PYTHON_USEDEP}]
>=dev-python/sphinx-0.6.6[${PYTHON_USEDEP}]
>=dev-python/spyder-kernels-2.5.1[${PYTHON_USEDEP}]
<dev-python/spyder-kernels-2.6.0[${PYTHON_USEDEP}]
diff --git a/dev-python/spyder/spyder-5.5.5.ebuild b/dev-python/spyder/spyder-5.5.5.ebuild
index 15cdad6b93bc..892a9f374e46 100644
--- a/dev-python/spyder/spyder-5.5.5.ebuild
+++ b/dev-python/spyder/spyder-5.5.5.ebuild
@@ -55,7 +55,7 @@ RDEPEND="
>=dev-python/qtconsole-5.5.1[${PYTHON_USEDEP}]
<dev-python/qtconsole-5.6.0[${PYTHON_USEDEP}]
>=dev-python/QtPy-2.1.0[${PYTHON_USEDEP},pyqt5,svg,webengine]
- >=sci-libs/rtree-0.9.7[${PYTHON_USEDEP}]
+ >=dev-python/rtree-0.9.7[${PYTHON_USEDEP}]
>=dev-python/sphinx-0.6.6[${PYTHON_USEDEP}]
>=dev-python/spyder-kernels-2.5.2[${PYTHON_USEDEP}]
<dev-python/spyder-kernels-2.6.0[${PYTHON_USEDEP}]
diff --git a/dev-python/spyder/spyder-6.0.0_beta2.ebuild b/dev-python/spyder/spyder-6.0.0_beta2.ebuild
index 39f7c1722532..bd8ed95952bd 100644
--- a/dev-python/spyder/spyder-6.0.0_beta2.ebuild
+++ b/dev-python/spyder/spyder-6.0.0_beta2.ebuild
@@ -58,7 +58,7 @@ RDEPEND="
>=dev-python/qtconsole-5.5.1[${PYTHON_USEDEP}]
<dev-python/qtconsole-5.6.0[${PYTHON_USEDEP}]
>=dev-python/QtPy-2.4.0[${PYTHON_USEDEP},svg,webengine]
- >=sci-libs/rtree-0.9.7[${PYTHON_USEDEP}]
+ >=dev-python/rtree-0.9.7[${PYTHON_USEDEP}]
>=dev-python/sphinx-0.6.6[${PYTHON_USEDEP}]
>=dev-python/spyder-kernels-3.0.0_beta7[${PYTHON_USEDEP}]
<dev-python/spyder-kernels-3.0.0_beta8[${PYTHON_USEDEP}]
diff --git a/dev-python/tables/files/tables-3.9.2-numpy-2.patch b/dev-python/tables/files/tables-3.9.2-numpy-2.patch
new file mode 100644
index 000000000000..a3d56d13f1a8
--- /dev/null
+++ b/dev-python/tables/files/tables-3.9.2-numpy-2.patch
@@ -0,0 +1,264 @@
+diff --git a/setup.py b/setup.py
+index 48dc6ca5..e8957c1f 100755
+--- a/setup.py
++++ b/setup.py
+@@ -736,7 +736,10 @@ if __name__ == "__main__":
+
+ # -----------------------------------------------------------------
+
+- def_macros = [("NDEBUG", 1)]
++ def_macros = [
++ ("NDEBUG", 1),
++ ("NPY_TARGET_VERSION", "NPY_1_20_API_VERSION"),
++ ]
+
+ # Define macros for Windows platform
+ if os.name == "nt":
+diff --git a/src/utils.c b/src/utils.c
+index 15fce02d..b28dbc90 100644
+--- a/src/utils.c
++++ b/src/utils.c
+@@ -765,8 +765,8 @@ hid_t create_ieee_complex64(const char *byteorder) {
+ return float_id;
+ }
+
+- H5Tinsert(complex_id, "r", HOFFSET(npy_complex64, real), float_id);
+- H5Tinsert(complex_id, "i", HOFFSET(npy_complex64, imag), float_id);
++ H5Tinsert(complex_id, "r", 0, float_id);
++ H5Tinsert(complex_id, "i", 4, float_id);
+ H5Tclose(float_id);
+ return complex_id;
+ }
+@@ -790,8 +790,8 @@ hid_t create_ieee_complex128(const char *byteorder) {
+ return float_id;
+ }
+
+- H5Tinsert(complex_id, "r", HOFFSET(npy_complex128, real), float_id);
+- H5Tinsert(complex_id, "i", HOFFSET(npy_complex128, imag), float_id);
++ H5Tinsert(complex_id, "r", 0, float_id);
++ H5Tinsert(complex_id, "i", 8, float_id);
+ H5Tclose(float_id);
+ return complex_id;
+ }
+@@ -822,8 +822,8 @@ hid_t create_ieee_complex192(const char *byteorder) {
+ return err;
+ }
+
+- H5Tinsert(complex_id, "r", HOFFSET(npy_complex192, real), float_id);
+- H5Tinsert(complex_id, "i", HOFFSET(npy_complex192, imag), float_id);
++ H5Tinsert(complex_id, "r", 0, float_id);
++ H5Tinsert(complex_id, "i", 12, float_id);
+ H5Tclose(float_id);
+ return complex_id;
+ }
+@@ -854,8 +854,8 @@ hid_t create_ieee_complex256(const char *byteorder) {
+ return err;
+ }
+
+- H5Tinsert(complex_id, "r", HOFFSET(npy_complex256, real), float_id);
+- H5Tinsert(complex_id, "i", HOFFSET(npy_complex256, imag), float_id);
++ H5Tinsert(complex_id, "r", 0, float_id);
++ H5Tinsert(complex_id, "i", 16, float_id);
+ H5Tclose(float_id);
+ return complex_id;
+ }
+diff --git a/tables/atom.py b/tables/atom.py
+index 56ab6423..5d4fba2b 100644
+--- a/tables/atom.py
++++ b/tables/atom.py
+@@ -276,15 +276,15 @@ class Atom(metaclass=MetaAtom):
+ >>> atom1 = StringAtom(itemsize=10) # same as ``atom2``
+ >>> atom2 = Atom.from_kind('string', 10) # same as ``atom1``
+ >>> atom3 = IntAtom()
+- >>> atom1 == 'foo'
++ >>> bool(atom1 == 'foo')
+ False
+- >>> atom1 == atom2
++ >>> bool(atom1 == atom2)
+ True
+- >>> atom2 != atom1
++ >>> bool(atom2 != atom1)
+ False
+- >>> atom1 == atom3
++ >>> bool(atom1 == atom3)
+ False
+- >>> atom3 != atom2
++ >>> bool(atom3 != atom2)
+ True
+
+ """
+diff --git a/tables/index.py b/tables/index.py
+index e8c8caf7..28ff37e2 100644
+--- a/tables/index.py
++++ b/tables/index.py
+@@ -581,7 +581,8 @@ class Index(NotLoggedMixin, Group, indexesextension.Index):
+ # Add a second offset in this case
+ # First normalize the number of rows
+ offset2 = (nrow % self.nslicesblock) * slicesize // lbucket
+- idx += offset2
++ assert offset2 < 2**(indsize*8)
++ idx += np.asarray(offset2).astype(idx.dtype)
+ # Add the last row at the beginning of arr & idx (if needed)
+ if (indsize == 8 and nelementsILR > 0):
+ # It is possible that the values in LR are already sorted.
+@@ -622,11 +623,11 @@ class Index(NotLoggedMixin, Group, indexesextension.Index):
+ show_stats("Entering final_idx32", tref)
+ # Do an upcast first in order to add the offset.
+ idx = idx.astype('uint64')
+- idx += offset
++ idx += np.asarray(offset).astype(idx.dtype)
+ # The next partition is valid up to table sizes of
+ # 2**30 * 2**18 = 2**48 bytes, that is, 256 Tera-elements,
+ # which should be a safe figure, at least for a while.
+- idx //= self.lbucket
++ idx //= np.asarray(self.lbucket).astype(idx.dtype)
+ # After the division, we can downsize the indexes to 'uint32'
+ idx = idx.astype('uint32')
+ if profile:
+@@ -2002,7 +2003,7 @@ class Index(NotLoggedMixin, Group, indexesextension.Index):
+ else:
+ self.indicesLR._read_index_slice(start, stop, idx)
+ if indsize == 8:
+- idx //= lbucket
++ idx //= np.asarray(lbucket).astype(idx.dtype)
+ elif indsize == 2:
+ # The chunkmap size cannot be never larger than 'int_'
+ idx = idx.astype("int_")
+diff --git a/tables/tests/common.py b/tables/tests/common.py
+index 31378a88..1992f39a 100644
+--- a/tables/tests/common.py
++++ b/tables/tests/common.py
+@@ -205,7 +205,7 @@ def allequal(a, b, flavor="numpy"):
+ return result
+
+
+-def areArraysEqual(arr1, arr2):
++def areArraysEqual(arr1, arr2, *, check_type=True):
+ """Are both `arr1` and `arr2` equal arrays?
+
+ Arguments can be regular NumPy arrays, chararray arrays or
+@@ -217,8 +217,8 @@ def areArraysEqual(arr1, arr2):
+ t1 = type(arr1)
+ t2 = type(arr2)
+
+- if not ((hasattr(arr1, 'dtype') and arr1.dtype == arr2.dtype) or
+- issubclass(t1, t2) or issubclass(t2, t1)):
++ if check_type and not ((hasattr(arr1, 'dtype') and arr1.dtype == arr2.dtype) or
++ issubclass(t1, t2) or issubclass(t2, t1)):
+ return False
+
+ return np.all(arr1 == arr2)
+diff --git a/tables/tests/test_expression.py b/tables/tests/test_expression.py
+index 018d4208..d9c0e990 100644
+--- a/tables/tests/test_expression.py
++++ b/tables/tests/test_expression.py
+@@ -265,9 +265,12 @@ class MixedContainersTestCase(common.TempFileMixin, common.PyTablesTestCase):
+ if common.verbose:
+ print("Computed expression:", repr(r1), r1.dtype)
+ print("Should look like:", repr(r2), r2.dtype)
+- self.assertTrue(
+- r1.shape == r2.shape and r1.dtype == r2.dtype and r1 == r2,
+- "Evaluate is returning a wrong value.")
++ msg = f"Evaluate is returning a wrong value: {expr_str}\n{r1=}\n{r2=}"
++ self.assertEqual(r1.shape, r2.shape, msg=msg)
++ # In something like 2 * np.in16(3) + np.int16(2) the result is still a
++ # np.int16 in NumPy 2.0, so we shouldn't actually check this:
++ # self.assertEqual(r1.dtype, r2.dtype, msg=msg)
++ self.assertEqual(r1, r2, msg=msg)
+
+ def test01a_out(self):
+ """Checking expressions with mixed objects (`out` param)"""
+@@ -305,8 +308,9 @@ class MixedContainersTestCase(common.TempFileMixin, common.PyTablesTestCase):
+ if common.verbose:
+ print("Computed expression:", repr(r1), r1.dtype)
+ print("Should look like:", repr(r2), r2.dtype)
+- self.assertTrue(common.areArraysEqual(r1, r2),
+- "Evaluate is returning a wrong value.")
++ msg = f"Evaluate is returning a wrong value: {expr_str}\n{r1=}\n{r2=}"
++ # On NumPy 2 type promotion is different so don't check type here
++ self.assertTrue(common.areArraysEqual(r1, r2, check_type=False), msg=msg)
+
+ def test02a_sss(self):
+ """Checking mixed objects and start, stop, step (I)"""
+diff --git a/tables/tests/test_indexvalues.py b/tables/tests/test_indexvalues.py
+index fac33af8..85ca38c3 100644
+--- a/tables/tests/test_indexvalues.py
++++ b/tables/tests/test_indexvalues.py
+@@ -2296,6 +2296,11 @@ class SelectValuesTestCase(common.TempFileMixin, common.PyTablesTestCase):
+ self.assertFalse(t1var3.index.dirty)
+ self.assertFalse(t1var4.index.dirty)
+
++ # TODO: IT IS DIRTY BECAUSE THIS FIXES THINGS FOR FINSV2aTestCase,
++ # which otherwise fails a test a few lines below!
++ for col in table1.colinstances.values():
++ col.reindex()
++
+ # Do some selections and check the results
+ # First selection: string
+ # Convert the limits to the appropriate type
+@@ -2318,11 +2323,15 @@ class SelectValuesTestCase(common.TempFileMixin, common.PyTablesTestCase):
+ # Second selection: bool
+ results1 = [p["var2"] for p in table1.where('t1var2 == True')]
+ results2 = [p["var2"] for p in table2 if p["var2"] is True]
+- if common.verbose:
+- print("Length results:", len(results1))
+- print("Should be:", len(results2))
+- self.assertEqual(len(results1), len(results2))
+- self.assertEqual(results1, results2)
++ t2var1_vals = [p["var1"] for p in table2]
++ t2var2_vals = [p["var2"] for p in table2]
++ msg = (
++ f"Incorrect results for t1var2[n] == True where\n"
++ f"t2var1_vals={repr(t2var1_vals)}\nt2var2_vals={repr(t2var2_vals)}\n"
++ f"\n{results1=}\n{results2=}"
++ )
++ self.assertEqual(len(results1), len(results2), msg=msg)
++ self.assertEqual(results1, results2, msg=msg)
+
+ # Third selection: int
+ # Convert the limits to the appropriate type
+@@ -3228,7 +3237,9 @@ class LastRowReuseBuffers(common.PyTablesTestCase):
+
+
+ normal_tests = (
+- "SV1aTestCase", "SV2aTestCase", "SV3aTestCase",
++ "SV1aTestCase",
++ "SV2aTestCase",
++ "SV3aTestCase",
+ )
+
+ heavy_tests = (
+diff --git a/tables/utils.py b/tables/utils.py
+index e11e5ba7..7d786e32 100644
+--- a/tables/utils.py
++++ b/tables/utils.py
+@@ -25,6 +25,11 @@ byteorders = {
+ SizeType = np.int64
+
+
++copy_if_needed = (
++ None if np.lib.NumpyVersion(np.__version__) >= "2.0.0" else False
++)
++
++
+ def correct_byteorder(ptype, byteorder):
+ """Fix the byteorder depending on the PyTables types."""
+
+@@ -78,7 +83,7 @@ def idx2long(index):
+ # with atom from a generic python type. If copy is stated as True, it
+ # is assured that it will return a copy of the object and never the same
+ # object or a new one sharing the same memory.
+-def convert_to_np_atom(arr, atom, copy=False):
++def convert_to_np_atom(arr, atom, copy=copy_if_needed):
+ """Convert a generic object into a NumPy object compliant with atom."""
+
+ # First, convert the object into a NumPy array
+@@ -112,7 +117,7 @@ def convert_to_np_atom2(object, atom):
+
+ # Check whether the object needs to be copied to make the operation
+ # safe to in-place conversion.
+- copy = atom.type in ['time64']
++ copy = True if atom.type in ['time64'] else copy_if_needed
+ nparr = convert_to_np_atom(object, atom, copy)
+ # Finally, check the byteorder and change it if needed
+ byteorder = byteorders[nparr.dtype.byteorder]
diff --git a/dev-python/tables/files/tables-3.9.2-py313.patch b/dev-python/tables/files/tables-3.9.2-py313.patch
new file mode 100644
index 000000000000..660c5615765f
--- /dev/null
+++ b/dev-python/tables/files/tables-3.9.2-py313.patch
@@ -0,0 +1,73 @@
+From 4a1b480e7e3758cf2cf06354ec5720020db16ce7 Mon Sep 17 00:00:00 2001
+From: Antonio Valentino <antonio.valentino@tiscali.it>
+Date: Sun, 19 May 2024 17:39:47 +0200
+Subject: [PATCH] Fix compatibility with Python v3.13 (Closes: #1166)
+
+The unittest.makeSuite function is not available in Python 3.13.
+---
+diff --git a/tables/tests/test_aux.py b/tables/tests/test_aux.py
+index 95f34ee16..cf4f022de 100644
+--- a/tables/tests/test_aux.py
++++ b/tables/tests/test_aux.py
+@@ -2,6 +2,7 @@
+ import numpy as np
+
+ import tables as tb
++from tables.tests.common import make_suite
+
+
+ class TestAuxiliaryFunctions(unittest.TestCase):
+diff --git a/tables/nodes/tests/test_filenode.py b/tables/nodes/tests/test_filenode.py
+index c2754218a..3572cc38f 100644
+--- a/tables/nodes/tests/test_filenode.py
++++ b/tables/nodes/tests/test_filenode.py
+@@ -9,7 +9,7 @@
+ from ... import open_file, file, NoSuchNodeError
+ from ...nodes import filenode
+ from ...tests.common import (
+- unittest, TempFileMixin, parse_argv, print_versions,
++ unittest, TempFileMixin, parse_argv, print_versions, make_suite,
+ PyTablesTestCase as TestCase)
+
+
+diff --git a/tables/tests/common.py b/tables/tests/common.py
+index 31378a880..918b17247 100644
+--- a/tables/tests/common.py
++++ b/tables/tests/common.py
+@@ -366,3 +366,10 @@ def test00(self):
+ print(f"VmSize: {vmsize:>7} kB\tVmRSS: {vmrss:>7} kB")
+ print(f"VmData: {vmdata:>7} kB\tVmStk: {vmstk:>7} kB")
+ print(f"VmExe: {vmexe:>7} kB\tVmLib: {vmlib:>7} kB")
++
++
++try:
++ from unittest import makeSuite as make_suite
++except ImportError:
++ def make_suite(test_case_class):
++ return unittest.TestLoader().loadTestsFromTestCase(test_case_class)
+From 424784895b0fb15ad06707ce60f9829cef4f11e2 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Miro=20Hron=C4=8Dok?= <miro@hroncok.cz>
+Date: Mon, 3 Jun 2024 17:21:38 +0200
+Subject: [PATCH] Make tables.tests.common.make_suite() accept the prefix
+ argument
+
+...as test_queries.py uses it.
+---
+ tables/tests/common.py | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/tables/tests/common.py b/tables/tests/common.py
+index 918b17247..1d2e5feab 100644
+--- a/tables/tests/common.py
++++ b/tables/tests/common.py
+@@ -371,5 +371,8 @@ def test00(self):
+ try:
+ from unittest import makeSuite as make_suite
+ except ImportError:
+- def make_suite(test_case_class):
+- return unittest.TestLoader().loadTestsFromTestCase(test_case_class)
++ def make_suite(test_case_class, *, prefix=None):
++ loader = unittest.TestLoader()
++ if prefix:
++ loader.testMethodPrefix = prefix
++ return loader.loadTestsFromTestCase(test_case_class)
diff --git a/dev-python/tables/tables-3.9.2-r1.ebuild b/dev-python/tables/tables-3.9.2-r1.ebuild
new file mode 100644
index 000000000000..424a9952190a
--- /dev/null
+++ b/dev-python/tables/tables-3.9.2-r1.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_EXT=1
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} pypy3 )
+PYTHON_REQ_USE="threads(+)"
+
+inherit distutils-r1 prefix pypi
+
+DESCRIPTION="Hierarchical datasets for Python"
+HOMEPAGE="
+ https://www.pytables.org/
+ https://github.com/PyTables/PyTables/
+ https://pypi.org/project/tables/
+"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ia64 ~loong ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux"
+IUSE="+cpudetection examples test"
+RESTRICT="!test? ( test )"
+
+DEPEND="
+ app-arch/bzip2:0=
+ app-arch/lz4:0=
+ >=app-arch/zstd-1.0.0:=
+ >=dev-libs/c-blosc-1.11.1:0=
+ >=dev-libs/c-blosc2-2.11.0:=
+ dev-libs/lzo:2=
+ >=dev-python/numpy-1.19.0:=[${PYTHON_USEDEP}]
+ >=sci-libs/hdf5-1.8.4:=
+"
+RDEPEND="
+ ${DEPEND}
+ >=dev-python/numexpr-2.6.2[${PYTHON_USEDEP}]
+ dev-python/packaging[${PYTHON_USEDEP}]
+ cpudetection? ( dev-python/py-cpuinfo[${PYTHON_USEDEP}] )
+"
+BDEPEND="
+ >=dev-python/cython-0.21[${PYTHON_USEDEP}]
+ virtual/pkgconfig
+ cpudetection? ( dev-python/py-cpuinfo[${PYTHON_USEDEP}] )
+ test? (
+ ${RDEPEND}
+ )
+"
+
+python_prepare_all() {
+ local PATCHES=(
+ # https://github.com/PyTables/PyTables/pull/1176
+ "${FILESDIR}/${P}-numpy-2.patch"
+ # https://github.com/PyTables/PyTables/commit/4a1b480e7e3758cf2cf06354ec5720020db16ce7
+ # https://github.com/PyTables/PyTables/commit/424784895b0fb15ad06707ce60f9829cef4f11e2
+ "${FILESDIR}/${P}-py313.patch"
+ )
+
+ rm -r c-blosc/{blosc,internal-complibs} || die
+
+ # part of https://github.com/PyTables/PyTables/commit/4a1b480e7e3758cf2cf06354ec5720020db16ce7
+ # (warning: do it *before* patching, so it doesn't modify
+ # the added function)
+ find -name '*.py' -exec \
+ sed -i -e 's:unittest[.]makeSuite:make_suite:' {} + || die
+
+ distutils-r1_python_prepare_all
+
+ sed -i -e '/blosc2/d' pyproject.toml || die
+ hprefixify -w '/prefixes =/' setup.py
+
+ export PYTABLES_NO_EMBEDDED_LIBS=1
+ export USE_PKGCONFIG=TRUE
+}
+
+python_test() {
+ cd "${BUILD_DIR}/install$(python_get_sitedir)" || die
+ "${EPYTHON}" tables/tests/test_all.py -v || die
+}
+
+python_install_all() {
+ distutils-r1_python_install_all
+
+ if use examples; then
+ dodoc -r contrib examples
+ docompress -x /usr/share/doc/${PF}/{contrib,examples}
+ fi
+}
diff --git a/dev-python/trimesh/trimesh-4.4.0.ebuild b/dev-python/trimesh/trimesh-4.4.0.ebuild
index ff64512e895e..b36f2a112dac 100644
--- a/dev-python/trimesh/trimesh-4.4.0.ebuild
+++ b/dev-python/trimesh/trimesh-4.4.0.ebuild
@@ -41,11 +41,11 @@ RDEPEND="
dev-python/svg-path[${PYTHON_USEDEP}]
dev-python/sympy[${PYTHON_USEDEP}]
dev-python/xxhash[${PYTHON_USEDEP}]
- sci-libs/rtree[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
- dev-python/mapbox_earcut[${PYTHON_USEDEP}]
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
dev-python/pillow[webp,${PYTHON_USEDEP}]
)
"
@@ -67,7 +67,7 @@ python_test() {
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 "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/trimesh/trimesh-4.4.2.ebuild b/dev-python/trimesh/trimesh-4.4.2.ebuild
index 28e2ef0d54f8..3a9c1843a308 100644
--- a/dev-python/trimesh/trimesh-4.4.2.ebuild
+++ b/dev-python/trimesh/trimesh-4.4.2.ebuild
@@ -41,11 +41,11 @@ RDEPEND="
dev-python/svg-path[${PYTHON_USEDEP}]
dev-python/sympy[${PYTHON_USEDEP}]
dev-python/xxhash[${PYTHON_USEDEP}]
- sci-libs/rtree[${PYTHON_USEDEP}]
+ dev-python/rtree[${PYTHON_USEDEP}]
"
BDEPEND="
test? (
- dev-python/mapbox_earcut[${PYTHON_USEDEP}]
+ dev-python/mapbox-earcut[${PYTHON_USEDEP}]
dev-python/pillow[webp,${PYTHON_USEDEP}]
)
"
@@ -67,7 +67,7 @@ python_test() {
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 "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/types-docutils/Manifest b/dev-python/types-docutils/Manifest
index bb691f9f2707..6d06b0975a6e 100644
--- a/dev-python/types-docutils/Manifest
+++ b/dev-python/types-docutils/Manifest
@@ -1,2 +1,3 @@
DIST types-docutils-0.21.0.20240704.tar.gz 19782 BLAKE2B eaf113c86432951b4d0e6a2b7bf69e8e5fb18717bc8107a55a679c6890ae6afb5b543f968758e2797b089ee96bd05945f1bca01383cdd68e01c2c2c1f144710f SHA512 66bf7eb52643dc46a1a621db5d9be6c68bdf61f0b075896e74eabb19db1edae72810a697e803482e89581131b6c0966d990f3043092136bd7e1d4a9cfcab9075
DIST types-docutils-0.21.0.20240708.tar.gz 19815 BLAKE2B a8ddf76c8fec9d9facf21f19f64f28731dbef334ba526cf9521559cfdc79e9d8ce0c7da9d0a7cc832624fb3b40d31334624567689c08abead6fdac1200ea62ad SHA512 d5611c3a5cc4e7e2c829d0e72154a6262c13ec233f58f3681645bcc3d4f66383e791bf30e3f181cc5f9a0a684c882b489be372a3840cf5a30fd40a6b2563a38a
+DIST types-docutils-0.21.0.20240710.tar.gz 19813 BLAKE2B ffe7a9605faf155ad968e6bf190fb2cfec4e09ce09c8b2c9346710c9065e18f169682122c9ba83acd331f166dc9ed925be55626be4320553de2f1f467d2a0e67 SHA512 f870c692666c9966cba11fec7c441cbdf0f5510d586ebea467880bdec859783aeb23a3621dc14fc65021ec3cd917c929116642901048249ea8549ede4ff1c02b
diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild
new file mode 100644
index 000000000000..0d86c4835acd
--- /dev/null
+++ b/dev-python/types-docutils/types-docutils-0.21.0.20240710.ebuild
@@ -0,0 +1,17 @@
+# Copyright 2022-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typing stubs for docutils"
+HOMEPAGE="https://pypi.org/project/types-docutils/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
diff --git a/dev-python/types-setuptools/Manifest b/dev-python/types-setuptools/Manifest
index aeb7316c486b..b8e47472560c 100644
--- a/dev-python/types-setuptools/Manifest
+++ b/dev-python/types-setuptools/Manifest
@@ -2,3 +2,4 @@ DIST types-setuptools-70.0.0.20240524.tar.gz 38370 BLAKE2B 7964344dfb8a9b3594bd3
DIST types-setuptools-70.1.0.20240625.tar.gz 39232 BLAKE2B 9b02f33fa73204fcb5afcf8115e42cfa55ac08951aa4b8646efe6e3d5828c97da1fb936ab3e1fd87bedc32d2741fbd301db3598f9ce6bd63d729e3fcb4910d71 SHA512 233b0bf84a04d8867174b681714097d37ac72efc2e81f4d4069913ed29b76355df4eebde7da4b62f52b933ef1d02949cc44f1f3f5771eb181d5df878c783f14e
DIST types-setuptools-70.1.0.20240627.tar.gz 39309 BLAKE2B 42de32fb42a71c0b455341d2c402c477535acfede0f8c8250ed6a87824f75fd7d24bc8830b610727824095f99d181f8e0f1d2a861890b835a1cd2a6e90a7ef5a SHA512 ee12292fc71a299e7d5a6d14b7ac5048b9de4c71834e87ca6c856bc5ad7054f8252e4d864615a625987b1fea3b712bcc76d5d02bd7647a34d9d05e8c8f2343f4
DIST types-setuptools-70.2.0.20240704.tar.gz 39301 BLAKE2B 697ae444f26b05b00d922610b05e12f76101cbd86de4ebf7d33c335f6e35aa2e168ebe780329ebf7a2d7e4f38b9255647fb08ce10828a2e476863dc3ac9b5b19 SHA512 a5ad2c1e038473dc676199b9cc8b5f73e2c32a3db0c6474cd02c61c22d945658f122fbaaa299c04138efe0be20db789ceb376f77013f9502f5f60f78e22711f0
+DIST types-setuptools-70.3.0.20240710.tar.gz 39352 BLAKE2B 7ce226fe33a714f1467a6656832b6c8b01ee9821fd7c8345f32fb0675afa55689be094f7e695e11d06ddc38e58443b637d2ddf64aad89d456475ec717d8daef1 SHA512 c8c213a1d401a6aa46d0990bc0f0955261b113987713cfdfea683b90232a8c78bce0575612b4fbfeba3b2c12d9e6846ffc45ada7da5f2e3832c2ee8354249304
diff --git a/dev-python/types-setuptools/types-setuptools-70.3.0.20240710.ebuild b/dev-python/types-setuptools/types-setuptools-70.3.0.20240710.ebuild
new file mode 100644
index 000000000000..c755b6e96b17
--- /dev/null
+++ b/dev-python/types-setuptools/types-setuptools-70.3.0.20240710.ebuild
@@ -0,0 +1,17 @@
+# Copyright 2023-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYPI_NO_NORMALIZE=1
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 pypi
+
+DESCRIPTION="Typing stubs for setuptools"
+HOMEPAGE="https://pypi.org/project/types-setuptools/"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
diff --git a/dev-python/xarray/xarray-2024.6.0-r1.ebuild b/dev-python/xarray/xarray-2024.6.0-r1.ebuild
new file mode 100644
index 000000000000..fa91bfbec259
--- /dev/null
+++ b/dev-python/xarray/xarray-2024.6.0-r1.ebuild
@@ -0,0 +1,108 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{8,9,10,11,12} )
+
+inherit distutils-r1 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-1.23[${PYTHON_USEDEP}]
+ >=dev-python/pandas-2.0[${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? ( 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
+ )
+ fi
+
+ 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
+}