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}