ansible-later: 2.0.22 -> 2.0.23
[NixPkgs.git] / pkgs / development / python-modules / pylint / default.nix
blob3bc20493dd6410c87c9c7e8e651c221f0efaca70
1 { stdenv
2 , lib
3 , buildPythonPackage
4 , fetchFromGitHub
5 , pythonOlder
6 , installShellFiles
7 , astroid
8 , dill
9 , isort
10 , mccabe
11 , platformdirs
12 , tomli
13 , tomlkit
14 , typing-extensions
15 , GitPython
16 , pytest-timeout
17 , pytest-xdist
18 , pytestCheckHook
21 buildPythonPackage rec {
22   pname = "pylint";
23   version = "2.14.5";
24   format = "setuptools";
26   disabled = pythonOlder "3.7.2";
28   src = fetchFromGitHub {
29     owner = "PyCQA";
30     repo = pname;
31     rev = "v${version}";
32     sha256 = "sha256-JTFGplqIA6WavwzKOkrm1rHBKNRrplBPvAdEkb/fTlI=";
33   };
35   nativeBuildInputs = [
36     installShellFiles
37   ];
39   propagatedBuildInputs = [
40     astroid
41     dill
42     isort
43     mccabe
44     platformdirs
45     tomlkit
46   ] ++ lib.optionals (pythonOlder "3.11") [
47     tomli
48   ] ++ lib.optionals (pythonOlder "3.9") [
49     typing-extensions
50   ];
52   postInstall = ''
53     mkdir -p $out/share/emacs/site-lisp
54     cp -v "elisp/"*.el $out/share/emacs/site-lisp/
55     installManPage man/*.1
56   '';
58   checkInputs = [
59     GitPython
60     # https://github.com/PyCQA/pylint/blob/main/requirements_test_min.txt
61     pytest-timeout
62     pytest-xdist
63     pytestCheckHook
64     typing-extensions
65   ];
67   dontUseSetuptoolsCheck = true;
69   preCheck = ''
70     export HOME=$TEMPDIR
71   '';
73   disabledTestPaths = [
74     "tests/benchmark"
75     # tests miss multiple input files
76     # FileNotFoundError: [Errno 2] No such file or directory
77     "tests/pyreverse/test_writer.py"
78   ];
80   disabledTests = [
81     # AssertionError when self executing and checking output
82     # expected output looks like it should match though
83     "test_invocation_of_pylint_config"
84     "test_generate_rcfile"
85     "test_generate_toml_config"
86     "test_help_msg"
87     "test_output_of_callback_options"
88     # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
89     "test_save_and_load_not_a_linter_stats"
90   ] ++ lib.optionals stdenv.isDarwin [
91     "test_parallel_execution"
92     "test_py3k_jobs_option"
93   ];
95   meta = with lib; {
96     homepage = "https://pylint.pycqa.org/";
97     description = "A bug and style checker for Python";
98     longDescription = ''
99       Pylint is a Python static code analysis tool which looks for programming errors,
100       helps enforcing a coding standard, sniffs for code smells and offers simple
101       refactoring suggestions.
102       Pylint is shipped with following additional commands:
103       - pyreverse: an UML diagram generator
104       - symilar: an independent similarities checker
105       - epylint: Emacs and Flymake compatible Pylint
106     '';
107     license = licenses.gpl1Plus;
108     maintainers = with maintainers; [ SuperSandro2000 ];
109   };