1{
2 lib,
3 buildPythonPackage,
4 docstring-to-markdown,
5 fetchFromGitHub,
6 jedi,
7 lsprotocol,
8 poetry-core,
9 pygls,
10 pydantic,
11 pyhamcrest,
12 pytestCheckHook,
13 python-lsp-jsonrpc,
14 pythonOlder,
15 stdenv,
16}:
17
18buildPythonPackage rec {
19 pname = "jedi-language-server";
20 version = "0.41.4";
21 format = "pyproject";
22
23 disabled = pythonOlder "3.8";
24
25 src = fetchFromGitHub {
26 owner = "pappasam";
27 repo = pname;
28 rev = "refs/tags/v${version}";
29 hash = "sha256-RDLwL9AZ3G8CzVwDtWqFFZNH/ulpHeFBhglbWNv/ZIk=";
30 };
31
32 nativeBuildInputs = [ poetry-core ];
33
34 propagatedBuildInputs = [
35 docstring-to-markdown
36 jedi
37 lsprotocol
38 pydantic
39 pygls
40 ];
41
42 nativeCheckInputs = [
43 pytestCheckHook
44 pyhamcrest
45 python-lsp-jsonrpc
46 ];
47
48 preCheck = ''
49 HOME="$(mktemp -d)"
50 '';
51
52 disabledTests = lib.optionals stdenv.isDarwin [
53 # https://github.com/pappasam/jedi-language-server/issues/313
54 "test_publish_diagnostics_on_change"
55 "test_publish_diagnostics_on_save"
56 ];
57
58 pythonImportsCheck = [ "jedi_language_server" ];
59
60 meta = with lib; {
61 description = "A Language Server for the latest version(s) of Jedi";
62 mainProgram = "jedi-language-server";
63 homepage = "https://github.com/pappasam/jedi-language-server";
64 changelog = "https://github.com/pappasam/jedi-language-server/blob/${version}/CHANGELOG.md";
65 license = licenses.mit;
66 maintainers = with maintainers; [ doronbehar ];
67 };
68}