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}