1{ 2 lib, 3 boto3, 4 buildPythonPackage, 5 fetchFromGitHub, 6 ftfy, 7 mailchecker, 8 openpyxl, 9 orjson, 10 phonenumbers, 11 beautifulsoup4, 12 pytestCheckHook, 13 python-dateutil, 14 python-decouple, 15 python-fsutil, 16 python-slugify, 17 pythonOlder, 18 pythonRelaxDepsHook, 19 pyyaml, 20 requests, 21 setuptools, 22 toml, 23 xlrd, 24 xmltodict, 25}: 26 27buildPythonPackage rec { 28 pname = "python-benedict"; 29 version = "0.33.2"; 30 pyproject = true; 31 32 disabled = pythonOlder "3.7"; 33 34 src = fetchFromGitHub { 35 owner = "fabiocaccamo"; 36 repo = "python-benedict"; 37 rev = "refs/tags/${version}"; 38 hash = "sha256-1/eLJFXACn1W5Yz43BIhdqqUVk3t9285d8aLwH+VmAE="; 39 }; 40 41 pythonRelaxDeps = [ "boto3" ]; 42 43 nativeBuildInputs = [ 44 pythonRelaxDepsHook 45 setuptools 46 ]; 47 48 propagatedBuildInputs = [ 49 python-fsutil 50 python-slugify 51 requests 52 ]; 53 54 passthru.optional-dependencies = { 55 all = [ 56 beautifulsoup4 57 boto3 58 ftfy 59 mailchecker 60 openpyxl 61 phonenumbers 62 python-dateutil 63 pyyaml 64 toml 65 xlrd 66 xmltodict 67 ]; 68 html = [ 69 beautifulsoup4 70 xmltodict 71 ]; 72 io = [ 73 beautifulsoup4 74 openpyxl 75 pyyaml 76 toml 77 xlrd 78 xmltodict 79 ]; 80 parse = [ 81 ftfy 82 mailchecker 83 phonenumbers 84 python-dateutil 85 ]; 86 s3 = [ boto3 ]; 87 toml = [ toml ]; 88 xls = [ 89 openpyxl 90 xlrd 91 ]; 92 xml = [ xmltodict ]; 93 yaml = [ pyyaml ]; 94 }; 95 96 nativeCheckInputs = [ 97 orjson 98 pytestCheckHook 99 python-decouple 100 ] ++ lib.flatten (builtins.attrValues passthru.optional-dependencies); 101 102 disabledTests = [ 103 # Tests require network access 104 "test_from_base64_with_valid_url_valid_content" 105 "test_from_html_with_valid_file_valid_content" 106 "test_from_html_with_valid_url_valid_content" 107 "test_from_json_with_valid_url_valid_content" 108 "test_from_pickle_with_valid_url_valid_content" 109 "test_from_plist_with_valid_url_valid_content" 110 "test_from_query_string_with_valid_url_valid_content" 111 "test_from_toml_with_valid_url_valid_content" 112 "test_from_xls_with_valid_url_valid_content" 113 "test_from_xml_with_valid_url_valid_content" 114 "test_from_yaml_with_valid_url_valid_content" 115 ]; 116 117 pythonImportsCheck = [ "benedict" ]; 118 119 meta = with lib; { 120 description = "Module with keylist/keypath support"; 121 homepage = "https://github.com/fabiocaccamo/python-benedict"; 122 changelog = "https://github.com/fabiocaccamo/python-benedict/blob/${version}/CHANGELOG.md"; 123 license = licenses.mit; 124 maintainers = with maintainers; [ fab ]; 125 }; 126}