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