23 buildPythonPackage rec {
28 disabled = pythonOlder "3.8";
30 src = fetchFromGitHub {
33 rev = "refs/tags/v${version}";
34 hash = "sha256-JHtMaZNwl+yLwEDD4Nl0vOt9NQ9DO7iIy5LR/9ta1Pw=";
41 propagatedBuildInputs = [
48 ] ++ lib.optionals (pythonOlder "3.11") [
50 ] ++ lib.optionals (pythonOlder "3.9") [
56 # https://github.com/PyCQA/pylint/blob/main/requirements_test_min.txt
66 # DeprecationWarning: pyreverse will drop support for resolving and
67 # displaying implemented interfaces in pylint 3.0. The
68 # implementation relies on the '__implements__' attribute proposed
69 # in PEP 245, which was rejected in 2006.
70 "-W" "ignore::DeprecationWarning"
74 dontUseSetuptoolsCheck = true;
82 # tests miss multiple input files
83 # FileNotFoundError: [Errno 2] No such file or directory
84 "tests/pyreverse/test_writer.py"
88 # AssertionError when self executing and checking output
89 # expected output looks like it should match though
90 "test_invocation_of_pylint_config"
91 "test_generate_rcfile"
92 "test_generate_toml_config"
94 "test_output_of_callback_options"
95 # Failed: DID NOT WARN. No warnings of type (<class 'UserWarning'>,) were emitted. The list of emitted warnings is: [].
96 "test_save_and_load_not_a_linter_stats"
97 # Truncated string expectation mismatch
98 "test_truncated_compare"
99 # Probably related to pytest versions, see pylint-dev/pylint#9477 and pylint-dev/pylint#9483
101 # AssertionError: assert [('specializa..., 'Ancestor')] == [('aggregatio..., 'Ancestor')]
102 "test_functional_relation_extraction"
103 ] ++ lib.optionals stdenv.isDarwin [
104 "test_parallel_execution"
105 "test_py3k_jobs_option"
109 homepage = "https://pylint.readthedocs.io/en/stable/";
110 description = "A bug and style checker for Python";
111 changelog = "https://github.com/pylint-dev/pylint/releases/tag/v${version}";
113 Pylint is a Python static code analysis tool which looks for programming errors,
114 helps enforcing a coding standard, sniffs for code smells and offers simple
115 refactoring suggestions.
116 Pylint is shipped with following additional commands:
117 - pyreverse: an UML diagram generator
118 - symilar: an independent similarities checker
119 - epylint: Emacs and Flymake compatible Pylint
121 license = licenses.gpl1Plus;
122 maintainers = with maintainers; [ ];