1{
2 lib,
3 buildPythonPackage,
4 fetchPypi,
5 setuptools,
6 setuptools-scm,
7 wheel,
8 colorama,
9 configupdater,
10 importlib-metadata,
11 packaging,
12 platformdirs,
13 tomlkit,
14 pre-commit,
15 pyscaffoldext-cookiecutter,
16 pyscaffoldext-custom-extension,
17 pyscaffoldext-django,
18 pyscaffoldext-dsproject,
19 pyscaffoldext-markdown,
20 pyscaffoldext-travis,
21 virtualenv,
22 build,
23 certifi,
24 flake8,
25 pytest,
26 pytest-cov,
27 pytest-randomly,
28 pytest-xdist,
29 sphinx,
30 tox,
31}:
32
33buildPythonPackage rec {
34 pname = "pyscaffold";
35 version = "4.6";
36 pyproject = true;
37
38 src = fetchPypi {
39 inherit pname version;
40 hash = "sha256-QIW43pIAufMZ32+Op5lyiPFZqOSyhLBi2bKk1qnBI0w=";
41 };
42
43 nativeBuildInputs = [
44 setuptools
45 setuptools-scm
46 wheel
47 ];
48
49 postPatch = ''
50 substituteInPlace setup.cfg --replace "platformdirs>=2,<4" "platformdirs"
51 '';
52
53 propagatedBuildInputs = [
54 colorama
55 configupdater
56 importlib-metadata
57 packaging
58 platformdirs
59 setuptools
60 setuptools-scm
61 tomlkit
62 ];
63
64 optional-dependencies = {
65 all = [
66 pre-commit
67 pyscaffoldext-cookiecutter
68 pyscaffoldext-custom-extension
69 pyscaffoldext-django
70 pyscaffoldext-dsproject
71 pyscaffoldext-markdown
72 pyscaffoldext-travis
73 virtualenv
74 ];
75 ds = [ pyscaffoldext-dsproject ];
76 md = [ pyscaffoldext-markdown ];
77 testing = [
78 build
79 certifi
80 flake8
81 pre-commit
82 pytest
83 pytest-cov
84 pytest-randomly
85 pytest-xdist
86 setuptools
87 setuptools-scm
88 sphinx
89 tomlkit
90 tox
91 virtualenv
92 wheel
93 ];
94 };
95
96 pythonImportsCheck = [ "pyscaffold" ];
97
98 meta = with lib; {
99 description = "Template tool for putting up the scaffold of a Python project";
100 mainProgram = "putup";
101 homepage = "https://pypi.org/project/PyScaffold/";
102 license = licenses.mit;
103 maintainers = with maintainers; [ matthewcroughan ];
104 };
105}