Files
nixpkgs/pkgs/development/python-modules/python-lsp-server/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

158 lines
2.9 KiB
Nix

{ lib
, stdenv
, autopep8
, buildPythonPackage
, docstring-to-markdown
, fetchFromGitHub
, flake8
, flaky
, jedi
, matplotlib
, mccabe
, numpy
, pandas
, pluggy
, pycodestyle
, pydocstyle
, pyflakes
, pylint
, pyqt5
, pytestCheckHook
, python-lsp-jsonrpc
, pythonOlder
, rope
, setuptools
, setuptools-scm
, toml
, ujson
, websockets
, whatthepatch
, yapf
}:
buildPythonPackage rec {
pname = "python-lsp-server";
version = "1.7.0";
format = "pyproject";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "python-lsp";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-9cyzJxyCris7FsVni5IZCCL6IAcsN8tMakNoKPeWv7s=";
};
SETUPTOOLS_SCM_PRETEND_VERSION = version;
postPatch = ''
substituteInPlace pyproject.toml \
--replace "--cov-report html --cov-report term --junitxml=pytest.xml" "" \
--replace "--cov pylsp --cov test" "" \
--replace "autopep8>=1.6.0,<1.7.0" "autopep8" \
--replace "flake8>=5.0.0,<7" "flake8" \
--replace "mccabe>=0.7.0,<0.8.0" "mccabe" \
--replace "pycodestyle>=2.9.0,<2.11.0" "pycodestyle" \
--replace "pyflakes>=2.5.0,<3.1.0" "pyflakes"
'';
nativeBuildInputs = [
setuptools-scm
];
propagatedBuildInputs = [
docstring-to-markdown
jedi
pluggy
python-lsp-jsonrpc
setuptools # `pkg_resources`imported in pylsp/config/config.py
ujson
];
passthru.optional-dependencies = {
all = [
autopep8
flake8
mccabe
pycodestyle
pydocstyle
pyflakes
pylint
rope
toml
whatthepatch
yapf
];
autopep8 = [
autopep8
];
flake8 = [
flake8
];
mccabe = [
mccabe
];
pycodestyle = [
pycodestyle
];
pydocstyle = [
pydocstyle
];
pyflakes = [
pyflakes
];
pylint = [
pylint
];
rope = [
rope
];
yapf = [
whatthepatch
yapf
];
websockets = [
websockets
];
};
nativeCheckInputs = [
flaky
matplotlib
numpy
pandas
pytestCheckHook
] ++ passthru.optional-dependencies.all
# pyqt5 is broken on aarch64-darwin
++ lib.optionals (!stdenv.isDarwin || !stdenv.isAarch64) [
pyqt5
];
disabledTests = [
# https://github.com/python-lsp/python-lsp-server/issues/243
"test_numpy_completions"
"test_workspace_loads_pycodestyle_config"
] ++ lib.optionals (stdenv.isDarwin && stdenv.isAarch64) [
# pyqt5 is broken on aarch64-darwin
"test_pyqt_completion"
];
preCheck = ''
export HOME=$(mktemp -d);
'';
pythonImportsCheck = [
"pylsp"
"pylsp.python_lsp"
];
meta = with lib; {
description = "Python implementation of the Language Server Protocol";
homepage = "https://github.com/python-lsp/python-lsp-server";
changelog = "https://github.com/python-lsp/python-lsp-server/blob/v${version}/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
};
}