Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{ 2 lib, 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-gssapi, 22 requests-oauthlib, 23 requests-kerberos, 24 requests-mock, 25 setuptools, 26 tzdata, 27 tzlocal, 28}: 29 30buildPythonPackage rec { 31 pname = "exchangelib"; 32 version = "5.4.1"; 33 pyproject = true; 34 35 disabled = pythonOlder "3.7"; 36 37 src = fetchFromGitHub { 38 owner = "ecederstrand"; 39 repo = "exchangelib"; 40 rev = "refs/tags/v${version}"; 41 hash = "sha256-FPn2l+PkTXFqzjqF4kQ8KE49BXZUzDDIcFI3UqoxqQM="; 42 }; 43 44 build-system = [ setuptools ]; 45 46 dependencies = [ 47 cached-property 48 defusedxml 49 dnspython 50 isodate 51 lxml 52 oauthlib 53 pygments 54 requests 55 requests-ntlm 56 requests-oauthlib 57 requests-kerberos 58 tzdata 59 tzlocal 60 ] ++ lib.optionals (pythonOlder "3.9") [ backports-zoneinfo ]; 61 62 passthru.optional-dependencies = { 63 complete = [ 64 requests-gssapi 65 # requests-negotiate-sspi 66 ]; 67 kerberos = [ requests-gssapi ]; 68 # sspi = [ 69 # requests-negotiate-sspi 70 # ]; 71 }; 72 73 nativeCheckInputs = [ 74 flake8 75 psutil 76 python-dateutil 77 pytz 78 pyyaml 79 requests-mock 80 ]; 81 82 pythonImportsCheck = [ "exchangelib" ]; 83 84 meta = with lib; { 85 description = "Client for Microsoft Exchange Web Services (EWS)"; 86 homepage = "https://github.com/ecederstrand/exchangelib"; 87 changelog = "https://github.com/ecederstrand/exchangelib/blob/v${version}/CHANGELOG.md"; 88 license = licenses.bsd2; 89 maintainers = with maintainers; [ catern ]; 90 }; 91}