diff options
| author | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-06-01 06:59:07 +0000 |
|---|---|---|
| committer | Liguros - Gitlab CI/CD [develop] <gitlab@liguros.net> | 2025-06-01 06:59:07 +0000 |
| commit | d8ecf180f6d1a41cde23e78dd6a90fca9309fd76 (patch) | |
| tree | 7c20cf0c148a0855dc5f07f2b3e95bace5cee7a6 /dev-python | |
| parent | e709146bfe0a78864c489db0165a0156151b5b7a (diff) | |
| download | baldeagleos-repo-d8ecf180f6d1a41cde23e78dd6a90fca9309fd76.tar.gz baldeagleos-repo-d8ecf180f6d1a41cde23e78dd6a90fca9309fd76.tar.xz baldeagleos-repo-d8ecf180f6d1a41cde23e78dd6a90fca9309fd76.zip | |
Adding metadata
Diffstat (limited to 'dev-python')
58 files changed, 1547 insertions, 60 deletions
diff --git a/dev-python/aiohttp-oauthlib/aiohttp-oauthlib-0.1.0.ebuild b/dev-python/aiohttp-oauthlib/aiohttp-oauthlib-0.1.0.ebuild index de331ee1f827..1c27573e07fe 100644 --- a/dev-python/aiohttp-oauthlib/aiohttp-oauthlib-0.1.0.ebuild +++ b/dev-python/aiohttp-oauthlib/aiohttp-oauthlib-0.1.0.ebuild @@ -1,14 +1,14 @@ -# Copyright 1999-2024 Gentoo Authors +# 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} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 -DESCRIPTION="This project provides first-class OAuth library support for aiohttp" +DESCRIPTION="oauthlib for aiohttp clients" HOMEPAGE="https://git.sr.ht/~whynothugo/aiohttp-oauthlib" SRC_URI="https://git.sr.ht/~whynothugo/${PN}/archive/v${PV}.tar.gz -> ${P}.tar.gz" S="${WORKDIR}/${PN}-v${PV}" @@ -26,3 +26,5 @@ BDEPEND=" " export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} + +distutils_enable_tests import-check diff --git a/dev-python/aiohttp/Manifest b/dev-python/aiohttp/Manifest index d4cbe135dc5b..40ceced3a38f 100644 --- a/dev-python/aiohttp/Manifest +++ b/dev-python/aiohttp/Manifest @@ -3,3 +3,4 @@ DIST aiohttp-3.11.18.tar.gz 7678653 BLAKE2B 5886778fd0456ef40f1da5abd3d6a3864db0 DIST aiohttp-3.12.0.tar.gz 7762804 BLAKE2B 2fa51165917038cc8442cc4dab74373b47862cc1eca54a33e2a4b0f46c0362ca984614fec8615b4d89f065af039de9576b00c1c5b566c1758d608ef1e43702dc SHA512 8b3ad37b9aa73eb8961a397cc62dadea8ff286e2de1d91d9cb94f9ac86ae0fbd0127a6fa2867710f2e9accae1093892da4b87c17d5e7c24f8031670a3585d41b DIST aiohttp-3.12.2.tar.gz 7780423 BLAKE2B 47c7dccb2666c4641bbcfdba4f13f2f423e84d3043163dd9c2436aa32ccb2698b2a6ceb7c0ccf5defc98c1fb5799b39849a0a25f8aa37aaa4aab186b2b936c68 SHA512 8c6aed54ae385962fb1ad34f6f80f322612d7aec6c65845c56e8047b6b4e4102f9044964ac34ed765a09799bb6753e980ce51bf8194ce2e1ec7a9d8dd7c5cbd1 DIST aiohttp-3.12.4.tar.gz 7781788 BLAKE2B ccaa2656ef0e68687bad17608557413d8139b516e9e56dde473147f2c449ff1066878934a3a77b796e304c8ce0d48bf81c13ca65468187fdd686e51426fe8f9c SHA512 86e88a3be0d6a4993dbcf5a28bebbe19ded15466d539c6933cf2c8990bb684d436673685e419662efe1655a315e31642a60805d348ead9eeda909522720b8434 +DIST aiohttp-3.12.6.tar.gz 7784449 BLAKE2B 1ebc5b2e991e8ccd9b37552d0b3ae80debfcc6d7000dc83e9ba308b25e9694ad1c1a9aff34469eef4bc2faa0b9d25d971ab854891fb1c63823266cb54693dddb SHA512 e73e57cf185bdf52e020856c9254be407663d75eeeb52e6ac3c0d57a77719d82539006347980319c7eed79ff8f3692355ade00d82929ed11a35ddb718b1cebca diff --git a/dev-python/aiohttp/aiohttp-3.12.6.ebuild b/dev-python/aiohttp/aiohttp-3.12.6.ebuild new file mode 100644 index 000000000000..e6c262fbcc0a --- /dev/null +++ b/dev-python/aiohttp/aiohttp-3.12.6.ebuild @@ -0,0 +1,155 @@ +# 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 ~riscv ~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=" + 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 ! 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_passed_to_create_connection + # 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/aioresponses/aioresponses-0.7.8.ebuild b/dev-python/aioresponses/aioresponses-0.7.8.ebuild index 3dc103f4c58e..2bd0767b0bbc 100644 --- a/dev-python/aioresponses/aioresponses-0.7.8.ebuild +++ b/dev-python/aioresponses/aioresponses-0.7.8.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 pypi diff --git a/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild b/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild new file mode 100644 index 000000000000..d70f8d9423a9 --- /dev/null +++ b/dev-python/aiounittest/aiounittest-1.5.0-r1.ebuild @@ -0,0 +1,33 @@ +# Copyright 2023-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 + +DESCRIPTION="Test asyncio code more easily" +HOMEPAGE=" + https://github.com/kwarunek/aiounittest/ + https://pypi.org/project/aiounittest/ +" +SRC_URI=" + https://github.com/kwarunek/aiounittest/archive/${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" + +RDEPEND=" + dev-python/wrapt[${PYTHON_USEDEP}] +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.5.0-py314.patch +) + +distutils_enable_tests pytest diff --git a/dev-python/aiounittest/files/aiounittest-1.5.0-py314.patch b/dev-python/aiounittest/files/aiounittest-1.5.0-py314.patch new file mode 100644 index 000000000000..0c80380c0afc --- /dev/null +++ b/dev-python/aiounittest/files/aiounittest-1.5.0-py314.patch @@ -0,0 +1,41 @@ +https://github.com/kwarunek/aiounittest/issues/28 +https://github.com/kwarunek/aiounittest/pull/29 + +From 603ca4f57ee2f580d59066600e0ca886efcf8700 Mon Sep 17 00:00:00 2001 +From: Karolina Surma <ksurma@redhat.com> +Date: Wed, 28 May 2025 10:59:13 +0200 +Subject: [PATCH] asyncio.get_event_loop() doesn't create a new loop since + Python 3.14 + +--- + aiounittest/case.py | 2 +- + tests/test_asynctestcase_get_event_loop.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/aiounittest/case.py b/aiounittest/case.py +index d4e302b..441eed0 100644 +--- a/aiounittest/case.py ++++ b/aiounittest/case.py +@@ -70,7 +70,7 @@ def get_event_loop(self): + class MyTest(aiounittest.AsyncTestCase): + + def get_event_loop(self): +- self.my_loop = asyncio.get_event_loop() ++ self.my_loop = asyncio.new_event_loop() + return self.my_loop + + +diff --git a/tests/test_asynctestcase_get_event_loop.py b/tests/test_asynctestcase_get_event_loop.py +index 91736ef..5d5de9c 100644 +--- a/tests/test_asynctestcase_get_event_loop.py ++++ b/tests/test_asynctestcase_get_event_loop.py +@@ -27,7 +27,7 @@ async def async_nested_exc(): + class TestAsyncCaseWithCustomLoop(aiounittest.AsyncTestCase): + + def get_event_loop(self): +- self.my_loop = asyncio.get_event_loop() ++ self.my_loop = asyncio.new_event_loop() + return self.my_loop + + async def test_await_async_add(self): + diff --git a/dev-python/audioop-lts/Manifest b/dev-python/audioop-lts/Manifest new file mode 100644 index 000000000000..591d0a973f3c --- /dev/null +++ b/dev-python/audioop-lts/Manifest @@ -0,0 +1 @@ +DIST audioop_lts-0.2.1.tar.gz 30204 BLAKE2B 924d05bbfc0cd42fd9ca2cff175db5cc4024641e4cf5ac72200e8178a1806a7a4e4230b931a9a2b096fe5ccc3594ebc3fbdabc716b2e2db06e9fb7d737c639de SHA512 e0fb4c7fcec4dacaa38a2fb2cf69bff3eab8c78150429f3af54192bff7b98c574f3e65960c65d554104c1290e86806f295e7ada434c33b47abb383c644eb2c4b diff --git a/dev-python/audioop-lts/audioop-lts-0.2.1.ebuild b/dev-python/audioop-lts/audioop-lts-0.2.1.ebuild new file mode 100644 index 000000000000..af9a4b88d2fa --- /dev/null +++ b/dev-python/audioop-lts/audioop-lts-0.2.1.ebuild @@ -0,0 +1,27 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +PYTHON_COMPAT=( python3_{13..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="An LTS port of Python's audioop module" +HOMEPAGE=" + https://github.com/AbstractUmbra/audioop + https://pypi.org/project/audioop-lts/ +" + +LICENSE="PSF-2" +SLOT="0" +KEYWORDS="~amd64 ~arm64" + +distutils_enable_tests pytest + +python_test() { + rm -rf audioop || die + epytest +} diff --git a/dev-python/audioop-lts/metadata.xml b/dev-python/audioop-lts/metadata.xml new file mode 100644 index 000000000000..7ad11570cc7d --- /dev/null +++ b/dev-python/audioop-lts/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + </maintainer> + + <origin>gentoo-staging</origin> +</pkgmetadata>
\ No newline at end of file diff --git a/dev-python/audioread/audioread-3.0.1-r1.ebuild b/dev-python/audioread/audioread-3.0.1-r1.ebuild new file mode 100644 index 000000000000..d34d6bfbf1be --- /dev/null +++ b/dev-python/audioread/audioread-3.0.1-r1.ebuild @@ -0,0 +1,48 @@ +# 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} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Wrapper for audio file decoding using FFmpeg or GStreamer" +HOMEPAGE=" + https://github.com/beetbox/audioread/ + https://pypi.org/project/audioread/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64" +IUSE="ffmpeg gstreamer mad" + +RDEPEND=" + $(python_gen_cond_dep ' + dev-python/audioop-lts[${PYTHON_USEDEP}] + ' python3_13) + ffmpeg? ( + media-video/ffmpeg + ) + gstreamer? ( + dev-python/pygobject:3[${PYTHON_USEDEP}] + media-libs/gstreamer:1.0 + media-plugins/gst-plugins-meta:1.0 + ) + mad? ( + dev-python/pymad[${PYTHON_USEDEP}] + ) +" +BDEPEND=" + test? ( + dev-python/pymad[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +PATCHES=( + "${FILESDIR}"/audioread-3.0.1-optional-deprecated-modules.patch +) diff --git a/dev-python/audioread/files/audioread-3.0.1-optional-deprecated-modules.patch b/dev-python/audioread/files/audioread-3.0.1-optional-deprecated-modules.patch new file mode 100644 index 000000000000..ee65344c8e9f --- /dev/null +++ b/dev-python/audioread/files/audioread-3.0.1-optional-deprecated-modules.patch @@ -0,0 +1,208 @@ +https://bugs.gentoo.org/952317 +https://github.com/beetbox/audioread/issues/144 +https://github.com/beetbox/audioread/pull/148 + +(Cherrypicked) + +From 1ddd63b3ba6bcb11ef993c7da18db0fc83af84b7 Mon Sep 17 00:00:00 2001 +From: Brian McFee <brian.mcfee@nyu.edu> +Date: Wed, 29 Jan 2025 12:51:27 -0500 +Subject: [PATCH 1/4] implemented flexible legacy codec handling + +--- a/audioread/rawread.py ++++ b/audioread/rawread.py +@@ -13,11 +13,10 @@ + # included in all copies or substantial portions of the Software. + + """Uses standard-library modules to read AIFF, AIFF-C, and WAV files.""" +-import aifc + import audioop + import struct +-import sunau + import wave ++import warnings + + from .exceptions import DecodeError + from .base import AudioFile +@@ -54,20 +53,13 @@ def byteswap(s): + class RawAudioFile(AudioFile): + """An AIFF, WAV, or Au file that can be read by the Python standard + library modules ``wave``, ``aifc``, and ``sunau``. ++ ++ On Python 3.13 and later, ``aifc`` and ``sunau`` support require ++ installing the ``standard-aifc`` and ``standard-sunau`` packages, respectively. + """ + def __init__(self, filename): + self._fh = open(filename, 'rb') + +- try: +- self._file = aifc.open(self._fh) +- except aifc.Error: +- # Return to the beginning of the file to try the next reader. +- self._fh.seek(0) +- else: +- self._needs_byteswap = True +- self._check() +- return +- + try: + self._file = wave.open(self._fh) + except wave.Error: +@@ -78,15 +70,38 @@ class RawAudioFile(AudioFile): + self._check() + return + ++ # The following are deprecated formats and may not be supported + try: +- self._file = sunau.open(self._fh) +- except sunau.Error: +- self._fh.seek(0) +- pass ++ import aifc ++ except ImportError: ++ warnings.warn("aifc module not found; AIFF files will not be supported. " ++ "You may need to install the standard-aifc package.") + else: +- self._needs_byteswap = True +- self._check() +- return ++ try: ++ self._file = aifc.open(self._fh) ++ except aifc.Error: ++ # Return to the beginning of the file to try the next reader. ++ self._fh.seek(0) ++ else: ++ self._needs_byteswap = True ++ self._check() ++ return ++ ++ try: ++ import sunau ++ except ImportError: ++ warnings.warn("sunau module not found; Au files will not be supported. " ++ "You may need to install the standard-sunau package.") ++ else: ++ try: ++ self._file = sunau.open(self._fh) ++ except sunau.Error: ++ self._fh.seek(0) ++ pass ++ else: ++ self._needs_byteswap = True ++ self._check() ++ return + + # None of the three libraries could open the file. + self._fh.close() +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -8,7 +8,7 @@ authors = [ + {name = "Adrian Sampson", email = "adrian@radbox.org"} + ] + readme = "README.rst" +-requires-python = ">=3.6" ++requires-python = ">=3.8" + dynamic = ["version", "description"] + urls.Home = "https://github.com/beetbox/audioread" + classifiers = [ +@@ -19,9 +19,15 @@ classifiers = [ + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11', ++ 'Programming Language :: Python :: 3.12', ++ 'Programming Language :: Python :: 3.13', + ] + + [project.optional-dependencies] + test = [ + "tox" + ] ++legacy = [ ++ "standard-aifc; python_version >= '3.13'", ++ "standard-sunau; python_version >= '3.13'" ++] +-- +2.49.0 + + +From d761d0c9df6ca423aa7e69c27d0946c1d9c7b5d3 Mon Sep 17 00:00:00 2001 +From: Brian McFee <brian.mcfee@nyu.edu> +Date: Mon, 3 Feb 2025 12:17:55 -0500 +Subject: [PATCH 2/4] added audioop-lts dependency for modern python installs + +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -9,6 +9,9 @@ authors = [ + ] + readme = "README.rst" + requires-python = ">=3.8" ++requires = [ ++ "audioop-lts; python_version >= '3.13'" ++] + dynamic = ["version", "description"] + urls.Home = "https://github.com/beetbox/audioread" + classifiers = [ +-- +2.49.0 + + +From a7d86b7c2a22489a58d0ff9dc3e0b7608aa25914 Mon Sep 17 00:00:00 2001 +From: Brian McFee <brian.mcfee@nyu.edu> +Date: Mon, 3 Feb 2025 12:29:58 -0500 +Subject: [PATCH 3/4] updated readme + +--- a/README.rst ++++ b/README.rst +@@ -8,8 +8,8 @@ currently supports: + - `Core Audio`_ on Mac OS X via `ctypes`_. (PyObjC not required.) + - `MAD`_ via the `pymad`_ bindings. + - `FFmpeg`_ or `Libav`_ via its command-line interface. +-- The standard library `wave`_, `aifc`_, and `sunau`_ modules (for +- uncompressed audio formats). ++- The standard library `wave`_ module (for ++ uncompressed audio formats). Legacy formats `aifc`_ and `sunau`_ are also optionally supported, see the note below. + + .. _Gstreamer: http://gstreamer.freedesktop.org/ + .. _gst-python: http://gstreamer.freedesktop.org/modules/gst-python.html +@@ -73,6 +73,18 @@ that you have a broken installation of `FFmpeg`_. To check, try typing + FFmpeg with your OS's package manager (e.g., apt or yum) or `using Conda + <https://anaconda.org/conda-forge/ffmpeg>`_. + ++Legacy formats ++-------------- ++The `aifc`_ and `sunau`_ modules were deprecated and removed from the standard ++Python distribution in version 3.13. ++Support for `aifc` and `sunau` formats is still available through `deadlib`_. ++To install audioread with continued support for these formats, you can ++use the following command:: ++ ++ python -m pip install audioread[legacy] ++ ++.. _deadlib: https://github.com/youknowone/python-deadlib ++ + Version History + --------------- + +-- +2.49.0 + + +From 7f932069d2e44e97d2da7d243f067d3726a0db8d Mon Sep 17 00:00:00 2001 +From: Brian McFee <brian.mcfee@nyu.edu> +Date: Mon, 3 Feb 2025 14:14:15 -0500 +Subject: [PATCH 4/4] fixed wrong format spec for dependencies + +--- a/pyproject.toml ++++ b/pyproject.toml +@@ -9,7 +9,7 @@ authors = [ + ] + readme = "README.rst" + requires-python = ">=3.8" +-requires = [ ++dependencies = [ + "audioop-lts; python_version >= '3.13'" + ] + dynamic = ["version", "description"] +-- +2.49.0 + diff --git a/dev-python/black/black-25.1.0.ebuild b/dev-python/black/black-25.1.0.ebuild index 86c3cbc3703d..d3afe8616d2d 100644 --- a/dev-python/black/black-25.1.0.ebuild +++ b/dev-python/black/black-25.1.0.ebuild @@ -25,10 +25,6 @@ RDEPEND=" >=dev-python/packaging-22.0[${PYTHON_USEDEP}] >=dev-python/pathspec-0.9.0[${PYTHON_USEDEP}] >=dev-python/platformdirs-2[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/tomli-1.1.0[${PYTHON_USEDEP}] - >=dev-python/typing-extensions-4.0.1[${PYTHON_USEDEP}] - ' 3.10) " BDEPEND=" dev-python/hatch-fancy-pypi-readme[${PYTHON_USEDEP}] diff --git a/dev-python/cattrs/Manifest b/dev-python/cattrs/Manifest index 8fb4c993389b..9d5e9cbd926b 100644 --- a/dev-python/cattrs/Manifest +++ b/dev-python/cattrs/Manifest @@ -1 +1,2 @@ DIST cattrs-24.1.3.gh.tar.gz 428852 BLAKE2B 3c4e7842886229c56f29d6e98f0a19a374aaeacd97015b729cf8ebc677ffcb0fb7e51efd329200ead1fd1bec16e4f86b18effa17fac2511d008e8d34dfdfdd84 SHA512 1fe1de70c4ab8a5e4da7ab534833f22f02b23b01a14b68186185aa5af9b5260606e5f20365fe103901368602d4a9e3560733a85ec06f601227f1cab3c191b1e4 +DIST cattrs-25.1.0.gh.tar.gz 437261 BLAKE2B 1f1041ffd217acd44070b1a7095003155b25db07e90f776ddd7907f8b35a0dcda50c7a8cc0c70ad459236a037ba61b95039842b0c02c982459dbb5c52eed138c SHA512 bbe35beb33377fd7780bd27b98a7888a09bd05a0166536b3ffd5a179182345404b728c7392b1a075c886642eadb8b0a2d209ceedaa772c054dc37f003f11b23c diff --git a/dev-python/cattrs/cattrs-25.1.0.ebuild b/dev-python/cattrs/cattrs-25.1.0.ebuild new file mode 100644 index 000000000000..eae85e98b515 --- /dev/null +++ b/dev-python/cattrs/cattrs-25.1.0.ebuild @@ -0,0 +1,80 @@ +# Copyright 2022-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) + +inherit distutils-r1 + +DESCRIPTION="Composable complex class support for attrs and dataclasses" +HOMEPAGE=" + https://pypi.org/project/cattrs/ + https://github.com/python-attrs/cattrs/ +" +SRC_URI=" + https://github.com/python-attrs/cattrs/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="test-rust" + +RDEPEND=" + >=dev-python/attrs-24.3.0[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.12.2[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/hatch-vcs[${PYTHON_USEDEP}] + test? ( + >=dev-python/cbor2-5.4.6[${PYTHON_USEDEP}] + >=dev-python/hypothesis-6.79.4[${PYTHON_USEDEP}] + >=dev-python/immutables-0.20[${PYTHON_USEDEP}] + >=dev-python/msgpack-1.0.5[${PYTHON_USEDEP}] + >=dev-python/pymongo-4.4.0[${PYTHON_USEDEP}] + >=dev-python/pyyaml-6.0[${PYTHON_USEDEP}] + >=dev-python/tomlkit-0.11.8[${PYTHON_USEDEP}] + >=dev-python/ujson-5.10.0[${PYTHON_USEDEP}] + test-rust? ( + $(python_gen_cond_dep ' + >=dev-python/orjson-3.10.7[${PYTHON_USEDEP}] + ' 'python*') + ) + ) +" + +# xdist can randomly break tests, depending on job count +# https://bugs.gentoo.org/941429 +distutils_enable_tests pytest + +export SETUPTOOLS_SCM_PRETEND_VERSION=${PV} + +python_test() { + local EPYTEST_IGNORE=( + # requires msgspec + tests/preconf/test_msgspec_cpython.py + ) + local EPYTEST_DESELECT=( + # these require msgspec + tests/test_preconf.py::test_literal_dicts_msgspec + tests/test_preconf.py::test_msgspec_efficient_enum + tests/test_preconf.py::test_msgspec_json_converter + tests/test_preconf.py::test_msgspec_json_unions + tests/test_preconf.py::test_msgspec_json_unstruct_collection_overrides + tests/test_preconf.py::test_msgspec_native_enums + ) + + if ! has_version "dev-python/orjson[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/test_preconf.py::test_orjson + tests/test_preconf.py::test_orjson_converter + tests/test_preconf.py::test_orjson_converter_unstruct_collection_overrides + ) + fi + + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + epytest -o addopts= tests +} diff --git a/dev-python/cli-ui/cli-ui-0.19.0.ebuild b/dev-python/cli-ui/cli-ui-0.19.0.ebuild index 33eb66ed5aa1..f67751df3b52 100644 --- a/dev-python/cli-ui/cli-ui-0.19.0.ebuild +++ b/dev-python/cli-ui/cli-ui-0.19.0.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517="poetry" -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 diff --git a/dev-python/cmd2/Manifest b/dev-python/cmd2/Manifest index 986ab3035f47..5765aca2f97d 100644 --- a/dev-python/cmd2/Manifest +++ b/dev-python/cmd2/Manifest @@ -1 +1,2 @@ DIST cmd2-2.5.11.tar.gz 883350 BLAKE2B 37fb197ff085016152bc33f243852afe71c5cca303bacf02bdee9e1cfa2fa56ad2714321f046b7e501cb1602208f7b8fadaa4454ee349d2c6b5dcf04c31c3df9 SHA512 acf3d339d33822827be85b23491b99c33556bbd1d67715450c19c8877f7b9565253a402e57afd95bf02bb5edf8ec09f9fe7c141e01d81010286a5cfabca27909 +DIST cmd2-2.6.0.tar.gz 887304 BLAKE2B 5cf780cdf6da1338b09624ea353a19498a69cc9c92d97e4f10e903e7b6b0d80ab27ccda6f416a9bfd9bcfb49a9bc7ae2e015d345bad13bec5c7c8dca7b6dfc9b SHA512 b43af9f8de9fd89c27029438ecb7165a3e60260520939637dd4b426c833a45bdebb4ccb177a128119c56678862b3055da71ebe257c042a5cf66090b8eb0f9080 diff --git a/dev-python/cmd2/cmd2-2.6.0.ebuild b/dev-python/cmd2/cmd2-2.6.0.ebuild new file mode 100644 index 000000000000..47fc9c2b609e --- /dev/null +++ b/dev-python/cmd2/cmd2-2.6.0.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=setuptools +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 optfeature virtualx pypi + +DESCRIPTION="Extra features for standard library's cmd module" +HOMEPAGE=" + https://github.com/python-cmd2/cmd2/ + https://pypi.org/project/cmd2/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~mips ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/pyperclip-1.8[${PYTHON_USEDEP}] + >=dev-python/wcwidth-0.2.10[${PYTHON_USEDEP}] +" +# pyperclip uses clipboard backends in the following preference order: +# pygtk, xclip, xsel, klipper, qtpy, pyqt5, pyqt4. +# klipper is known to be broken in Xvfb, and therefore causes test +# failures. to avoid them, we must ensure that one of the backends +# preferred to it is available (i.e. xclip or xsel). +BDEPEND=" + dev-python/setuptools-scm[${PYTHON_USEDEP}] + test? ( + dev-python/pytest-mock[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + || ( + x11-misc/xclip + x11-misc/xsel + ) + ) +" + +distutils_enable_tests pytest + +src_test() { + # tests rely on very specific text wrapping... + local -x COLUMNS=80 + virtx distutils-r1_src_test +} + +python_test() { + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + # TODO: tests_isolated? + epytest -o addopts= -p pytest_mock -p rerunfailures --reruns=5 tests || die +} + +pkg_postinst() { + optfeature "IPython shell integration" dev-python/ipython +} diff --git a/dev-python/curtsies/curtsies-0.4.2-r1.ebuild b/dev-python/curtsies/curtsies-0.4.2-r1.ebuild new file mode 100644 index 000000000000..0cf9939c1ea9 --- /dev/null +++ b/dev-python/curtsies/curtsies-0.4.2-r1.ebuild @@ -0,0 +1,40 @@ +# 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 pypi + +DESCRIPTION="Curses-like terminal wrapper, with colored strings" +HOMEPAGE=" + https://github.com/bpython/curtsies/ + https://pypi.org/project/curtsies/ +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~riscv ~x86 ~amd64-linux ~x86-linux" + +RDEPEND=" + >=dev-python/blessed-1.5[${PYTHON_USEDEP}] + dev-python/cwcwidth[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + dev-python/pyte[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +src_prepare() { + local PATCHES=( + # https://github.com/bpython/curtsies/pull/186 + "${FILESDIR}/${P}-py314.patch" + ) + distutils-r1_src_prepare + rm setup.py || die +} diff --git a/dev-python/curtsies/curtsies-0.4.2.ebuild b/dev-python/curtsies/curtsies-0.4.2.ebuild index c0f83c34df90..7f5caedeac4b 100644 --- a/dev-python/curtsies/curtsies-0.4.2.ebuild +++ b/dev-python/curtsies/curtsies-0.4.2.ebuild @@ -1,10 +1,10 @@ -# Copyright 1999-2024 Gentoo Authors +# 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} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 pypi diff --git a/dev-python/curtsies/files/curtsies-0.4.2-py314.patch b/dev-python/curtsies/files/curtsies-0.4.2-py314.patch new file mode 100644 index 000000000000..3b53a479f358 --- /dev/null +++ b/dev-python/curtsies/files/curtsies-0.4.2-py314.patch @@ -0,0 +1,28 @@ +From 8ff589184cdc0a2face9bd3430757f672292462c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Sat, 31 May 2025 19:22:56 +0200 +Subject: [PATCH] Use standard setuptools `attr:` feature, fixing Python 3.14 + compat + +Use the standard setuptools `attr:` feature to obtain the version +via setuptools' built-in AST parser rather than writing a custom AST +parser in `setup.py`. This fixes compatibility with Python 3.14, +since the custom parser is not compatible with the new `ast.Constant` +type. +--- + setup.cfg | 1 + + setup.py | 16 ---------------- + 2 files changed, 1 insertion(+), 16 deletions(-) + delete mode 100644 setup.py + +diff --git a/setup.cfg b/setup.cfg +index 10332bd..ae01e92 100644 +--- a/setup.cfg ++++ b/setup.cfg +@@ -1,5 +1,6 @@ + [metadata] + name = curtsies ++version = attr: curtsies.__version__ + description = Curses-like terminal wrapper, with colored strings! + long_description = file: README.md, + long_description_content_type = text/markdown diff --git a/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild b/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild index 1f9b34c96218..48bbfd60515b 100644 --- a/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild +++ b/dev-python/dependency-groups/dependency-groups-1.3.1.ebuild @@ -16,7 +16,7 @@ HOMEPAGE=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86" RDEPEND=" dev-python/packaging[${PYTHON_USEDEP}] diff --git a/dev-python/dill/Manifest b/dev-python/dill/Manifest index 5574669de2c8..9cdfd1898511 100644 --- a/dev-python/dill/Manifest +++ b/dev-python/dill/Manifest @@ -1 +1,2 @@ DIST dill-0.3.9.tar.gz 187000 BLAKE2B 56196bd04d0a050619feee6b719e9232376853a03fae3a7486fa48f90fea1e27b4f4eaa31b0df54e70cf1aa4333268213dd6350408db0b78778d92f04ae65bd0 SHA512 461943ff8a0b7212b30e7c8b9e35348d0215c1c6dca356ad813e15c8721f39692fb61809349e5ee63a00d19a39aeae34c3b4def17257f8f7820e4318b81b273f +DIST dill-0.4.0.tar.gz 186976 BLAKE2B fefaaa23b98df7548089907224ec405efa75570df51fb08940d14193a7710355ab473b335642d153920a42fe648e218db30b846c826964accd1c1ba79b2cc708 SHA512 1289780e9326959a4d2488e5097b889f27212fba23d35d5c0db00337b952cde20786ecdbefa03a8b276f0cec8dba5b8ea118245e39e4fe8fd3209b5c920829e7 diff --git a/dev-python/dill/dill-0.4.0.ebuild b/dev-python/dill/dill-0.4.0.ebuild new file mode 100644 index 000000000000..0271619539e8 --- /dev/null +++ b/dev-python/dill/dill-0.4.0.ebuild @@ -0,0 +1,23 @@ +# 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="Serialize all of Python (almost)" +HOMEPAGE=" + https://github.com/uqfoundation/dill/ + https://pypi.org/project/dill/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux" + +python_test() { + "${EPYTHON}" -m dill.tests || die +} diff --git a/dev-python/dogpile-cache/dogpile-cache-1.4.0.ebuild b/dev-python/dogpile-cache/dogpile-cache-1.4.0.ebuild index 367c8e38ba12..d3fbfc95ef8c 100644 --- a/dev-python/dogpile-cache/dogpile-cache-1.4.0.ebuild +++ b/dev-python/dogpile-cache/dogpile-cache-1.4.0.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_PN=${PN/-/.} -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 pypi diff --git a/dev-python/ensurepip-pip/ensurepip-pip-25.1.1.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-25.1.1.ebuild index aee3fa22e5a8..793cd9fb17f1 100644 --- a/dev-python/ensurepip-pip/ensurepip-pip-25.1.1.ebuild +++ b/dev-python/ensurepip-pip/ensurepip-pip-25.1.1.ebuild @@ -12,7 +12,7 @@ S=${DISTDIR} LICENSE="Apache-2.0 BSD BSD-2 ISC LGPL-2.1+ MIT MPL-2.0 PSF-2" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" src_install() { insinto /usr/lib/python/ensurepip diff --git a/dev-python/gitpython/gitpython-3.1.44.ebuild b/dev-python/gitpython/gitpython-3.1.44.ebuild index edf31f913c47..f9fda65a77d6 100644 --- a/dev-python/gitpython/gitpython-3.1.44.ebuild +++ b/dev-python/gitpython/gitpython-3.1.44.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools PYPI_PN=GitPython -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) PYTHON_REQ_USE="threads(+)" inherit distutils-r1 pypi @@ -39,9 +39,6 @@ BDEPEND=" test? ( >=dev-python/ddt-1.1.1[${PYTHON_USEDEP}] dev-python/pytest-mock[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - dev-python/typing-extensions[${PYTHON_USEDEP}] - ' 3.10) ) " diff --git a/dev-python/hypothesis/Manifest b/dev-python/hypothesis/Manifest index f2477bc6c725..2a777681ac10 100644 --- a/dev-python/hypothesis/Manifest +++ b/dev-python/hypothesis/Manifest @@ -2,3 +2,4 @@ DIST hypothesis-6.131.18.gh.tar.gz 9553394 BLAKE2B f4a880dd4681ca59b39614e70c70a DIST hypothesis-6.131.24.gh.tar.gz 9554685 BLAKE2B 9f1216facfffb33ac084b036166c595b181eb0fad7f184ac67d3d06069a08339857bb5ec7d1e99922ffab7cf0cf013110ada7207f0ab8ef85e1c0ac61fdf1adb SHA512 54b37c5a3b7559d4709ea498f12a043eeda4151904912329e71fd1e4e69ed3275738eeec1c8272ea9c1fc21bed4345eeffec3d7bfd538d1075c27383c06eba93 DIST hypothesis-6.131.27.gh.tar.gz 9555908 BLAKE2B 3a5d9c31a6ccd6bab640fcb63412100dfe996ca1f5f645d3cf5c15366dba510f997620ceb942a292f14b93ffa2915d6061f069d9daffe9550aad4b376dfd1e61 SHA512 447520bac874536a35d2107a4c382993a5293840c7adfcac6d177c31401cdaaf2a4159a193e8079726d71c285009649c17c4a3ce05aceea11303b8b8a490dcb2 DIST hypothesis-6.131.32.gh.tar.gz 9562669 BLAKE2B 28e2f15db216bafc545a262e47c43aa7594c54d3066b08910de1695945de07508b5bef24fea9139736a7e429afa6232c75e3a8e0bb2eb349fb23eb7d318bd03d SHA512 f51cf27fa60756d28416699292b6a6dc4a5cd89bccc7acbd3de65fd83222907e57d7b601544b9965f1646979d6aa9220cd5ed2f44760507af362bb3806630706 +DIST hypothesis-6.132.0.gh.tar.gz 9563870 BLAKE2B de088f7d632a8ada158f5c11b6eb8bce009b544b0cde1d4f1398b059956d17fc8fbad3abbc9033d4c9544ccbf13782c7e0ed63e366665f362c3b651490bca5f1 SHA512 b43e661610e2491abad4f20cbf455b45be995ee927106ef17a0ecfdd2090a64b0f2588e3a3466fd22304c20d0371ec0ed15505a8f57d32a3b4a44c2ef24fa203 diff --git a/dev-python/hypothesis/hypothesis-6.132.0.ebuild b/dev-python/hypothesis/hypothesis-6.132.0.ebuild new file mode 100644 index 000000000000..997db78b8df2 --- /dev/null +++ b/dev-python/hypothesis/hypothesis-6.132.0.ebuild @@ -0,0 +1,130 @@ +# 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=( + # hangs + hypothesis-python/tests/cover/test_lookup.py::test_lookup_overrides_defaults + ) + + 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/ipython/Manifest b/dev-python/ipython/Manifest index 2fc70b34cbe4..389493441dac 100644 --- a/dev-python/ipython/Manifest +++ b/dev-python/ipython/Manifest @@ -1,2 +1,4 @@ DIST ipython-8.36.0.tar.gz 5604997 BLAKE2B 3ba37dc146d0e7fc773fceb3f1e00257e0115661f012a5977bcab351d80d3764813aaa1172f5d0390995419eccef07e4af2530b36b62cd9b5a23606b5982afef SHA512 0418c96242e5e7247526bdad54eaf3a30fe10d01bec6cf7134948c645ab5c80ce958b7cd39f4cfde88714a2d2e1128edf8f71848c6ce4aadc9c02f7ac50c34b2 +DIST ipython-8.37.0.tar.gz 5606088 BLAKE2B 4cb3a6ae801fcbbf352eb8aaae11a7bc6911a76a816e1ce8845a6f3044fbb888cf49dc7c5a500305da47497ec2341a7abf6ad5fff863dd9175bf6eae2f03f7a8 SHA512 bde7b6962ca59688cb9f1032a2735df428dec41ec531b98488a5a35ef67c09a375973537c10bef7574ad112f3396b056f8a4f754b63712b72b0f9f20ab052623 DIST ipython-9.2.0.tar.gz 4424394 BLAKE2B 3a2830461610d3139b64a848217c82f1d363ea5cadd416119a9ac56ccd494cc21738cfc87e6ac766fff28991ddad6261406e1a68a053b060165576eb1dc4c100 SHA512 06fcdb152ff15e780e182276766527a727d8dfd774e87bf5561005a5006764fd44b6da42e76c3372caa2ac7cfdbe3f083ecb3ed7b5303755d444006255cd80eb +DIST ipython-9.3.0.tar.gz 4426460 BLAKE2B d9d6ec38ab7ee2c4128869cd6fa0518c5df8ed3f3eb1db531099ff753b959a2eb1d872b5c782a017b2f559b460c0121cb951893c54f842cb936f08022eb32325 SHA512 21bd98e7f164bdbb799e0316c56620b0d086af943e28fa43f5d1f4c31064e496b01b47babcf0be4282d12d446362a7c0945a29580078279dc3038c66e8e75cf6 diff --git a/dev-python/ipython/ipython-8.37.0.ebuild b/dev-python/ipython/ipython-8.37.0.ebuild new file mode 100644 index 000000000000..982e3883fca3 --- /dev/null +++ b/dev-python/ipython/ipython-8.37.0.ebuild @@ -0,0 +1,158 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE='readline(+),sqlite,threads(+)' + +inherit distutils-r1 optfeature pypi virtualx + +DESCRIPTION="Advanced interactive shell for Python" +HOMEPAGE=" + https://ipython.org/ + https://github.com/ipython/ipython/ + https://pypi.org/project/ipython/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +IUSE="examples notebook nbconvert qt5 +smp test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/decorator[${PYTHON_USEDEP}] + >=dev-python/jedi-0.16[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + >=dev-python/pexpect-4.3[${PYTHON_USEDEP}] + >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}] + <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}] + >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}] + dev-python/stack-data[${PYTHON_USEDEP}] + >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/typing-extensions[${PYTHON_USEDEP}] + ' 3.11) +" + +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + app-text/dvipng[truetype] + >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}] + >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}] + dev-python/nbformat[${PYTHON_USEDEP}] + >=dev-python/numpy-1.23[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pickleshare[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/testpath[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +RDEPEND+=" + nbconvert? ( + dev-python/nbconvert[${PYTHON_USEDEP}] + ) +" +PDEPEND=" + $(python_gen_cond_dep ' + qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] ) + ' 'python*') + $(python_gen_cond_dep ' + notebook? ( + dev-python/notebook[${PYTHON_USEDEP}] + dev-python/ipywidgets[${PYTHON_USEDEP}] + dev-python/widgetsnbextension[${PYTHON_USEDEP}] + ) + ' 3.{11..12}) + smp? ( + >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}] + >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}] + ) +" + +python_prepare_all() { + # Rename the test directory to reduce sys.path pollution + # https://github.com/ipython/ipython/issues/12892 + mv IPython/extensions/{,ipython_}tests || die + + distutils-r1_python_prepare_all +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local -x IPYTHON_TESTING_TIMEOUT_SCALE=20 + local EPYTEST_DESELECT=( + # TODO: looks to be a regression due to a newer dep + IPython/core/tests/test_oinspect.py::test_class_signature + IPython/core/tests/test_oinspect.py::test_render_signature_long + IPython/terminal/tests/test_shortcuts.py::test_modify_shortcut_with_filters + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # https://github.com/ipython/ipython/issues/14244 + IPython/lib/tests/test_display.py::TestAudioDataWithoutNumpy + ) + ;; + python3.13) + EPYTEST_DESELECT+=( + # docstring mismatch? + IPython/core/tests/test_debugger.py::IPython.core.tests.test_debugger.test_ipdb_magics + ) + ;; + esac + + # nonfatal implied by virtx + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + nonfatal epytest -p asyncio --asyncio-mode=auto || + die "Tests failed on ${EPYTHON}" +} + +python_install() { + distutils-r1_python_install + + # Create ipythonX.Y symlinks. + # TODO: + # 1. do we want them for pypy? No. pypy has no numpy + # 2. handle it in the eclass instead (use _python_ln_rel). + # With pypy not an option the dosym becomes unconditional + dosym ../lib/python-exec/${EPYTHON}/ipython \ + /usr/bin/ipython${EPYTHON#python} +} + +python_install_all() { + distutils-r1_python_install_all + + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi +} + +pkg_postinst() { + optfeature "code formatting" dev-python/black + optfeature "sympyprinting" dev-python/sympy + optfeature "cythonmagic" dev-python/cython + optfeature "%lprun magic command" dev-python/line-profiler + optfeature "%matplotlib magic command" dev-python/matplotlib-inline + + if use nbconvert; then + if ! has_version virtual/pandoc ; then + einfo "Node.js will be used to convert notebooks to other formats" + einfo "like HTML. Support for that is still experimental. If you" + einfo "encounter any problems, please use app-text/pandoc instead." + fi + fi +} diff --git a/dev-python/ipython/ipython-9.3.0.ebuild b/dev-python/ipython/ipython-9.3.0.ebuild new file mode 100644 index 000000000000..0c1d219a5e2b --- /dev/null +++ b/dev-python/ipython/ipython-9.3.0.ebuild @@ -0,0 +1,148 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=standalone +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE='readline(+),sqlite,threads(+)' + +inherit distutils-r1 optfeature pypi virtualx + +DESCRIPTION="Advanced interactive shell for Python" +HOMEPAGE=" + https://ipython.org/ + https://github.com/ipython/ipython/ + https://pypi.org/project/ipython/ +" + +LICENSE="BSD" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86" +IUSE="examples notebook nbconvert qt5 +smp test" +RESTRICT="!test? ( test )" + +RDEPEND=" + dev-python/decorator[${PYTHON_USEDEP}] + dev-python/ipython-pygments-lexers[${PYTHON_USEDEP}] + >=dev-python/jedi-0.16[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + >=dev-python/pexpect-4.3[${PYTHON_USEDEP}] + >=dev-python/prompt-toolkit-3.0.41[${PYTHON_USEDEP}] + <dev-python/prompt-toolkit-3.1[${PYTHON_USEDEP}] + >=dev-python/pygments-2.4.0[${PYTHON_USEDEP}] + dev-python/stack-data[${PYTHON_USEDEP}] + >=dev-python/traitlets-5.13.0[${PYTHON_USEDEP}] + $(python_gen_cond_dep ' + dev-python/typing-extensions[${PYTHON_USEDEP}] + ' 3.11) +" + +BDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + test? ( + app-text/dvipng[truetype] + >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}] + >=dev-python/matplotlib-3.9[${PYTHON_USEDEP}] + dev-python/nbformat[${PYTHON_USEDEP}] + >=dev-python/numpy-1.23[${PYTHON_USEDEP}] + dev-python/matplotlib-inline[${PYTHON_USEDEP}] + dev-python/packaging[${PYTHON_USEDEP}] + dev-python/pickleshare[${PYTHON_USEDEP}] + dev-python/pytest-asyncio[${PYTHON_USEDEP}] + dev-python/requests[${PYTHON_USEDEP}] + dev-python/testpath[${PYTHON_USEDEP}] + ) +" + +distutils_enable_tests pytest + +RDEPEND+=" + nbconvert? ( + dev-python/nbconvert[${PYTHON_USEDEP}] + ) +" +PDEPEND=" + $(python_gen_cond_dep ' + qt5? ( dev-python/qtconsole[${PYTHON_USEDEP}] ) + ' 'python*') + $(python_gen_cond_dep ' + notebook? ( + dev-python/notebook[${PYTHON_USEDEP}] + dev-python/ipywidgets[${PYTHON_USEDEP}] + dev-python/widgetsnbextension[${PYTHON_USEDEP}] + ) + ' 3.{11..12}) + smp? ( + >=dev-python/ipykernel-5.1.0[${PYTHON_USEDEP}] + >=dev-python/ipyparallel-6.2.3[${PYTHON_USEDEP}] + ) +" + +python_prepare_all() { + # Rename the test directory to reduce sys.path pollution + # https://github.com/ipython/ipython/issues/12892 + mv IPython/extensions/{,ipython_}tests || die + + distutils-r1_python_prepare_all +} + +src_test() { + virtx distutils-r1_src_test +} + +python_test() { + local -x IPYTHON_TESTING_TIMEOUT_SCALE=20 + local EPYTEST_DESELECT=() + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # https://github.com/ipython/ipython/issues/14244 + tests/test_display.py::TestAudioDataWithoutNumpy + ) + ;; + esac + + # nonfatal implied by virtx + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 + nonfatal epytest -p asyncio --asyncio-mode=auto || + die "Tests failed on ${EPYTHON}" +} + +python_install() { + distutils-r1_python_install + + # Create ipythonX.Y symlinks. + # TODO: + # 1. do we want them for pypy? No. pypy has no numpy + # 2. handle it in the eclass instead (use _python_ln_rel). + # With pypy not an option the dosym becomes unconditional + dosym ../lib/python-exec/${EPYTHON}/ipython \ + /usr/bin/ipython${EPYTHON#python} +} + +python_install_all() { + distutils-r1_python_install_all + + if use examples; then + dodoc -r examples + docompress -x /usr/share/doc/${PF}/examples + fi +} + +pkg_postinst() { + optfeature "code formatting" dev-python/black + optfeature "sympyprinting" dev-python/sympy + optfeature "cythonmagic" dev-python/cython + optfeature "%lprun magic command" dev-python/line-profiler + optfeature "%matplotlib magic command" dev-python/matplotlib-inline + + if use nbconvert; then + if ! has_version virtual/pandoc ; then + einfo "Node.js will be used to convert notebooks to other formats" + einfo "like HTML. Support for that is still experimental. If you" + einfo "encounter any problems, please use app-text/pandoc instead." + fi + fi +} diff --git a/dev-python/isort/isort-6.0.1.ebuild b/dev-python/isort/isort-6.0.1.ebuild index 85af924f21fb..9047d453d432 100644 --- a/dev-python/isort/isort-6.0.1.ebuild +++ b/dev-python/isort/isort-6.0.1.ebuild @@ -22,11 +22,6 @@ LICENSE="MIT" SLOT="0" KEYWORDS="~alpha amd64 arm arm64 hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 sparc x86" -RDEPEND=" - $(python_gen_cond_dep ' - dev-python/tomli[${PYTHON_USEDEP}] - ' 3.10) -" BDEPEND=" dev-python/hatch-vcs[${PYTHON_USEDEP}] test? ( diff --git a/dev-python/jedi/jedi-0.19.2.ebuild b/dev-python/jedi/jedi-0.19.2.ebuild index 4ee2df9d66f3..f4ed9a1e3d4b 100644 --- a/dev-python/jedi/jedi-0.19.2.ebuild +++ b/dev-python/jedi/jedi-0.19.2.ebuild @@ -84,6 +84,14 @@ python_test() { test/test_inference/test_gradual/test_typeshed.py::test_module_exists_only_as_stub ) ;; + python3.14*) + EPYTEST_DESELECT+=( + # type annotation printing difference + test/test_inference/test_mixed.py::test_compiled_signature_annotation_string + # extra attributes in os + test/test_utils.py::TestSetupReadline::test_import + ) + ;; esac # some plugin breaks case-insensitivity on completions diff --git a/dev-python/knowit/knowit-0.5.6.ebuild b/dev-python/knowit/knowit-0.5.6.ebuild index 44cf88f63b34..bfd42a0d2bf9 100644 --- a/dev-python/knowit/knowit-0.5.6.ebuild +++ b/dev-python/knowit/knowit-0.5.6.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=poetry -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 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/lap/Manifest b/dev-python/lap/Manifest new file mode 100644 index 000000000000..b5c5f766b71a --- /dev/null +++ b/dev-python/lap/Manifest @@ -0,0 +1 @@ +DIST lap-0.5.12.tar.gz 1520169 BLAKE2B ce68ddd14304b930044a94ff7362b00724ca8ce89d5fa0189437a393cff5911ac74cc45056ba152780000f7f4c691e73269cd711f20f5f693f5699918c0c4428 SHA512 a8ba1883e06b04a41cebb53999bcc7321748036958fde1ab37a2194b43104a84d0315bea89b21aaae7556cc3f573d95bf30107dc4045af301134dd10319b7d53 diff --git a/dev-python/lap/lap-0.5.12.ebuild b/dev-python/lap/lap-0.5.12.ebuild new file mode 100644 index 000000000000..bbc6a81d3bab --- /dev/null +++ b/dev-python/lap/lap-0.5.12.ebuild @@ -0,0 +1,45 @@ +# Copyright 2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +DISTUTILS_EXT=1 +PYTHON_COMPAT=( python3_{11..14} ) + +inherit distutils-r1 pypi + +DESCRIPTION="Linear Assignment Problem solver (LAPJV/LAPMOD)" +HOMEPAGE=" + https://github.com/gatagat/lap + https://pypi.org/project/lap/ +" + +LICENSE="BSD-2" +SLOT="0" +KEYWORDS="~amd64" + +RDEPEND=" + >=dev-python/numpy-1.21.6[${PYTHON_USEDEP}] +" +BDEPEND=" + dev-python/cython[${PYTHON_USEDEP}] + >=dev-python/numpy-1.23.0[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest + +python_prepare_all() { + # Don't install tests and keep them in a separate location + # https://projects.gentoo.org/python/guide/test.html#importerrors-for-c-extensions + mv lap/tests tests || die + sed -e '/tests_package =/d' \ + -e '/packages =/ { s/, tests_package// }' \ + -i setup.py || die + distutils-r1_python_prepare_all +} + +python_test() { + rm -rf lap || die + epytest +} diff --git a/dev-python/lap/metadata.xml b/dev-python/lap/metadata.xml new file mode 100644 index 000000000000..7ad11570cc7d --- /dev/null +++ b/dev-python/lap/metadata.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="project"> + <email>python@gentoo.org</email> + </maintainer> + + <origin>gentoo-staging</origin> +</pkgmetadata>
\ No newline at end of file diff --git a/dev-python/matplotlib/matplotlib-3.10.3.ebuild b/dev-python/matplotlib/matplotlib-3.10.3.ebuild index 447d4451dba1..0461f72b2b8e 100644 --- a/dev-python/matplotlib/matplotlib-3.10.3.ebuild +++ b/dev-python/matplotlib/matplotlib-3.10.3.ebuild @@ -29,7 +29,7 @@ SRC_URI+=" # Fonts: BitstreamVera, OFL-1.1 LICENSE="BitstreamVera BSD matplotlib MIT OFL-1.1" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" +KEYWORDS="~alpha ~amd64 ~arm arm64 ~hppa ~loong ~ppc ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" IUSE="cairo excel gtk3 latex qt6 tk webagg wxwidgets" DEPEND=" diff --git a/dev-python/parso/parso-0.8.4-r1.ebuild b/dev-python/parso/parso-0.8.4-r1.ebuild new file mode 100644 index 000000000000..f5d3cefa4a08 --- /dev/null +++ b/dev-python/parso/parso-0.8.4-r1.ebuild @@ -0,0 +1,42 @@ +# 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 + +DESCRIPTION="A python parser that supports error recovery and round-trip parsing" +HOMEPAGE=" + https://github.com/davidhalter/parso/ + https://pypi.org/project/parso/ +" +SRC_URI=" + https://github.com/davidhalter/${PN}/archive/v${PV}.tar.gz + -> ${P}.gh.tar.gz +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~arm64-macos ~x64-macos" + +distutils_enable_sphinx docs +distutils_enable_tests pytest + +EPYTEST_DESELECT=( + # py3.10 changed exception messages + test/test_python_errors.py::test_python_exception_matches + # With python3.11 this additional file is run by pytest, + # but it is not actually a test and thus fails + parso/python/token.py::parso.python.token.PythonTokenTypes +) + +src_prepare() { + distutils-r1_src_prepare + + # this ain't perfect but that's what upstream has so far + # https://github.com/davidhalter/parso/commit/f670e6e7dc01e07576ec5c84cbf9fbce1a02c3eb + cp parso/python/grammar{313,314}.txt || die +} diff --git a/dev-python/pip/pip-25.1.1.ebuild b/dev-python/pip/pip-25.1.1.ebuild index 8f3db11e5fa6..daba9108b903 100644 --- a/dev-python/pip/pip-25.1.1.ebuild +++ b/dev-python/pip/pip-25.1.1.ebuild @@ -24,7 +24,7 @@ SRC_URI=" LICENSE="MIT" SLOT="0" -KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="~alpha ~amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc ~x86" IUSE="test test-rust" RESTRICT="!test? ( test )" diff --git a/dev-python/pyacoustid/pyacoustid-1.3.0-r1.ebuild b/dev-python/pyacoustid/pyacoustid-1.3.0-r1.ebuild new file mode 100644 index 000000000000..f5255c114668 --- /dev/null +++ b/dev-python/pyacoustid/pyacoustid-1.3.0-r1.ebuild @@ -0,0 +1,51 @@ +# 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="Python bindings for Chromaprint and the AcoustID web service" +HOMEPAGE=" + https://github.com/beetbox/pyacoustid/ + https://pypi.org/project/pyacoustid/ +" +SRC_URI+=" + test? ( + https://s3.wasabisys.com/blocsonic/releases/maxblocs/bsmx0198/01-Follow_192kb.mp3 + -> ${PN}-test.mp3 + ) +" + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~amd64" +IUSE="examples test" +# Tests fail with network-sandbox, since they need to connect to acoustid.org +PROPERTIES="test_network" +RESTRICT="test" + +RDEPEND=" + dev-python/audioread[${PYTHON_USEDEP},ffmpeg] + dev-python/requests[${PYTHON_USEDEP}] + media-libs/chromaprint +" + +python_test() { + # Working test will print the top metadata match from Acoustid's database. + "${EPYTHON}" aidmatch.py "${DISTDIR}/${PN}-test.mp3" || + die "Test failed with ${EPYTHON}" +} + +src_install() { + distutils-r1_src_install + + if use examples ; then + docinto examples + dodoc aidmatch.py fpcalc.py + docompress -x /usr/share/doc/${PF}/examples/ + fi +} diff --git a/dev-python/python-tests/python-tests-3.13.3_p1.ebuild b/dev-python/python-tests/python-tests-3.13.3_p1.ebuild index 6ec6bb7f3ef5..603ad2cec2b7 100644 --- a/dev-python/python-tests/python-tests-3.13.3_p1.ebuild +++ b/dev-python/python-tests/python-tests-3.13.3_p1.ebuild @@ -28,7 +28,7 @@ S="${WORKDIR}/${MY_P}/Lib" LICENSE="PSF-2" SLOT="${PYVER}" -KEYWORDS="~alpha amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" +KEYWORDS="~alpha amd64 arm ~arm64 ~hppa ~loong ~m68k ~mips ppc ppc64 ~riscv ~s390 ~sparc x86" # enable by default to help CI handle it (we have no additional deps) IUSE="+python_targets_${PYTHON_COMPAT[0]}" REQUIRED_USE="${PYTHON_REQUIRED_USE}" diff --git a/dev-python/pythran/pythran-0.18.0.ebuild b/dev-python/pythran/pythran-0.18.0.ebuild index 6b05defee378..a844d5a0d81f 100644 --- a/dev-python/pythran/pythran-0.18.0.ebuild +++ b/dev-python/pythran/pythran-0.18.0.ebuild @@ -22,7 +22,7 @@ S=${WORKDIR}/${MY_P} LICENSE="BSD" SLOT="0" -KEYWORDS="amd64 ~arm arm64 ~loong ~ppc64 ~riscv ~s390 ~sparc ~x86" +KEYWORDS="amd64 ~arm arm64 ~loong ppc64 ~riscv ~s390 ~sparc ~x86" RDEPEND=" dev-libs/boost diff --git a/dev-python/pytoolconfig/pytoolconfig-1.3.1.ebuild b/dev-python/pytoolconfig/pytoolconfig-1.3.1.ebuild index 4f4a59d6b000..214e8986ae28 100644 --- a/dev-python/pytoolconfig/pytoolconfig-1.3.1.ebuild +++ b/dev-python/pytoolconfig/pytoolconfig-1.3.1.ebuild @@ -21,9 +21,6 @@ KEYWORDS="amd64 arm64 ~ppc64 x86" RDEPEND=" >=dev-python/packaging-23.2[${PYTHON_USEDEP}] >=dev-python/platformdirs-3.11.0[${PYTHON_USEDEP}] - $(python_gen_cond_dep ' - >=dev-python/tomli-2.0.1[${PYTHON_USEDEP}] - ' 3.10 ) " BDEPEND=" test? ( diff --git a/dev-python/pyxdg/files/pyxdg-0.28-py3.14.patch b/dev-python/pyxdg/files/pyxdg-0.28-py3.14.patch new file mode 100644 index 000000000000..4521adfbf1ab --- /dev/null +++ b/dev-python/pyxdg/files/pyxdg-0.28-py3.14.patch @@ -0,0 +1,89 @@ +https://gitlab.freedesktop.org/xdg/pyxdg/-/merge_requests/17 + +From 9291d419017263c922869d79ac1fe8d423e5f929 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sat, 31 May 2025 18:52:45 +0100 +Subject: [PATCH 1/2] Menu: handle Python 3.14 ast.Str changes + +ast.Str is gone and replaced by ast.Constant. +--- + xdg/Menu.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/xdg/Menu.py b/xdg/Menu.py +index 1dd2af5..71f5e61 100644 +--- a/xdg/Menu.py ++++ b/xdg/Menu.py +@@ -411,7 +411,7 @@ class Rule: + def fromFilename(cls, type, filename): + tree = ast.Expression( + body=ast.Compare( +- left=ast.Str(filename), ++ left=ast.Constant(filename), + ops=[ast.Eq()], + comparators=[ast.Attribute( + value=ast.Name(id='menuentry', ctx=ast.Load()), +@@ -799,7 +799,7 @@ class XMLMenuBuilder(object): + elif tag == 'Category': + category = node.text + return ast.Compare( +- left=ast.Str(category), ++ left=ast.Constant(category), + ops=[ast.In()], + comparators=[ast.Attribute( + value=ast.Name(id='menuentry', ctx=ast.Load()), +@@ -810,7 +810,7 @@ class XMLMenuBuilder(object): + elif tag == 'Filename': + filename = node.text + return ast.Compare( +- left=ast.Str(filename), ++ left=ast.Constant(filename), + ops=[ast.Eq()], + comparators=[ast.Attribute( + value=ast.Name(id='menuentry', ctx=ast.Load()), +-- +GitLab + + +From 63033ac306aa26d32e1439417e59ae8f8a4c9820 Mon Sep 17 00:00:00 2001 +From: Sam James <sam@gentoo.org> +Date: Sat, 31 May 2025 18:54:51 +0100 +Subject: [PATCH 2/2] Menu: handle Python 3.15 deprecations + +* Unknown keyword args will be fatal, so drop lineno/col_offset that + is unused +* Set body= immediately as a keyword +--- + xdg/Menu.py | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/xdg/Menu.py b/xdg/Menu.py +index 71f5e61..8e1595c 100644 +--- a/xdg/Menu.py ++++ b/xdg/Menu.py +@@ -419,7 +419,6 @@ class Rule: + ctx=ast.Load() + )] + ), +- lineno=1, col_offset=0 + ) + ast.fix_missing_locations(tree) + rule = Rule(type, tree) +@@ -763,12 +762,10 @@ class XMLMenuBuilder(object): + + def parse_rule(self, node): + type = Rule.TYPE_INCLUDE if node.tag == 'Include' else Rule.TYPE_EXCLUDE +- tree = ast.Expression(lineno=1, col_offset=0) ++ tree = ast.Expression(body=_ast_const('False')) + expr = self.parse_bool_op(node, ast.Or()) + if expr: + tree.body = expr +- else: +- tree.body = _ast_const('False') + ast.fix_missing_locations(tree) + return Rule(type, tree) + +-- +GitLab + + diff --git a/dev-python/pyxdg/pyxdg-0.28-r2.ebuild b/dev-python/pyxdg/pyxdg-0.28-r2.ebuild new file mode 100644 index 000000000000..b9b96bf2f671 --- /dev/null +++ b/dev-python/pyxdg/pyxdg-0.28-r2.ebuild @@ -0,0 +1,32 @@ +# Copyright 1999-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 ) +DISTUTILS_USE_PEP517=setuptools + +inherit distutils-r1 + +MY_P="${PN}-rel-${PV}" +DESCRIPTION="A Python module to deal with freedesktop.org specifications" +HOMEPAGE=" + https://freedesktop.org/wiki/Software/pyxdg/ + https://pypi.org/project/pyxdg/ +" +SRC_URI=" + https://github.com/takluyver/pyxdg/archive/rel-${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="LGPL-2" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~mips ~ppc ~ppc64 ~riscv ~sparc ~x86" + +PATCHES=( + "${FILESDIR}"/${PN}-0.28-py3.12.patch + "${FILESDIR}"/${PN}-0.28-py3.14.patch +) + +distutils_enable_tests pytest diff --git a/dev-python/sarif-om/sarif-om-1.0.4-r1.ebuild b/dev-python/sarif-om/sarif-om-1.0.4-r1.ebuild index 14f3f319e3fa..a79cffbadfd1 100644 --- a/dev-python/sarif-om/sarif-om-1.0.4-r1.ebuild +++ b/dev-python/sarif-om/sarif-om-1.0.4-r1.ebuild @@ -1,9 +1,9 @@ -# Copyright 2021-2024 Gentoo Authors +# Copyright 2021-2025 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_{11..14} ) DISTUTILS_USE_PEP517=setuptools inherit distutils-r1 pypi @@ -25,3 +25,5 @@ RDEPEND=" BDEPEND=" dev-python/pbr[${PYTHON_USEDEP}] " + +distutils_enable_tests import-check diff --git a/dev-python/snakeoil/Manifest b/dev-python/snakeoil/Manifest index 677180f7d672..d613a56d2c8b 100644 --- a/dev-python/snakeoil/Manifest +++ b/dev-python/snakeoil/Manifest @@ -1 +1,2 @@ DIST snakeoil-0.10.10.tar.gz 174648 BLAKE2B b71a7006bef87527b1fca1dac4608ba38c33f38de23d7b3533ee5333b3671f69b0300c18a737d663532ce1a60f092fb4d9a40f1edab020604c4a78e92053ad59 SHA512 606204d80f099334abfc73475982b724da78117753a545ebcee9378f7cc88cd67e42c0f3c4dbf98c9c138dddf2bcf067ca47add664fde8454e4185bb8e8474d1 +DIST snakeoil-0.10.11.tar.gz 174701 BLAKE2B 5dba8eac3fdd6dfc88fcb2ffac8cd16f18c28485d39e6726708f98f0c86cdc6d101bf343da75c505f34c59c0bede89b0adbc268bc6d93a996cfefce4e968ac75 SHA512 6cd4fb1449e1ccf74bf8042afa4e113704eb328c89ff1def59581e96031082b27d78f46574796f59a612148947626d727b13a04134bc895e96f2f4733ce54c41 diff --git a/dev-python/snakeoil/snakeoil-0.10.11.ebuild b/dev-python/snakeoil/snakeoil-0.10.11.ebuild new file mode 100644 index 000000000000..b82fc9849aeb --- /dev/null +++ b/dev-python/snakeoil/snakeoil-0.10.11.ebuild @@ -0,0 +1,30 @@ +# 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 ) +PYTHON_REQ_USE="threads(+)" +inherit distutils-r1 + +if [[ ${PV} == *9999 ]] ; then + EGIT_REPO_URI="https://anongit.gentoo.org/git/proj/pkgcore/snakeoil.git + https://github.com/pkgcore/snakeoil.git" + inherit git-r3 +else + KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~x64-macos" + inherit pypi +fi + +DESCRIPTION="misc common functionality and useful optimizations" +HOMEPAGE="https://github.com/pkgcore/snakeoil" + +LICENSE="BSD BSD-2 MIT" +SLOT="0" + +RDEPEND=" + dev-python/lazy-object-proxy[${PYTHON_USEDEP}] +" + +distutils_enable_tests pytest diff --git a/dev-python/snakeoil/snakeoil-9999.ebuild b/dev-python/snakeoil/snakeoil-9999.ebuild index c89d0ce8d25e..b82fc9849aeb 100644 --- a/dev-python/snakeoil/snakeoil-9999.ebuild +++ b/dev-python/snakeoil/snakeoil-9999.ebuild @@ -26,8 +26,5 @@ SLOT="0" RDEPEND=" dev-python/lazy-object-proxy[${PYTHON_USEDEP}] " -BDEPEND=" - >=dev-python/flit-core-3.8[${PYTHON_USEDEP}] -" distutils_enable_tests pytest diff --git a/dev-python/stevedore/stevedore-5.4.1.ebuild b/dev-python/stevedore/stevedore-5.4.1.ebuild index 3e3a4973f601..89fcb3260605 100644 --- a/dev-python/stevedore/stevedore-5.4.1.ebuild +++ b/dev-python/stevedore/stevedore-5.4.1.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 pypi diff --git a/dev-python/terminaltables3/terminaltables3-4.0.0.ebuild b/dev-python/terminaltables3/terminaltables3-4.0.0.ebuild index 7d2bf1be6522..ad6c1fbbe5cb 100644 --- a/dev-python/terminaltables3/terminaltables3-4.0.0.ebuild +++ b/dev-python/terminaltables3/terminaltables3-4.0.0.ebuild @@ -4,7 +4,7 @@ EAPI=8 DISTUTILS_USE_PEP517=poetry -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 diff --git a/dev-python/traitlets/traitlets-5.14.3.ebuild b/dev-python/traitlets/traitlets-5.14.3.ebuild index 210100d35c33..d7bba4acac03 100644 --- a/dev-python/traitlets/traitlets-5.14.3.ebuild +++ b/dev-python/traitlets/traitlets-5.14.3.ebuild @@ -35,6 +35,16 @@ python_test() { tests/test_typing.py ) + if [[ ${EPYTHON} == python3.14 ]]; then + # fails due to improved error messages in Python 3.14 + # https://github.com/ipython/traitlets/issues/925 + local EPYTEST_DESELECT=( + tests/config/test_argcomplete.py::TestArgcomplete::test_complete_simple_app + tests/config/test_argcomplete.py::TestArgcomplete::test_complete_custom_completers + tests/config/test_argcomplete.py::TestArgcomplete::test_complete_subcommands_subapp1 + ) + fi + local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1 epytest -p pytest_mock } diff --git a/dev-python/vdirsyncer/vdirsyncer-0.19.3.ebuild b/dev-python/vdirsyncer/vdirsyncer-0.19.3.ebuild index 84edc1f9adc9..574bc70dbdf3 100644 --- a/dev-python/vdirsyncer/vdirsyncer-0.19.3.ebuild +++ b/dev-python/vdirsyncer/vdirsyncer-0.19.3.ebuild @@ -1,4 +1,4 @@ -# Copyright 1999-2024 Gentoo Authors +# Copyright 1999-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 |
