diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-10-07 07:05:06 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-10-07 07:05:06 +0000 |
| commit | caa89eacab99586878d969b5f30bd4afd8e0b3f3 (patch) | |
| tree | 1671aff167447c1ed923f0059363e3746bbee2b8 /dev-python | |
| parent | 9d8f7d0265a06ecdb9079d124b3cf9ffc5451f42 (diff) | |
| download | baldeagleos-repo-caa89eacab99586878d969b5f30bd4afd8e0b3f3.tar.gz baldeagleos-repo-caa89eacab99586878d969b5f30bd4afd8e0b3f3.tar.xz baldeagleos-repo-caa89eacab99586878d969b5f30bd4afd8e0b3f3.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
37 files changed, 917 insertions, 553 deletions
diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest index d5e008364f17..d0b06a07cc40 100644 --- a/dev-python/aiohttp/Manifest +++ b/dev-python/aiohttp/Manifest @@ -1,4 +1,2 @@ -DIST aiohttp-3.11.18.tar.gz 7678653 BLAKE2B 5886778fd0456ef40f1da5abd3d6a3864db03fad01d53755bb34afd77152da338480ba534c5dc1574bd5aa178943ec52814f1ceff736d668868803b19f6c102f SHA512 9b25ad5f9800cd84014c55f6a4f7ac217a788a43e301a83c18667b6f294388adf53c81360fd3219007b10b42ce165331dad1907582dc9d3081fd8585b5bcd042 -DIST aiohttp-3.12.13.tar.gz 7819160 BLAKE2B 32584507d6d48a80c8034b0095af1fbbb74f75066e517205c05b7561bf5d7087e89031405dcba5a84c2d686310c44005ede7a67b421153b9d235c0e37c2cf6d9 SHA512 e384a7581a7e0944a7283adcf70b84c3a4f6a04ddf5fafbff74d1919bd46a3fddfd7fd830189278d7d17717ca65695cf0aa26ebbf38d08e850453887a5b7f487 -DIST aiohttp-3.12.14.tar.gz 7822921 BLAKE2B 2cbba98737ee1a00083e5a7f4ae2fbfc22bee07634a85c9b7de9bea09d3478be78b0460a9a40d6fe7b9a88a7a5d3ba7a2e446963affb50dca58c6030aa42d6ef SHA512 7031ecc166b10663c56f1ece854d272bf9b26160aef026f13a7ef820a3cbf34ed6d1301a08b440308df5bda08f83f1cba504eacf1a85c7cf2721df1b4facc75a DIST aiohttp-3.12.15.tar.gz 7823716 BLAKE2B b7e69e24d961cf1897f650987e0214b083ab5557f4fb3b7046ebf3b348138e603bd3dea1fc4c3250b8fef1d966a77665d24af64a600d09b1410b16c467144731 SHA512 055176006825f86dc2b5f31355a4da60e288c844770ac8c6312d00b308f6eba02bc31fee5b0c30f552c0aabf597c8dfa54f485d87b65169f1eb637ea29470d56 +DIST aiohttp-3.13.0.tar.gz 7832348 BLAKE2B 14f482a2f72197ebfc4b841b45d73833c0037443706b12fb7b945a0a54a54964019964d500013a1abfe74fbd49f439d936a2628c33401fddce48642f4ee8602f SHA512 9ed39fa35250e40efaee3ce9be0f3cd9a0fd6b4c5ec2a3c67c173e23153307fc958570d8530ea3919a5db3cd452102d0c81bb3fb127d51b224658e1264a5b73c diff --git a/dev-python/aiohttp/aiohttp-3.11.18.ebuild b/dev-python/aiohttp/aiohttp-3.11.18.ebuild deleted file mode 100644 index 2427dd010609..000000000000 --- a/dev-python/aiohttp/aiohttp-3.11.18.ebuild +++ /dev/null @@ -1,147 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) - -inherit distutils-r1 pypi - -DESCRIPTION="HTTP client/server for asyncio" -HOMEPAGE=" - https://github.com/aio-libs/aiohttp/ - https://pypi.org/project/aiohttp/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+native-extensions test-rust" - -DEPEND=" - native-extensions? ( - $(python_gen_cond_dep ' - net-libs/llhttp:= - ' 'python3*') - ) -" -RDEPEND=" - ${DEPEND} - >=dev-python/aiodns-3.2.0[${PYTHON_USEDEP}] - >=dev-python/aiohappyeyeballs-2.3.0[${PYTHON_USEDEP}] - >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}] - >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] - dev-python/brotlicffi[${PYTHON_USEDEP}] - >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}] - >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] - >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}] - >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - <dev-python/async-timeout-6[${PYTHON_USEDEP}] - >=dev-python/async-timeout-4.0[${PYTHON_USEDEP}] - ' 3.10) -" -BDEPEND=" - >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] - native-extensions? ( - dev-python/cython[${PYTHON_USEDEP}] - ) - test? ( - dev-python/freezegun[${PYTHON_USEDEP}] - www-servers/gunicorn[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/re-assert[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - dev-python/time-machine[${PYTHON_USEDEP}] - ' 'python3*') - test-rust? ( - dev-python/trustme[${PYTHON_USEDEP}] - ) - ) -" - -DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) - -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_prepare() { - local PATCHES=( - "${FILESDIR}/${PN}-3.11.17-unbundle-llhttp.patch" - ) - - distutils-r1_src_prepare - - # increase the timeout a little - sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die - # xfail_strict fails on py3.10 - sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die - sed -i -e 's:-Werror::' Makefile || die - # remove vendored llhttp - rm -r vendor || die -} - -python_configure() { - # check for .install-cython, so that we do this only once - if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] && - use native-extensions - then - # force rehashing first - emake requirements/.hash/cython.txt.hash - > .update-pip || die - > .install-cython || die - emake cythonize - fi -} - -python_compile() { - # implicitly disabled for pypy3 - if ! use native-extensions; then - local -x AIOHTTP_NO_EXTENSIONS=1 - fi - - distutils-r1_python_compile -} - -python_test() { - local EPYTEST_IGNORE=( - # proxy is not packaged - tests/test_proxy_functional.py - # python_on_whales is not packaged - tests/autobahn/test_autobahn.py - # benchmarks - tests/test_benchmarks_client.py - tests/test_benchmarks_client_request.py - tests/test_benchmarks_client_ws.py - tests/test_benchmarks_cookiejar.py - tests/test_benchmarks_http_websocket.py - tests/test_benchmarks_http_writer.py - tests/test_benchmarks_web_fileresponse.py - tests/test_benchmarks_web_middleware.py - tests/test_benchmarks_web_response.py - tests/test_benchmarks_web_urldispatcher.py - ) - - local EPYTEST_DESELECT=( - # Internet - tests/test_client_session.py::test_client_session_timeout_zero - # broken by irrelevant deprecation warnings - tests/test_circular_imports.py::test_no_warnings - ) - - # upstream unconditionally blocks building C extensions - # on PyPy3 but the test suite needs an explicit switch - if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then - local -x AIOHTTP_NO_EXTENSIONS=1 - fi - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin - rm -rf aiohttp || die - epytest -m "not internal and not dev_mode" \ - -p rerunfailures --reruns=5 -} diff --git a/dev-python/aiohttp/aiohttp-3.12.13.ebuild b/dev-python/aiohttp/aiohttp-3.12.13.ebuild deleted file mode 100644 index 70c7eb52f079..000000000000 --- a/dev-python/aiohttp/aiohttp-3.12.13.ebuild +++ /dev/null @@ -1,158 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) - -inherit distutils-r1 pypi - -DESCRIPTION="HTTP client/server for asyncio" -HOMEPAGE=" - https://github.com/aio-libs/aiohttp/ - https://pypi.org/project/aiohttp/ -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" -IUSE="+native-extensions test-rust" - -DEPEND=" - native-extensions? ( - $(python_gen_cond_dep ' - net-libs/llhttp:= - ' 'python3*') - ) -" -RDEPEND=" - ${DEPEND} - >=dev-python/aiodns-3.3.0[${PYTHON_USEDEP}] - >=dev-python/aiohappyeyeballs-2.5.0[${PYTHON_USEDEP}] - >=dev-python/aiosignal-1.1.2[${PYTHON_USEDEP}] - >=dev-python/attrs-17.3.0[${PYTHON_USEDEP}] - dev-python/brotlicffi[${PYTHON_USEDEP}] - >=dev-python/frozenlist-1.1.1[${PYTHON_USEDEP}] - >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] - >=dev-python/propcache-0.2.0[${PYTHON_USEDEP}] - >=dev-python/yarl-1.17.0[${PYTHON_USEDEP}] -" -BDEPEND=" - >=dev-python/multidict-4.5.0[${PYTHON_USEDEP}] - native-extensions? ( - >=dev-python/cython-3.1.1[${PYTHON_USEDEP}] - dev-python/pkgconfig[${PYTHON_USEDEP}] - ) - test? ( - dev-python/blockbuster[${PYTHON_USEDEP}] - dev-python/freezegun[${PYTHON_USEDEP}] - dev-python/isal[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] - dev-python/re-assert[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - dev-python/time-machine[${PYTHON_USEDEP}] - ' 'python3*') - dev-python/zlib-ng[${PYTHON_USEDEP}] - www-servers/gunicorn[${PYTHON_USEDEP}] - test-rust? ( - dev-python/trustme[${PYTHON_USEDEP}] - ) - ) -" - -DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) - -EPYTEST_XDIST=1 -distutils_enable_tests pytest - -src_prepare() { - distutils-r1_src_prepare - - # increase the timeout a little - sed -e '/abs=/s/0.001/0.01/' -i tests/test_helpers.py || die - # xfail_strict fails on py3.10 - sed -i -e '/--cov/d' -e '/pytest_cov/d' -e '/xfail_strict/d' setup.cfg || die - sed -i -e 's:-Werror::' Makefile || die - # remove vendored llhttp - rm -r vendor || die -} - -python_configure() { - # check for .install-cython, so that we do this only once - if [[ ! -f .install-cython && ${EPYTHON} != pypy3 ]] && - use native-extensions - then - # force rehashing first - emake requirements/.hash/cython.txt.hash - > .update-pip || die - > .install-cython || die - emake cythonize - fi -} - -python_compile() { - local -x AIOHTTP_USE_SYSTEM_DEPS=1 - # implicitly disabled for pypy3 - if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then - local -x AIOHTTP_NO_EXTENSIONS=1 - fi - - distutils-r1_python_compile -} - -python_test() { - local EPYTEST_IGNORE=( - # proxy is not packaged - tests/test_proxy_functional.py - # python_on_whales is not packaged - tests/autobahn/test_autobahn.py - # benchmarks - tests/test_benchmarks_client.py - tests/test_benchmarks_client_request.py - tests/test_benchmarks_client_ws.py - tests/test_benchmarks_cookiejar.py - tests/test_benchmarks_http_websocket.py - tests/test_benchmarks_http_writer.py - tests/test_benchmarks_web_fileresponse.py - tests/test_benchmarks_web_middleware.py - tests/test_benchmarks_web_response.py - tests/test_benchmarks_web_urldispatcher.py - ) - - local EPYTEST_DESELECT=( - # Internet - tests/test_client_session.py::test_client_session_timeout_zero - tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_nonzero_passed - tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_passed_to_create_connection - tests/test_connector.py::test_tcp_connector_ssl_shutdown_timeout_zero_not_passed - # broken by irrelevant deprecation warnings - tests/test_circular_imports.py::test_no_warnings - ) - - case ${EPYTHON} in - python3.14) - EPYTEST_DESELECT+=( - # TODO - tests/test_cookiejar.py::test_pickle_format - # different exception message - tests/test_client_functional.py::test_aiohttp_request_coroutine - ) - ;; - esac - - # upstream unconditionally blocks building C extensions - # on PyPy3 but the test suite needs an explicit switch - if [[ ${EPYTHON} == pypy3* ]] || ! use native-extensions; then - local -x AIOHTTP_NO_EXTENSIONS=1 - fi - - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin - rm -rf aiohttp || die - epytest -m "not internal and not dev_mode" \ - -p rerunfailures --reruns=5 -} diff --git a/dev-python/aiohttp/aiohttp-3.12.14.ebuild b/dev-python/aiohttp/aiohttp-3.13.0.ebuild index 871e87dad8cc..18dbde76410c 100644 --- a/dev-python/aiohttp/aiohttp-3.12.14.ebuild +++ b/dev-python/aiohttp/aiohttp-3.13.0.ebuild @@ -17,7 +17,7 @@ HOMEPAGE=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="+native-extensions test-rust" DEPEND=" @@ -50,14 +50,14 @@ BDEPEND=" dev-python/blockbuster[${PYTHON_USEDEP}] dev-python/freezegun[${PYTHON_USEDEP}] dev-python/isal[${PYTHON_USEDEP}] - dev-python/pytest-mock[${PYTHON_USEDEP}] - dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] - dev-python/pytest-xdist[${PYTHON_USEDEP}] dev-python/re-assert[${PYTHON_USEDEP}] $(python_gen_cond_dep ' dev-python/time-machine[${PYTHON_USEDEP}] ' 'python3*') dev-python/zlib-ng[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/zstandard[${PYTHON_USEDEP}] + ' 3.11 3.12) www-servers/gunicorn[${PYTHON_USEDEP}] test-rust? ( dev-python/trustme[${PYTHON_USEDEP}] @@ -67,6 +67,10 @@ BDEPEND=" DOCS=( CHANGES.rst CONTRIBUTORS.txt README.rst ) +EPYTEST_PLUGIN_LOAD_VIA_ENV=1 +EPYTEST_PLUGINS=( pytest-{mock,xdist} ) +EPYTEST_RERUNS=5 +: ${EPYTEST_TIMEOUT:=180} EPYTEST_XDIST=1 distutils_enable_tests pytest @@ -151,9 +155,6 @@ python_test() { local -x AIOHTTP_NO_EXTENSIONS=1 fi - local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 - local -x PYTEST_PLUGINS=pytest_mock,xdist.plugin rm -rf aiohttp || die - epytest -m "not internal and not dev_mode" \ - -p rerunfailures --reruns=5 + epytest -m "not internal and not dev_mode" } diff --git a/dev-python/aiohttp/files/aiohttp-3.11.17-unbundle-llhttp.patch b/dev-python/aiohttp/files/aiohttp-3.11.17-unbundle-llhttp.patch deleted file mode 100644 index 500377eb46e6..000000000000 --- a/dev-python/aiohttp/files/aiohttp-3.11.17-unbundle-llhttp.patch +++ /dev/null @@ -1,31 +0,0 @@ -diff --git a/aiohttp/_cparser.pxd b/aiohttp/_cparser.pxd -index c2cd5a92f..1b3be6d4e 100644 ---- a/aiohttp/_cparser.pxd -+++ b/aiohttp/_cparser.pxd -@@ -1,7 +1,7 @@ - from libc.stdint cimport int32_t, uint8_t, uint16_t, uint64_t - - --cdef extern from "../vendor/llhttp/build/llhttp.h": -+cdef extern from "llhttp.h": - - struct llhttp__internal_s: - int32_t _index -diff --git a/setup.py b/setup.py -index c9a2c5c85..fe1a8101f 100644 ---- a/setup.py -+++ b/setup.py -@@ -33,12 +33,9 @@ extensions = [ - [ - "aiohttp/_http_parser.c", - "aiohttp/_find_header.c", -- "vendor/llhttp/build/c/llhttp.c", -- "vendor/llhttp/src/native/api.c", -- "vendor/llhttp/src/native/http.c", - ], - define_macros=[("LLHTTP_STRICT_MODE", 0)], -- include_dirs=["vendor/llhttp/build"], -+ libraries=["llhttp"], - ), - Extension("aiohttp._http_writer", ["aiohttp/_http_writer.c"]), - Extension("aiohttp._websocket.reader_c", ["aiohttp/_websocket/reader_c.c"]), diff --git a/dev-python/ansible-compat/Manifest b/dev-python/ansible-compat/Manifest index 00677444ecd8..709e95c82c5a 100644 --- a/dev-python/ansible-compat/Manifest +++ b/dev-python/ansible-compat/Manifest @@ -1,3 +1,3 @@ DIST ansible_compat-25.6.0.tar.gz 88447 BLAKE2B 6431b22bc50d09f865d39046df55fd2a3fe03576cb640f0febc8f108b0ff7b190ef3014904e56f8cd50f37fd6db61da4cd71ab8d52619f8f4c42bac6344b95ed SHA512 3f60f0f6035c17eafa976d77cf811553ce018c3857ded05921a7f3378856cc1e8e5945a57080755cfa86deac52de67bd085834b334d597afc257b78c249f4ad8 -DIST ansible_compat-25.8.0.tar.gz 89228 BLAKE2B 752ecdbd3974f8317e5621a936883654f99a0e030d954f978a9b98ce7259f97575c18e4e65d376ad8b4f4430c5a721bf12d03bd95216849d04e8cbf56b8ca4e7 SHA512 ab36870d57f50d57bb8c4026fd3629907447f1afd4bd044fe7f1efac0bbeda6c07bc678d0ac55dd44cd6cf23fe4b174d3e5f8400463c3e9d1a643b59f841b1e7 DIST ansible_compat-25.8.1.tar.gz 90142 BLAKE2B 39c98e2e4f7fe9da00543b1ba2fce24e303c25aa269c1a4f86ed96a7e29ebb9f31fa40516fba78017e940ddcea5f6fba95bf0b4eccebc77fd0c13d282bf6df97 SHA512 b0bc8ef6f614e7c41becba6090ebd4a5c09bb9ac957a56652eb59d18eb2d03398e149af21071883a7b236e0ee724b354322a043f8d45c23b4db6d1864f871130 +DIST ansible_compat-25.8.2.tar.gz 190581 BLAKE2B a20ebf6b595a8933d02b88c1f9f8efae8e7ffac3378bed3c50fd8fbf74a73663c5406fde7f05f0a923ba7ce75d920f3bf58e347cb7650cec77cb974ed805e45c SHA512 78beb54d3ad65e02e7009834b5690b118c6743274fa5fd31941e63a7f99d3b7ac2fcbce0fa80d45212a6bcf4365628e731cb139a6af14360c0552e9a759d6336 diff --git a/dev-python/ansible-compat/ansible-compat-25.8.0.ebuild b/dev-python/ansible-compat/ansible-compat-25.8.2.ebuild index fbc9b34c1183..19799b9793b1 100644 --- a/dev-python/ansible-compat/ansible-compat-25.8.0.ebuild +++ b/dev-python/ansible-compat/ansible-compat-25.8.2.ebuild @@ -21,8 +21,8 @@ KEYWORDS="~amd64 ~arm64 ~riscv" RDEPEND=" >=app-admin/ansible-core-2.18.6[${PYTHON_USEDEP}] >=dev-python/jsonschema-4.23.0[${PYTHON_USEDEP}] - dev-python/packaging[${PYTHON_USEDEP}] - dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/packaging-25.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-6.0.2[${PYTHON_USEDEP}] >=dev-python/subprocess-tee-0.4.1[${PYTHON_USEDEP}] " BDEPEND=" @@ -32,6 +32,13 @@ BDEPEND=" EPYTEST_PLUGINS=( pytest-{mock,plus} ) distutils_enable_tests pytest +src_prepare() { + distutils-r1_src_prepare + + # remove stupid upstream version block + sed -i -e 's:2.20.0dev0:0:' src/ansible_compat/prerun.py || die +} + python_test() { local EPYTEST_DESELECT=( # All these tests attempt to connect to galaxy.ansible.com diff --git a/dev-python/attrs/Manifest b/dev-python/attrs/Manifest index a4795b6a5ff7..db05b715fc3f 100644 --- a/dev-python/attrs/Manifest +++ b/dev-python/attrs/Manifest @@ -1 +1,2 @@ DIST attrs-25.3.0.tar.gz 812032 BLAKE2B a4417e2ccc14a61f1f23cf40bd75c665a081130482484752af46d94d40a6e06679f7adf7d2e8c9b27c8d7ae4bbc1cc835ba0f533d37caa2d7b333ca2158e3d89 SHA512 acf34c38865157c49ba4070b35a162f0eb976ded0a8b8f74afe4c7e7238b8418af6108954cfc92c9721a090505e73ae193225a73a02352ab3bba0d9ace189059 +DIST attrs-25.4.0.tar.gz 934251 BLAKE2B 5d3a4ef1c5821ac8998a401239d73ea8e6fa2508b779c2772eca9240375835193b0ed62c40d0502f5f31c6582fc9b4a62d5505236d6ae5c878695bfecd336ba4 SHA512 945ea1766adf7e8c8cc8b8f8c63c3dca652553522cede6a09d479f9919a41d43539819da2fe6fdc0e0b42822e353c7cb04b79fb9cecfd54bde5e301574a82341 diff --git a/dev-python/attrs/attrs-25.4.0.ebuild b/dev-python/attrs/attrs-25.4.0.ebuild new file mode 100644 index 000000000000..9ddbf9101609 --- /dev/null +++ b/dev-python/attrs/attrs-25.4.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Attributes without boilerplate" +HOMEPAGE=" + https://github.com/python-attrs/attrs/ + https://attrs.readthedocs.io/ + https://pypi.org/project/attrs/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" + +BDEPEND=" + >=dev-python/hatchling-1.26.0[${PYTHON_USEDEP}] + >=dev-python/hatch-fancy-pypi-readme-23.2.0[${PYTHON_USEDEP}] + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + $(python_gen_impl_dep sqlite) + $(python_gen_cond_dep ' + dev-python/cloudpickle[${PYTHON_USEDEP}] + ' python3_{11..14}) + $(python_gen_cond_dep ' + dev-python/zope-interface[${PYTHON_USEDEP}] + ' python3_{11..14} pypy3_11) + ) +" + +EPYTEST_PLUGINS=( hypothesis ) +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=() + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # https://github.com/python-attrs/attrs/issues/1418 + tests/test_make.py::TestClassBuilder::test_handles_missing_meta_on_class + ) + ;; + esac + + epytest +} diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index 7a41dec94e1e..61b0e7ed2048 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -5,3 +5,4 @@ DIST boto3-1.40.30.gh.tar.gz 997925 BLAKE2B 4467751d6248dd25b046c23680d966d3222d DIST boto3-1.40.35.gh.tar.gz 1001174 BLAKE2B afef89c4d20770e9d7a8fbff39c2783f25331dc89ec9a025b40afd93a5e5175d1dc041ff3f6e866cc122bb81348c455e1740e6d793ed0ac8c5bc885f1eeb6085 SHA512 fdc723da40b22d6d46cf8c39e5ffbf80918d1398bd8e639bebbcfa4c5bda0b405fa2ada4ea22aa207fa0bf41bfe2242469e870c9f61f20a40a2e90630acce7b2 DIST boto3-1.40.40.gh.tar.gz 1003705 BLAKE2B b7a555bb3ce92d01a14f3bc43a689452ed7f1cdef7e8f165ed4ee9b5625ab8c064c4ba541c67f301d938d6a3886301f1c563c0f77a72bae19c88ff60f35fdcfa SHA512 47172d50ce7203abb5e85e7e66da93e388a6f28a244fe0e654f619dee5388961d080ff04ff7126c09bc52af7c3f03cd4c334fc757bc63fbfb2572cab668b7b26 DIST boto3-1.40.45.gh.tar.gz 1007074 BLAKE2B b6b36715046fc1468ad02770b31c88276d342546f4482c75d41686d4754c4b5a4231d027356bac122be08067943ad7df02bbea6fa2086a79306125ef41fc27b9 SHA512 4533e413d4771b5770f77df9c6574dca3d85bafbc1d65918b90c294fdd32ff3e6ab6e5e5f95c2ae0fb9db062eda411d2fd7fab7c7b873e87e2074ca34a13cce1 +DIST boto3-1.40.46.gh.tar.gz 1007701 BLAKE2B e3d79e6e3cdcb45a022d847617a77191ba1384839458c114679c77580fed8db954bc0b087a4073647b8adef9845b33360a47a8865ec83fc22e72a195d8463121 SHA512 cd47dcf610fa5b0c7b0341231093c899efc63addc4517f2ea1da43ce5e37e7d3c8ff99103816c8d119a5f2fbc0cfaa0913eebd66aaa6d65129b3ed3b56fab5a7 diff --git a/dev-python/boto3/boto3-1.40.46.ebuild b/dev-python/boto3/boto3-1.40.46.ebuild new file mode 100644 index 000000000000..90fb2a42e6e5 --- /dev/null +++ b/dev-python/boto3/boto3-1.40.46.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.14.0[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index c87534ef73e3..0b788911769f 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -5,3 +5,4 @@ DIST botocore-1.40.30.gh.tar.gz 15142090 BLAKE2B 9293ad264156c749fbbc4b1a0a59c7a DIST botocore-1.40.35.gh.tar.gz 15147385 BLAKE2B 061a5f62573851c50c4dedbc0ea4868c73f64127219818c88976785dbbd425062b776846fce0c72ee5fca92f179ef13df14697ae387cb4741f549d1b0e3df4e6 SHA512 b85dd96dd123f155054e85da3c5fa86ca0f76019df5c9883b64143f8c7be58275063c757143fe243642ea1309f6d7fe0f900dca46c1498a4d3b2752686b95b86 DIST botocore-1.40.40.gh.tar.gz 15161555 BLAKE2B 099fc06007aedcb65b73de369b00d799ce7166f7ba4838a75abb2158f13dceade699b47eb5bff3cde48b7e5316eb12c2ba08ab22cf642bbaf26907454fe1e393 SHA512 4625752f7d2593a12451d257002dabc8ec3aa84267a1466a8e5e767878aae0bf875ae82d899fffc6b740ac957cd08fbd1baafdb4b82c2ebbaaf6f5d14db5eba6 DIST botocore-1.40.45.gh.tar.gz 15197014 BLAKE2B 6b44913005d75f22b0ff993b1fea47a417832d17988cc2d39325f1aa3151690bd4f3248f4ab4a338edea23833ff731bc56808d8e4c2a99cb08e280f27fc301f1 SHA512 0d6746d501c774139be0bd669df118eea875b886de972a71bdbd64085db68697edba57fc1eecebac2e91f772b96ceea8636ef04af3dbeaa0d4d163a6d61156c8 +DIST botocore-1.40.46.gh.tar.gz 15205441 BLAKE2B c6d5a7d5061445ff811e7c45159fda357cda05f21e578d91e1489da53c79be78bbf1e1f6ad531dcb46d96e19292cea379e4b28706a4f5bcc210e3c700f86993e SHA512 b035af8a1738974e2b21c5af3440d318a1081b3e226b7a485779c8fba6729e5868c6edf9608787bbb78dcb149fcf3adcacdcd286624d13511d91679c5b4c71c4 diff --git a/dev-python/botocore/botocore-1.40.46.ebuild b/dev-python/botocore/botocore-1.40.46.ebuild new file mode 100644 index 000000000000..a931fcaefec4 --- /dev/null +++ b/dev-python/botocore/botocore-1.40.46.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + epytest tests/{functional,unit} +} diff --git a/dev-python/frozenlist/Manifest b/dev-python/frozenlist/Manifest index 106c2ed96585..8989ceb73b16 100644 --- a/dev-python/frozenlist/Manifest +++ b/dev-python/frozenlist/Manifest @@ -1 +1,2 @@ DIST frozenlist-1.7.0.gh.tar.gz 51128 BLAKE2B 8ce7444524bcc1d3bc0c4288a21a06830fb461dbb2c6226995dddca5574f90a88aac03bf21caa0401ffacf5d069096c2f7430325c74ae26105d03c6ff7348c06 SHA512 007118195032ebeeba172d2113b8e0af330d6a1ed67ad3ab4313c01b4948a3d5890e526fb3258e930e3ea8a221f239fd061abe3eead0c6b6196a95e78fb29422 +DIST frozenlist-1.8.0.gh.tar.gz 51937 BLAKE2B e7f3948385cea658ec0fd3a348092aa17b74f01c0ab3bb712a90353032ae011636fa5089da57495640f8b9ab8668f49b227576aba973e6521d7224bcf9914825 SHA512 dc1ae0bdec79a02de81adfbf280c26126dc5c8cdae22eb80b28d1ca65445f945cd71ce9bfdbf03d5aef8f36af13862c57ce5d1f159d0177889f403b871744118 diff --git a/dev-python/frozenlist/frozenlist-1.8.0.ebuild b/dev-python/frozenlist/frozenlist-1.8.0.ebuild new file mode 100644 index 000000000000..dde059b85886 --- /dev/null +++ b/dev-python/frozenlist/frozenlist-1.8.0.ebuild @@ -0,0 +1,53 @@ +# Copyright 2021-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="A list-like structure which implements collections.abc.MutableSequence" +HOMEPAGE=" + https://pypi.org/project/frozenlist/ + https://github.com/aio-libs/frozenlist/ +" +SRC_URI=" + https://github.com/aio-libs/frozenlist/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+native-extensions" + +BDEPEND=" + dev-python/expandvars[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + native-extensions? ( + $(python_gen_cond_dep ' + dev-python/cython[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +python_compile() { + # pypy is not using the C extension + if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then + local -x FROZENLIST_NO_EXTENSIONS=1 + fi + + distutils-r1_python_compile +} + +python_test() { + rm -rf frozenlist || die + epytest -o addopts= +} diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest index d12ab8aeaca8..a11d7c268c91 100644 --- a/dev-python/langdetect/Manifest +++ b/dev-python/langdetect/Manifest @@ -1,3 +1 @@ DIST langdetect-1.0.9.tar.gz 981474 BLAKE2B ea8a9c3f16a2987c080742473bff4f2c1503f53fb3c2b40b0b1d6212bb6133ea22dce7864ffcfb8968c3a46b157d45cb3e2cf6f84bdbed0266cc716a853b032c SHA512 7558d674c47b080c79e43a00a25d2c7f77188cf60bea2cecb3bebb803d75e1aa42b43c74bd26ea1b541f4cb927421908882cbec01a91f0913984217e71ccc8db -EBUILD langdetect-1.0.9.ebuild 494 BLAKE2B 9cd8a2a93a8d45bf51fe2324402b175d641762ea591fcb99459427f977a95eccffa6ca4777ca4df39814eea6eac62711567faa654456d32f79023a4685804504 SHA512 d973b85ba1a44389a4275f02a779a93a005f7c2e096467b94b072862e4984d5b42cf33f9821ac68aa5b85b12c98983a90b96049989d8c84497969174b6bb838e -MISC metadata.xml 457 BLAKE2B 630128a3e982b6d60cc7b9f74c79fcb5ee47a71a02c73a50af9da8cedb6fad8e20a7f74b881e5b25c6483b92c9edbd56552cd38b2d9cbfa8b3eb4530facea969 SHA512 674f4f5cd809c6c77bc14e0f5687fa972bef14bdfa0b3343c5d66b7163eef1906eb87d060c8288732f825de71dce291ad0b841a5f2f0dd230f957b5687e45d45 diff --git a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch new file mode 100644 index 000000000000..637368d2f237 --- /dev/null +++ b/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch @@ -0,0 +1,13 @@ +Fix "Package 'langdetect.profiles' is absent from the `packages` configuration." + +--- a/setup.py ++++ b/setup.py +@@ -18,7 +18,7 @@ setup( + author_email='michal.danilak@gmail.com', + url='https://github.com/Mimino666/langdetect', + keywords='language detection library', +- packages=['langdetect', 'langdetect.utils', 'langdetect.tests'], ++ packages=['langdetect', 'langdetect.utils', 'langdetect.tests', 'langdetect.profiles'], + include_package_data=True, + install_requires=['six'], + license='MIT', diff --git a/dev-python/langdetect/langdetect-1.0.9.ebuild b/dev-python/langdetect/langdetect-1.0.9.ebuild index 56733bbffc48..98b2b0bf8d0b 100644 --- a/dev-python/langdetect/langdetect-1.0.9.ebuild +++ b/dev-python/langdetect/langdetect-1.0.9.ebuild @@ -1,9 +1,9 @@ -# Copyright 2022 Gentoo Authors +# Copyright 2022-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_COMPAT=( python3_{11..14} ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 pypi @@ -19,4 +19,6 @@ KEYWORDS="~amd64" RDEPEND="dev-python/six[${PYTHON_USEDEP}]" +PATCHES=( "${FILESDIR}/${P}-explicit-config.patch" ) + distutils_enable_tests unittest diff --git a/dev-python/langdetect/metadata.xml b/dev-python/langdetect/metadata.xml index 020e07f2a3dd..c0f74ac187e2 100644 --- a/dev-python/langdetect/metadata.xml +++ b/dev-python/langdetect/metadata.xml @@ -2,11 +2,9 @@ <!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>marcin.deranek@slonko.net</email> - <name>Marcin Deranek</name> + <email>pastalian46@gmail.com</email> + <name>Takuya Wakazono</name> </maintainer> - <upstream> - <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to> - </upstream> - <origin>slonko-overlay</origin> + + <origin>gentoo-guru-overlay</origin> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/multidict/Manifest b/dev-python/multidict/Manifest index 4772d1a4bd5e..60eaca79ba96 100644 --- a/dev-python/multidict/Manifest +++ b/dev-python/multidict/Manifest @@ -1,3 +1,2 @@ -DIST multidict-6.5.1.gh.tar.gz 116424 BLAKE2B 4c438450a49e7f5a8b5ac49ff124e018aa7e62642ff39ec8b92f6c24e776f9c6ffbaa3d3e8ecafaeff96c8164291d52539a94eb6e286642c4332d3636f691a06 SHA512 7fa411d12b492a2f567c0228e5822200e711a9e1c221595f2a6d40ffaa2c870dfeb9d12f421495e66c2c95673efd7c3275cef9810b1404e7e6afccaac1b6c182 -DIST multidict-6.6.3.gh.tar.gz 119092 BLAKE2B f2fbe0c25d527a2841b27b08eb48bb713fbdf4723a0aaba3928abfa0385f3912314f71a2e297212ee0e9bcbe31e64e4477188fd2870a3e3f9f241329fc0a73cb SHA512 ebb517d3f660bb99e19b9ccb7bd5f73579b0cc7ff71ecb4c0a8163bc11c47f564bbf73c47f7b89708631245d7b697944a760952f3ce87125d02b36cac03d4ceb DIST multidict-6.6.4.gh.tar.gz 119837 BLAKE2B e60c6195f1bab3916179abe5b509255ac7743d24554a0ea12be9a37f6dbceacdc8e839c2204b3f8499d442a1e54c02de0f36848c67a3fd1b2f996b632ddde483 SHA512 02a6dc8c1dac331251a5a0a04f2c00dab60a524bd4ee1a8923b3747f1dd3d75639952e32b49a2a46f94aa1ff95220503b22cb24c9252a5458d2c7346bd02faac +DIST multidict-6.7.0.gh.tar.gz 119807 BLAKE2B 53d642e7ad4471979ecb1aa60574935aa50d8032126f4956d6c4b27a9076290f7b8254609c758b1124d70ed32249cc463bcf55380f7421f5d640fdcbca4d6122 SHA512 6268acb9fc6efa1dc0adcaae06e61c5d6b9342fd654efc142116eee3acbd4d337e1c721cfeaa0a653241f0c2d9839cc8e55aa7531776c062c7c0c0c785db6be9 diff --git a/dev-python/multidict/multidict-6.5.1.ebuild b/dev-python/multidict/multidict-6.5.1.ebuild deleted file mode 100644 index 6b1a876d9f26..000000000000 --- a/dev-python/multidict/multidict-6.5.1.ebuild +++ /dev/null @@ -1,65 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_EXT=1 -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) - -inherit distutils-r1 - -DESCRIPTION="multidict implementation" -HOMEPAGE=" - https://github.com/aio-libs/multidict/ - https://pypi.org/project/multidict/ -" -SRC_URI=" - https://github.com/aio-libs/${PN}/archive/v${PV}.tar.gz - -> ${P}.gh.tar.gz -" - -LICENSE="Apache-2.0" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" -IUSE="+native-extensions" - -BDEPEND=" - test? ( - dev-python/objgraph[${PYTHON_USEDEP}] - ) -" - -EPYTEST_PLUGINS=() -distutils_enable_tests pytest - -python_prepare_all() { - # don't enable coverage or other pytest settings - sed -i -e '/cov/d' pytest.ini || die - # don't force -O3 - sed -i -e 's:"-O3"::' setup.py || die - distutils-r1_python_prepare_all -} - -python_compile() { - if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then - local -x MULTIDICT_NO_EXTENSIONS=1 - fi - - distutils-r1_python_compile -} - -python_test() { - local EPYTEST_IGNORE=( - tests/test_multidict_benchmarks.py - tests/test_views_benchmarks.py - ) - - rm -rf multidict || die - - local cext=--c-extensions - if ! use native-extensions || [[ ${EPYTHON} == pypy3* ]]; then - cext=--no-c-extensions - fi - epytest "${cext}" -} diff --git a/dev-python/multidict/multidict-6.6.3.ebuild b/dev-python/multidict/multidict-6.7.0.ebuild index b3d2223726a8..d4a2875f519f 100644 --- a/dev-python/multidict/multidict-6.6.3.ebuild +++ b/dev-python/multidict/multidict-6.7.0.ebuild @@ -21,7 +21,7 @@ SRC_URI=" LICENSE="Apache-2.0" SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv ~s390 ~sparc x86 ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" IUSE="+native-extensions" BDEPEND=" diff --git a/dev-python/narwhals/Manifest b/dev-python/narwhals/Manifest index f8e53eb1e3be..83a773912bf4 100644 --- a/dev-python/narwhals/Manifest +++ b/dev-python/narwhals/Manifest @@ -1,4 +1,4 @@ -DIST narwhals-2.5.0.tar.gz 558573 BLAKE2B f09121d35150efdeb328685ac09569c852357c79d1ffd85931a4922090bc84de8ec6c7401d69d1444c84e823e2e65d79f4c3f3f5f8cab147e4e0bb081c446d02 SHA512 b33f22c05935b12aad87809cea8aeafd8f17873725b1a0665a9845f71ab4caf5caa22c6f5612b7a334eebf37efab3f971c6599bd7d93a41c21c4c0f8303447fa -DIST narwhals-2.5.0.tar.gz.provenance 9939 BLAKE2B 3f7b0e304584d3cc18f500f9310e97af5609c598f5e4e74b01d50138b42898983611c89644682f2453eb27830893e98b02406e0a1d93086a5be6f0fc55b0b95a SHA512 f3367e78f6c0897543d208b56a886280d217fc7beff6b647892b970aa38436cb9cd70ebd899a39729040f1fa193d21c7bce36701ce078556f5d7e7381660c5b4 DIST narwhals-2.6.0.tar.gz 561649 BLAKE2B a687857f573ec262fc4ac872d728318bd232f01026c865703cdf18363023fbd3cf6feeb5964a24563d7ccbd82dc065590b4779204da5fff61e6448f784103852 SHA512 cf41582635376891f70a409e0505cee7575cb74e7df61f2e5f21a691e23f20b27091e7191bc0d88116d72363020d53d5a01bdbacfed9ed1c4c8acf1444a917b7 DIST narwhals-2.6.0.tar.gz.provenance 9653 BLAKE2B 53edab41fedc85c2f7f10f61d50fe3a391e621c5d743217fe9aded918ad8dbe03921be314807de6d9cd1d01c07402be77361d6ad271757582bef73223c64288d SHA512 5ee4999f2e00fb95510cf25a566c0306220d2a4f74eac1f0751d6e5ccc9c64ecec327562412ae977e7704462cfdcc74594cd2e40e531c356727df918bdc53b1c +DIST narwhals-2.7.0.tar.gz 569315 BLAKE2B d46de1c1fedd58872adb7104e325b78479837d6bd2eaeef0f290f926b6d78493135267bab3b4a6d698f561fdefb918709f5fe60475bbd126025eaf516c4fe3ba SHA512 fc4334f2dd99b459b3a27698acf514d9c5ac21c753ba4099b371db6a24aff4538f3bc9f67537bc60368f6543c3169947dc120206b04bdd60996cf25bfe2c158a +DIST narwhals-2.7.0.tar.gz.provenance 9790 BLAKE2B a1a2bf3aaed9864611e9f6bd648df67a6478c5846fb38b1ae30fcd3914305a9f3de7fdc765c821353c99f888e6f7f2504818f4b9d887554406d7757028a9403a SHA512 415b7ce737fb197ccff6340ce42c8d7a0b1005af6817267af46b68e3e517b01602a756f7800f1d48d73e462aa565480245432c3d961e18bc1eb7b9dda37da42b diff --git a/dev-python/narwhals/narwhals-2.5.0.ebuild b/dev-python/narwhals/narwhals-2.7.0.ebuild index f92dfab8ea90..f92dfab8ea90 100644 --- a/dev-python/narwhals/narwhals-2.5.0.ebuild +++ b/dev-python/narwhals/narwhals-2.7.0.ebuild diff --git a/dev-python/pymongo/files/pymongo-4.15.2-backports.patch b/dev-python/pymongo/files/pymongo-4.15.2-backports.patch new file mode 100644 index 000000000000..0bc1a4c49256 --- /dev/null +++ b/dev-python/pymongo/files/pymongo-4.15.2-backports.patch @@ -0,0 +1,212 @@ +diff --git a/bson/__init__.py b/bson/__init__.py +index b655e30c2c..6b2ba293a6 100644 +--- a/bson/__init__.py ++++ b/bson/__init__.py +@@ -1009,7 +1009,7 @@ def _dict_to_bson( + try: + elements.append(_element_to_bson(key, value, check_keys, opts)) + except InvalidDocument as err: +- raise InvalidDocument(f"Invalid document {doc} | {err}") from err ++ raise InvalidDocument(f"Invalid document: {err}", doc) from err + except AttributeError: + raise TypeError(f"encoder expected a mapping type but got: {doc!r}") from None + +diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c +index be91e41734..bee7198567 100644 +--- a/bson/_cbsonmodule.c ++++ b/bson/_cbsonmodule.c +@@ -1645,11 +1645,11 @@ static int write_raw_doc(buffer_t buffer, PyObject* raw, PyObject* _raw_str) { + } + + +-/* Update Invalid Document error message to include doc. ++/* Update Invalid Document error to include doc as a property. + */ + void handle_invalid_doc_error(PyObject* dict) { + PyObject *etype = NULL, *evalue = NULL, *etrace = NULL; +- PyObject *msg = NULL, *dict_str = NULL, *new_msg = NULL; ++ PyObject *msg = NULL, *new_msg = NULL, *new_evalue = NULL; + PyErr_Fetch(&etype, &evalue, &etrace); + PyObject *InvalidDocument = _error("InvalidDocument"); + if (InvalidDocument == NULL) { +@@ -1659,26 +1659,22 @@ void handle_invalid_doc_error(PyObject* dict) { + if (evalue && PyErr_GivenExceptionMatches(etype, InvalidDocument)) { + PyObject *msg = PyObject_Str(evalue); + if (msg) { +- // Prepend doc to the existing message +- PyObject *dict_str = PyObject_Str(dict); +- if (dict_str == NULL) { +- goto cleanup; +- } +- const char * dict_str_utf8 = PyUnicode_AsUTF8(dict_str); +- if (dict_str_utf8 == NULL) { +- goto cleanup; +- } + const char * msg_utf8 = PyUnicode_AsUTF8(msg); + if (msg_utf8 == NULL) { + goto cleanup; + } +- PyObject *new_msg = PyUnicode_FromFormat("Invalid document %s | %s", dict_str_utf8, msg_utf8); ++ PyObject *new_msg = PyUnicode_FromFormat("Invalid document: %s", msg_utf8); ++ if (new_msg == NULL) { ++ goto cleanup; ++ } ++ // Add doc to the error instance as a property. ++ PyObject *new_evalue = PyObject_CallFunctionObjArgs(InvalidDocument, new_msg, dict, NULL); + Py_DECREF(evalue); + Py_DECREF(etype); + etype = InvalidDocument; + InvalidDocument = NULL; +- if (new_msg) { +- evalue = new_msg; ++ if (new_evalue) { ++ evalue = new_evalue; + } else { + evalue = msg; + } +@@ -1689,7 +1685,7 @@ void handle_invalid_doc_error(PyObject* dict) { + PyErr_Restore(etype, evalue, etrace); + Py_XDECREF(msg); + Py_XDECREF(InvalidDocument); +- Py_XDECREF(dict_str); ++ Py_XDECREF(new_evalue); + Py_XDECREF(new_msg); + } + +diff --git a/bson/errors.py b/bson/errors.py +index a3699e704c..ffc117f7ac 100644 +--- a/bson/errors.py ++++ b/bson/errors.py +@@ -15,6 +15,8 @@ + """Exceptions raised by the BSON package.""" + from __future__ import annotations + ++from typing import Any, Optional ++ + + class BSONError(Exception): + """Base class for all BSON exceptions.""" +@@ -31,6 +33,17 @@ class InvalidStringData(BSONError): + class InvalidDocument(BSONError): + """Raised when trying to create a BSON object from an invalid document.""" + ++ def __init__(self, message: str, document: Optional[Any] = None) -> None: ++ super().__init__(message) ++ self._document = document ++ ++ @property ++ def document(self) -> Any: ++ """The invalid document that caused the error. ++ ++ ..versionadded:: 4.16""" ++ return self._document ++ + + class InvalidId(BSONError): + """Raised when trying to create an ObjectId from invalid data.""" +diff --git a/doc/changelog.rst b/doc/changelog.rst +index 082c22fafc..7270043d41 100644 +--- a/doc/changelog.rst ++++ b/doc/changelog.rst +@@ -1,6 +1,15 @@ + Changelog + ========= + ++Changes in Version 4.16.0 (XXXX/XX/XX) ++-------------------------------------- ++ ++PyMongo 4.16 brings a number of changes including: ++ ++- Removed invalid documents from :class:`bson.errors.InvalidDocument` error messages as ++ doing so may leak sensitive user data. ++ Instead, invalid documents are stored in :attr:`bson.errors.InvalidDocument.document`. ++ + Changes in Version 4.15.1 (2025/09/16) + -------------------------------------- + +diff --git a/test/test_bson.py b/test/test_bson.py +index e4cf85c46c..f792db1e89 100644 +--- a/test/test_bson.py ++++ b/test/test_bson.py +@@ -1163,7 +1163,7 @@ def __repr__(self): + ): + encode({"t": Wrapper(1)}) + +- def test_doc_in_invalid_document_error_message(self): ++ def test_doc_in_invalid_document_error_as_property(self): + class Wrapper: + def __init__(self, val): + self.val = val +@@ -1173,10 +1173,11 @@ def __repr__(self): + + self.assertEqual("1", repr(Wrapper(1))) + doc = {"t": Wrapper(1)} +- with self.assertRaisesRegex(InvalidDocument, f"Invalid document {doc}"): ++ with self.assertRaisesRegex(InvalidDocument, "Invalid document:") as cm: + encode(doc) ++ self.assertEqual(cm.exception.document, doc) + +- def test_doc_in_invalid_document_error_message_mapping(self): ++ def test_doc_in_invalid_document_error_as_property_mapping(self): + class MyMapping(abc.Mapping): + def keys(self): + return ["t"] +@@ -1192,6 +1193,11 @@ def __len__(self): + def __iter__(self): + return iter(["t"]) + ++ def __eq__(self, other): ++ if isinstance(other, MyMapping): ++ return True ++ return False ++ + class Wrapper: + def __init__(self, val): + self.val = val +@@ -1201,8 +1207,9 @@ def __repr__(self): + + self.assertEqual("1", repr(Wrapper(1))) + doc = MyMapping() +- with self.assertRaisesRegex(InvalidDocument, f"Invalid document {doc}"): ++ with self.assertRaisesRegex(InvalidDocument, "Invalid document:") as cm: + encode(doc) ++ self.assertEqual(cm.exception.document, doc) + + + class TestCodecOptions(unittest.TestCase): +diff --git a/bson/_cbsonmodule.c b/bson/_cbsonmodule.c +index bee7198567..7d184641c5 100644 +--- a/bson/_cbsonmodule.c ++++ b/bson/_cbsonmodule.c +@@ -1657,26 +1657,28 @@ void handle_invalid_doc_error(PyObject* dict) { + } + + if (evalue && PyErr_GivenExceptionMatches(etype, InvalidDocument)) { +- PyObject *msg = PyObject_Str(evalue); ++ msg = PyObject_Str(evalue); + if (msg) { + const char * msg_utf8 = PyUnicode_AsUTF8(msg); + if (msg_utf8 == NULL) { + goto cleanup; + } +- PyObject *new_msg = PyUnicode_FromFormat("Invalid document: %s", msg_utf8); ++ new_msg = PyUnicode_FromFormat("Invalid document: %s", msg_utf8); + if (new_msg == NULL) { + goto cleanup; + } + // Add doc to the error instance as a property. +- PyObject *new_evalue = PyObject_CallFunctionObjArgs(InvalidDocument, new_msg, dict, NULL); ++ new_evalue = PyObject_CallFunctionObjArgs(InvalidDocument, new_msg, dict, NULL); + Py_DECREF(evalue); + Py_DECREF(etype); + etype = InvalidDocument; + InvalidDocument = NULL; + if (new_evalue) { + evalue = new_evalue; ++ new_evalue = NULL; + } else { + evalue = msg; ++ msg = NULL; + } + } + PyErr_NormalizeException(&etype, &evalue, &etrace); diff --git a/dev-python/pymongo/pymongo-4.15.2-r1.ebuild b/dev-python/pymongo/pymongo-4.15.2-r1.ebuild new file mode 100644 index 000000000000..d90e53704c01 --- /dev/null +++ b/dev-python/pymongo/pymongo-4.15.2-r1.ebuild @@ -0,0 +1,207 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit check-reqs distutils-r1 + +MY_P=mongo-python-driver-${PV} +DESCRIPTION="Python driver for MongoDB" +HOMEPAGE=" + https://github.com/mongodb/mongo-python-driver/ + https://pypi.org/project/pymongo/ +" +SRC_URI=" + https://github.com/mongodb/mongo-python-driver/archive/${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="doc kerberos +native-extensions +test-full" + +RDEPEND=" + <dev-python/dnspython-3.0.0[${PYTHON_USEDEP}] + kerberos? ( dev-python/kerberos[${PYTHON_USEDEP}] ) +" +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + test-full? ( + >=dev-db/mongodb-2.6.0 + ) + ) +" + +distutils_enable_sphinx doc + +EPYTEST_PLUGINS=( pytest-asyncio ) +EPYTEST_RERUNS=5 +distutils_enable_tests pytest + +reqcheck() { + if use test && use test-full; then + # During the tests, database size reaches 1.5G. + local CHECKREQS_DISK_BUILD=1536M + + check-reqs_${1} + fi +} + +pkg_pretend() { + reqcheck pkg_pretend +} + +pkg_setup() { + reqcheck pkg_setup +} + +src_prepare() { + local PATCHES=( + # https://github.com/mongodb/mongo-python-driver/pull/2539 + # https://github.com/mongodb/mongo-python-driver/pull/2573 + "${FILESDIR}/${P}-backports.patch" + ) + + distutils-r1_src_prepare + # we do not want hatch-requirements-txt and its ton of NIH deps + sed -i -e '/requirements/d' pyproject.toml || die +} + +python_compile() { + # causes build errors to be fatal + local -x TOX_ENV_NAME=whatever + local DISTUTILS_ARGS=() + # unconditionally implicitly disabled on pypy3 + if ! use native-extensions; then + export NO_EXT=1 + else + export PYMONGO_C_EXT_MUST_BUILD=1 + unset NO_EXT + fi + + distutils-r1_python_compile + + # upstream forces setup.py build_ext -i in their setuptools hack + find -name '*.so' -delete || die +} + +python_test() { + rm -rf bson pymongo || die + + local EPYTEST_DESELECT=( + # network-sandbox + test/asynchronous/test_async_loop_unblocked.py::TestClientLoopUnblocked::test_client_does_not_block_loop + test/asynchronous/test_client.py::AsyncClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver + test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_logging + test/asynchronous/test_client.py::AsyncClientUnitTest::test_detected_environment_warning + test/asynchronous/test_client.py::TestClient::test_service_name_from_kwargs + test/asynchronous/test_client.py::TestClient::test_srv_max_hosts_kwarg + test/test_client.py::ClientUnitTest::test_connection_timeout_ms_propagates_to_DNS_resolver + test/test_client.py::ClientUnitTest::test_detected_environment_logging + test/test_client.py::ClientUnitTest::test_detected_environment_warning + test/test_client.py::TestClient::test_service_name_from_kwargs + test/test_client.py::TestClient::test_srv_max_hosts_kwarg + test/test_dns.py::TestCaseInsensitive::test_connect_case_insensitive + test/asynchronous/test_dns.py::IsolatedAsyncioTestCaseInsensitive::test_connect_case_insensitive + test/test_srv_polling.py + test/asynchronous/test_srv_polling.py + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_custom_srvServiceName + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_invalid_type_for_srvMaxHosts + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_negative_integer_for_srvMaxHosts + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_positive_srvMaxHosts_and_loadBalanced=fa + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_loadBalanced=true + test/test_uri_spec.py::TestAllScenarios::test_test_uri_options_srv-options_SRV_URI_with_srvMaxHosts=0_and_replicaSet + + # broken regularly by changes in mypy + test/test_typing.py::TestMypyFails::test_mypy_failures + + # fragile to timing? fails because we're getting too many logs + test/test_connection_logging.py::TestConnectionLoggingConnectionPoolOptions::test_maxConnecting_should_be_included_in_connection_pool_created_message_when_specified + + # hangs? + test/asynchronous/test_grid_file.py::AsyncTestGridFile::test_small_chunks + + # broken async tests? + test/asynchronous/test_encryption.py + + # -Werror + test/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated + test/asynchronous/test_read_preferences.py::TestMongosAndReadPreference::test_read_preference_hedge_deprecated + + # fragile to timing? Internet? + test/test_client.py::TestClient::test_repr_srv_host + test/asynchronous/test_client.py::TestClient::test_repr_srv_host + test/asynchronous/test_ssl.py::TestSSL::test_pyopenssl_ignored_in_async + ) + + if ! use test-full; then + # .invalid is guaranteed to return NXDOMAIN per RFC 6761 + local -x DB_IP=mongodb.invalid + epytest -p asyncio + return + fi + + # Yes, we need TCP/IP for that... + local -x DB_IP=127.0.0.1 + local -x DB_PORT=27000 + + local dbpath=${TMPDIR}/mongo.db + local logpath=${TMPDIR}/mongod.log + + local failed= + mkdir -p "${dbpath}" || die + while true; do + ebegin "Trying to start mongod on port ${DB_PORT}" + + # mongodb is extremely inefficient + # https://www.mongodb.com/docs/manual/reference/ulimit/#review-and-set-resource-limits + ulimit -n 64000 || die + + local mongod_options=( + --dbpath "${dbpath}" + --bind_ip "${DB_IP}" + --port "${DB_PORT}" + --unixSocketPrefix "${TMPDIR}" + --logpath "${logpath}" + --fork + + # try to reduce resource use + --wiredTigerCacheSizeGB 0.25 + ) + + LC_ALL=C mongod "${mongod_options[@]}" && sleep 2 + + # Now we need to check if the server actually started... + if [[ ${?} -eq 0 && -S "${TMPDIR}"/mongodb-${DB_PORT}.sock ]]; then + # yay! + eend 0 + break + elif grep -q 'Address already in use' "${logpath}"; then + # ay, someone took our port! + eend 1 + : $(( DB_PORT += 1 )) + continue + else + eend 1 + eerror "Unable to start mongod for tests. See the server log:" + eerror " ${logpath}" + die "Unable to start mongod for tests." + fi + done + + nonfatal epytest -m "default or default_async or encryption" || failed=1 + + mongod --dbpath "${dbpath}" --shutdown || die + + [[ ${failed} ]] && die "Tests fail with ${EPYTHON}" + + rm -rf "${dbpath}" || die +} diff --git a/dev-python/pyzotero/Manifest b/dev-python/pyzotero/Manifest index f8146062ff56..cc79ff224cc8 100644 --- a/dev-python/pyzotero/Manifest +++ b/dev-python/pyzotero/Manifest @@ -1,2 +1,4 @@ DIST pyzotero-1.6.16.tar.gz 526904 BLAKE2B f5b385e3d22ec4a2bf9e35ea9578c60f2947fbff6edfe489e1ebbfbabf9f63d2088725be092e71a2eb4aa7c473e6008092121cf276182cb3cf7b043b6963eaed SHA512 e3ee2556f0411ad0c4f49f21630ba539cbe10fbb9deb849789a15c93a43327d5743312be8e71396e9354ee07a3edf64086680d566f45b9100a5f914effc4e5e3 DIST pyzotero-1.6.16.tar.gz.provenance 9231 BLAKE2B 7e877621d092b4b8e07a5a9eac4c9d5143d0172eeb199fba11e3f34e92f145c01ea2a66ac2e2190b231004337b51ec25d0be9f685f98615db111a1a5edd60bf5 SHA512 debdfadded065a7abdac9ff43d0417d03518f876355515881dcbd1b7901c6b68240695d408c20a9b3b8f105f800a1a2066e83192b1b91ef081fc91b1121a84da +DIST pyzotero-1.6.17.tar.gz 527253 BLAKE2B 502c6e9a850b026bdb965b19e788068652242b476a8952d8922272dd7104a232f8f52f97d3e2b480cfc58a2c1bb9fb77e2913474c6faf16e295fa6cf99be6959 SHA512 c972b69e3e30f4e21eed6c5d4f0697ba913dc5543480264441250572a3ea9295a79c4b565555861bd6aa2fcf324a1bb24ca9849ec0f0f5edb7b6d2a82c701c4e +DIST pyzotero-1.6.17.tar.gz.provenance 9407 BLAKE2B 903dad16065eed019964b12e5220e1bd0ef9a0b1d00c4b2fb665ce47927d3b009ad71dcc8b9a374344a11d8e7e152277be44dd392d6a188eb8d3cda0b0606859 SHA512 4ee4325326dc69a8365d153fd377f7bbf75d849794dfddd43a30ee7c2bcaf68b0c0139d91ea2a2de4b7c847f4effe9230c83fab477badc03f26a1efcb9bb94f2 diff --git a/dev-python/pyzotero/pyzotero-1.6.17.ebuild b/dev-python/pyzotero/pyzotero-1.6.17.ebuild new file mode 100644 index 000000000000..820dc35c88c9 --- /dev/null +++ b/dev-python/pyzotero/pyzotero-1.6.17.ebuild @@ -0,0 +1,49 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=uv-build +PYPI_VERIFY_REPO=https://github.com/urschrei/pyzotero +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 pypi + +DESCRIPTION="A Python client for the Zotero API" +HOMEPAGE=" + https://github.com/urschrei/pyzotero/ + https://pypi.org/project/pyzotero/ +" + +LICENSE="BlueOak-1.0.0" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + app-text/zotero-bin + <dev-python/bibtexparser-2[${PYTHON_USEDEP}] + >=dev-python/bibtexparser-1.4.3[${PYTHON_USEDEP}] + >=dev-python/feedparser-6.0.12[${PYTHON_USEDEP}] + >=dev-python/httpx-0.28.1[${PYTHON_USEDEP}] + >=dev-python/whenever-0.8.8[${PYTHON_USEDEP}] +" + +BDEPEND=" + >=dev-python/trove-classifiers-2024.7.2[${PYTHON_USEDEP}] + test? ( + >=dev-python/httpretty-1.1.4[${PYTHON_USEDEP}] + dev-python/ipython[${PYTHON_USEDEP}] + >=dev-python/pytz-2025.2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/tzdata-2025.2[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx doc \ + dev-python/sphinx-rtd-theme +EPYTEST_PLUGINS=( pytest-asyncio ) +distutils_enable_tests pytest + +python_test() { + epytest -o addopts= +} diff --git a/dev-python/sphinx-autoapi/Manifest b/dev-python/sphinx-autoapi/Manifest index 5a87b6bcab44..7dfbd85a51f2 100644 --- a/dev-python/sphinx-autoapi/Manifest +++ b/dev-python/sphinx-autoapi/Manifest @@ -1 +1,2 @@ DIST sphinx-autoapi-3.6.0.gh.tar.gz 73411 BLAKE2B 0fbe15c138d72a32d224248d94652763d8303ff014dbf2d35d878232e021ebcd9a7b72a792dc4d81aea182ea9cc812290f70954242bffa989d08e1427bb3c94b SHA512 9b671e3ca66ae40e95ce6df89952e9c1f2bf644087d9deaeb0e305de217fc8154445ff947ad9806949603f0956d95ae6d97c711fea52dcd44aa8f828b74f6c3d +DIST sphinx-autoapi-3.6.1.gh.tar.gz 74022 BLAKE2B 8e0ff4ce50454d49db409edcf842fff24bd1362cc048cf28a26fc4bbe128cbd0f0ba372ffb647db66d8b5d980c26db7b7192f05778014b7ec8ab2be7e2c33779 SHA512 42866432a55f5582eb7d2a1ea87ff7a5a34168cc3d0930d6f4c9d5f8c13f45db3ab8ff1290f12cc902906147c591bc7313448bbe39d10347a5381612b74729d9 diff --git a/dev-python/sphinx-autoapi/sphinx-autoapi-3.6.1.ebuild b/dev-python/sphinx-autoapi/sphinx-autoapi-3.6.1.ebuild new file mode 100644 index 000000000000..34474b10e9e5 --- /dev/null +++ b/dev-python/sphinx-autoapi/sphinx-autoapi-3.6.1.ebuild @@ -0,0 +1,57 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 + +DESCRIPTION="A new approach to API documentation in Sphinx" +HOMEPAGE=" + https://sphinx-autoapi.readthedocs.io/ + https://github.com/readthedocs/sphinx-autoapi/ + https://pypi.org/project/sphinx-autoapi/ +" +# sdist is missing docs, as of 2.1.0 +SRC_URI=" + https://github.com/readthedocs/sphinx-autoapi/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~x86" + +RDEPEND=" + >=dev-python/astroid-3.0.0[${PYTHON_USEDEP}] + dev-python/jinja2[${PYTHON_USEDEP}] + dev-python/pyyaml[${PYTHON_USEDEP}] + >=dev-python/sphinx-7.4.0[${PYTHON_USEDEP}] +" + +BDEPEND+=" + test? ( + dev-python/beautifulsoup4[${PYTHON_USEDEP}] + ) +" + +DOCS=( README.rst CHANGELOG.rst ) + +EPYTEST_PLUGINS=() +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # Internet + tests/python/test_pyintegration.py::TestPEP695::test_integration + tests/python/test_pyintegration.py::TestPipeUnionModule::test_integration + "tests/test_integration.py::TestExtensionErrors::test_extension_setup_errors[dotnetexample" +) + +src_prepare() { + distutils-r1_src_prepare + + # remove conflicting pins + sed -i -e 's:~=:>=:' pyproject.toml || die +} diff --git a/dev-python/webtest/Manifest b/dev-python/webtest/Manifest index 6e822e3d7977..3a3c2f25a615 100644 --- a/dev-python/webtest/Manifest +++ b/dev-python/webtest/Manifest @@ -1 +1,2 @@ DIST webtest-3.0.6.tar.gz 80151 BLAKE2B fde505862a0c7a87923fd7ed70748c045076c9fe70323099ef975153eeba5996cf84534e7acca7a97ad3c1a1a258351e02dd850be1826032da0edd7b0c27c31f SHA512 02341bac9e65bf736954ecaf34245afdae05a45e2e17d36ba5ba8be732e35938aab8a0f7ef58e260bc5f2d3667c87666b985e39de4006ed7cb4be2237c0441d9 +DIST webtest-3.0.7.tar.gz 80260 BLAKE2B b004cdc05d5f19516d4051fd6246e839635c3e980aae075bb4b491f993d9e9c81b78d4fb1e113ff4a3e17739ed56a121981e2081b5300424ae234aeefb81d38b SHA512 fe9d897964179f7921831da50dd7812785190228bbf0dfe1219169163da760b67365e7334c271f07b8a7a3792dce6c320aa8342cf48727b4c49401e6ad05212a diff --git a/dev-python/webtest/webtest-3.0.7.ebuild b/dev-python/webtest/webtest-3.0.7.ebuild new file mode 100644 index 000000000000..81bbaae2fd2f --- /dev/null +++ b/dev-python/webtest/webtest-3.0.7.ebuild @@ -0,0 +1,46 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYPI_PN="WebTest" +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Helper to test WSGI applications" +HOMEPAGE=" + https://docs.pylonsproject.org/projects/webtest/en/latest/ + https://github.com/Pylons/webtest/ + https://pypi.org/project/WebTest/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +RDEPEND=" + dev-python/paste[${PYTHON_USEDEP}] + dev-python/pastedeploy[${PYTHON_USEDEP}] + >=dev-python/webob-1.2[${PYTHON_USEDEP}] + >=dev-python/waitress-3.0.2[${PYTHON_USEDEP}] + dev-python/beautifulsoup4[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pyquery[${PYTHON_USEDEP}] + dev-python/wsgiproxy2[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/legacy-cgi[${PYTHON_USEDEP}] + ' 3.{13..14}) + ) +" + +PATCHES=( + "${FILESDIR}/webtest-2.0.33-no-pylons-theme.patch" +) + +distutils_enable_sphinx docs +EPYTEST_PLUGINS=() +distutils_enable_tests pytest diff --git a/dev-python/xarray/Manifest b/dev-python/xarray/Manifest index 1a0a4deaf859..5b9f5c6151af 100644 --- a/dev-python/xarray/Manifest +++ b/dev-python/xarray/Manifest @@ -1,6 +1,5 @@ +DIST xarray-2025.10.0.tar.gz 3058084 BLAKE2B 72df811cb7d7b0af3e6a718564e1061e45d116f108c8d3e431ec91fa0f514451588bd060c9243e773e6f4863294a388c0d48e1322f91a04144bccd40d8f1cc02 SHA512 03f1d3e6c124d85e84ba72ce941381c40dd39aab5ad413f129a6fb52bd0241b3d4a2105a72c5a5463945619b2d751658692e0ff38da20cc9df362eb480d7f9d2 DIST xarray-2025.6.1.tar.gz 3003185 BLAKE2B a75f68947922e922dad94dc6ab5454d9d2b2ec993e5fd06d760b2e3685b3feda2a88fb879e7ebb353b35dea5540fa8899eb8cba33ab0e5f9b59cb3fd885de1af SHA512 4fc7980f843f86c8e83015fbf9ea2c8440b046faaa1589a605cf1e2f64f9380e28e157c8afda5c0058b3fe8cfe01122ba8582f5d61b9f0eabdf7107ce6d81c0c -DIST xarray-2025.7.0.tar.gz 3005754 BLAKE2B 5e1cf6f1a845a9d38fee6f639016c79b14c10922fa96d241cea0a0a35d2c784ce98cfeb70ea49e03de0fd82d966e9656482caa380b48dbace7cf26b31a34b2fb SHA512 3cfe560c261cdd6a6c64cf100951e92cf63fff835dfa82ee7d1c7578ff808706905fbc2a1ae65a0db1c5abead203be43aff4771420f6851bfc357bacca4ffc95 DIST xarray-2025.7.1.tar.gz 3013717 BLAKE2B 37abbeec6736745a9a0cc098bfdb36b76c5b07a1f762a3207e7a69bda1670ad464c328daabcb5845f65dcb0b9901f045c633fb12fed4524bcc7dacfcc259e65b SHA512 446e50cfa16a3ba54124dc9417203ea96f6232e05515de38dc191b06ee417e165fd2faefaf4718eddb9620d32675abc6c2125ac7555759eb003263a70662cb7e DIST xarray-2025.8.0.tar.gz 3034425 BLAKE2B 089eecd4b8928bcc4cae2aa590a06f4d8b45b2886f1cb7f26114f97ea55914fecf83e58eec637c83123e1d81ff2bfb92f1d4ac18161b39495beb4975af71f255 SHA512 2ace4ae6736a5cde298f7d0da6b704326fa5b28d758744e0db022cc3e9ea6514ac447c5d7762fc273bc192ad7b31517edc0cda7a16302c3e9a63d5c952b1bcd2 -DIST xarray-2025.9.0.tar.gz 3040318 BLAKE2B dd4482cb5263339360ae4bfc6046dfb7fe32748927af0a913cabd77699f74fff3f6ad4405a496e6fb98a78c752af5ffc89c69a734e2870458ece3d67c77c8fab SHA512 0cc572de58c59badb383d20292cf092500192e1723c12423f7d4c87e110feb08156cff71c136e45dd35eb70941a55e44a88774b698d09ecd083a882a207317e1 DIST xarray-2025.9.1.tar.gz 3057322 BLAKE2B a62f1d69735f0d7776000862a4245ead49df1aa200f05fb6be5f1aec05acf43da0e5bf7c7c99a081cc0b0b22bea030b084a24853ff8bc87a0ff520bbe6dffe7f SHA512 dd720d19a766be6ffe46c6386037ff914e983168bcda8c7d50647039cae618f8e7bf3a89bf9b486ced6457789e07f48e346134c6b08aadbe5f44df6dbde59df6 diff --git a/dev-python/xarray/xarray-2025.9.0.ebuild b/dev-python/xarray/xarray-2025.10.0.ebuild index 0dc4a4299df0..15976e697523 100644 --- a/dev-python/xarray/xarray-2025.9.0.ebuild +++ b/dev-python/xarray/xarray-2025.10.0.ebuild @@ -63,6 +63,8 @@ python_test() { 'xarray/tests/test_backends.py::TestNetCDF4Data::test_compression_encoding[blosc_zstd]' # requires h5netcdf package xarray/tests/test_backends_datatree.py::TestNetCDF4DatatreeIO::test_open_datatree_specific_group + # NotImplementedError, seriously? + xarray/tests/test_backends.py::TestGenericNetCDF4InMemory::test_roundtrip_group_via_memoryview ) if ! has_version ">=dev-python/scipy-1.4[${PYTHON_USEDEP}]" ; then diff --git a/dev-python/xarray/xarray-2025.7.0.ebuild b/dev-python/xarray/xarray-2025.7.0.ebuild deleted file mode 100644 index 1e98d86dfb2d..000000000000 --- a/dev-python/xarray/xarray-2025.7.0.ebuild +++ /dev/null @@ -1,121 +0,0 @@ -# Copyright 1999-2025 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=8 - -DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) - -inherit distutils-r1 pypi - -DESCRIPTION="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.26[${PYTHON_USEDEP}] - >=dev-python/pandas-2.2[${PYTHON_USEDEP}] - >=dev-python/packaging-24.1[${PYTHON_USEDEP}] -" -# note: most of the test dependencies are optional -BDEPEND=" - dev-python/setuptools-scm[${PYTHON_USEDEP}] - test? ( - dev-python/bottleneck[${PYTHON_USEDEP}] - dev-python/cftime[${PYTHON_USEDEP}] - dev-python/hypothesis[${PYTHON_USEDEP}] - dev-python/matplotlib[${PYTHON_USEDEP}] - !riscv? ( !x86? ( - >=dev-python/netcdf4-1.6.0[bzip2,szip,${PYTHON_USEDEP}] - ) ) - dev-python/toolz[${PYTHON_USEDEP}] - !hppa? ( >=dev-python/scipy-1.13[${PYTHON_USEDEP}] ) - ) -" - -EPYTEST_PLUGINS=() -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 - xarray/tests/test_dataset.py::TestDataset::test_repr_multiindex - xarray/tests/test_datatree.py::TestRepr::test_doc_example - xarray/tests/test_datatree.py::TestRepr::test_repr_truncates_nodes - xarray/tests/test_formatting.py::test_array_repr_dtypes_unix - - # converting timestamps into ns, causing an overflow - xarray/tests/test_cftimeindex.py::test_asi8 - xarray/tests/test_coding_times.py::test_decode_cf_time_bounds - xarray/tests/test_coding_times.py::test_use_cftime_false_standard_calendar_in_range - xarray/tests/test_coding_times.py::test_decode_cf_datetime_non_standard_units - ) - fi - - case ${ARCH} in - arm64) - EPYTEST_DESELECT+=( - 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype0-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]' - 'xarray/tests/test_backends.py::TestNetCDF4Data::test_roundtrip_mask_and_scale[dtype1-create_unsigned_false_masked_scaled_data-create_encoded_unsigned_false_masked_scaled_data]' - ) - ;; - esac - - if ! has_version "dev-python/seaborn[${PYTHON_USEDEP}]"; then - EPYTEST_DESELECT+=( - xarray/tests/test_plot.py::TestContour::test_colors - ) - fi - - epytest -o addopts= -} diff --git a/dev-python/yarl/Manifest b/dev-python/yarl/Manifest index 3527492da14b..143dc9bad2d2 100644 --- a/dev-python/yarl/Manifest +++ b/dev-python/yarl/Manifest @@ -1,2 +1,3 @@ DIST yarl-1.20.1.tar.gz 186428 BLAKE2B 904bc2fba743d7cc0f313166477ff93288816853d7831ed25b3589749878b78c5c10ccb0bb8d11cbad66cea8c5c8eab4fa32ff0542351cf1351a7de5c235ebd6 SHA512 2e7d2c69ddf07f04468b40dc929f5c54bcc3026386fa5fe98bc7f8b8f8aafee05d1df00a42377767e8a9e839f76b8cf569b8e373b3e94af6a954e68a4031fcc1 DIST yarl-1.21.0.tar.gz 187069 BLAKE2B cab583d33154cacb73bc0297a0a53e220dbde17f9d4812b8a6a4b1e69d8589c102710a2f6694f802b6ee944fc21a69a941bb8ce333a9c5bafecda9d11c4c4050 SHA512 e37316deae6e503b7cdb8b01c767d725776cedbb189735575d18376480a6de875307b436fcbe2dba46095b4ca340c57e51d6247b452c00a9f9dd54477b70d483 +DIST yarl-1.22.0.tar.gz 187169 BLAKE2B ea3eecf2e2cf25f25c9aab1608facd2c4a3553418170e66ede5e2730eedd628a019250394e16a2aed57b9bfd4f43981f7be709d5aff44f5394f244c3ac6b31ce SHA512 232b698ee4c62b62db51e5ea7db3974b80f70fc7e006700f4ab348d1ac666172a64106f18f9d213a5f6ee88b189359701f51c26795693fc183f992e65f1ec4c9 diff --git a/dev-python/yarl/yarl-1.22.0.ebuild b/dev-python/yarl/yarl-1.22.0.ebuild new file mode 100644 index 000000000000..9776d49e5af3 --- /dev/null +++ b/dev-python/yarl/yarl-1.22.0.ebuild @@ -0,0 +1,63 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_EXT=1 +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Yet another URL library" +HOMEPAGE=" + https://github.com/aio-libs/yarl/ + https://pypi.org/project/yarl/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="+native-extensions" + +RDEPEND=" + >=dev-python/idna-2.0[${PYTHON_USEDEP}] + >=dev-python/multidict-4.0[${PYTHON_USEDEP}] + >=dev-python/propcache-0.2.1[${PYTHON_USEDEP}] +" +BDEPEND=" + native-extensions? ( + dev-python/cython[${PYTHON_USEDEP}] + ) + dev-python/expandvars[${PYTHON_USEDEP}] + dev-python/setuptools[${PYTHON_USEDEP}] +" + +EPYTEST_PLUGINS=( hypothesis ) +distutils_enable_tests pytest + +python_compile() { + local -x YARL_NO_EXTENSIONS=0 + if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then + YARL_NO_EXTENSIONS=1 + fi + distutils-r1_python_compile +} + +python_test() { + local EPYTEST_IGNORE=( + # benchmarks + tests/test_quoting_benchmarks.py + tests/test_url_benchmarks.py + ) + + local opts=() + # note different boolean logic than for backend (sigh) + local -x YARL_NO_EXTENSIONS= + if ! use native-extensions || [[ ${EPYTHON} != python* ]]; then + YARL_NO_EXTENSIONS=1 + fi + + rm -rf yarl || die + epytest -o addopts= "${opts[@]}" +} |
