{ lib , buildPythonPackage , fetchFromGitHub , substituteAll , git , eradicate , mccabe , mypy , pycodestyle , pydocstyle , pyflakes , vulture , setuptools , isort , pylint , pytestCheckHook }: let pylama = buildPythonPackage rec { pname = "pylama"; version = "8.4.1"; format = "setuptools"; src = fetchFromGitHub { name = "${pname}-${version}-source"; owner = "klen"; repo = "pylama"; rev = version; hash = "sha256-WOGtZ412tX3YH42JCd5HIngunluwtMmQrOSUZp23LPU="; }; patches = [ (substituteAll { src = ./paths.patch; git = "${lib.getBin git}/bin/git"; }) ]; propagatedBuildInputs = [ eradicate mccabe mypy pycodestyle pydocstyle pyflakes setuptools vulture ]; # escape infinite recursion pylint -> isort -> pylama doCheck = false; nativeCheckInputs = [ pylint pytestCheckHook ]; preCheck = '' export HOME=$TEMP ''; disabledTests = [ "test_quotes" # FIXME package pylama-quotes "test_radon" # FIXME package radon ]; pythonImportsCheck = [ "pylama.main" ]; passthru.tests = { check = pylama.overridePythonAttrs (_: { doCheck = true; }); }; meta = with lib; { description = "Code audit tool for python"; mainProgram = "pylama"; homepage = "https://github.com/klen/pylama"; changelog = "https://github.com/klen/pylama/blob/${version}/Changelog"; license = licenses.mit; maintainers = with maintainers; [ dotlambda ]; }; }; in pylama