1{ buildPythonPackage 2, fetchPypi 3, fetchurl 4, lib 5, nixosTests 6, python 7, pythonOlder 8 9# pythonPackages 10, dnspython 11, expiringdict 12, publicsuffix2 13, xmltodict 14, geoip2 15, urllib3 16, requests 17, imapclient 18, dateparser 19, mailsuite 20, elasticsearch 21, elasticsearch-dsl 22, kafka-python 23, tqdm 24, lxml 25, boto3 26, msgraph-core 27, azure-identity 28, google-api-core 29, google-api-python-client 30, google-auth 31, google-auth-httplib2 32, google-auth-oauthlib 33}: 34 35let 36 dashboard = fetchurl { 37 url = "https://raw.githubusercontent.com/domainaware/parsedmarc/77331b55c54cb3269205295bd57d0ab680638964/grafana/Grafana-DMARC_Reports.json"; 38 sha256 = "0wbihyqbb4ndjg79qs8088zgrcg88km8khjhv2474y7nzjzkf43i"; 39 }; 40in 41buildPythonPackage rec { 42 pname = "parsedmarc"; 43 version = "8.2.0"; 44 45 disabled = pythonOlder "3.7"; 46 47 src = fetchPypi { 48 inherit pname version; 49 sha256 = "eb82328dffb4a62ddaefbcc22efd5a2694350504a56d41ba1e161f2d998dcbff"; 50 }; 51 52 postPatch = '' 53 substituteInPlace setup.py \ 54 --replace "elasticsearch<7.14.0" "elasticsearch" 55 ''; 56 57 propagatedBuildInputs = [ 58 dnspython 59 expiringdict 60 publicsuffix2 61 xmltodict 62 geoip2 63 urllib3 64 requests 65 imapclient 66 dateparser 67 mailsuite 68 elasticsearch 69 elasticsearch-dsl 70 kafka-python 71 tqdm 72 lxml 73 boto3 74 msgraph-core 75 azure-identity 76 google-api-core 77 google-api-python-client 78 google-auth 79 google-auth-httplib2 80 google-auth-oauthlib 81 ]; 82 83 # no tests on PyPI, no tags on GitHub 84 doCheck = false; 85 86 pythonImportsCheck = [ "parsedmarc" ]; 87 88 passthru = { 89 inherit dashboard; 90 tests = nixosTests.parsedmarc; 91 }; 92 93 meta = { 94 description = "Python module and CLI utility for parsing DMARC reports"; 95 homepage = "https://domainaware.github.io/parsedmarc/"; 96 maintainers = with lib.maintainers; [ talyz ]; 97 license = lib.licenses.asl20; 98 }; 99}