nixpkgs mirror (for testing)
github.com/NixOS/nixpkgs
nix
1{
2 lib,
3 fetchFromGitHub,
4 python3,
5}:
6
7let
8 setoptconf-tmp = python3.pkgs.callPackage ./setoptconf.nix { };
9in
10
11python3.pkgs.buildPythonApplication rec {
12 pname = "prospector";
13 version = "1.9.0";
14 pyproject = true;
15
16 src = fetchFromGitHub {
17 owner = "PyCQA";
18 repo = "prospector";
19 tag = "v${version}";
20 hash = "sha256-94JGKX91d2kul+KMYohga9KCOj6RN/YKpD8e4nWSOOM=";
21 };
22
23 pythonRelaxDeps = [
24 "pyflakes"
25 "pep8-naming"
26 "flake8"
27 ];
28
29 nativeBuildInputs = with python3.pkgs; [
30 poetry-core
31 ];
32
33 propagatedBuildInputs = with python3.pkgs; [
34 bandit
35 dodgy
36 flake8
37 gitpython
38 mccabe
39 mypy
40 pep8-naming
41 pycodestyle
42 pydocstyle
43 pyflakes
44 pylint
45 pylint-celery
46 pylint-django
47 pylint-flask
48 pylint-plugin-utils
49 pyroma
50 pyyaml
51 requirements-detector
52 setoptconf-tmp
53 setuptools
54 toml
55 vulture
56 ];
57
58 nativeCheckInputs = with python3.pkgs; [
59 pytestCheckHook
60 ];
61
62 pythonImportsCheck = [
63 "prospector"
64 ];
65
66 disabledTestPaths = [
67 # distutils.errors.DistutilsArgError: no commands supplied
68 "tests/tools/pyroma/test_pyroma_tool.py"
69 ];
70
71 meta = {
72 description = "Tool to analyse Python code and output information about errors, potential problems, convention violations and complexity";
73 homepage = "https://github.com/PyCQA/prospector";
74 changelog = "https://github.com/PyCQA/prospector/blob/v${version}/CHANGELOG.rst";
75 license = lib.licenses.gpl2Plus;
76 maintainers = with lib.maintainers; [ kamadorueda ];
77 };
78}