summaryrefslogtreecommitdiff
path: root/dev-python/pynvim
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pynvim')
-rw-r--r--dev-python/pynvim/Manifest4
-rw-r--r--dev-python/pynvim/files/pynvim-0.5.2-py314.patch51
-rw-r--r--dev-python/pynvim/pynvim-0.5.2-r1.ebuild56
-rw-r--r--dev-python/pynvim/pynvim-0.5.2.ebuild2
4 files changed, 111 insertions, 2 deletions
diff --git a/dev-python/pynvim/Manifest b/dev-python/pynvim/Manifest
index 06d2e936eebe..fef0c5276719 100644
--- a/dev-python/pynvim/Manifest
+++ b/dev-python/pynvim/Manifest
@@ -1,3 +1,5 @@
+AUX pynvim-0.5.2-py314.patch 2115 BLAKE2B cd12dde08b9f993d24067eca267a6e2598d933b8c64621fc5c11b2dca1f54684d2951321f18e431c521660d54258ff4d76b600d43a768b051428515f37b6e6d2 SHA512 ab4ad8e33929fa8d5b755c891ddb75b06050e45293d71e69c47ee7e08ad854d60e9a12ac42bc2c16a2a254b1dc45b5664c917a5b48230eb9c67ecedd5218efee
DIST pynvim-0.5.2.gh.tar.gz 61269 BLAKE2B 252c9e38935cfb8558ad0536090942b5dbd582f5164c7172fb85e0fa76ba50f18c6be42831905599e28c6a1c074af7c71d7b35b6a37560a28f7bb8a11fcc7b5b SHA512 3bc07e6e1aec265d9584cb03946a0d72fbd43be498bfcefc35d6b60f23316d1dd0ea812f24d96a0e156bd54918944b3cce6303f9a66b23e61c9a000233aa10eb
-EBUILD pynvim-0.5.2.ebuild 1015 BLAKE2B ddad1c0b239180a169d0510f929cf36fd423cc97a826142ef9bac6c345a9aa3f12ddb315226c908943fb94e4da8735792cc6a6f805341efa3a329962ad5f0b54 SHA512 188d23cd3ec3306858e921cffe0d9c46dca847f85375c4fd6e8e73afa046d57d885a796a25146ba4b582cfda8b75c31a377e87f61686e3800be690ecc6cb57cc
+EBUILD pynvim-0.5.2-r1.ebuild 1058 BLAKE2B 700b250e04fd0060ef0e57053c9bdd8ea15d71cb7ba0cb04c80d7b8fb31de29200411ae175ef93d1a42c5bd4f5e9ec007b6a85b4a3f7c8c270a62b25b711eb4f SHA512 ab53d9df4f27c0723d7fe01bf18a55d2b0c8d2a356ac6c5e363569cc8fed889dcaea7d9ddce7a97437b34374f1b522c223133328ff0b8a0af44364c4553d04b7
+EBUILD pynvim-0.5.2.ebuild 1009 BLAKE2B 9bef90516dc09e890b743a905e107a940bcdd4543cf40a5032c85ff4d9bca24994d6c703e451a05f46eeffb9b412f5a8e4780df649b7d82fa4b05e022b35b398 SHA512 cfa00cdbda4b62ccd8de3a3ba16a644bbc1b627adf181aee4de3b0433dbc3681fe5ffd7e766ee576ae0c17809f4bbb898c8dd36cdb047637a0645fbf780f218a
MISC metadata.xml 497 BLAKE2B 0fb6f83694d47c77d6b370e19a2c681caff4d9a105ce831f54823c65c995cb88949bf1f276a186245c8a03f551374cb6583cc9e0b4143fa048fae289278d4042 SHA512 bbf30f5aa13e28b3a7f810d6660815767e0c21e21de7e01ebfd6b1ca6a22187e3f3aa8278ee26ffb632a6c201e5544ad2b069710dc8cccf6d4bbda962b48437c
diff --git a/dev-python/pynvim/files/pynvim-0.5.2-py314.patch b/dev-python/pynvim/files/pynvim-0.5.2-py314.patch
new file mode 100644
index 000000000000..1bd0d1d90e72
--- /dev/null
+++ b/dev-python/pynvim/files/pynvim-0.5.2-py314.patch
@@ -0,0 +1,51 @@
+https://github.com/neovim/pynvim/commit/e2a3ead549f91bc5f5a157660be7a29e0bc9f728
+
+From e2a3ead549f91bc5f5a157660be7a29e0bc9f728 Mon Sep 17 00:00:00 2001
+From: Andreas Schneider <asn@cryptomilk.org>
+Date: Mon, 13 Jan 2025 09:43:32 +0100
+Subject: [PATCH] fix: asyncio.get_child_watcher() was removed in Python 3.14
+ #584
+
+Fixes #583
+---
+ pynvim/msgpack_rpc/event_loop/asyncio.py | 17 ++++++++++++++---
+ 1 file changed, 14 insertions(+), 3 deletions(-)
+
+diff --git a/pynvim/msgpack_rpc/event_loop/asyncio.py b/pynvim/msgpack_rpc/event_loop/asyncio.py
+index cb17f321..d4ad1413 100644
+--- a/pynvim/msgpack_rpc/event_loop/asyncio.py
++++ b/pynvim/msgpack_rpc/event_loop/asyncio.py
+@@ -188,10 +188,20 @@ async def connect_stdout():
+
+ @override
+ def _connect_child(self, argv: List[str]) -> None:
++ def get_child_watcher():
++ try:
++ return asyncio.get_child_watcher()
++ except AttributeError: # Python 3.14
++ return None
++
++ return None
++
+ if os.name != 'nt':
+ # see #238, #241
+- self._child_watcher = asyncio.get_child_watcher()
+- self._child_watcher.attach_loop(self._loop)
++ watcher = get_child_watcher()
++ if watcher is not None:
++ watcher.attach_loop(self._loop)
++ self._child_watcher = watcher
+
+ async def create_subprocess():
+ transport: asyncio.SubprocessTransport # type: ignore
+@@ -250,7 +260,8 @@ def _close_transport(transport):
+ # Windows: for ProactorBasePipeTransport, close() doesn't take in
+ # effect immediately (closing happens asynchronously inside the
+ # event loop), need to wait a bit for completing graceful shutdown.
+- if os.name == 'nt' and hasattr(transport, '_sock'):
++ if (sys.version_info < (3, 13) and
++ os.name == 'nt' and hasattr(transport, '_sock')):
+ async def wait_until_closed():
+ # pylint: disable-next=protected-access
+ while transport._sock is not None:
+
diff --git a/dev-python/pynvim/pynvim-0.5.2-r1.ebuild b/dev-python/pynvim/pynvim-0.5.2-r1.ebuild
new file mode 100644
index 000000000000..0bdde465d0b2
--- /dev/null
+++ b/dev-python/pynvim/pynvim-0.5.2-r1.ebuild
@@ -0,0 +1,56 @@
+# 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} pypy3_11 )
+
+inherit distutils-r1
+
+DESCRIPTION="Python client for Neovim"
+HOMEPAGE="
+ https://github.com/neovim/pynvim/
+ https://pypi.org/project/pynvim/
+"
+SRC_URI="
+ https://github.com/neovim/pynvim/archive/${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/msgpack[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ >=dev-python/greenlet-3.0[${PYTHON_USEDEP}]
+ ' 'python*')
+ $(python_gen_cond_dep '
+ >=dev-python/typing-extensions-4.5[${PYTHON_USEDEP}]
+ ' 3.11)
+"
+BDEPEND="
+ test? (
+ app-editors/neovim
+ dev-python/pytest-timeout[${PYTHON_USEDEP}]
+ )
+"
+
+PATCHES=(
+ "${FILESDIR}"/${PN}-0.5.2-py314.patch
+)
+
+: ${EPYTEST_TIMEOUT:=5}
+distutils_enable_tests pytest
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # hangs
+ test/test_events.py::test_broadcast
+ )
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest
+}
diff --git a/dev-python/pynvim/pynvim-0.5.2.ebuild b/dev-python/pynvim/pynvim-0.5.2.ebuild
index 14b58fdb3941..adb5d1958451 100644
--- a/dev-python/pynvim/pynvim-0.5.2.ebuild
+++ b/dev-python/pynvim/pynvim-0.5.2.ebuild
@@ -4,7 +4,7 @@
EAPI=8
DISTUTILS_USE_PEP517=setuptools
-PYTHON_COMPAT=( python3_{10..13} pypy3 pypy3_11 )
+PYTHON_COMPAT=( python3_{11..13} pypy3_11 )
inherit distutils-r1