1{ stdenv
2, lib
3, buildPythonPackage
4, fetchPypi
5, pythonOlder
6, installShellFiles
7, astroid
8, isort
9, mccabe
10, toml
11, pytest-benchmark
12, pytest-xdist
13, pytestCheckHook
14}:
15
16buildPythonPackage rec {
17 pname = "pylint";
18 version = "2.7.2";
19
20 disabled = pythonOlder "3.6";
21
22 src = fetchPypi {
23 inherit pname version;
24 sha256 = "0e21d3b80b96740909d77206d741aa3ce0b06b41be375d92e1f3244a274c1f8a";
25 };
26
27 nativeBuildInputs = [
28 installShellFiles
29 ];
30
31 propagatedBuildInputs = [
32 astroid
33 isort
34 mccabe
35 toml
36 ];
37
38 postInstall = ''
39 mkdir -p $out/share/emacs/site-lisp
40 cp -v "elisp/"*.el $out/share/emacs/site-lisp/
41 installManPage man/*.1
42 '';
43
44 checkInputs = [
45 pytest-benchmark
46 pytest-xdist
47 pytestCheckHook
48 ];
49
50 dontUseSetuptoolsCheck = true;
51
52 # calls executable in one of the tests
53 preCheck = ''
54 export PATH=$PATH:$out/bin
55 '';
56
57 pytestFlagsArray = [
58 "-n auto"
59 ];
60
61 disabledTests = lib.optionals stdenv.isDarwin [
62 "test_parallel_execution"
63 "test_py3k_jobs_option"
64 ];
65
66 meta = with lib; {
67 homepage = "https://pylint.pycqa.org/";
68 description = "A bug and style checker for Python";
69 license = licenses.gpl1Plus;
70 maintainers = with maintainers; [ ];
71 };
72}