diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-05-14 18:59:50 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-05-14 18:59:50 +0000 |
| commit | 00278f6cc9e8280380a376f72ec209c3efc960a4 (patch) | |
| tree | fb64e4ad90415827deb50f7ddc78db6898c1a100 /dev-python | |
| parent | f8809af2354fe27fa3c1df0e9716fa59d12dca19 (diff) | |
| download | baldeagleos-repo-00278f6cc9e8280380a376f72ec209c3efc960a4.tar.gz baldeagleos-repo-00278f6cc9e8280380a376f72ec209c3efc960a4.tar.xz baldeagleos-repo-00278f6cc9e8280380a376f72ec209c3efc960a4.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
53 files changed, 1669 insertions, 27 deletions
diff --git a/dev-python/anyio/anyio-4.8.0-r3.ebuild b/dev-python/anyio/anyio-4.8.0-r3.ebuild new file mode 100644 index 000000000000..57daf95dfd8f --- /dev/null +++ b/dev-python/anyio/anyio-4.8.0-r3.ebuild @@ -0,0 +1,89 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Compatibility layer for multiple asynchronous event loop implementations" +HOMEPAGE=" + https://github.com/agronholm/anyio/ + https://pypi.org/project/anyio/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/idna-2.8[${PYTHON_USEDEP}] + >=dev-python/sniffio-1.1[${PYTHON_USEDEP}] + >=dev-python/truststore-0.9.1[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}] + ' 3.{11..12}) +" +# On amd64, let's get more test coverage by dragging in uvloop, but let's +# not bother on other arches where uvloop may not be supported. +BDEPEND=" + >=dev-python/setuptools-scm-6.4[${PYTHON_USEDEP}] + test? ( + >=dev-python/exceptiongroup-1.2.0[${PYTHON_USEDEP}] + >=dev-python/hypothesis-4.0[${PYTHON_USEDEP}] + >=dev-python/psutil-5.9[${PYTHON_USEDEP}] + dev-python/trustme[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/trio-0.26.1[${PYTHON_USEDEP}] + ' 3.{11..13}) + amd64? ( + $(python_gen_cond_dep ' + >=dev-python/uvloop-0.21.0_beta1[${PYTHON_USEDEP}] + ' python3_{11..13}) + ) + ) +" + +distutils_enable_tests pytest +distutils_enable_sphinx docs \ + '>=dev-python/sphinx-rtd-theme-1.2.2' \ + dev-python/sphinxcontrib-jquery \ + dev-python/sphinx-autodoc-typehints + +PATCHES=( + # https://github.com/agronholm/anyio/commit/f051fd45a1d34bae8dd70dba726e711e7a49deee + # https://github.com/agronholm/anyio/commit/e0e2531de14c54eed895c92b4c8e87b44f47634b + # https://github.com/agronholm/anyio/commit/8bad9c05d966f6edfa58f26257015cb657d4e5ef + "${FILESDIR}/${P}-py314.patch" +) + +python_test() { + local EPYTEST_DESELECT=( + # requires link-local IPv6 interface + tests/test_sockets.py::TestTCPListener::test_bind_link_local + ) + + case ${EPYTHON} in + pypy3.11) + EPYTEST_DESELECT+=( + # likely related to https://github.com/pypy/pypy/issues/5264 + tests/test_debugging.py::test_main_task_name + ) + ;; + esac + + local filter=() + if ! has_version ">=dev-python/trio-0.26.1[${PYTHON_USEDEP}]"; then + filter+=( -k "not trio" ) + EPYTEST_DESELECT+=( + tests/test_pytest_plugin.py::test_plugin + tests/test_pytest_plugin.py::test_autouse_async_fixture + tests/test_pytest_plugin.py::test_cancel_scope_in_asyncgen_fixture + ) + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -m 'not network' "${filter[@]}" +} diff --git a/dev-python/anyio/files/anyio-4.8.0-py314.patch b/dev-python/anyio/files/anyio-4.8.0-py314.patch new file mode 100644 index 000000000000..9e1ad2fb151c --- /dev/null +++ b/dev-python/anyio/files/anyio-4.8.0-py314.patch @@ -0,0 +1,124 @@ +From f051fd45a1d34bae8dd70dba726e711e7a49deee Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Tue, 18 Mar 2025 14:38:12 +0200 +Subject: [PATCH] Fixed Path tests on Python 3.14.0a6 + +--- + src/anyio/_core/_fileio.py | 8 +++----- + 1 file changed, 3 insertions(+), 5 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index a0d61984..17459b79 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -421,13 +421,11 @@ async def copy( + target: str | os.PathLike[str], + *, + follow_symlinks: bool = True, +- dirs_exist_ok: bool = False, + preserve_metadata: bool = False, + ) -> Path: + func = partial( + self._path.copy, + follow_symlinks=follow_symlinks, +- dirs_exist_ok=dirs_exist_ok, + preserve_metadata=preserve_metadata, + ) + return Path(await to_thread.run_sync(func, target)) +@@ -437,13 +435,11 @@ async def copy_into( + target_dir: str | os.PathLike[str], + *, + follow_symlinks: bool = True, +- dirs_exist_ok: bool = False, + preserve_metadata: bool = False, + ) -> Path: + func = partial( + self._path.copy_into, + follow_symlinks=follow_symlinks, +- dirs_exist_ok=dirs_exist_ok, + preserve_metadata=preserve_metadata, + ) + return Path(await to_thread.run_sync(func, target_dir)) +@@ -616,7 +612,9 @@ async def read_text( + def relative_to( + self, *other: str | PathLike[str], walk_up: bool = False + ) -> Path: +- return Path(self._path.relative_to(*other, walk_up=walk_up)) ++ # relative_to() should work with any PathLike but it doesn't ++ others = [pathlib.Path(other) for other in other] ++ return Path(self._path.relative_to(*others, walk_up=walk_up)) + + else: + +From e0e2531de14c54eed895c92b4c8e87b44f47634b Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Tue, 15 Apr 2025 00:54:22 +0300 +Subject: [PATCH] Fixed Path.copy() and Path.copy_info failing on Python + 3.14.0a7 + +--- + docs/versionhistory.rst | 1 + + src/anyio/_core/_fileio.py | 4 ++-- + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index 17459b79..2eae029e 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -428,7 +428,7 @@ async def copy( + follow_symlinks=follow_symlinks, + preserve_metadata=preserve_metadata, + ) +- return Path(await to_thread.run_sync(func, target)) ++ return Path(await to_thread.run_sync(func, pathlib.Path(target))) + + async def copy_into( + self, +@@ -442,7 +442,7 @@ async def copy_into( + follow_symlinks=follow_symlinks, + preserve_metadata=preserve_metadata, + ) +- return Path(await to_thread.run_sync(func, target_dir)) ++ return Path(await to_thread.run_sync(func, pathlib.Path(target_dir))) + + async def move(self, target: str | os.PathLike[str]) -> Path: + # Upstream does not handle anyio.Path properly as a PathLike +From 8bad9c05d966f6edfa58f26257015cb657d4e5ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Alex=20Gr=C3=B6nholm?= <alex.gronholm@nextday.fi> +Date: Sat, 15 Feb 2025 16:41:44 +0200 +Subject: [PATCH] Fixed test failures caused by Python 3.14.0a5 + +--- + docs/versionhistory.rst | 1 + + src/anyio/_core/_fileio.py | 15 ++++++++++----- + tests/test_fileio.py | 2 ++ + 3 files changed, 13 insertions(+), 5 deletions(-) + +diff --git a/src/anyio/_core/_fileio.py b/src/anyio/_core/_fileio.py +index 3728734c..350a873a 100644 +--- a/src/anyio/_core/_fileio.py ++++ b/src/anyio/_core/_fileio.py +@@ -411,6 +412,10 @@ def match(self, path_pattern: str) -> bool: + + if sys.version_info >= (3, 14): + ++ @property ++ def info(self) -> Any: # TODO: add return type annotation when Typeshed gets it ++ return self._path.info ++ + async def copy( + self, + target: str | os.PathLike[str], +diff --git a/tests/test_fileio.py b/tests/test_fileio.py +index d7a769bd..28830e6e 100644 +--- a/tests/test_fileio.py ++++ b/tests/test_fileio.py +@@ -106,6 +106,8 @@ async def test_properties(self) -> None: + stdlib_properties.discard("__enter__") + stdlib_properties.discard("__exit__") + stdlib_properties.discard("__firstlineno__") ++ stdlib_properties.discard("__open_rb__") ++ stdlib_properties.discard("__open_wb__") + + async_path = Path(path) + anyio_properties = { diff --git a/dev-python/astor/astor-0.8.1-r1.ebuild b/dev-python/astor/astor-0.8.1-r1.ebuild index 78b54a9e1f6d..e43a44bdedb7 100644 --- a/dev-python/astor/astor-0.8.1-r1.ebuild +++ b/dev-python/astor/astor-0.8.1-r1.ebuild @@ -24,6 +24,30 @@ PATCHES=( distutils_enable_tests pytest -EPYTEST_IGNORE=( - tests/test_rtrip.py -) +python_test() { + local EPYTEST_IGNORE=( + tests/test_rtrip.py + ) + local EPYTEST_DESELECT=() + + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + # TODO + tests/test_code_gen.py::CodegenTestCase::test_complex + tests/test_code_gen.py::CodegenTestCase::test_deprecated_constant_nodes + tests/test_code_gen.py::CodegenTestCase::test_deprecated_name_constants + tests/test_code_gen.py::CodegenTestCase::test_fstring_debugging + tests/test_code_gen.py::CodegenTestCase::test_fstring_escaped_braces + tests/test_code_gen.py::CodegenTestCase::test_fstring_trailing_newline + tests/test_code_gen.py::CodegenTestCase::test_fstrings + tests/test_code_gen.py::CodegenTestCase::test_huge_int + tests/test_code_gen.py::CodegenTestCase::test_inf + tests/test_code_gen.py::CodegenTestCase::test_nan + ) + ;; + esac + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} diff --git a/dev-python/boto3/Manifest b/dev-python/boto3/Manifest index 86c3e8df1b98..e048265e186c 100644 --- a/dev-python/boto3/Manifest +++ b/dev-python/boto3/Manifest @@ -4,6 +4,7 @@ DIST boto3-1.38.11.gh.tar.gz 938736 BLAKE2B b1a27cb729b67047d9df35e4c9892560eeed DIST boto3-1.38.12.gh.tar.gz 939412 BLAKE2B 096514640df4a98b76c30cd21816260fcb7a23c2a9cda9410094f35bf1c153995046a68497d1af8af7fdce47ece9efdede595a3d9a35ce9605058e5172bc8c60 SHA512 e430a248bf26fcf54fd3737502f0fb335275353381c23d7bfba793f0d092e0e37a1fe0bac550d1ad6386f92c1d62f868a939d9addfc48afc9331a082b9bae07e DIST boto3-1.38.13.gh.tar.gz 939786 BLAKE2B 5c65c92b79ce28f398170950ed0fbce84a0079335a391a7ba4243a103634ba9e863fff8305dd799c47b896871ce16c5393fc2a4974026e34b8e35ca396002092 SHA512 e06f144b4cc6784d2563de2bfba2e0868c7877a2232c390bfee9db70518880b2d3c1506d3849b5f7cf46515ee2d1932a1ca09ca8847da2824f97fa5d828bc313 DIST boto3-1.38.14.gh.tar.gz 940393 BLAKE2B c3020c79137502354030dce76a5d3c9c684b89a05acab6a4d8ee525ec79b5bc7456dde1cb515b57b842d99cf923b1cbccf63a00b037dc383492eec0c03f9fe76 SHA512 04e6bc77e79c88268c1d9bd70f05e804377b3858cd5e883e1fd1cacd44857e6b48c21eb5aa1c1eadeef13e69d2d2a68d7fce161be14e315eeed8792daf6ffaa2 +DIST boto3-1.38.15.gh.tar.gz 941100 BLAKE2B 4a009dc8b39e2151ddc4e61e1946ffb110dcfde3c20fe68eb18d759bd1a0fe927905deae485461cf37738f62a278a1974aec20192971e704483745a123f38c9a SHA512 5750f5590cdd8fd05059ec7ce7c4406ce034fc5755cc037260d81b1c262e31113b8f0c8b465cd65e6d14b43b318dc18d86b2cef6e9d36efbf89367d856db240b DIST boto3-1.38.3.gh.tar.gz 934010 BLAKE2B f5008a63aec620385e06c15e97ea37335bba190e5a29920c14389ae0dfc0e09a70ce70f8b50c0d25feda3defd9e855739305d19df7759688c156f53fc698b533 SHA512 8f300e38c7912f5df00431c1b70494521ac49500512b4aba7dc18f6bf0e570508d6a00fe8a98eb3c8607af39744a67e3b47d69507dbaf25d44dd02085f24bf95 DIST boto3-1.38.8.gh.tar.gz 937130 BLAKE2B 4158573a032957c33f62c6406937a45956f4ccf972be4a223e16a327b0b476402a1e7bf7d9b6a5b83005fc324f6c0062ed73008972cabed9247790225c4d4e5a SHA512 3c3854ed132ad4c81cd868848a370cdc73101ac3c578f8ae70bc53c9a98b1d85dcd364258027adef976b3c6d220aa45f865928c055c9320d3a268e0e29d5af63 DIST boto3-1.38.9.gh.tar.gz 937730 BLAKE2B 6b1a68095601d9b32be0679171a73b204897a7f632c1825ee203d27b46c625b196739b9c6ed8f19e84e0f0d2ba3a777539d9474cbaaa526fd499655e62ce9def SHA512 37960c90bb8de6328dc08cabb98a71e0dbb9303137410a1e44efdd650d6d0009398a4c4fb75ab53f8c8dfa7f566925c03de10012092967e661157f6bdc12e583 diff --git a/dev-python/boto3/boto3-1.38.15.ebuild b/dev-python/boto3/boto3-1.38.15.ebuild new file mode 100644 index 000000000000..b862f479d876 --- /dev/null +++ b/dev-python/boto3/boto3-1.38.15.ebuild @@ -0,0 +1,53 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="The AWS SDK for Python" +HOMEPAGE=" + https://github.com/boto/boto3/ + https://pypi.org/project/boto3/ +" +SRC_URI=" + https://github.com/boto/boto3/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/botocore-${PV}[${PYTHON_USEDEP}] + >=dev-python/jmespath-0.7.1[${PYTHON_USEDEP}] + >=dev-python/s3transfer-0.12.0[${PYTHON_USEDEP}] +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_prepare_all() { + # don't lock versions to narrow ranges + sed -e '/botocore/ d' \ + -e '/jmespath/ d' \ + -e '/s3transfer/ d' \ + -i setup.py || die + + # do not rely on bundled deps in botocore (sic!) + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_python_prepare_all +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} diff --git a/dev-python/botocore/Manifest b/dev-python/botocore/Manifest index ecbefa5566e7..e80cfde96736 100644 --- a/dev-python/botocore/Manifest +++ b/dev-python/botocore/Manifest @@ -4,6 +4,7 @@ DIST botocore-1.38.11.gh.tar.gz 14617163 BLAKE2B e521777baa74342bff16a59a0a1281e DIST botocore-1.38.12.gh.tar.gz 14619336 BLAKE2B 65e66c6ef2daccef4e21a8256e4633140c2cfd424b76bee71c76fb1f9609c27623fbf34fa5a73606a9b9e1877e5eae70453b6106f0f02a1148f0baef6b5cda2e SHA512 471918f08af44395297f25b663d972155dddd23d6e1904afb3c002d38e919b52785dbc7da84f8a5b56921198304a7a28320328fc00da2b786ecc8b726bd1f08f DIST botocore-1.38.13.gh.tar.gz 14619576 BLAKE2B 088dfd540934b2c1f20e5a63ffd3aa2351021f3f61207d30d3352e3d92c5df6138e87fe74fc9e48b2bf221dda2ede7e632f50f4378448a6dc6cdc2f87aaa0b02 SHA512 b1c7b585289859b94325bb1f3934bcb3a0d7596cb22e20ee79125aff96af2aa9337ec97a197426200b4ac606370eecf395a0ba7e26c79946c9390fbb02acc578 DIST botocore-1.38.14.gh.tar.gz 14627287 BLAKE2B 9033f12f01b6478ce9e2bf5a5796a79a5b45157537b542007d22d7a27aed0cc2f680d5be7bbf49dd6e29708b28221de19387dbe9104f6fca0175deba7bacc565 SHA512 f1e49ceb8f39e9978d9765662e8adf7d6973405559aa62c954a16d4ade2740065efbcc0304faf6ce18fc5f71b2e25091d7dbd4cf406e197a81cad15a7617a5ae +DIST botocore-1.38.15.gh.tar.gz 14635893 BLAKE2B 9060ea9823ad74b5dc4b33c4701ad5c0b868f60e7450628502a12aa7ceb1d114f1edab07a2d2f93f9d43c99f1cf5198418484828eaba6ff8ad179c713754a5d2 SHA512 f8b6e45e31d93b2f6643537dbab22e0f952f14b7a281ab850126229b15c2c7f138d669bc9a22d8eb32a81045b6252c785462b930fdb23ec8f4081c945513f491 DIST botocore-1.38.3.gh.tar.gz 14578552 BLAKE2B 4766db1ba2651ebe65c79f8a37c91cf95875a20c0cc51c1886cd394b90d50109738daa79b398e0c4b80031cfab69e1338dfaafbc0ae796fffa3348f6b13fc1ce SHA512 ad69e119d5bbc98a0c14c1c927badeecc1f57d31305e6a07af41d4d4bf6755f5abc150e36321f71b9495221ad93052d84a1dc964fb9ef6fdd791d4c37e75a01a DIST botocore-1.38.8.gh.tar.gz 14606167 BLAKE2B cb92f6014349f5188d62ddeb043e7532c50c7edc984cabae918825cdace981694c37ba656afcbbb64e65e275da4980d5f256a945bbcc63f9609272b08690c3d5 SHA512 bc9096051fde740a908ef0912a0c205595e7df653a349c167f616a788423578ba6b3aed6fe6213f528faa32b1c946abf0ac66dd81afdc05d41d12a4af4f7e818 DIST botocore-1.38.9.gh.tar.gz 14612563 BLAKE2B 10a0e43846393c06c808e306cde1398ea9374712d07b71d16270cd3238d3063f66ff532fab465acb5a87065002b7ca7394d0c77a25c83b9f8b8ecad7823042a2 SHA512 748c373a1be84a123968444316de7ab6f34b548d7619183d23ae07d0b0aeeeebc8ba1d25bb5517f0491144f7578fa9a7e9fbca066f6aa0da7b2d7439138bb8fd diff --git a/dev-python/botocore/botocore-1.38.15.ebuild b/dev-python/botocore/botocore-1.38.15.ebuild new file mode 100644 index 000000000000..df85ee0d220c --- /dev/null +++ b/dev-python/botocore/botocore-1.38.15.ebuild @@ -0,0 +1,67 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="Low-level, data-driven core of boto 3" +HOMEPAGE=" + https://github.com/boto/botocore/ + https://pypi.org/project/botocore/ +" +SRC_URI=" + https://github.com/boto/botocore/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + <dev-python/jmespath-2[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/urllib3-1.25.4[${PYTHON_USEDEP}] +" +# unbundled packages +RDEPEND+=" + dev-python/requests[${PYTHON_USEDEP}] + dev-python/six[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/jsonschema[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +src_prepare() { + # unpin deps + sed -i -e "s:>=.*':':" setup.py || die + + # unbundle deps + rm -r botocore/vendored || die + find -name '*.py' -exec sed -i \ + -e 's:from botocore[.]vendored import:import:' \ + -e 's:from botocore[.]vendored[.]:from :' \ + {} + || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=( + # rely on bundled six + tests/functional/test_six_imports.py::test_no_bare_six_imports + tests/functional/test_six_threading.py::test_six_thread_safety + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest tests/{functional,unit} +} diff --git a/dev-python/bottleneck/Manifest b/dev-python/bottleneck/Manifest index f725f2742bc8..c66dbcecbb52 100644 --- a/dev-python/bottleneck/Manifest +++ b/dev-python/bottleneck/Manifest @@ -1,2 +1,3 @@ DIST bottleneck-1.4.2.tar.gz 103563 BLAKE2B a0fe43222acb63bcdf238282868c4a9acc6a8d0c3aa31d0b8ac9c38b6c4bb9e8a99e97e0227067a400b6320e52bbbbf0f29ddd5e38b32bc8c9cc995086d38e50 SHA512 6998a00375527fe77edd159311780a6551ee21dc2ef0ede7f47f6ca26542af4858df0065b2e8e82c3e5914069d0f467a770f460d04da5288d5a01ffd310d6292 +DIST bottleneck-1.5.0.tar.gz 104177 BLAKE2B 3cf5e089ce08bdacaa9ca81fdafd2a2b15b44151f79026803b3e0886fd47d4dcb1428089d7f7d9e75d0a644813c88682f50c5e4d8bac78b2e71089a6da750d8d SHA512 9fefe695afcec7c2ad29db7f84870bbea2224b96b606d0e72b1b6310e078fa098c6950dd3b3ac3bafc927fc0bbf6c56c3fcf89908530d806adeda1d10dec2ee7 DIST bottleneck-1.5.0rc1.tar.gz 104226 BLAKE2B 83f6f6c8289ea90b68850d970bd8a8c41499070fcef3dff724c17da3643f7b3e8935074babda0eda104118026cab116945a9685f1e508b1adc97c134af68aa31 SHA512 505e7116302266242ac7123c77dcae79ca1329531de98e54e8ae8dba25c65f7a58ad2ff3dd2eb19383362ed1b9591349caa1e92ee24fd5c0eb655d36886436ea diff --git a/dev-python/bottleneck/bottleneck-1.5.0.ebuild b/dev-python/bottleneck/bottleneck-1.5.0.ebuild new file mode 100644 index 000000000000..98f628f95077 --- /dev/null +++ b/dev-python/bottleneck/bottleneck-1.5.0.ebuild @@ -0,0 +1,52 @@ +# 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 +PYPI_PN=${PN^} +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="Fast NumPy array functions written in C" +HOMEPAGE=" + https://github.com/pydata/bottleneck/ + https://pypi.org/project/Bottleneck/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~x64-macos" + +DEPEND=" + >=dev-python/numpy-1.9.1:=[${PYTHON_USEDEP}] +" +RDEPEND=" + ${DEPEND} +" + +distutils_enable_tests pytest + +src_prepare() { + # don't overwrites user's optimization level + sed -e '/extra_compile_args=\["-O2"\]/d' -i setup.py || die + + distutils-r1_src_prepare +} + +python_test() { + local EPYTEST_DESELECT=() + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # GC assumptions? + tests/memory_test.py::test_memory_leak + ) + ;; + esac + + rm -rf bottleneck || die + epytest --pyargs bottleneck +} diff --git a/dev-python/cloudpickle/cloudpickle-3.1.1.ebuild b/dev-python/cloudpickle/cloudpickle-3.1.1.ebuild index c67721c0319d..267d3933cf39 100644 --- a/dev-python/cloudpickle/cloudpickle-3.1.1.ebuild +++ b/dev-python/cloudpickle/cloudpickle-3.1.1.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=flit -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_COMPAT=( python3_{11..14} python3_{13,14}t ) inherit distutils-r1 @@ -31,6 +31,17 @@ BDEPEND=" distutils_enable_tests pytest python_test() { + local EPYTEST_DESELECT=() + case ${EPYTHON} in + python3.14*) + EPYTEST_DESELECT+=( + # https://github.com/cloudpipe/cloudpickle/issues/567 + tests/cloudpickle_test.py::CloudPickleTest::test_locally_defined_class_with_type_hints + tests/cloudpickle_test.py::Protocol2CloudPickleTest::test_locally_defined_class_with_type_hints + ) + ;; + esac + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 local -x PYTHONPATH=${PYTHONPATH}:tests/cloudpickle_testpkg # -s unbreaks some tests diff --git a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild b/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild index df877559f766..53efadf15818 100644 --- a/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild +++ b/dev-python/dirty-equals/dirty-equals-0.9.0.ebuild @@ -4,7 +4,8 @@ EAPI=8 DISTUTILS_USE_PEP517=hatchling -PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_FULLY_TESTED=( python3_{10..13} pypy3_11 pypy3 ) +PYTHON_COMPAT=( "${PYTHON_FULLY_TESTED[@]}" ) inherit distutils-r1 @@ -28,7 +29,7 @@ BDEPEND=" dev-python/packaging[${PYTHON_USEDEP}] $(python_gen_cond_dep ' >=dev-python/pydantic-2.4.2[${PYTHON_USEDEP}] - ' 'python*' pypy3) + ' "${PYTHON_FULLY_TESTED[@]}") dev-python/pytest-mock[${PYTHON_USEDEP}] >=dev-python/pytz-2021.3[${PYTHON_USEDEP}] ) diff --git a/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild b/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild index 815d0d19800c..d0f14382eff6 100644 --- a/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild +++ b/dev-python/exceptiongroup/exceptiongroup-1.3.0.ebuild @@ -27,6 +27,17 @@ RDEPEND=" distutils_enable_tests pytest python_test() { + local EPYTEST_DESELECT=() + case ${EPYTHON} in + python3.14*) + EPYTEST_DESELECT+=( + # https://github.com/agronholm/exceptiongroup/issues/148 + tests/test_exceptions.py::DeepRecursionInSplitAndSubgroup::test_deep_split + tests/test_exceptions.py::DeepRecursionInSplitAndSubgroup::test_deep_subgroup + ) + ;; + esac + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest } diff --git a/dev-python/faker/faker-37.1.0.ebuild b/dev-python/faker/faker-37.1.0.ebuild index 4f44a1ce78c8..f0e339efb3a6 100644 --- a/dev-python/faker/faker-37.1.0.ebuild +++ b/dev-python/faker/faker-37.1.0.ebuild @@ -34,6 +34,11 @@ BDEPEND=" # note: tests are flaky with xdist distutils_enable_tests pytest +PATCHES=( + # https://github.com/joke2k/faker/pull/2213 + "${FILESDIR}/${P}-py314.patch" +) + python_test() { local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 local -x PYTEST_PLUGINS=faker.contrib.pytest.plugin diff --git a/dev-python/faker/files/faker-37.1.0-py314.patch b/dev-python/faker/files/faker-37.1.0-py314.patch new file mode 100644 index 000000000000..9f6931ba7a8d --- /dev/null +++ b/dev-python/faker/files/faker-37.1.0-py314.patch @@ -0,0 +1,45 @@ +From eaad7bb42385793a0622376caf3b832a7836781e Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 14 May 2025 13:17:48 +0200 +Subject: [PATCH] Fix type annotations for Python 3.14 + +Fix type annotations for `Provider.json()` to avoid name collision +in Python 3.14.0b1 where `json` is resolved to the `json()` method +itself rather than the `json` module. Import `JSONEncoder` directly +instead, so we can reference it without `json.`. + +Fixes #2212 +--- + faker/providers/misc/__init__.py | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/faker/providers/misc/__init__.py b/faker/providers/misc/__init__.py +index dca3363e..6ed2e958 100644 +--- a/faker/providers/misc/__init__.py ++++ b/faker/providers/misc/__init__.py +@@ -9,6 +9,7 @@ import tarfile + import uuid + import zipfile + ++from json import JSONEncoder + from typing import Any, Callable, Dict, List, Literal, Optional, Sequence, Set, Tuple, Type, Union, overload + + from faker.exceptions import UnsupportedFeature +@@ -536,7 +537,7 @@ class Provider(BaseProvider): + data_columns: Optional[List] = None, + num_rows: int = 10, + indent: Optional[int] = None, +- cls: Optional[Type[json.JSONEncoder]] = None, ++ cls: Optional[Type[JSONEncoder]] = None, + ) -> bytes: + """ + Generate random JSON structure and return as bytes. +@@ -551,7 +552,7 @@ class Provider(BaseProvider): + data_columns: Optional[List] = None, + num_rows: int = 10, + indent: Optional[int] = None, +- cls: Optional[Type[json.JSONEncoder]] = None, ++ cls: Optional[Type[JSONEncoder]] = None, + ) -> str: + """ + Generate random JSON structure values. diff --git a/dev-python/flask/Manifest b/dev-python/flask/Manifest index 3a8721c7e366..2b415b582bd6 100644 --- a/dev-python/flask/Manifest +++ b/dev-python/flask/Manifest @@ -1 +1,2 @@ DIST flask-3.1.0.tar.gz 680824 BLAKE2B 2897fb3cc7631341001c955119bf0a697db1a9dfd6ff0e1078f882fb030779eb0d15c64d4e9626d6a54bc50627c463f73d58b34e449b149106ac76ff878cd506 SHA512 dd1d9113f57d62cd8fb5d33a6fb6258761a39c3df41d174e52f454abfbfc2da4b6a88b142196bd0681637fe53982d95762b023acddbed00f10805c4266194e24 +DIST flask-3.1.1.tar.gz 753440 BLAKE2B 272ffc7c97ed68c8929e4b9aa41b6efac0beb205471e60e5a14030328be28fe629fe35d02440920abedc27d288ba20d36221c83aa6f64ef090d6ed3b248576bd SHA512 b582b71e10f72c2096f4a665a8182775165f48eece8bcded9ca5791bc575e3333ac913fb355279f0bee93fc57c16f9a8b635b329bfd71ed42df2b288c1a69741 diff --git a/dev-python/flask/flask-3.1.1.ebuild b/dev-python/flask/flask-3.1.1.ebuild new file mode 100644 index 000000000000..780c352d4ca3 --- /dev/null +++ b/dev-python/flask/flask-3.1.1.ebuild @@ -0,0 +1,58 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=flit +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="A microframework based on Werkzeug, Jinja2 and good intentions" +HOMEPAGE=" + https://palletsprojects.com/p/flask/ + https://github.com/pallets/flask/ + https://pypi.org/project/Flask/ +" +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="https://github.com/mitsuhiko/flask.git" + inherit git-r3 +else + inherit pypi + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +fi + +LICENSE="BSD" +SLOT="0" +IUSE="examples" + +RDEPEND=" + >=dev-python/blinker-1.9[${PYTHON_USEDEP}] + >=dev-python/click-8.1.3[${PYTHON_USEDEP}] + >=dev-python/itsdangerous-2.2.0[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.1.2[${PYTHON_USEDEP}] + >=dev-python/werkzeug-3.1.0[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + >=dev-python/asgiref-3.2[${PYTHON_USEDEP}] + !!dev-python/shiboken2[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx docs \ + dev-python/pallets-sphinx-themes \ + dev-python/sphinx-issues \ + dev-python/sphinx-tabs \ + dev-python/sphinxcontrib-log-cabinet +distutils_enable_tests pytest + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} + +python_install_all() { + use examples && dodoc -r examples + distutils-r1_python_install_all +} diff --git a/dev-python/httpx/httpx-0.28.1-r1.ebuild b/dev-python/httpx/httpx-0.28.1-r1.ebuild index 329b68ab7ee9..85d732e94914 100644 --- a/dev-python/httpx/httpx-0.28.1-r1.ebuild +++ b/dev-python/httpx/httpx-0.28.1-r1.ebuild @@ -80,6 +80,10 @@ python_test() { # Internet tests/client/test_proxies.py::test_async_proxy_close tests/client/test_proxies.py::test_sync_proxy_close + # click-8.2.0 + # https://github.com/encode/httpx/discussions/3572 + tests/test_main.py::test_auth + tests/test_main.py::test_verbose ) use cli || EPYTEST_IGNORE+=( diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index d059839c89bb..0ff0c9a83eb6 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -1,4 +1,5 @@ DIST hypothesis-6.130.13.gh.tar.gz 9544282 BLAKE2B 9a74af5cab1562b5eb2fc00fe1ea67471171ac1ecf71ef01e51082b6e3469c7a9b1de7e56119a4517b8f6c45be5efbc5461dcd258ab80c246e07df7c58dbf9c2 SHA512 25dbde677bf8b2e727999c39083f6746c9431e22326034c50ed723b51a3d7678a62dce648fcfd16802808f2034ad7cb74fe0b98fe50519b505a5b05412afa17a DIST hypothesis-6.131.12.gh.tar.gz 9551332 BLAKE2B f09f08a67209f4e72b845069f1d99978e53a83f5001a05a54e07b0a8c81f8fa1dfc55b3cd3da8c989efcf7cdf0171816df02c6e54123965a96aa0a0716e872f5 SHA512 01031fd37fadc6f38b0a34224d10d3b57eab109bd0fd77e1d00873b1f9ed08c234664061b22de64f8908ea8aa1909b891fb1035b4016724cd209db8255748722 DIST hypothesis-6.131.15.gh.tar.gz 9553236 BLAKE2B 29473ae79fce7183cbaec2f936824f52a18c02e13e4bd416debadd3c0b7a731d0643373c376b4236a1a857312c995e8822f54d94c1f165e8d77578371886f10d SHA512 ee89bc176230850ef4ecab7a5179f1528c576b21d42af2a76be512df70adb7ddd670a86552e18e5246bfde3184038237d644951149d78f4ca1f8cec77b6a2586 +DIST hypothesis-6.131.16.gh.tar.gz 9553561 BLAKE2B 0e7bc016b79bc8e68743e143455c5bb3e9815d186ae8b2e30093f53f0305cd086c2293ba0a10fa82e4b5fc26ffe0089438b3e79c1210c1486656437cbd3e83f3 SHA512 453a4bf94df625ef0fb63b442951990f0066228984f4facb96c46063857b7e8a61647692690f81e837586e20cb79d9dee60426674efe848b698461a0eee13ec0 DIST hypothesis-6.131.9.gh.tar.gz 9549949 BLAKE2B 8fb5c9b9ad2c3940671d1128980b431fd43e63e35561c53f4cb172e12313019349a9ec3f3d7ecc5c8701e1aef471a1242861a94a37767e61629a42a5bf525ed0 SHA512 345baa03d68ef615fc926d93344e4f5e6f7899f104d489ebcf127426a7b2bdf6b6ac1b19ae153b297102c3a2980fa1627ce8a900a851965b213f0bd30ff4e54c diff --git a/dev-python/hypothesis/hypothesis-6.131.16.ebuild b/dev-python/hypothesis/hypothesis-6.131.16.ebuild new file mode 100644 index 000000000000..5fc2ebd650ed --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.131.16.ebuild @@ -0,0 +1,126 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +CLI_COMPAT=( python3_{11..13} ) +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE="threads(+),sqlite" + +inherit distutils-r1 optfeature + +TAG=hypothesis-python-${PV} +MY_P=hypothesis-${TAG} +DESCRIPTION="A library for property based testing" +HOMEPAGE=" + https://github.com/HypothesisWorks/hypothesis/ + https://pypi.org/project/hypothesis/ +" +SRC_URI=" + https://github.com/HypothesisWorks/hypothesis/archive/${TAG}.tar.gz + -> ${P}.gh.tar.gz +" +S="${WORKDIR}/${MY_P}/hypothesis-python" + +LICENSE="MPL-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="cli" + +RDEPEND=" + >=dev-python/attrs-22.2.0[${PYTHON_USEDEP}] + >=dev-python/sortedcontainers-2.1.0[${PYTHON_USEDEP}] + cli? ( + $(python_gen_cond_dep ' + dev-python/black[${PYTHON_USEDEP}] + dev-python/click[${PYTHON_USEDEP}] + ' "${CLI_COMPAT[@]}") + ) +" +BDEPEND=" + test? ( + dev-python/pexpect[${PYTHON_USEDEP}] + >=dev-python/pytest-8[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + ) +" + +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + # subtests are broken by warnings from random plugins + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PYTEST_PLUGINS=xdist.plugin,_hypothesis_pytestplugin + local -x HYPOTHESIS_NO_PLUGINS=1 + + # NB: paths need to be relative to pytest.ini, + # i.e. start with hypothesis-python/ + local EPYTEST_DESELECT=() + case ${EPYTHON} in + python3.13t) + EPYTEST_DESELECT+=( + # TODO: missing warning + 'hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns' + ) + ;& + python3.14*) + EPYTEST_DESELECT+=( + 'hypothesis-python/tests/cover/test_compat.py::test_resolve_fwd_refs[Foo-Union]' + 'hypothesis-python/tests/cover/test_lookup.py::test_builds_suggests_from_type[Union]' + hypothesis-python/tests/cover/test_attrs_inference.py::test_attrs_inference_builds + hypothesis-python/tests/cover/test_lookup.py::test_bytestring_not_treated_as_generic_sequence + hypothesis-python/tests/cover/test_lookup.py::test_issue_4194_regression + hypothesis-python/tests/cover/test_lookup.py::test_resolves_forwardrefs_to_builtin_types + hypothesis-python/tests/cover/test_lookup.py::test_specialised_collection_types + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_collection_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_container_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_contextmanager_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_iterable_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_reversible_as_generic + hypothesis-python/tests/cover/test_lookup_py37.py::test_resolving_standard_sequence_as_generic + hypothesis-python/tests/cover/test_random_module.py::test_evil_prng_registration_nonsense + hypothesis-python/tests/cover/test_random_module.py::test_passing_referenced_instance_within_function_scope_warns + hypothesis-python/tests/cover/test_random_module.py::test_register_random_within_nested_function_scope + hypothesis-python/tests/cover/test_random_module.py::test_registering_a_Random_is_idempotent + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_dot_access_forward_ref + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_missing_forward_ref + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_checking_only_forward_ref_wrong_type + hypothesis-python/tests/cover/test_type_lookup_forward_ref.py::test_bound_type_cheking_only_forward_ref + ) + ;; + esac + + epytest -o filterwarnings= -p rerunfailures --reruns=5 \ + tests/cover tests/pytest tests/quality +} + +src_install() { + local HAD_CLI= + + distutils-r1_src_install + + if [[ ! ${HAD_CLI} ]]; then + rm -r "${ED}/usr/bin" || die + fi +} + +python_install() { + distutils-r1_python_install + if use cli && has "${EPYTHON}" "${CLI_COMPAT[@]/_/.}"; then + HAD_CLI=1 + else + rm -r "${D}$(python_get_scriptdir)" || die + fi +} + +pkg_postinst() { + optfeature "datetime support" dev-python/pytz + optfeature "dateutil support" dev-python/python-dateutil + optfeature "numpy support" dev-python/numpy + optfeature "django support" dev-python/django dev-python/pytz + optfeature "pandas support" dev-python/pandas + optfeature "pytest support" dev-python/pytest +} diff --git a/dev-python/langdetect/Manifest b/dev-python/langdetect/Manifest index a11d7c268c91..d12ab8aeaca8 100644 --- a/dev-python/langdetect/Manifest +++ b/dev-python/langdetect/Manifest @@ -1 +1,3 @@ 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 deleted file mode 100644 index 637368d2f237..000000000000 --- a/dev-python/langdetect/files/langdetect-1.0.9-explicit-config.patch +++ /dev/null @@ -1,13 +0,0 @@ -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 99577c43fc3e..56733bbffc48 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-2024 Gentoo Authors +# Copyright 2022 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 pypi @@ -19,6 +19,4 @@ 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 c0f74ac187e2..020e07f2a3dd 100644 --- a/dev-python/langdetect/metadata.xml +++ b/dev-python/langdetect/metadata.xml @@ -2,9 +2,11 @@ <!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> <pkgmetadata> <maintainer type="person"> - <email>pastalian46@gmail.com</email> - <name>Takuya Wakazono</name> + <email>marcin.deranek@slonko.net</email> + <name>Marcin Deranek</name> </maintainer> - - <origin>gentoo-guru-overlay</origin> + <upstream> + <bugs-to>https://github.com/Mimino666/langdetect/issues</bugs-to> + </upstream> + <origin>slonko-overlay</origin> </pkgmetadata>
\ No newline at end of file diff --git a/dev-python/mkdocs-material/Manifest b/dev-python/mkdocs-material/Manifest index 63fc6a8a8e24..a9834c648842 100644 --- a/dev-python/mkdocs-material/Manifest +++ b/dev-python/mkdocs-material/Manifest @@ -1,2 +1,3 @@ DIST mkdocs-material-9.6.12.gh.tar.gz 14819122 BLAKE2B 9e420351d4eb103e0f5d6a0e8d1fee74c15da95958aec9c44ebc9beccfd586a6454568d8fb70d106521e0678fbbe794a107c1b0107f2f4276888c6595460495e SHA512 6953a06646ae301180fbe7e30d7c64563c89cf984c5f62c44edceb36b923e66ea7c5d9d7dcf7442a23fcb3efad860c67175d8ac147ae594055568b310ffb2c7f DIST mkdocs-material-9.6.13.gh.tar.gz 14819165 BLAKE2B 05b0a08877b7baa8d5d2235df3ae797359953c2daf8d85b6c4fd31e12b996506cedcbfacd74e2f0d9aa0f6ccee336b5a14482d8c90951c02c1eec30cc5be2620 SHA512 ff7d0cbaa597bbf8e9ff727587c00a6d3a757d791365eba99b42c701f8481a97d1efbe2c3ac5071dab006d4bbcbecd462b475288e1ecb696e5db2fdab1d1625d +DIST mkdocs-material-9.6.14.gh.tar.gz 14819385 BLAKE2B ee111ca205746a0c115d2cf455a9a2ca39c1d74425c12ca5e16dee9f9afc2adcc33b67c8b2d51d4e5813b8ee60475718ab8eba747e13cb01c6a43a0fd170794e SHA512 f1e09a6301ed3bddc4ff041b8a96894d07df9169b25e8f65570f8d2457617196a532335be43cbaca6df6b4d46d45d6f1837521a41e17766f03118c01789d4343 diff --git a/dev-python/mkdocs-material/mkdocs-material-9.6.14.ebuild b/dev-python/mkdocs-material/mkdocs-material-9.6.14.ebuild new file mode 100644 index 000000000000..b2827a7488c5 --- /dev/null +++ b/dev-python/mkdocs-material/mkdocs-material-9.6.14.ebuild @@ -0,0 +1,73 @@ +# 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 ) + +DOCS_BUILDER="mkdocs" +DOCS_DEPEND=" + dev-python/mkdocs-material-extensions + dev-python/mkdocs-minify-plugin + dev-python/mkdocs-redirects +" + +inherit distutils-r1 docs + +DESCRIPTION="A Material Design theme for MkDocs" +HOMEPAGE=" + https://github.com/squidfunk/mkdocs-material/ + https://pypi.org/project/mkdocs-material/ +" +SRC_URI=" + https://github.com/squidfunk/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +# bundled icons +LICENSE+=" Apache-2.0 CC0-1.0 CC-BY-4.0 MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" +IUSE="social" + +RDEPEND=" + >=dev-python/babel-2.10.3[${PYTHON_USEDEP}] + >=dev-python/colorama-0.4[${PYTHON_USEDEP}] + >=dev-python/jinja2-3.0.2[${PYTHON_USEDEP}] + >=dev-python/lxml-4.6[${PYTHON_USEDEP}] + >=dev-python/markdown-3.2[${PYTHON_USEDEP}] + >=dev-python/mkdocs-1.5.3[${PYTHON_USEDEP}] + >=dev-python/paginate-0.5.6[${PYTHON_USEDEP}] + >=dev-python/pygments-2.16[${PYTHON_USEDEP}] + >=dev-python/pymdown-extensions-10.2[${PYTHON_USEDEP}] + >=dev-python/readtime-2.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + >=dev-python/regex-2022.4.24[${PYTHON_USEDEP}] + ' 'python*') + >=dev-python/requests-2.26[${PYTHON_USEDEP}] + social? ( + >=dev-python/pillow-10.2[${PYTHON_USEDEP}] + >=media-gfx/cairosvg-2.5[${PYTHON_USEDEP}] + ) +" +BDEPEND=" + >=dev-python/trove-classifiers-2023.10.18[${PYTHON_USEDEP}] +" +# mkdocs-material-extensions depends on mkdocs-material creating a circular dep +PDEPEND=" + >=dev-python/mkdocs-material-extensions-1.2[${PYTHON_USEDEP}] +" + +PATCHES=( + # simplify pyproject to remove extra deps for metadata + "${FILESDIR}/${PN}-8.5.7-simplify-build.patch" + # import backrefs only when used (i.e. never) + "${FILESDIR}/${PN}-9.6.7-backrefs.patch" +) + +src_prepare() { + distutils-r1_src_prepare + echo "__version__ = '${PV}'" > gentoo_version.py || die +} diff --git a/dev-python/psycopg/Manifest b/dev-python/psycopg/Manifest index f0bc0ed331c0..eba97ba984a6 100644 --- a/dev-python/psycopg/Manifest +++ b/dev-python/psycopg/Manifest @@ -1,4 +1,5 @@ DIST psycopg-3.2.6.gh.tar.gz 558574 BLAKE2B a994f6fb3ee85c42371b848d0947858897a9a1f7256486aa964c8c7634b198b9229a53626c526cb85218a8468308dd9e7e605c1fc1058a08c7fb7183aed83b8d SHA512 99472813c9b6542611b15f0dd52d418a7e3f01cf0447a9a58c1d4135249fb526ca25f7569cc5d7d8a2a99184dccca52f485ee9cc9514e6ada1ebd526f8d62305 DIST psycopg-3.2.7.gh.tar.gz 562235 BLAKE2B 26f661b9072e2db610ee237dc4a794636ba44a17de3248f018787ed46c34b8087115a91bf2fd06c817c15ba1e2d3da93120f6fd23fcc164d90154928e7d2f1cc SHA512 76f7e8a515b6a7925811a5451eea2fa827b7ba52976faff0dd67c79e8354e83969176a504c1b34993c8a81f0b5ee9cdaf2461acbfc6a047884d47480b08dfc77 DIST psycopg-3.2.8.gh.tar.gz 564688 BLAKE2B 846845d05e4646cc900e4797babaf3cb941094d295b83d5c57aada071eed9a0367e36d8fbd4f43cc7a3f1f84ccc2a4a277fede244177abe53191baaea5603c28 SHA512 b705eca31d1ca63cb44e1e029a7bacb3dfa8de8639dd9e99bda4ed86bfa8f02d08e01ec716fa51fbad04ccb16683f3c3db10ee82fcb0804f09b67e3fe2a9118c +DIST psycopg-3.2.9.gh.tar.gz 565735 BLAKE2B 5b9b16e5e310214bdbf12198a7b8d9d86ed7b7e947a33c7333fe79bca946b76f09c60ea25960d3cf3f99423598a65ce33b53bd6dc10a9c68a930a46068b54fd6 SHA512 3e455852dd19c9639a8ee18773486295ea76f9a16146997be9dd4f3f6350257440e0d8fff9494acb79e95f04e74c0c14ec7968694fe329abeb74edcfb297d4dd DIST psycopg2-2.9.10.tar.gz 385672 BLAKE2B 4a3ad64f406c427b785ffeb85f6520aa67ed04de2d1749eb22d8275146b71ba451f7c04c9ead401d6f7a273781492cd6a5a36beba68b36b1e5203ee75f7df503 SHA512 d0916f6a645b5e87f89f2463dc22fad78340a85fbff320d099bf429a42557f40d3a4eebdc670768469aef1e9fcee60123767bfe49e1186e8574f95bfd6f46900 diff --git a/dev-python/psycopg/psycopg-3.2.9.ebuild b/dev-python/psycopg/psycopg-3.2.9.ebuild new file mode 100644 index 000000000000..eb1de30fe34c --- /dev/null +++ b/dev-python/psycopg/psycopg-3.2.9.ebuild @@ -0,0 +1,117 @@ +# 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="PostgreSQL database adapter for Python" +HOMEPAGE=" + https://www.psycopg.org/psycopg3/ + https://github.com/psycopg/psycopg/ + https://pypi.org/project/psycopg/ +" +SRC_URI=" + https://github.com/psycopg/psycopg/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="LGPL-3+" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos" +IUSE="+native-extensions" + +DEPEND=" + native-extensions? ( + >=dev-db/postgresql-8.1:= + ) + !native-extensions? ( + >=dev-db/postgresql-8.1:* + ) +" +RDEPEND=" + ${DEPEND} + >=dev-python/typing-extensions-4.4[${PYTHON_USEDEP}] +" +BDEPEND=" + native-extensions? ( + dev-python/cython[${PYTHON_USEDEP}] + ) + test? ( + >=dev-db/postgresql-8.1[server] + >=dev-python/anyio-4.0[${PYTHON_USEDEP}] + >=dev-python/dnspython-2.1[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +python_compile() { + # Python code + ctypes backend + cd psycopg || die + distutils-r1_python_compile + + # optional C backend + if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then + local DISTUTILS_USE_PEP517=standalone + cd ../psycopg_c || die + distutils-r1_python_compile + fi + cd .. || die +} + +src_test() { + rm -r psycopg{,_c} || die + + initdb -D "${T}"/pgsql || die + # TODO: random port + pg_ctl -w -D "${T}"/pgsql start \ + -o "-h '' -k '${T}'" || die + createdb -h "${T}" test || die + + local -x PSYCOPG_TEST_DSN="host=${T} dbname=test" + distutils-r1_src_test + + pg_ctl -w -D "${T}"/pgsql stop || die +} + +python_test() { + local EPYTEST_DESELECT=( + # tests for the psycopg_pool package + tests/pool + # some broken mypy magic + tests/test_module.py::test_version + tests/test_module.py::test_version_c + tests/test_typing.py + tests/crdb/test_typing.py + # TODO, relying on undefined ordering in Python? + tests/test_dns_srv.py::test_srv + ) + + case ${ARCH} in + arm|x86) + EPYTEST_DESELECT+=( + # TODO + tests/types/test_numpy.py::test_classes_identities + ) + ;; + esac + + local impls=( python ) + if use native-extensions && [[ ${EPYTHON} != pypy3* ]]; then + impls+=( c ) + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + local -x PSYCOPG_IMPL + for PSYCOPG_IMPL in "${impls[@]}"; do + einfo "Testing with ${PSYCOPG_IMPL} implementation ..." + # leak and timing tests are fragile whereas slow tests are slow + epytest -p anyio -k "not leak" \ + -m "not timing and not slow and not flakey" + done +} diff --git a/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0-r1.ebuild b/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0-r1.ebuild new file mode 100644 index 000000000000..74a4ed879655 --- /dev/null +++ b/dev-python/pytest-aiohttp/pytest-aiohttp-1.1.0-r1.ebuild @@ -0,0 +1,36 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="pytest plugin for aiohttp support" +HOMEPAGE=" + https://github.com/aio-libs/pytest-aiohttp/ + https://pypi.org/project/pytest-aiohttp/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + +RDEPEND=" + >=dev-python/aiohttp-3.11.0_beta1[${PYTHON_USEDEP}] + >=dev-python/pytest-6.1.0[${PYTHON_USEDEP}] + >=dev-python/pytest-asyncio-0.17.2[${PYTHON_USEDEP}] +" +BDEPEND=" + >=dev-python/setuptools-scm-6.2[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # warning doesn't seem to be emitted for some reason + # doesn't look very important + tests/test_obsolete_fixtures.py::test_loop_fixture +) diff --git a/dev-python/pytest/files/pytest-8.3.5-test.patch b/dev-python/pytest/files/pytest-8.3.5-test.patch new file mode 100644 index 000000000000..9a900c69244a --- /dev/null +++ b/dev-python/pytest/files/pytest-8.3.5-test.patch @@ -0,0 +1,24 @@ +From b7854561993d00b8dddf3f43ce6b042b4111fa4c Mon Sep 17 00:00:00 2001 +From: jakkdl <h6+github@pm.me> +Date: Wed, 12 Mar 2025 15:10:29 +0100 +Subject: [PATCH] fix attrs==25.2.0 compatibility + +--- + changelog/13291.bugfix.rst | 1 + + src/_pytest/assertion/util.py | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + create mode 100644 changelog/13291.bugfix.rst + +diff --git a/src/_pytest/assertion/util.py b/src/_pytest/assertion/util.py +index 30aee185d57..c545e6cd20c 100644 +--- a/src/_pytest/assertion/util.py ++++ b/src/_pytest/assertion/util.py +@@ -169,7 +169,7 @@ def has_default_eq( + code_filename = obj.__eq__.__code__.co_filename + + if isattrs(obj): +- return "attrs generated eq" in code_filename ++ return "attrs generated " in code_filename + + return code_filename == "<string>" # data class + return True diff --git a/dev-python/pytest/pytest-8.3.5.ebuild b/dev-python/pytest/pytest-8.3.5.ebuild index a7649250d99e..6089665e890f 100644 --- a/dev-python/pytest/pytest-8.3.5.ebuild +++ b/dev-python/pytest/pytest-8.3.5.ebuild @@ -45,6 +45,11 @@ BDEPEND=" ) " +PATCHES=( + # https://github.com/pytest-dev/pytest/pull/13291 + "${FILESDIR}/${P}-test.patch" +) + src_test() { # workaround new readline defaults echo "set enable-bracketed-paste off" > "${T}"/inputrc || die @@ -106,6 +111,15 @@ python_test() { testing/test_skipping.py::test_errors_in_xfail_skip_expressions ) ;; + python3.14*) + EPYTEST_DESELECT+=( + # still broken on main, as of 2025-05-14 + testing/test_unraisableexception.py::test_unraisable + testing/test_unraisableexception.py::test_unraisable_in_setup + testing/test_unraisableexception.py::test_unraisable_in_teardown + testing/test_debugging.py::test_raises_bdbquit_with_eoferror + ) + ;; esac local EPYTEST_XDIST=1 diff --git a/dev-python/python-dotenv/python-dotenv-1.1.0.ebuild b/dev-python/python-dotenv/python-dotenv-1.1.0.ebuild index c1bbc5a2d52f..561889472c2d 100644 --- a/dev-python/python-dotenv/python-dotenv-1.1.0.ebuild +++ b/dev-python/python-dotenv/python-dotenv-1.1.0.ebuild @@ -29,6 +29,20 @@ DOCS=( CHANGELOG.md README.md ) distutils_enable_tests pytest +python_test() { + local EPYTEST_DESELECT=( + # test issue with click-8.2.0 + # https://github.com/theskumar/python-dotenv/issues/560 + tests/test_cli.py::test_get_non_existent_file + tests/test_cli.py::test_get_not_a_file + tests/test_cli.py::test_list_non_existent_file + tests/test_cli.py::test_list_not_a_file + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} + python_install() { distutils-r1_python_install ln -s dotenv "${D}$(python_get_scriptdir)"/python-dotenv || die diff --git a/dev-python/pyyaml-env-tag/Manifest b/dev-python/pyyaml-env-tag/Manifest index f04fc9841cbf..0aab6ee262c2 100644 --- a/dev-python/pyyaml-env-tag/Manifest +++ b/dev-python/pyyaml-env-tag/Manifest @@ -1,2 +1,3 @@ DIST pyyaml-env-tag-1.0.gh.tar.gz 11727 BLAKE2B d0c3955df53e08d657b258691c4ed9fc4812aab5b2844914df09887aeb0660deb68ecb5c523ec9e7d692090f40627bf0072cd208d8a39c14634ec7f6ae21a55f SHA512 60a4a818d9b547a83e1d4f6b249d52eb7b1650dce12e6f7229f4999604d082ab2369d348cefe8423c2ae4ef36e50a5501a0327c6dbae0d82805af0dd192619bc DIST pyyaml_env_tag-0.1.tar.gz 5631 BLAKE2B 2302f3fd7c33347b1e451f466b13fbad53f2b77ee305ce844cd5b5bf40e633de95f4604eb27660c5f61aca21845e6f70e40a0ab52386a44d9b4e9be3ec7a7f29 SHA512 7d3dbc08fb338b3de5bbe657fa8a98a330d7ac7962ac2ea6513ade362b36deaaad8d9e82eb018454d73fd26d90003861a3ffee9abc2e9ac51dea4ba315b5c1f9 +DIST pyyaml_env_tag-1.1.tar.gz 5737 BLAKE2B e9414b11e10c5ea33e087c14683009840a9f3e0951ba2ed1982fee83ce6ff0267a88edd1750996a9512a6c2e4974b3f94c9a65ee87bbb3b4d35a6e0e1a6c7033 SHA512 2661dd98f3302f6a6fd14dbf6ad1382e3f018789d3b8c327c347f5d2242b9a4380fc29c892122c93f76a2edd39ee2c5dc3f85fad8def6edf04ceafa550b135ff diff --git a/dev-python/pyyaml-env-tag/pyyaml-env-tag-1.1.ebuild b/dev-python/pyyaml-env-tag/pyyaml-env-tag-1.1.ebuild new file mode 100644 index 000000000000..1564f13c6ec2 --- /dev/null +++ b/dev-python/pyyaml-env-tag/pyyaml-env-tag-1.1.ebuild @@ -0,0 +1,25 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 pypi + +DESCRIPTION="A custom YAML tag for referencing environment variables in YAML files" +HOMEPAGE=" + https://github.com/waylan/pyyaml-env-tag/ + https://pypi.org/project/pyyaml_env_tag/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86" + +RDEPEND=" + dev-python/pyyaml[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest diff --git a/dev-python/redis/Manifest b/dev-python/redis/Manifest index 17090f64b526..e2508745f10b 100644 --- a/dev-python/redis/Manifest +++ b/dev-python/redis/Manifest @@ -1,2 +1,3 @@ DIST redis-py-5.2.1.gh.tar.gz 4824044 BLAKE2B 9adf1b7093d7e562782f0c17c9134f33326b19f6ae9895142eadf251165c7d8bed7e61eedc96360724602b42cde4e1f9a0a4193fa76a3de2e30b95268a2f5e2b SHA512 583495712b492558fa186a0b72f19576418fc49937e4e2c2716335f3b05f5c5da6dda149abe6a55ef1dc93284660348a5d545a69db0a1dde08218305f44e9f52 DIST redis-py-6.0.0.gh.tar.gz 4853361 BLAKE2B a82f2c9d05c62c2e4fc310923d78ad9164c3fa4886f046f15261a97d843ff4478f7bd5ed283739424bcc9fe378265afaf00448aa954e537fecf0f1a3947d9f6e SHA512 72c91bc132dcc9cc32ed221b931c6315615dac9e4b1054638df6ed651f0ba787c319d59c22a001962efca40efcf73654ff012007cda4b277783cb2fa6a9cb9d6 +DIST redis-py-6.1.0.gh.tar.gz 4865160 BLAKE2B 27959cf88b9cb4600b952408b895c3da02c3c6a11bd33182582e4565003cbfdb8a63e567c7fc7ed97581c6926c62594a0fc57c7a6176544026f34a78cd0767c6 SHA512 aacb02565d1b1b672135caffdd29ad83f688184e8f7ba2835668b8ea938e158dc09e9cdf1f6313ffedff86e07da0d18ceed2fcfa5ef677d3ed0c7ff4418d1f39 diff --git a/dev-python/redis/redis-6.1.0.ebuild b/dev-python/redis/redis-6.1.0.ebuild new file mode 100644 index 000000000000..d56328dfc67d --- /dev/null +++ b/dev-python/redis/redis-6.1.0.ebuild @@ -0,0 +1,109 @@ +# 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 + +MY_P=redis-py-${PV} +DESCRIPTION="Python client for Redis key-value store" +HOMEPAGE=" + https://github.com/redis/redis-py/ + https://pypi.org/project/redis/ +" +SRC_URI=" + https://github.com/redis/redis-py/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~hppa ~ppc ~ppc64 ~riscv ~sparc ~x86" + +BDEPEND=" + test? ( + dev-db/redis + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/pytest-timeout[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # https://github.com/redis/redis-py/issues/3339 + sed -i 's:(forbid_global_loop=True)::' tests/test_asyncio/*.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # Flaky test + tests/test_pubsub.py::TestPubSubDeadlock::test_pubsub_deadlock + # require extra redis modules that apparently aren't packaged + # on Gentoo + tests/{,test_asyncio/}test_bloom.py + tests/{,test_asyncio/}test_graph.py + tests/{,test_asyncio/}test_json.py + tests/{,test_asyncio/}test_timeseries.py + # apparently available only in "Redis Stack 7.2 RC3 or later" + tests/test_commands.py::TestRedisCommands::test_tfunction_load_delete + tests/test_commands.py::TestRedisCommands::test_tfunction_list + tests/test_commands.py::TestRedisCommands::test_tfcall + # TODO + tests/test_commands.py::TestRedisCommands::test_module + tests/test_commands.py::TestRedisCommands::test_module_loadex + tests/test_commands.py::TestRedisCommands::test_zrank_withscore + tests/test_commands.py::TestRedisCommands::test_zrevrank_withscore + tests/test_commands.py::TestRedisCommands::test_xinfo_consumers + tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrank_withscore + tests/test_asyncio/test_commands.py::TestRedisCommands::test_zrevrank_withscore + tests/test_asyncio/test_commands.py::TestRedisCommands::test_xinfo_consumers + tests/test_asyncio/test_pubsub.py::TestPubSubAutoReconnect::test_reconnect_socket_error[pool-hiredis-listen] + ) + local EPYTEST_IGNORE=( + # fails over missing certs, we don't do cluster anyway + tests/test_asyncio/test_cluster.py + # require redis_entraid + tests/test_asyncio/test_credentials.py + tests/test_credentials.py + ) + + # TODO: try to run more servers? + epytest -m "not redismod and not onlycluster and not replica and not ssl" +} + +src_test() { + local redis_pid="${T}"/redis.pid + local redis_port=6379 + + if has_version ">=dev-db/redis-7"; then + local extra_conf=" + enable-debug-command yes + enable-module-command yes + " + fi + + # Spawn Redis itself for testing purposes + einfo "Spawning Redis" + einfo "NOTE: Port ${redis_port} must be free" + "${EPREFIX}"/usr/sbin/redis-server - <<- EOF || die "Unable to start redis server" + daemonize yes + pidfile ${redis_pid} + port ${redis_port} + bind 127.0.0.1 ::1 + ${extra_conf} + EOF + + # Run the tests + distutils-r1_src_test + + # Clean up afterwards + kill "$(<"${redis_pid}")" || die +} diff --git a/dev-python/setuptools-rust/setuptools-rust-1.11.1.ebuild b/dev-python/setuptools-rust/setuptools-rust-1.11.1.ebuild index 0cacca395d77..9bb396ec852f 100644 --- a/dev-python/setuptools-rust/setuptools-rust-1.11.1.ebuild +++ b/dev-python/setuptools-rust/setuptools-rust-1.11.1.ebuild @@ -141,6 +141,8 @@ BDEPEND=" ) " +export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + src_unpack() { cargo_src_unpack } diff --git a/dev-python/spyder-kernels/Manifest b/dev-python/spyder-kernels/Manifest index 3ec380a90f95..b29e4e99cf7c 100644 --- a/dev-python/spyder-kernels/Manifest +++ b/dev-python/spyder-kernels/Manifest @@ -1 +1,2 @@ DIST spyder-kernels-3.0.3.gh.tar.gz 240072 BLAKE2B 99fe0e7ecae61b717ce0215a6789742ed5f684fcc700d911388c4ca481e37dee829014b1b1633ba110a669bba3636ef250f94777d8c501f682c4fb53288e469f SHA512 4335c0401da8cc0a13db2888acf740e20ec9c21ad29b9375806b0958b81649623cd672f2d4579059b083fba11ec1e42acc28c0da76c3f7d3c0510b64006d32c7 +DIST spyder-kernels-3.0.4.gh.tar.gz 240281 BLAKE2B 32ebf1e22dc354236bfc307d6b273e97a4ec2a0fcbdb24b3c3d43e218f0200d17d65d69e0c210d916ed91925ec655122f4ec9174b4834f8e67e48bac962ba544 SHA512 3336a37e1b1c9dfec82ec99956e0cbcada0ed45670e7f76037a48f094682eb56dfe13d3e1cb046487594bd474fa2210ea5362c94dd57b7c39e72ec43599acfa8 diff --git a/dev-python/spyder-kernels/spyder-kernels-3.0.4.ebuild b/dev-python/spyder-kernels/spyder-kernels-3.0.4.ebuild new file mode 100644 index 000000000000..ef4bb9724ab8 --- /dev/null +++ b/dev-python/spyder-kernels/spyder-kernels-3.0.4.ebuild @@ -0,0 +1,99 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +DESCRIPTION="Kernels used by spyder on its ipython console" +HOMEPAGE=" + https://github.com/spyder-ide/spyder-kernels/ + https://pypi.org/project/spyder-kernels/ +" +SRC_URI="https://github.com/spyder-ide/${PN}/archive/refs/tags/v${PV}.tar.gz -> ${P}.gh.tar.gz" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + dev-python/cloudpickle[${PYTHON_USEDEP}] + <dev-python/ipykernel-7[${PYTHON_USEDEP}] + >=dev-python/ipykernel-6.29.3[${PYTHON_USEDEP}] + >=dev-python/ipython-8.13.0[${PYTHON_USEDEP}] + <dev-python/jupyter-client-9[${PYTHON_USEDEP}] + >=dev-python/jupyter-client-7.4.9[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + >=dev-python/pyxdg-0.26[${PYTHON_USEDEP}] + >=dev-python/pyzmq-24.0.0[${PYTHON_USEDEP}] + >=dev-python/wurlitzer-1.0.3[${PYTHON_USEDEP}] +" + +BDEPEND=" + test? ( + dev-python/cython[${PYTHON_USEDEP}] + dev-python/django[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/matplotlib[${PYTHON_USEDEP}] + dev-python/mock[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/h5py[${PYTHON_USEDEP}] + dev-python/pandas[${PYTHON_USEDEP}] + dev-python/xarray[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +distutils_enable_tests pytest + +src_prepare() { + distutils-r1_src_prepare + + # unpin ipython, all tests pass + sed -i -e '/ipython/s:,<9::' setup.py || die +} + +python_test() { + local EPYTEST_DESELECT=( + # we no longer package distributed, and also removed dependency on dask + spyder_kernels/console/tests/test_console_kernel.py::test_dask_multiprocessing + + # RuntimeError: There is no current event loop in thread 'MainThread'. + # https://bugs.gentoo.org/834893 + spyder_kernels/console/tests/test_console_kernel.py::test_cwd_in_sys_path + spyder_kernels/console/tests/test_console_kernel.py::test_multiprocessing + spyder_kernels/console/tests/test_console_kernel.py::test_multiprocessing_2 + spyder_kernels/console/tests/test_console_kernel.py::test_runfile + spyder_kernels/console/tests/test_console_kernel.py::test_np_threshold + spyder_kernels/console/tests/test_console_kernel.py::test_turtle_launch + spyder_kernels/console/tests/test_console_kernel.py::test_matplotlib_inline + + # pydicom only packaged in ::sci at the moment + spyder_kernels/utils/tests/test_iofuncs.py::test_load_dicom_files + ) + local EPYTEST_IGNORE=() + + if ! has_version "dev-python/pandas[${PYTHON_USEDEP}]"; then + EPYTEST_IGNORE+=( + # require pandas + spyder_kernels/utils/tests/test_nsview.py + ) + fi + + if ! has_version "dev-python/h5py[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + # require hdf5 + spyder_kernels/utils/tests/test_iofuncs.py::test_save_load_hdf5_files + spyder_kernels/utils/tests/test_dochelpers.py + ) + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} diff --git a/dev-python/tox/Manifest b/dev-python/tox/Manifest index 8dcffa5a50e5..b83391225e52 100644 --- a/dev-python/tox/Manifest +++ b/dev-python/tox/Manifest @@ -1 +1,2 @@ DIST tox-4.25.0.tar.gz 196255 BLAKE2B 16d9e85270cad1e9909de8c51c906c8245201fc10c0dd48a37b202c3f4d381be183751e9aeac452c5f2bef8773bf8ad102be2b069e8ff545a1248f423664a863 SHA512 3560b667af03ca41c1bd8fa9eaa90f8c988b7f946498f3bc2d0a4dfa3a481d8ada27acb6201bde284a2bcfe14b86ee409a3ce8e875531423862d1af88e6248fb +DIST tox-4.26.0.tar.gz 197260 BLAKE2B be05b52e88e3a3d0484203cb893af25e6e6e6f3719cf9e8d5cecf5343e22382b86676345ce00219d599353330ade897f710daf4976e48c2d7277664094a263c9 SHA512 ad2e311cd63c45a079b8c230a2feb364270b7a8bcf44b626385f8e442c6683ae841b3f34417b504f927608685a254fef3767d832fb5cfcc324c9cbf6ff7ea997 diff --git a/dev-python/tox/tox-4.26.0.ebuild b/dev-python/tox/tox-4.26.0.ebuild new file mode 100644 index 000000000000..e5b14a410c51 --- /dev/null +++ b/dev-python/tox/tox-4.26.0.ebuild @@ -0,0 +1,98 @@ +# 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="virtualenv-based automation of test activities" +HOMEPAGE=" + https://tox.readthedocs.io/ + https://github.com/tox-dev/tox/ + https://pypi.org/project/tox/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/cachetools[${PYTHON_USEDEP}] + dev-python/chardet[${PYTHON_USEDEP}] + dev-python/colorama[${PYTHON_USEDEP}] + dev-python/filelock[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/platformdirs[${PYTHON_USEDEP}] + dev-python/pluggy[${PYTHON_USEDEP}] + dev-python/pyproject-api[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/tomli[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] + ' 3.10) + dev-python/virtualenv[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + dev-python/build[${PYTHON_USEDEP}] + dev-python/distlib[${PYTHON_USEDEP}] + dev-python/flaky[${PYTHON_USEDEP}] + dev-python/psutil[${PYTHON_USEDEP}] + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/re-assert[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/time-machine[${PYTHON_USEDEP}] + ' 'python*') + ) +" + +distutils_enable_tests pytest + +src_prepare() { + # upstream lower bounds are meaningless + sed -i -e 's:>=[0-9.]*::' pyproject.toml || die + distutils-r1_src_prepare +} + +python_test() { + # devpi_process is not packaged, and has lots of dependencies + cat > "${T}"/devpi_process.py <<-EOF || die + def IndexServer(*args, **kwargs): raise NotImplementedError() + EOF + + local -x PYTHONPATH=${T}:${PYTHONPATH} + local EPYTEST_DESELECT=( + # Internet + tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_build_wheel_external + tests/tox_env/python/virtual_env/package/test_package_cmd_builder.py::test_run_installpkg_targz + ) + local EPYTEST_IGNORE=( + # requires devpi* + tests/test_provision.py + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[constraints-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[explicit+requirements-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_indirect-True-True]' + 'tests/tox_env/python/pip/test_pip_install.py::test_constrain_package_deps[requirements_constraints_indirect-True-True]' + ) + ;; + python3.13) + EPYTEST_DESELECT+=( + # https://github.com/tox-dev/tox/issues/3290 + 'tests/config/loader/test_str_convert.py::test_str_convert_ok_py39[1,2-value1-Optional]' + ) + ;; + esac + + epytest +} diff --git a/dev-python/trimesh/Manifest b/dev-python/trimesh/Manifest index f3653da4855f..62c3cfc8723b 100644 --- a/dev-python/trimesh/Manifest +++ b/dev-python/trimesh/Manifest @@ -1 +1,2 @@ DIST trimesh-4.6.8.gh.tar.gz 13624383 BLAKE2B b25d0d5f6adc27ade707fadddb36606b53bed37526e4b8ef0bdfa7353d774e3b42f63ec4af12827921d9a95b37bbb558e3ff650722d043a8eb5342656140d111 SHA512 7b6b063f3a68bc94510ccf194526499095dd7f5737904c703702d2b63725bd8109749adf81b0be0171768511270e6abc30288e194fc9351f968e2ed7abd288c3 +DIST trimesh-4.6.9.gh.tar.gz 13628313 BLAKE2B 18c98803e0945192dea781cf0a2b19e3a8cf8002e6f5aa96b8c59aaaeceef10e90efb436ba038fbbacd56dcc37e93e0a280c5cd359344ed6b30480c4e12d2349 SHA512 c647fe403caaaba95a0f85b9eef64c5957eb31e68ba564527ff9b076a0c86f7891671ea4c9e80729add28e2b83da9699b551ab047ae89ec5562b7daed43b05e4 diff --git a/dev-python/trimesh/trimesh-4.6.9.ebuild b/dev-python/trimesh/trimesh-4.6.9.ebuild new file mode 100644 index 000000000000..9a55e3b051f5 --- /dev/null +++ b/dev-python/trimesh/trimesh-4.6.9.ebuild @@ -0,0 +1,79 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 optfeature + +DESCRIPTION="Python library for loading and using triangular meshes" +HOMEPAGE=" + https://trimesh.org/ + https://github.com/mikedh/trimesh/ + https://pypi.org/project/trimesh/ +" +SRC_URI=" + https://github.com/mikedh/${PN}/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + dev-python/charset-normalizer[${PYTHON_USEDEP}] + dev-python/colorlog[${PYTHON_USEDEP}] + dev-python/httpx[${PYTHON_USEDEP}] + dev-python/jsonschema[${PYTHON_USEDEP}] + dev-python/lxml[${PYTHON_USEDEP}] + dev-python/networkx[${PYTHON_USEDEP}] + >=dev-python/numpy-1.20[${PYTHON_USEDEP}] + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pycollada[${PYTHON_USEDEP}] + dev-python/pyglet[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/scipy[${PYTHON_USEDEP}] + >=dev-python/shapely-1.8.2[${PYTHON_USEDEP}] + dev-python/svg-path[${PYTHON_USEDEP}] + dev-python/sympy[${PYTHON_USEDEP}] + dev-python/xxhash[${PYTHON_USEDEP}] + dev-python/rtree[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/mapbox-earcut[${PYTHON_USEDEP}] + dev-python/pillow[webp,${PYTHON_USEDEP}] + ) +" + +EPYTEST_TIMEOUT=1800 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +python_test() { + local EPYTEST_DESELECT=( + # requires manifold3d + tests/test_boolean.py::test_multiple_difference + # timing nonsense + tests/test_bounds.py::BoundsTest::test_obb_mesh_large + ) + local EPYTEST_IGNORE=( + # require pyinstrument + tests/test_sweep.py + ) + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest +} + +pkg_postinst() { + optfeature_header "${PN} functionality can be extended by installing the following packages:" + optfeature "making GUI applications with 3D stuff" dev-python/glooey + optfeature "2D triangulations of polygons" dev-python/mapbox-earcut + optfeature "loading a number of additional mesh formats" dev-python/meshio + optfeature "figuring out how much memory we have" dev-python/psutil + optfeature "marching cubes and other nice stuff" dev-python/scikit-image +} diff --git a/dev-python/trio/trio-0.29.0.ebuild b/dev-python/trio/trio-0.29.0.ebuild index 3922c5869181..21f0046c8293 100644 --- a/dev-python/trio/trio-0.29.0.ebuild +++ b/dev-python/trio/trio-0.29.0.ebuild @@ -58,6 +58,16 @@ python_test() { _tests/tools/test_gen_exports.py ) + case ${EPYTHON} in + python3.14) + EPYTEST_DESELECT+=( + # xfail-ed upstream with ref to + # https://github.com/python/cpython/issues/125603 + _core/_tests/test_run.py::test_ki_protection_doesnt_leave_cyclic_garbage + ) + ;; + esac + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 rm -rf trio || die epytest -p trio._tests.pytest_plugin \ diff --git a/dev-python/types-docutils/Manifest b/dev-python/types-docutils/Manifest index 277e193ae278..da061d0fa801 100644 --- a/dev-python/types-docutils/Manifest +++ b/dev-python/types-docutils/Manifest @@ -1 +1,2 @@ DIST types_docutils-0.21.0.20241128.tar.gz 26739 BLAKE2B 43b6aedf346564a6258ed78ca046d858590a7b6088666347e8bf91660fc3c062b55ac2ac599c541b311c17c7436e62f7956ca23285c2b7c66429c1f4f5c5b77c SHA512 ee68d14f9b84dbf4f144c10e0a7a4559ec76c584ac392c139165a382907114e6fa97b41bbb3ecf27ea21d1ce2f9f927b4551687fec03e4aad917f890096629b5 +DIST types_docutils-0.21.0.20250514.tar.gz 26884 BLAKE2B ec1b02c946a389051ebc82e0bc21be5ac633c463b967696347d5c382c181e2651ca9a463116be6e5682e0e8936579113a41d3a91f5f0318a1d38113a10ce2aaf SHA512 39d86f194abd4a0df458e2d585e3ba0881abab702bf1a4c1528c57c284bfa6bab353f9bfda642ccd3757453be9a863e7d7a4370eca61b9e87116e2b5d1c1489b diff --git a/dev-python/types-docutils/types-docutils-0.21.0.20250514.ebuild b/dev-python/types-docutils/types-docutils-0.21.0.20250514.ebuild new file mode 100644 index 000000000000..cba8b683142e --- /dev/null +++ b/dev-python/types-docutils/types-docutils-0.21.0.20250514.ebuild @@ -0,0 +1,16 @@ +# Copyright 2022-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="Typing stubs for docutils" +HOMEPAGE="https://pypi.org/project/types-docutils/" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" diff --git a/dev-python/types-gdb/Manifest b/dev-python/types-gdb/Manifest index 36490782db13..09d0a764a80f 100644 --- a/dev-python/types-gdb/Manifest +++ b/dev-python/types-gdb/Manifest @@ -1 +1,2 @@ DIST types_gdb-15.0.0.20250321.tar.gz 20185 BLAKE2B 293b8cd01c5fbafd37555543fc633987d1af492247133740713a2a167c2c4e30c25d85890cbbc1baaf1777c527c08ee55bc807320fca5c3eb419877d983e5928 SHA512 3a29834510756d936728175d2f831ea86be11247e570af0fe372649e4921ddca635d707b48b881e24b728f29b9bced7c4dc7558d3e1e9f7fa8695581436cf524 +DIST types_gdb-15.0.0.20250514.tar.gz 20169 BLAKE2B 8e07180ca924972a75427ad62482235d9d69f7c9e4ffdb40b2e3832a018b55c4ba01de168c8ef3ba72b31521ee16da3c47b843ff468b054c36f0333f97a6e869 SHA512 b068002db8adf589e4cf8ed5c96c973bde16210ac759f754df8364f1f116865c5dc63136066997d9439eb7f2bb16010d4a2213ae8c2d98640c6d71cffc042a52 diff --git a/dev-python/types-gdb/types-gdb-15.0.0.20250514.ebuild b/dev-python/types-gdb/types-gdb-15.0.0.20250514.ebuild new file mode 100644 index 000000000000..e4968cc85273 --- /dev/null +++ b/dev-python/types-gdb/types-gdb-15.0.0.20250514.ebuild @@ -0,0 +1,16 @@ +# Copyright 2022-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="Typing stubs for gdb" +HOMEPAGE="https://pypi.org/project/types-gdb/" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" diff --git a/dev-python/typing-inspection/files/typing-inspection-0.4.0-py314.patch b/dev-python/typing-inspection/files/typing-inspection-0.4.0-py314.patch new file mode 100644 index 000000000000..fd6b76be9162 --- /dev/null +++ b/dev-python/typing-inspection/files/typing-inspection-0.4.0-py314.patch @@ -0,0 +1,155 @@ +From aec589d8abf26aa010c971666386b7edeb760852 Mon Sep 17 00:00:00 2001 +From: Viicos <65306057+Viicos@users.noreply.github.com> +Date: Sat, 22 Mar 2025 13:33:54 +0100 +Subject: [PATCH] Fix compatibility with latest Python 3.14 release + +Adapt documentation and tests related to the `typing.Union` +changes +--- + docs/usage.md | 8 +-- + src/typing_inspection/introspection.py | 70 ++++++++++++++++++++++ + tests/typing_objects/test_member_checks.py | 8 ++- + 3 files changed, 81 insertions(+), 5 deletions(-) + +diff --git a/docs/usage.md b/docs/usage.md +index c9ece27..7a538c6 100644 +--- a/docs/usage.md ++++ b/docs/usage.md +@@ -4,18 +4,18 @@ The library is divided into two submodules: + + - [`typing_inspection.typing_objects`][]: provides functions to check if a variable is a [`typing`][] object: + ```python +- from typing_extensions import Union, get_origin ++ from typing_extensions import Literal, get_origin + +- from typing_inspection.typing_objects import is_union ++ from typing_inspection.typing_objects import is_literal + +- is_union(get_origin(Union[int, str])) # True ++ is_literal(get_origin(Literal[1, 2])) # True + ``` + + !!! note + You might be tempted to use a simple identity check: + + ```pycon +- >>> get_origin(Union[int, str]) is typing.Union ++ >>> get_origin(Literal[1, 2]) is typing.Literal + ``` + + However, [`typing_extensions`][] might provide a different version of the [`typing`][] objects. Instead, +diff --git a/src/typing_inspection/introspection.py b/src/typing_inspection/introspection.py +index 43cce1e..4f92527 100644 +--- a/src/typing_inspection/introspection.py ++++ b/src/typing_inspection/introspection.py +@@ -23,6 +23,40 @@ + 'is_union_origin', + ) + ++if sys.version_info >= (3, 14): ++ ++ def is_union_origin(obj: Any, /) -> bool: ++ """Return whether the provided origin is the union form. ++ ++ ```pycon ++ >>> is_union_origin(typing.Union) ++ True ++ >>> is_union_origin(get_origin(int | str)) ++ True ++ >>> is_union_origin(types.UnionType) ++ True ++ ``` ++ ++ !!! note ++ Starting in Python 3.14, the [`typing.Union`][] special form [was changed](https://github.com/python/cpython/pull/105511) ++ to be an alias to [`types.UnionType`][]. As such, it is recommended to not use this function ++ anymore (provided that you only support Python 3.14 or greater), and instead perform ++ the check directly: ++ ++ ```python ++ import types ++ from typing import Union, get_origin ++ ++ typ = Union[int, str] ++ origin = get_origin(typ) ++ if origin is types.UnionType: ++ ... ++ ``` ++ """ ++ return obj is types.UnionType ++ return typing_objects.is_union(obj) or obj is types.UnionType ++ ++ + if sys.version_info >= (3, 10): + + def is_union_origin(obj: Any, /) -> bool: +@@ -33,7 +67,25 @@ def is_union_origin(obj: Any, /) -> bool: + True + >>> is_union_origin(get_origin(int | str)) + True ++ >>> is_union_origin(types.UnionType) ++ True + ``` ++ ++ !!! note ++ Starting in Python 3.14, the [`typing.Union`][] special form [was changed](https://github.com/python/cpython/pull/105511) ++ to be an alias to [`types.UnionType`][]. As such, it is recommended to not use this function ++ anymore (provided that you only support Python 3.14 or greater), and instead perform ++ the check directly: ++ ++ ```python ++ import types ++ from typing import Union, get_origin ++ ++ typ = Union[int, str] ++ origin = get_origin(typ) ++ if origin is types.UnionType: ++ ... ++ ``` + """ + return typing_objects.is_union(obj) or obj is types.UnionType + +@@ -47,7 +99,25 @@ def is_union_origin(obj: Any, /) -> bool: + True + >>> is_union_origin(get_origin(int | str)) + True ++ >>> is_union_origin(types.UnionType) ++ True + ``` ++ ++ !!! note ++ Starting in Python 3.14, the [`typing.Union`][] special form [was changed](https://github.com/python/cpython/pull/105511) ++ to be an alias to [`types.UnionType`][]. As such, it is recommended to not use this function ++ anymore (provided that you only support Python 3.14 or greater), and instead perform ++ the check directly: ++ ++ ```python ++ import types ++ from typing import Union, get_origin ++ ++ typ = Union[int, str] ++ origin = get_origin(typ) ++ if origin is types.UnionType: ++ ... ++ ``` + """ + return typing_objects.is_union(obj) + +diff --git a/tests/typing_objects/test_member_checks.py b/tests/typing_objects/test_member_checks.py +index 86d9761..2cc5df0 100644 +--- a/tests/typing_objects/test_member_checks.py ++++ b/tests/typing_objects/test_member_checks.py +@@ -189,6 +189,12 @@ def test_is_deprecated(deprecated: deprecated) -> None: + # Misc. tests: + + +-@pytest.mark.skipif(sys.version_info < (3, 10), reason='`types.UnionType` is only available in Python 3.10.') ++@pytest.mark.skipif( ++ sys.version_info < (3, 10) or sys.version_info >= (3, 14), ++ reason=( ++ '`types.UnionType` is only available in Python 3.10. ' ++ 'In Python 3.14, `typing.Union` is an alias for `types.UnionType`.' ++ ), ++) + def test_is_union_does_not_match_uniontype() -> None: + assert not typing_objects.is_union(types.UnionType) diff --git a/dev-python/typing-inspection/typing-inspection-0.4.0-r1.ebuild b/dev-python/typing-inspection/typing-inspection-0.4.0-r1.ebuild new file mode 100644 index 000000000000..fbd9cb3974f9 --- /dev/null +++ b/dev-python/typing-inspection/typing-inspection-0.4.0-r1.ebuild @@ -0,0 +1,30 @@ +# Copyright 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="Runtime typing introspection tools" +HOMEPAGE=" + https://github.com/pydantic/typing-inspection/ + https://pypi.org/project/typing-inspection/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + >=dev-python/typing-extensions-4.12.0[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +PATCHES=( + # https://github.com/pydantic/typing-inspection/pull/37 + "${FILESDIR}/${P}-py314.patch" +) diff --git a/dev-python/uvicorn/uvicorn-0.34.2.ebuild b/dev-python/uvicorn/uvicorn-0.34.2.ebuild index 7de68801dc68..c3dda43c5b9d 100644 --- a/dev-python/uvicorn/uvicorn-0.34.2.ebuild +++ b/dev-python/uvicorn/uvicorn-0.34.2.ebuild @@ -73,6 +73,12 @@ python_test() { tests/middleware/test_logging.py::test_running_log_using_fd ) ;; + python3.14*) + EPYTEST_DESELECT+=( + # TODO + tests/test_auto_detection.py::test_loop_auto + ) + ;; esac local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 diff --git a/dev-python/watchfiles/watchfiles-1.0.5.ebuild b/dev-python/watchfiles/watchfiles-1.0.5.ebuild index 10584500d2a3..c252708e99a2 100644 --- a/dev-python/watchfiles/watchfiles-1.0.5.ebuild +++ b/dev-python/watchfiles/watchfiles-1.0.5.ebuild @@ -99,6 +99,8 @@ BDEPEND=" # enjoy Rust QA_FLAGS_IGNORED=".*/_rust_notify.*" +export PYO3_USE_ABI3_FORWARD_COMPATIBILITY=1 + distutils_enable_tests pytest python_test() { diff --git a/dev-python/xcffib/Manifest b/dev-python/xcffib/Manifest index d61e35d28280..f2b289676ee1 100644 --- a/dev-python/xcffib/Manifest +++ b/dev-python/xcffib/Manifest @@ -1,2 +1,3 @@ DIST xcffib-1.7.1.tar.gz 101487 BLAKE2B e489e96305cc8b277ebc02389514c23522c54444dc05434d0ac669b3337446947f5d5b9db1bfbbc1e1d7f9d81de06a50d63c0e4c3a2fddc6b8e1a8fad3ad704b SHA512 59ef3adf29fd8e6c5636855aa56777cab84d92c18d8e93500df9e315f0ae53f5693561f571ee98dbea6d9eae9ce5708018e2d6c27dccb14e9eb0ca85668fd515 DIST xcffib-1.8.0.tar.gz 110248 BLAKE2B 70f6a6733ef3e0c26a8e90cd204fccc69709c6242637fb4514eafcec4a259903c5dba8bbc45ade62ad81c7a77825c3a09bc7d546a70833e358f7250da51e1f62 SHA512 ce857c37d0f2222b340735cef0dfcdfa167cdaddfc7b6077a0c2ae9016cb56090f0770773d937278500922d16b5cc3ba15016c73c436f34800fa198960433f4b +DIST xcffib-1.9.0.tar.gz 110472 BLAKE2B 040adb746726a10d6149e8f914a60fad1e4eca2b52711ff261de040bff35c64a748c5781ddd70a756f1c41cfbfc785fff62a86f65e3fa99243eef5e474809e0c SHA512 c0b1c3606c8430e83fb980d4c006b6be1eee91aaf6f40b8159dbdad50b2e596dc85372a83eae85e34a702cbdde98eb7219a260fb520b0ddfb16d897722b64fe0 diff --git a/dev-python/xcffib/xcffib-1.9.0.ebuild b/dev-python/xcffib/xcffib-1.9.0.ebuild new file mode 100644 index 000000000000..fecaa3c64bd5 --- /dev/null +++ b/dev-python/xcffib/xcffib-1.9.0.ebuild @@ -0,0 +1,43 @@ +# 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="A drop in replacement for xpyb, an XCB python binding" +HOMEPAGE=" + https://github.com/tych0/xcffib/ + https://pypi.org/project/xcffib/ +" + +LICENSE="Apache-2.0" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +DEPEND=" + x11-libs/libxcb +" +RDEPEND=" + $(python_gen_cond_dep ' + >=dev-python/cffi-1.1:=[${PYTHON_USEDEP}] + ' 'python*') + ${DEPEND} +" +BDEPEND=" + test? ( + x11-base/xorg-server[xvfb] + x11-apps/xeyes + ) +" + +distutils_enable_tests pytest + +python_test() { + rm -rf xcffib || die + epytest +} |
