1{ lib
2, backports-datetime-fromisoformat
3, backports-zoneinfo
4, buildPythonPackage
5, cached-property
6, defusedxml
7, dnspython
8, fetchFromGitHub
9, flake8
10, isodate
11, lxml
12, oauthlib
13, psutil
14, pygments
15, python-dateutil
16, pythonOlder
17, pytz
18, pyyaml
19, requests
20, requests_ntlm
21, requests_oauthlib
22, requests-kerberos
23, requests-mock
24, tzdata
25, tzlocal
26}:
27
28buildPythonPackage rec {
29 pname = "exchangelib";
30 version = "4.6.1";
31 format = "setuptools";
32
33 disabled = pythonOlder "3.6";
34
35 src = fetchFromGitHub {
36 owner = "ecederstrand";
37 repo = pname;
38 rev = "v${version}";
39 sha256 = "sha256-9MvxQe5VnR+UHB5DSn6EtExKTYsTvzZzCCaTTkCBQkU=";
40 };
41
42 propagatedBuildInputs = [
43 cached-property
44 defusedxml
45 dnspython
46 isodate
47 lxml
48 oauthlib
49 pygments
50 requests
51 requests_ntlm
52 requests_oauthlib
53 requests-kerberos
54 tzdata
55 tzlocal
56 ] ++ lib.optionals (pythonOlder "3.9") [
57 backports-zoneinfo
58 ] ++ lib.optionals (pythonOlder "3.7") [
59 backports-datetime-fromisoformat
60 ];
61
62 checkInputs = [
63 flake8
64 psutil
65 python-dateutil
66 pytz
67 pyyaml
68 requests-mock
69 ];
70
71 pythonImportsCheck = [
72 "exchangelib"
73 ];
74
75 meta = with lib; {
76 description = "Client for Microsoft Exchange Web Services (EWS)";
77 homepage = "https://github.com/ecederstrand/exchangelib";
78 license = licenses.bsd2;
79 maintainers = with maintainers; [ catern ];
80 };
81}