1{
2 lib,
3 buildPythonPackage,
4 cached-property,
5 defusedxml,
6 dnspython,
7 fetchFromGitHub,
8 isodate,
9 lxml,
10 oauthlib,
11 psutil,
12 pygments,
13 python-dateutil,
14 pythonOlder,
15 pytz,
16 pyyaml,
17 requests,
18 requests-ntlm,
19 requests-gssapi,
20 requests-oauthlib,
21 requests-mock,
22 setuptools,
23 tzdata,
24 tzlocal,
25}:
26
27buildPythonPackage rec {
28 pname = "exchangelib";
29 version = "5.5.1";
30 pyproject = true;
31
32 disabled = pythonOlder "3.9";
33
34 src = fetchFromGitHub {
35 owner = "ecederstrand";
36 repo = "exchangelib";
37 tag = "v${version}";
38 hash = "sha256-HO88wM0yzETWS0eBnLABCjYHGE5wFpcjQgC8wsSumWA=";
39 };
40
41 pythonRelaxDeps = [ "defusedxml" ];
42
43 build-system = [ setuptools ];
44
45 dependencies = [
46 cached-property
47 defusedxml
48 dnspython
49 isodate
50 lxml
51 oauthlib
52 pygments
53 requests
54 requests-ntlm
55 requests-oauthlib
56 tzdata
57 tzlocal
58 ];
59
60 optional-dependencies = {
61 complete = [
62 requests-gssapi
63 # requests-negotiate-sspi
64 ];
65 kerberos = [ requests-gssapi ];
66 # sspi = [
67 # requests-negotiate-sspi
68 # ];
69 };
70
71 nativeCheckInputs = [
72 psutil
73 python-dateutil
74 pytz
75 pyyaml
76 requests-mock
77 ];
78
79 pythonImportsCheck = [ "exchangelib" ];
80
81 meta = with lib; {
82 description = "Client for Microsoft Exchange Web Services (EWS)";
83 homepage = "https://github.com/ecederstrand/exchangelib";
84 changelog = "https://github.com/ecederstrand/exchangelib/blob/${src.tag}/CHANGELOG.md";
85 license = licenses.bsd2;
86 maintainers = with maintainers; [ catern ];
87 };
88}