1{ buildPythonPackage
2, fetchPypi
3, fetchurl
4, pythonOlder
5, lib
6, nixosTests
7
8# pythonPackages
9, tqdm
10, dnspython
11, expiringdict
12, urllib3
13, requests
14, publicsuffix2
15, xmltodict
16, geoip2
17, imapclient
18, dateparser
19, elasticsearch-dsl
20, kafka-python
21, mailsuite
22, lxml
23, boto3
24}:
25
26let
27 dashboard = fetchurl {
28 url = "https://raw.githubusercontent.com/domainaware/parsedmarc/77331b55c54cb3269205295bd57d0ab680638964/grafana/Grafana-DMARC_Reports.json";
29 sha256 = "0wbihyqbb4ndjg79qs8088zgrcg88km8khjhv2474y7nzjzkf43i";
30 };
31in
32buildPythonPackage rec {
33 pname = "parsedmarc";
34 version = "7.0.1";
35
36 disabled = pythonOlder "3.7";
37
38 src = fetchPypi {
39 inherit pname version;
40 sha256 = "1mi4hx410y7ikpfy1582lm252si0c3yryj0idqgqbx417fm21jjc";
41 };
42
43 propagatedBuildInputs = [
44 tqdm
45 dnspython
46 expiringdict
47 urllib3
48 requests
49 publicsuffix2
50 xmltodict
51 geoip2
52 imapclient
53 dateparser
54 elasticsearch-dsl
55 kafka-python
56 mailsuite
57 lxml
58 boto3
59 ];
60
61 pythonImportsCheck = [ "parsedmarc" ];
62
63 passthru = {
64 inherit dashboard;
65 tests = nixosTests.parsedmarc;
66 };
67
68 meta = {
69 description = "Python module and CLI utility for parsing DMARC reports";
70 homepage = "https://domainaware.github.io/parsedmarc/";
71 maintainers = with lib.maintainers; [ talyz ];
72 license = lib.licenses.asl20;
73 };
74}