1{
2 lib,
3 argcomplete,
4 buildPythonPackage,
5 docstring-parser,
6 fetchFromGitHub,
7 fsspec,
8 jsonnet,
9 jsonschema,
10 omegaconf,
11 pytest-subtests,
12 pytestCheckHook,
13 pythonOlder,
14 pyyaml,
15 reconplogger,
16 requests,
17 ruyaml,
18 setuptools,
19 types-pyyaml,
20 types-requests,
21 typeshed-client,
22}:
23
24buildPythonPackage rec {
25 pname = "jsonargparse";
26 version = "4.35.0";
27 pyproject = true;
28
29 disabled = pythonOlder "3.11";
30
31 src = fetchFromGitHub {
32 owner = "omni-us";
33 repo = "jsonargparse";
34 rev = "refs/tags/v${version}";
35 hash = "sha256-+gxwajChbdcsIa8Jp0iva3ik5vZeMRa38KuoQwIGNoU=";
36 };
37
38 build-system = [ setuptools ];
39
40 dependencies = [ pyyaml ];
41
42 optional-dependencies = {
43 all = [
44 argcomplete
45 fsspec
46 jsonnet
47 jsonschema
48 omegaconf
49 ruyaml
50 docstring-parser
51 typeshed-client
52 requests
53 ];
54 argcomplete = [ argcomplete ];
55 fsspec = [ fsspec ];
56 jsonnet = [
57 jsonnet
58 # jsonnet-binary
59 ];
60 jsonschema = [ jsonschema ];
61 omegaconf = [ omegaconf ];
62 reconplogger = [ reconplogger ];
63 ruyaml = [ ruyaml ];
64 signatures = [
65 docstring-parser
66 typeshed-client
67 ];
68 urls = [ requests ];
69 };
70
71 nativeCheckInputs = [
72 pytest-subtests
73 pytestCheckHook
74 types-pyyaml
75 types-requests
76 ];
77
78 pythonImportsCheck = [ "jsonargparse" ];
79
80 meta = with lib; {
81 description = "Module to mplement minimal boilerplate CLIs derived from various sources";
82 homepage = "https://github.com/omni-us/jsonargparse";
83 changelog = "https://github.com/omni-us/jsonargparse/blob/${version}/CHANGELOG.rst";
84 license = licenses.mit;
85 maintainers = with maintainers; [ fab ];
86 };
87}