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 toml, 20 types-pyyaml, 21 types-requests, 22 typeshed-client, 23}: 24 25buildPythonPackage rec { 26 pname = "jsonargparse"; 27 version = "4.41.0"; 28 pyproject = true; 29 30 disabled = pythonOlder "3.11"; 31 32 src = fetchFromGitHub { 33 owner = "omni-us"; 34 repo = "jsonargparse"; 35 tag = "v${version}"; 36 hash = "sha256-uNgtxQuAkOB651lbPPWQg0p4T8G1dgFbx/EyO/sJSjs="; 37 }; 38 39 build-system = [ setuptools ]; 40 41 dependencies = [ pyyaml ]; 42 43 optional-dependencies = { 44 all = [ 45 argcomplete 46 fsspec 47 jsonnet 48 jsonschema 49 omegaconf 50 ruyaml 51 docstring-parser 52 typeshed-client 53 requests 54 ]; 55 argcomplete = [ argcomplete ]; 56 fsspec = [ fsspec ]; 57 jsonnet = [ 58 jsonnet 59 # jsonnet-binary 60 ]; 61 jsonschema = [ jsonschema ]; 62 omegaconf = [ omegaconf ]; 63 reconplogger = [ reconplogger ]; 64 ruyaml = [ ruyaml ]; 65 signatures = [ 66 docstring-parser 67 typeshed-client 68 ]; 69 toml = [ toml ]; 70 urls = [ requests ]; 71 }; 72 73 nativeCheckInputs = [ 74 pytest-subtests 75 pytestCheckHook 76 types-pyyaml 77 types-requests 78 ]; 79 80 pythonImportsCheck = [ "jsonargparse" ]; 81 82 meta = with lib; { 83 description = "Module to implement minimal boilerplate CLIs derived from various sources"; 84 homepage = "https://github.com/omni-us/jsonargparse"; 85 changelog = "https://github.com/omni-us/jsonargparse/blob/${src.tag}/CHANGELOG.rst"; 86 license = licenses.mit; 87 maintainers = with maintainers; [ fab ]; 88 }; 89}