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