diff options
Diffstat (limited to 'dev-python')
25 files changed, 792 insertions, 38 deletions
diff --git a/dev-python/elasticsearch/Manifest b/dev-python/elasticsearch/Manifest index 934b7e2f240e..1dc2e3473527 100644 --- a/dev-python/elasticsearch/Manifest +++ b/dev-python/elasticsearch/Manifest @@ -1 +1,2 @@ DIST elasticsearch-py-9.0.2.gh.tar.gz 2192777 BLAKE2B d7fc3c9fe94b954d0522be03335c7639e38a67fa30949f19a1004b368750ae87da5fd3ea87e048f6cc36c19a42883821ff3f986879ab6f61f4128add73a62c83 SHA512 b2473dae673051be4e6477947b9faddb11d1ac563a971c0b4eb14748ffdf3ab7eef89dbbdca27b486e631f575f7558341e46d22d551b1d20f100260d41c3b2c7 +DIST elasticsearch-py-9.1.0.gh.tar.gz 2229791 BLAKE2B 7e5651b8b92ab3afdcc9f966962c15954af681fc5d6b4e4d2ea4b26351a7724976236e34ff73cb8feec03f7d1bbabecccc1a81a1e884a33cd2720f3dea2ef40d SHA512 d23159caec48d994ad835ae608399fb9ceede825e99080604c58182ebc06923329d5cca18cb9b72b04a9819b86a9a4fb344d6def8ffb9fd0a10a26f54e61c497 diff --git a/dev-python/elasticsearch/elasticsearch-9.1.0.ebuild b/dev-python/elasticsearch/elasticsearch-9.1.0.ebuild new file mode 100644 index 000000000000..4aa7ee0ea0dd --- /dev/null +++ b/dev-python/elasticsearch/elasticsearch-9.1.0.ebuild @@ -0,0 +1,84 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=hatchling +PYTHON_COMPAT=( python3_{9,10,11,12,13} ) + +inherit distutils-r1 + +MY_P="elasticsearch-py-${PV}" +DESCRIPTION="Official Elasticsearch client library for Python" +HOMEPAGE=" + https://ela.st/es-python + https://github.com/elastic/elasticsearch-py/ + https://pypi.org/project/elasticsearch/ +" +SRC_URI=" + https://github.com/elastic/elasticsearch-py/archive/v${PV}.tar.gz + -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="Apache-2.0" +SLOT="0/$(ver_cut 1)" +KEYWORDS="~amd64 ~arm64 ~x86" + +RDEPEND=" + <dev-python/aiohttp-4[${PYTHON_USEDEP}] + >=dev-python/aiohttp-3[${PYTHON_USEDEP}] + <dev-python/elastic-transport-10[${PYTHON_USEDEP}] + >=dev-python/elastic-transport-9.1.0[${PYTHON_USEDEP}] + >=dev-python/orjson-3[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + <dev-python/requests-3[${PYTHON_USEDEP}] + >=dev-python/requests-2.4[${PYTHON_USEDEP}] + dev-python/typing-extensions[${PYTHON_USEDEP}] +" +BDEPEND=" + test? ( + ${RDEPEND} + dev-python/mapbox-vector-tile[${PYTHON_USEDEP}] + dev-python/numpy[${PYTHON_USEDEP}] + dev-python/opentelemetry-api[${PYTHON_USEDEP}] + dev-python/opentelemetry-sdk[${PYTHON_USEDEP}] + dev-python/pandas[${PYTHON_USEDEP}] + dev-python/pyarrow[${PYTHON_USEDEP}] + dev-python/python-dateutil[${PYTHON_USEDEP}] + >=dev-python/pyyaml-5.4[${PYTHON_USEDEP}] + dev-python/unasync[${PYTHON_USEDEP}] + ) +" + +distutils_enable_sphinx docs/sphinx \ + dev-python/sphinx-autodoc-typehints \ + dev-python/sphinx-rtd-theme + +EPYTEST_PLUGINS=( pytest-asyncio ) +distutils_enable_tests pytest + +python_test() { + local EPYTEST_IGNORE=( + # REST api tests are a black hole for effort. It downloads the tests + # so its an ever moving target. It also requires effort to blacklist + # tests for apis which are license restricted. + "test_elasticsearch/test_server/test_rest_api_spec.py" + # Counting deprecation warnings from python is bound to fail even + # if all are fixed in this package. Not worth it. + "test_elasticsearch/test_client/test_deprecated_options.py" + # Running daemon for tests is finicky and upstream CI fails at it + # as well. + "test_elasticsearch/test_server/" + "test_elasticsearch/test_async/test_server/" + "test_elasticsearch/test_dsl/test_integration/" + "test_elasticsearch/test_dsl/_async/test_esql.py" + "test_elasticsearch/test_dsl/_sync/test_esql.py" + # require nltk + "test_elasticsearch/test_dsl/test_integration/test_examples/_async/test_vectors.py" + "test_elasticsearch/test_dsl/test_integration/test_examples/_sync/test_vectors.py" + ) + + local -x TEST_WITH_OTEL=1 + epytest -o addopts= +} diff --git a/dev-python/ensurepip-pip/Manifest b/dev-python/ensurepip-pip/Manifest index 3622d339ccda..1a6092202975 100644 --- a/dev-python/ensurepip-pip/Manifest +++ b/dev-python/ensurepip-pip/Manifest @@ -1,2 +1,3 @@ DIST pip-25.1.1-py3-none-any.whl 1825227 BLAKE2B 13170fa08dd26edced5e5fe8d89b38f5b3b63882489d2a951a7238f950a332ce0df11109482840595984bca187960d8fe2b7aeabfcbdaf94e5586631cc1de4e3 SHA512 e0c56f04a306cba9e13ed87f7460ad5a3bda7d6c37e05098082c58acb1f7493c8061e48df279f2c476e75d12df12d0f1a74d82e00e6fc2badffe484d281c56fc DIST pip-25.1.1.gh.tar.gz 9219969 BLAKE2B eb443451deeb71888c2fc56ac5c8cb2d0515ec0efff975fab98cfa65d1fc5e66948243b3acebf1f4b0446e46082abb9fd350816579a4f5af1292c160490ce930 SHA512 ce61c9861265139b3c5ea9be9dc246097cd75c21687cf8301f80a377d02420c4524f0d6307d2ca0232ff8715b1105343bcfdb9cac6b69503780ab2c4645558dc +DIST pip-25.2.gh.tar.gz 9121715 BLAKE2B 3bfe61d6d0d6f3a79c3fd801f5cb40b203fd12085d925ae7cde53adca3c5ee523fdfd9449546e1bc8ca719b3e8766cfef3162919e13a77f7adc0d20a951d11c7 SHA512 5cc65c9091fdda7905e26ce32ddaa3a1c2fd287d69fd3da67c814ba7e8e5be59301d8327c06cdca78c1b95f4a5b5f75c87f36a549022408cc0e8f9411c0db11e diff --git a/dev-python/ensurepip-pip/ensurepip-pip-25.2.ebuild b/dev-python/ensurepip-pip/ensurepip-pip-25.2.ebuild new file mode 100644 index 000000000000..2634af07bd5a --- /dev/null +++ b/dev-python/ensurepip-pip/ensurepip-pip-25.2.ebuild @@ -0,0 +1,181 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +DISTUTILS_USE_PEP517=setuptools +# PYTHON_COMPAT is used only for testing +PYTHON_COMPAT=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 + +MY_P=${P#ensurepip-} +DESCRIPTION="Shared pip wheel for ensurepip Python module" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/archive/${PV}.tar.gz -> ${MY_P}.gh.tar.gz +" +S=${WORKDIR}/${MY_P} + +LICENSE="MIT" +SLOT="0" +KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~loong ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86 ~amd64-linux ~x86-linux ~arm64-macos ~ppc-macos ~x64-macos ~x64-solaris" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +BDEPEND=" + ${RDEPEND} + test? ( + <dev-python/ensurepip-setuptools-80 + dev-python/ensurepip-wheel + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + test-rust? ( + dev-python/cryptography[${PYTHON_USEDEP}] + ) + dev-vcs/git + ) +" + +EPYTEST_PLUGINS=() +EPYTEST_RERUNS=5 +EPYTEST_XDIST=1 +distutils_enable_tests pytest + +declare -A VENDOR_LICENSES=( + [cachecontrol]=Apache-2.0 + [certifi]=MPL-2.0 + [dependency_groups]=MIT + [distlib]=PSF-2 + [distro]=Apache-2.0 + [idna]=BSD + [msgpack]=Apache-2.0 + [packaging]="|| ( Apache-2.0 MIT )" + [pkg_resources]=MIT + [platformdirs]=MIT + [pygments]=BSD-2 + [pyproject_hooks]=MIT + [requests]=Apache-2.0 + [resolvelib]=ISC + [rich]=MIT + [tomli]=MIT + [tomli_w]=MIT + [truststore]=MIT + [urllib3]=MIT +) +LICENSE+=" ${VENDOR_LICENSES[*]}" + +python_prepare_all() { + local PATCHES=( + # remove coverage & pytest-subket wheel expectation from test suite + # (from dev-python/pip) + "${FILESDIR}/pip-25.2-test-wheels.patch" + ) + + distutils-r1_python_prepare_all + + if use test; then + local wheels=( + "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + ) + mkdir tests/data/common_wheels/ || die + cp "${wheels[@]}" tests/data/common_wheels/ || die + fi + + # Verify that we've covered licenses for all vendored packages + cd src/pip/_vendor || die + local packages=( */ ) + local pkg missing=() + for pkg in "${packages[@]%/}"; do + if [[ ! -v "VENDOR_LICENSES[${pkg}]" ]]; then + missing+=( "${pkg}" ) + else + unset "VENDOR_LICENSES[${pkg}]" + fi + done + + if [[ ${missing[@]} || ${VENDOR_LICENSES[@]} ]]; then + [[ ${missing[@]} ]] && + eerror "License missing for packages: ${missing[*]}" + [[ ${VENDOR_LICENSES[@]} ]] && + eerror "Vendored packages removed: ${!VENDOR_LICENSES[*]}" + die "VENDOR_LICENSES outdated" + fi + + local upstream_count=$(wc -l < vendor.txt || die) + if [[ ${#packages[@]} -ne ${upstream_count} ]]; then + eerror "VENDOR_LICENSES: ${#packages[@]}" + eerror "vendor.txt: ${upstream_count}" + die "Not all vendored packages matched" + fi +} + +python_test() { + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + ) + local EPYTEST_IGNORE=( + # from upstream options + src/pip/_vendor + tests/tests_cache + # requires proxy.py + tests/functional/test_proxy.py + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # unexpected tempfiles? + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + ) + ;; + esac + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + # rerunfailures because test suite breaks if packages are installed + # in parallel + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv +} + +src_install() { + if [[ ${DISTUTILS_WHEEL_PATH} != *py3-none-any.whl ]]; then + die "Non-pure wheel produced?! ${DISTUTILS_WHEEL_PATH}" + fi + # TODO: compress it? + insinto /usr/lib/python/ensurepip + doins "${DISTUTILS_WHEEL_PATH}" +} diff --git a/dev-python/ensurepip-pip/files/pip-25.2-test-wheels.patch b/dev-python/ensurepip-pip/files/pip-25.2-test-wheels.patch new file mode 100644 index 000000000000..c99af85681d3 --- /dev/null +++ b/dev-python/ensurepip-pip/files/pip-25.2-test-wheels.patch @@ -0,0 +1,74 @@ +From f172db76c62cf8e00fb547828c43cd8bf78a31ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Thu, 31 Jul 2025 05:10:08 +0200 +Subject: [PATCH] Disable coverage & socket plugins inside test venvs + +--- + tests/conftest.py | 33 --------------------------------- + 1 file changed, 33 deletions(-) + +diff --git a/tests/conftest.py b/tests/conftest.py +index c98b87117..f4ef35a7e 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -444,25 +444,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - + return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") + + +-@pytest.fixture(scope="session") +-def coverage_install( +- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path +-) -> Path: +- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") +- +- +-@pytest.fixture(scope="session") +-def socket_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) -> Path: +- lib_dir = _common_wheel_editable_install( +- tmpdir_factory, common_wheels, "pytest_subket" +- ) +- # pytest-subket is only included so it can intercept and block unexpected +- # network requests. It should NOT be visible to the pip under test. +- dist_info = next(lib_dir.glob("*.dist-info")) +- shutil.rmtree(dist_info) +- return lib_dir +- +- + def install_pth_link( + venv: VirtualEnvironment, project_name: str, lib_dir: Path + ) -> None: +@@ -479,8 +460,6 @@ def virtualenv_template( + pip_editable_parts: tuple[Path, ...], + setuptools_install: Path, + wheel_install: Path, +- coverage_install: Path, +- socket_install: Path, + ) -> VirtualEnvironment: + venv_type: VirtualEnvironmentType + if request.config.getoption("--use-venv"): +@@ -494,11 +473,7 @@ def virtualenv_template( + + # Install setuptools, wheel, pytest-subket, and pip. + install_pth_link(venv, "setuptools", setuptools_install) + install_pth_link(venv, "wheel", wheel_install) +- install_pth_link(venv, "pytest_subket", socket_install) +- # Also copy pytest-subket's .pth file so it can intercept socket calls. +- with open(venv.site / "pytest_socket.pth", "w") as f: +- f.write(socket_install.joinpath("pytest_socket.pth").read_text()) + + pth, dist_info = pip_editable_parts + +@@ -511,13 +485,6 @@ def virtualenv_template( + # detects changed files. + venv.site.joinpath("easy-install.pth").touch() + +- # Install coverage and pth file for executing it in any spawned processes +- # in this virtual environment. +- install_pth_link(venv, "coverage", coverage_install) +- # zz prefix ensures the file is after easy-install.pth. +- with open(venv.site / "zz-coverage-helper.pth", "a") as f: +- f.write("import coverage; coverage.process_startup()") +- + # Drop (non-relocatable) launchers. + for exe in os.listdir(venv.bin): + if not exe.startswith(("python", "libpy")): # Don't remove libpypy-c.so... diff --git a/dev-python/greenlet/files/greenlet-3.2.3-py312-assert.patch b/dev-python/greenlet/files/greenlet-3.2.3-py312-assert.patch new file mode 100644 index 000000000000..21737aaf0362 --- /dev/null +++ b/dev-python/greenlet/files/greenlet-3.2.3-py312-assert.patch @@ -0,0 +1,71 @@ +From 739cc559ac42f41f6ccbc7d556d730fd424f3be8 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Wed, 30 Jul 2025 12:17:47 +0200 +Subject: [PATCH] Fix py312+ crash test skips to correctly check for assertions +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Fix the skips for `test_trace_events_multiple_greenlets_switching*` +to correctly detect assertions being enabled independently of +`--with-pydebug`. Gentoo builds Python `--without-pydebug` but +`--with-assertions`, in order to benefit from assertion-implied safety +checks without the full cost of PyDEBUG. For the purpose of detecting +it, check for `-DNDEBUG` in optimization flags, as implied by disabling +assertions. Leave the existing code as a fallback for when build flags +are unavailable, e.g. in Windows packages. + +Signed-off-by: Michał Górny <mgorny@gentoo.org> +--- + src/greenlet/tests/test_tracing.py | 18 +++++++++++++----- + 1 file changed, 13 insertions(+), 5 deletions(-) + +diff --git a/src/greenlet/tests/test_tracing.py b/src/greenlet/tests/test_tracing.py +index c044d4b6..235fbcd6 100644 +--- a/src/greenlet/tests/test_tracing.py ++++ b/src/greenlet/tests/test_tracing.py +@@ -1,5 +1,6 @@ + from __future__ import print_function + import sys ++import sysconfig + import greenlet + import unittest + +@@ -7,9 +8,16 @@ + from . import PY312 + + # https://discuss.python.org/t/cpython-3-12-greenlet-and-tracing-profiling-how-to-not-crash-and-get-correct-results/33144/2 +-DEBUG_BUILD_PY312 = ( +- PY312 and hasattr(sys, 'gettotalrefcount'), +- "Broken on debug builds of Python 3.12" ++# When build variables are available, OPT is the best way of detecting ++# the build with assertions enabled. Otherwise, fallback to detecting PyDEBUG ++# build. ++ASSERTION_BUILD_PY312 = ( ++ PY312 and ( ++ "-DNDEBUG" not in sysconfig.get_config_var("OPT").split() ++ if sysconfig.get_config_var("OPT") is not None ++ else hasattr(sys, 'gettotalrefcount') ++ ), ++ "Broken on assertion-enabled builds of Python 3.12" + ) + + class SomeError(Exception): +@@ -198,7 +206,7 @@ def run(self): + + self._check_trace_events_from_greenlet_sets_profiler(X(), tracer) + +- @unittest.skipIf(*DEBUG_BUILD_PY312) ++ @unittest.skipIf(*ASSERTION_BUILD_PY312) + def test_trace_events_multiple_greenlets_switching(self): + tracer = PythonTracer() + +@@ -236,7 +244,7 @@ def g2_run(): + ('c_call', '__exit__'), + ]) + +- @unittest.skipIf(*DEBUG_BUILD_PY312) ++ @unittest.skipIf(*ASSERTION_BUILD_PY312) + def test_trace_events_multiple_greenlets_switching_siblings(self): + # Like the first version, but get both greenlets running first + # as "siblings" and then establish the tracing. diff --git a/dev-python/greenlet/files/greenlet-3.2.3-skip-leak-tests.patch b/dev-python/greenlet/files/greenlet-3.2.3-skip-leak-tests.patch new file mode 100644 index 000000000000..3e7ea3a55f27 --- /dev/null +++ b/dev-python/greenlet/files/greenlet-3.2.3-skip-leak-tests.patch @@ -0,0 +1,51 @@ +From cfb846272ab94a79c2f936da13dc3f5213f48912 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Thu, 31 Jul 2025 18:16:00 +0200 +Subject: [PATCH] Skip `TestLeaks` when `GREENLET_SKIP_LEAKCHECKS` is used + +When `GREENLET_SKIP_LEAKCHECKS` is used, we do not want to check for +leaks, and therefore it makes no sense to run tests explicitly checking +for leaks. Since the conditional is also true for MANYLINUX builds, +remove the redundant condition. +--- + src/greenlet/tests/test_leaks.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/src/greenlet/tests/test_leaks.py b/src/greenlet/tests/test_leaks.py +index 99da4eb..fe60fa2 100644 +--- a/src/greenlet/tests/test_leaks.py ++++ b/src/greenlet/tests/test_leaks.py +@@ -10,6 +10,7 @@ + import time + import weakref + import threading ++import unittest + + + import greenlet +@@ -17,7 +18,7 @@ + from . import PY314 + from .leakcheck import fails_leakcheck + from .leakcheck import ignores_leakcheck +-from .leakcheck import RUNNING_ON_MANYLINUX ++from .leakcheck import SKIP_LEAKCHECKS + + # pylint:disable=protected-access + +@@ -39,6 +40,7 @@ def reset(cls): + cls.EXTANT_INSTANCES.clear() + + ++@unittest.skipIf(SKIP_LEAKCHECKS, "Leak checks disabled") + class TestLeaks(TestCase): + + def test_arg_refs(self): +@@ -313,8 +315,6 @@ def _only_test_some_versions(self): + assert sys.version_info[0] >= 3 + if sys.version_info[:2] < (3, 8): + self.skipTest('Only observed on 3.11') +- if RUNNING_ON_MANYLINUX: +- self.skipTest("Slow and not worth repeating here") + + @ignores_leakcheck + # Because we're just trying to track raw memory, not objects, and running diff --git a/dev-python/greenlet/greenlet-3.2.3.ebuild b/dev-python/greenlet/greenlet-3.2.3.ebuild index 2fe55a3209cb..e649f248417c 100644 --- a/dev-python/greenlet/greenlet-3.2.3.ebuild +++ b/dev-python/greenlet/greenlet-3.2.3.ebuild @@ -6,7 +6,7 @@ EAPI=8 DISTUTILS_EXT=1 DISTUTILS_USE_PEP517=setuptools # Note: greenlet is built-in in pypy -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 pypi @@ -35,16 +35,20 @@ distutils_enable_sphinx docs \ distutils_enable_tests unittest src_prepare() { + local PATCHES=( + # https://github.com/python-greenlet/greenlet/pull/457 + "${FILESDIR}/${P}-py312-assert.patch" + # https://github.com/python-greenlet/greenlet/pull/461 + "${FILESDIR}/${P}-skip-leak-tests.patch" + ) + distutils-r1_src_prepare # patch cflag manipulations out sed -i -e 's:global_compile_args[.]append.*:pass:' setup.py || die - # broken assertions on py3.12+ - # https://github.com/python-greenlet/greenlet/issues/368 - sed -e 's:test_trace_events_multiple_greenlets_switching:_&: ' \ - -i src/greenlet/tests/test_tracing.py || die } python_test() { + local -x GREENLET_SKIP_LEAKCHECKS=1 eunittest greenlet.tests } 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/neovim-remote/neovim-remote-2.5.1.ebuild b/dev-python/neovim-remote/neovim-remote-2.5.1.ebuild index f60d9f5f702c..ec8a8dd9a0af 100644 --- a/dev-python/neovim-remote/neovim-remote-2.5.1.ebuild +++ b/dev-python/neovim-remote/neovim-remote-2.5.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 diff --git a/dev-python/neovim-remote/neovim-remote-9999.ebuild b/dev-python/neovim-remote/neovim-remote-9999.ebuild index 1a070cce0910..27da86238d67 100644 --- a/dev-python/neovim-remote/neovim-remote-9999.ebuild +++ b/dev-python/neovim-remote/neovim-remote-9999.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 diff --git a/dev-python/pip/Manifest b/dev-python/pip/Manifest index 08cbb3a739a5..86f564765d0f 100644 --- a/dev-python/pip/Manifest +++ b/dev-python/pip/Manifest @@ -1 +1,2 @@ DIST pip-25.1.1.gh.tar.gz 9219969 BLAKE2B eb443451deeb71888c2fc56ac5c8cb2d0515ec0efff975fab98cfa65d1fc5e66948243b3acebf1f4b0446e46082abb9fd350816579a4f5af1292c160490ce930 SHA512 ce61c9861265139b3c5ea9be9dc246097cd75c21687cf8301f80a377d02420c4524f0d6307d2ca0232ff8715b1105343bcfdb9cac6b69503780ab2c4645558dc +DIST pip-25.2.gh.tar.gz 9121715 BLAKE2B 3bfe61d6d0d6f3a79c3fd801f5cb40b203fd12085d925ae7cde53adca3c5ee523fdfd9449546e1bc8ca719b3e8766cfef3162919e13a77f7adc0d20a951d11c7 SHA512 5cc65c9091fdda7905e26ce32ddaa3a1c2fd287d69fd3da67c814ba7e8e5be59301d8327c06cdca78c1b95f4a5b5f75c87f36a549022408cc0e8f9411c0db11e diff --git a/dev-python/pip/files/pip-25.2-test-wheels.patch b/dev-python/pip/files/pip-25.2-test-wheels.patch new file mode 100644 index 000000000000..c99af85681d3 --- /dev/null +++ b/dev-python/pip/files/pip-25.2-test-wheels.patch @@ -0,0 +1,74 @@ +From f172db76c62cf8e00fb547828c43cd8bf78a31ef Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org> +Date: Thu, 31 Jul 2025 05:10:08 +0200 +Subject: [PATCH] Disable coverage & socket plugins inside test venvs + +--- + tests/conftest.py | 33 --------------------------------- + 1 file changed, 33 deletions(-) + +diff --git a/tests/conftest.py b/tests/conftest.py +index c98b87117..f4ef35a7e 100644 +--- a/tests/conftest.py ++++ b/tests/conftest.py +@@ -444,25 +444,6 @@ def wheel_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) - + return _common_wheel_editable_install(tmpdir_factory, common_wheels, "wheel") + + +-@pytest.fixture(scope="session") +-def coverage_install( +- tmpdir_factory: pytest.TempPathFactory, common_wheels: Path +-) -> Path: +- return _common_wheel_editable_install(tmpdir_factory, common_wheels, "coverage") +- +- +-@pytest.fixture(scope="session") +-def socket_install(tmpdir_factory: pytest.TempPathFactory, common_wheels: Path) -> Path: +- lib_dir = _common_wheel_editable_install( +- tmpdir_factory, common_wheels, "pytest_subket" +- ) +- # pytest-subket is only included so it can intercept and block unexpected +- # network requests. It should NOT be visible to the pip under test. +- dist_info = next(lib_dir.glob("*.dist-info")) +- shutil.rmtree(dist_info) +- return lib_dir +- +- + def install_pth_link( + venv: VirtualEnvironment, project_name: str, lib_dir: Path + ) -> None: +@@ -479,8 +460,6 @@ def virtualenv_template( + pip_editable_parts: tuple[Path, ...], + setuptools_install: Path, + wheel_install: Path, +- coverage_install: Path, +- socket_install: Path, + ) -> VirtualEnvironment: + venv_type: VirtualEnvironmentType + if request.config.getoption("--use-venv"): +@@ -494,11 +473,7 @@ def virtualenv_template( + + # Install setuptools, wheel, pytest-subket, and pip. + install_pth_link(venv, "setuptools", setuptools_install) + install_pth_link(venv, "wheel", wheel_install) +- install_pth_link(venv, "pytest_subket", socket_install) +- # Also copy pytest-subket's .pth file so it can intercept socket calls. +- with open(venv.site / "pytest_socket.pth", "w") as f: +- f.write(socket_install.joinpath("pytest_socket.pth").read_text()) + + pth, dist_info = pip_editable_parts + +@@ -511,13 +485,6 @@ def virtualenv_template( + # detects changed files. + venv.site.joinpath("easy-install.pth").touch() + +- # Install coverage and pth file for executing it in any spawned processes +- # in this virtual environment. +- install_pth_link(venv, "coverage", coverage_install) +- # zz prefix ensures the file is after easy-install.pth. +- with open(venv.site / "zz-coverage-helper.pth", "a") as f: +- f.write("import coverage; coverage.process_startup()") +- + # Drop (non-relocatable) launchers. + for exe in os.listdir(venv.bin): + if not exe.startswith(("python", "libpy")): # Don't remove libpypy-c.so... diff --git a/dev-python/pip/pip-25.2.ebuild b/dev-python/pip/pip-25.2.ebuild new file mode 100644 index 000000000000..30952dc2877a --- /dev/null +++ b/dev-python/pip/pip-25.2.ebuild @@ -0,0 +1,191 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +# please bump dev-python/ensurepip-pip along with this package! + +DISTUTILS_USE_PEP517=setuptools +PYTHON_TESTED=( python3_{9,10,11,12,13} pypy3 ) +PYTHON_COMPAT=( "${PYTHON_TESTED[@]}" ) +PYTHON_REQ_USE="ssl(+),threads(+)" + +inherit distutils-r1 shell-completion + +DESCRIPTION="The PyPA recommended tool for installing Python packages" +HOMEPAGE=" + https://pip.pypa.io/en/stable/ + https://pypi.org/project/pip/ + https://github.com/pypa/pip/ +" +SRC_URI=" + https://github.com/pypa/pip/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" +IUSE="test test-rust" +RESTRICT="!test? ( test )" + +# see src/pip/_vendor/vendor.txt +RDEPEND=" + >=dev-python/cachecontrol-0.14.3[${PYTHON_USEDEP}] + >=dev-python/dependency-groups-1.3.0[${PYTHON_USEDEP}] + >=dev-python/distlib-0.4.0[${PYTHON_USEDEP}] + >=dev-python/distro-1.9.0[${PYTHON_USEDEP}] + >=dev-python/msgpack-1.1.1[${PYTHON_USEDEP}] + >=dev-python/packaging-25.0[${PYTHON_USEDEP}] + >=dev-python/platformdirs-4.3.8[${PYTHON_USEDEP}] + >=dev-python/pyproject-hooks-1.2.0[${PYTHON_USEDEP}] + >=dev-python/requests-2.32.4[${PYTHON_USEDEP}] + >=dev-python/rich-14.1.0[${PYTHON_USEDEP}] + >=dev-python/resolvelib-1.2.0[${PYTHON_USEDEP}] + >=dev-python/setuptools-70.3.0[${PYTHON_USEDEP}] + >=dev-python/tomli-w-1.2.0[${PYTHON_USEDEP}] + >=dev-python/truststore-0.10.1[${PYTHON_USEDEP}] + >=dev-python/typing-extensions-4.13.2[${PYTHON_USEDEP}] +" +BDEPEND=" + ${RDEPEND} + test? ( + $(python_gen_cond_dep ' + dev-python/ensurepip-setuptools + dev-python/ensurepip-wheel + dev-python/freezegun[${PYTHON_USEDEP}] + dev-python/pretend[${PYTHON_USEDEP}] + dev-python/pytest[${PYTHON_USEDEP}] + dev-python/pytest-rerunfailures[${PYTHON_USEDEP}] + dev-python/pytest-xdist[${PYTHON_USEDEP}] + dev-python/scripttest[${PYTHON_USEDEP}] + <dev-python/setuptools-80[${PYTHON_USEDEP}] + dev-python/virtualenv[${PYTHON_USEDEP}] + dev-python/werkzeug[${PYTHON_USEDEP}] + dev-python/wheel[${PYTHON_USEDEP}] + test-rust? ( + dev-python/cryptography[${PYTHON_USEDEP}] + ) + dev-vcs/git + ' "${PYTHON_TESTED[@]}") + ) +" + +python_prepare_all() { + local PATCHES=( + # remove coverage & pytest-subket wheel expectation from test suite + "${FILESDIR}/pip-25.2-test-wheels.patch" + # prepare to unbundle dependencies + "${FILESDIR}/pip-25.0.1-unbundle.patch" + ) + + distutils-r1_python_prepare_all + + # unbundle dependencies + rm -r src/pip/_vendor || die + find -name '*.py' -exec sed -i \ + -e 's:from pip\._vendor import:import:g' \ + -e 's:from pip\._vendor\.:from :g' \ + {} + || die + + if use test; then + local wheels=( + "${BROOT}"/usr/lib/python/ensurepip/{setuptools,wheel}-*.whl + ) + mkdir tests/data/common_wheels/ || die + cp "${wheels[@]}" tests/data/common_wheels/ || die + fi +} + +python_configure() { + if use test && has_version "dev-python/pip[${PYTHON_USEDEP}]"; then + "${EPYTHON}" -m pip check || + die "${EPYTHON} -m pip check failed, tests will fail" + fi +} + +python_compile_all() { + # 'pip completion' command embeds full $0 into completion script, which confuses + # 'complete' and causes QA warning when running as "${PYTHON} -m pip". + # This trick sets correct $0 while still calling just installed pip. + local pipcmd='if True: + import sys + sys.argv[0] = "pip" + __file__ = "" + from pip._internal.cli.main import main + sys.exit(main()) + ' + "${EPYTHON}" -c "${pipcmd}" completion --bash > completion.bash || die + "${EPYTHON}" -c "${pipcmd}" completion --zsh > completion.zsh || die +} + +python_test() { + if ! has "${EPYTHON}" "${PYTHON_TESTED[@]/_/.}"; then + einfo "Skipping tests on ${EPYTHON}" + return 0 + fi + + local EPYTEST_DESELECT=( + tests/functional/test_inspect.py::test_inspect_basic + # Internet + tests/functional/test_config_settings.py::test_backend_sees_config_via_sdist + tests/functional/test_install.py::test_double_install_fail + tests/functional/test_install.py::test_install_sdist_links + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + tests/functional/test_lock.py::test_lock_archive + tests/functional/test_lock.py::test_lock_vcs + # broken by system site-packages use + tests/functional/test_freeze.py::test_freeze_with_setuptools + tests/functional/test_pip_runner_script.py::test_runner_work_in_environments_with_no_pip + tests/functional/test_uninstall.py::test_basic_uninstall_distutils + tests/unit/test_base_command.py::test_base_command_global_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_local_tempdir_cleanup + tests/unit/test_base_command.py::test_base_command_provides_tempdir_helpers + # broken by unbundling + "tests/functional/test_debug.py::test_debug[vendored library versions:]" + tests/functional/test_debug.py::test_debug__library_versions + tests/functional/test_python_option.py::test_python_interpreter + tests/functional/test_uninstall.py::test_uninstall_non_local_distutils + ) + local EPYTEST_IGNORE=( + # from upstream options + tests/tests_cache + # requires proxy.py + tests/functional/test_proxy.py + ) + + case ${EPYTHON} in + pypy3*) + EPYTEST_DESELECT+=( + # unexpected tempfiles? + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + ) + ;; + esac + + if ! has_version "dev-python/cryptography[${PYTHON_USEDEP}]"; then + EPYTEST_DESELECT+=( + tests/functional/test_install.py::test_install_sends_client_cert + tests/functional/test_install_config.py::test_do_not_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_authentication + tests/functional/test_install_config.py::test_prompt_for_keyring_if_needed + ) + fi + + local -x PIP_DISABLE_PIP_VERSION_CHECK=1 + local EPYTEST_PLUGINS=() + # rerunfailures because test suite breaks if packages are installed + # to system site-packages while it's running + local EPYTEST_RERUNS=5 + local EPYTEST_XDIST=1 + epytest -m "not network" -o addopts= -o tmp_path_retention_policy=all \ + --use-venv +} + +python_install_all() { + local DOCS=( AUTHORS.txt docs/html/**/*.rst ) + distutils-r1_python_install_all + + newbashcomp completion.bash pip + newzshcomp completion.zsh _pip +} diff --git a/dev-python/pygdbmi/pygdbmi-0.11.0.0.ebuild b/dev-python/pygdbmi/pygdbmi-0.11.0.0.ebuild index d0e2631339ef..4435d109ccb1 100644 --- a/dev-python/pygdbmi/pygdbmi-0.11.0.0.ebuild +++ b/dev-python/pygdbmi/pygdbmi-0.11.0.0.ebuild @@ -28,4 +28,5 @@ RDEPEND=" >=dev-debug/gdb-9.6 " +EPYTEST_PLUGINS=() distutils_enable_tests pytest diff --git a/dev-python/pyrate-limiter/pyrate-limiter-3.9.0.ebuild b/dev-python/pyrate-limiter/pyrate-limiter-3.9.0.ebuild index fa4889d71cb5..347df98b58db 100644 --- a/dev-python/pyrate-limiter/pyrate-limiter-3.9.0.ebuild +++ b/dev-python/pyrate-limiter/pyrate-limiter-3.9.0.ebuild @@ -36,6 +36,7 @@ EPYTEST_DESELECT=( ) EPYTEST_PLUGINS=( pytest-{asyncio,rerunfailures} ) EPYTEST_RERUNS=5 +: "${EPYTEST_TIMEOUT:=60}" EPYTEST_XDIST=1 distutils_enable_sphinx docs \ diff --git a/dev-python/pyroute2/Manifest b/dev-python/pyroute2/Manifest index a2cfbe26e8c9..21b992c6c8ab 100644 --- a/dev-python/pyroute2/Manifest +++ b/dev-python/pyroute2/Manifest @@ -1,2 +1,3 @@ DIST pyroute2-0.9.2.tar.gz 470901 BLAKE2B 64cf2fd568b95914cef50c0c77dc0e4fd72a9ab766fca357204b82ca68a37e544c58cd53835bfa95415e8677c61ec8db2561d02d48bff7ea2a39e5dc1058ac66 SHA512 b6012f4ab20bed3630a90bcd1672f9f5a467b0ddb6ea180d8bd11868ac2361898e2fa33fafcda857026384fde5952a03b5b7b9d1f2672b963019fd7b2a83a6c3 DIST pyroute2-0.9.3.tar.gz 463940 BLAKE2B 650bb3dd206f8b8a92ec83201e480e2aeb1dbf7babf55ba82f60b1efc2574110df529d075af9d5ff53c521a8d42e677d87b6b02451f8a0490adb0df68d49047f SHA512 f892cd77f9c7480fc774580bdb36fb0cf21b095a14a603667493b1281e14ee1ee2cd4578ec95d03365e7efacc42be33de4bf5b6380a50414cdd45b2922efddeb +DIST pyroute2-0.9.4.tar.gz 463980 BLAKE2B 6557bf74a20b56295868cc1a8c0e31c0e052665edf0adbf534b281c0ec958a0cfc101d3dfce4d29b1314499d71fd05901636e028d6f11413ba85cd609132cedc SHA512 77f1023622730ed45f1e1bda81f5e31c5de10afc0821856152564c1663bc60659411f6695c2826239cd8137edb5831578393a746a5a6dc1afe129bc1dc55eb02 diff --git a/dev-python/pyroute2/pyroute2-0.9.4.ebuild b/dev-python/pyroute2/pyroute2-0.9.4.ebuild new file mode 100644 index 000000000000..339212774a9d --- /dev/null +++ b/dev-python/pyroute2/pyroute2-0.9.4.ebuild @@ -0,0 +1,26 @@ +# 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} ) +PYTHON_REQ_USE="sqlite" + +inherit distutils-r1 pypi + +DESCRIPTION="A pure Python netlink and Linux network configuration library" +HOMEPAGE=" + https://github.com/svinota/pyroute2/ + https://pypi.org/project/pyroute2/ +" + +LICENSE="|| ( GPL-2+ Apache-2.0 )" +SLOT="0" +KEYWORDS="~amd64 ~arm64 ~x86" +# tests need root access +RESTRICT="test" + +BDEPEND=" + dev-python/setuptools-scm[${PYTHON_USEDEP}] +" diff --git a/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild b/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild index c99716e018e5..47da4df878fc 100644 --- a/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild +++ b/dev-python/pytest-twisted/pytest-twisted-1.14.3-r1.ebuild @@ -3,6 +3,8 @@ EAPI=8 +# mgorny: py3.14 fails on hypothesis tests for me (inside crash) +# I suppose we can skip them but let's test a revdep first PYTHON_COMPAT=( python3_{9,10,11,12,13} ) DISTUTILS_USE_PEP517=setuptools diff --git a/dev-python/respx/respx-0.22.0-r1.ebuild b/dev-python/respx/respx-0.22.0-r1.ebuild index decde3e63df0..a8ebbda4a03d 100644 --- a/dev-python/respx/respx-0.22.0-r1.ebuild +++ b/dev-python/respx/respx-0.22.0-r1.ebuild @@ -31,14 +31,14 @@ BDEPEND=" test? ( dev-python/flask[${PYTHON_USEDEP}] dev-python/httpcore[${PYTHON_USEDEP}] - dev-python/pytest-asyncio[${PYTHON_USEDEP}] dev-python/starlette[${PYTHON_USEDEP}] dev-python/trio[${PYTHON_USEDEP}] ) " +EPYTEST_PLUGINS=( pytest-asyncio ) distutils_enable_tests pytest python_test() { - epytest -p 'no:*' -p asyncio -o addopts= + epytest -o addopts= } diff --git a/dev-python/unasync/unasync-0.6.0-r1.ebuild b/dev-python/unasync/unasync-0.6.0-r1.ebuild index ad82d39f53d4..15ca9f860d00 100644 --- a/dev-python/unasync/unasync-0.6.0-r1.ebuild +++ b/dev-python/unasync/unasync-0.6.0-r1.ebuild @@ -1,10 +1,10 @@ -# Copyright 2021-2024 Gentoo Authors +# Copyright 2021-2025 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=8 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 @@ -22,13 +22,14 @@ LICENSE="|| ( Apache-2.0 MIT )" SLOT="0" KEYWORDS="amd64 arm64 x86" +RDEPEND=" + dev-python/setuptools[${PYTHON_USEDEP}] + dev-python/tokenize-rt[${PYTHON_USEDEP}] +" + distutils_enable_sphinx docs/source \ dev-python/sphinxcontrib-trio \ dev-python/sphinx-rtd-theme +EPYTEST_PLUGINS=() distutils_enable_tests pytest - -RDEPEND=" - dev-python/setuptools[${PYTHON_USEDEP}] - dev-python/tokenize-rt[${PYTHON_USEDEP}] -" diff --git a/dev-python/virtualenvwrapper/virtualenvwrapper-6.1.1.ebuild b/dev-python/virtualenvwrapper/virtualenvwrapper-6.1.1.ebuild index fb826b102525..8c009acc182e 100644 --- a/dev-python/virtualenvwrapper/virtualenvwrapper-6.1.1.ebuild +++ b/dev-python/virtualenvwrapper/virtualenvwrapper-6.1.1.ebuild @@ -5,7 +5,7 @@ EAPI=8 DISTUTILS_SINGLE_IMPL=1 DISTUTILS_USE_PEP517=setuptools -PYTHON_COMPAT=( python3_{9,10,11,12,13} ) +PYTHON_COMPAT=( python3_{11..14} ) inherit distutils-r1 pypi |
