1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 msgpack,
7 isPyPy,
8 greenlet,
9 pythonOlder,
10 typing-extensions,
11}:
12
13buildPythonPackage rec {
14 pname = "pynvim";
15 version = "0.6.0";
16 pyproject = true;
17
18 src = fetchFromGitHub {
19 owner = "neovim";
20 repo = "pynvim";
21 tag = version;
22 hash = "sha256-Wxn4g/lFelAJx0Zz2yaeXqX56xeOWUJNb2p8EiJgKE0=";
23 };
24
25 build-system = [ setuptools ];
26
27 dependencies = [
28 msgpack
29 ]
30 ++ lib.optionals (!isPyPy) [ greenlet ]
31 ++ lib.optionals (pythonOlder "3.12") [ typing-extensions ];
32
33 # Tests require pkgs.neovim which we cannot add because of circular dependency
34 doCheck = false;
35
36 pythonImportsCheck = [ "pynvim" ];
37
38 meta = {
39 description = "Python client for Neovim";
40 homepage = "https://github.com/neovim/pynvim";
41 changelog = "https://github.com/neovim/pynvim/releases/tag/${version}";
42 license = lib.licenses.asl20;
43 maintainers = with lib.maintainers; [ figsoda ];
44 };
45}