1{
2 buildPythonPackage,
3 fetchFromGitHub,
4 lib,
5 setuptools,
6 attrs,
7 click,
8 consolekit,
9 dist-meta,
10 docutils,
11 dom-toml,
12 domdf-python-tools,
13 editables,
14 handy-archives,
15 natsort,
16 packaging,
17 pyproject-parser,
18 pytestCheckHook,
19 shippinglabel,
20}:
21
22buildPythonPackage rec {
23 pname = "whey";
24 version = "0.1.1";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "repo-helper";
29 repo = "whey";
30 tag = "v${version}";
31 hash = "sha256-s2jZmuFj0gTWVTcXWcBhcu5RBuaf/qMS/xzIpIoG1ZE=";
32 };
33
34 postPatch = ''
35 substituteInPlace pyproject.toml \
36 --replace-fail 'setuptools!=61.*,<=67.1.0,>=40.6.0' setuptools
37 '';
38
39 build-system = [ setuptools ];
40
41 dependencies = [
42 attrs
43 click
44 consolekit
45 dist-meta
46 dom-toml
47 domdf-python-tools
48 handy-archives
49 natsort
50 packaging
51 pyproject-parser
52 shippinglabel
53 ];
54
55 pythonImportsCheck = [ "whey" ];
56
57 optional-dependencies = {
58 all = lib.flatten (lib.attrValues (lib.filterAttrs (n: v: n != "all") optional-dependencies));
59 editable = [
60 editables
61 ];
62 readme = [
63 docutils
64 pyproject-parser
65 ]
66 ++ pyproject-parser.optional-dependencies.readme;
67 };
68
69 nativeCheckInputs = [
70 pytestCheckHook
71 ];
72
73 # missing dependency pyproject-examples
74 doCheck = false;
75
76 meta = {
77 description = "Simple Python wheel builder for simple projects";
78 homepage = "https://github.com/repo-helper/whey";
79 license = lib.licenses.mit;
80 maintainers = with lib.maintainers; [ tyberius-prime ];
81 };
82}