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.5";
36 pyproject = true;
37
38 src = fetchPypi {
39 pname = "PyScaffold";
40 inherit version;
41 hash = "sha256-2En5ouFb3PFl4Z+Wg18LF+Gi1Z1MVhxEW4J6CB3m0mI=";
42 };
43
44 nativeBuildInputs = [
45 setuptools
46 setuptools-scm
47 wheel
48 ];
49
50 postPatch = ''
51 substituteInPlace setup.cfg --replace "platformdirs>=2,<4" "platformdirs"
52 '';
53
54 propagatedBuildInputs = [
55 colorama
56 configupdater
57 importlib-metadata
58 packaging
59 platformdirs
60 setuptools
61 setuptools-scm
62 tomlkit
63 ];
64
65 passthru.optional-dependencies = {
66 all = [
67 pre-commit
68 pyscaffoldext-cookiecutter
69 pyscaffoldext-custom-extension
70 pyscaffoldext-django
71 pyscaffoldext-dsproject
72 pyscaffoldext-markdown
73 pyscaffoldext-travis
74 virtualenv
75 ];
76 ds = [ pyscaffoldext-dsproject ];
77 md = [ pyscaffoldext-markdown ];
78 testing = [
79 build
80 certifi
81 flake8
82 pre-commit
83 pytest
84 pytest-cov
85 pytest-randomly
86 pytest-xdist
87 setuptools
88 setuptools-scm
89 sphinx
90 tomlkit
91 tox
92 virtualenv
93 wheel
94 ];
95 };
96
97 pythonImportsCheck = [ "pyscaffold" ];
98
99 meta = with lib; {
100 description = "Template tool for putting up the scaffold of a Python project";
101 mainProgram = "putup";
102 homepage = "https://pypi.org/project/PyScaffold/";
103 license = licenses.mit;
104 maintainers = with maintainers; [ matthewcroughan ];
105 };
106}