1{
2 lib,
3 buildPythonPackage,
4 cachelib,
5 cryptography,
6 fetchFromGitHub,
7 flask,
8 flask-sqlalchemy,
9 httpx,
10 mock,
11 pytest-asyncio,
12 pytestCheckHook,
13 pythonOlder,
14 requests,
15 starlette,
16 werkzeug,
17}:
18
19buildPythonPackage rec {
20 pname = "authlib";
21 version = "1.3.0";
22 format = "setuptools";
23
24 disabled = pythonOlder "3.7";
25
26 src = fetchFromGitHub {
27 owner = "lepture";
28 repo = "authlib";
29 rev = "refs/tags/v${version}";
30 hash = "sha256-XHzABjGpZN6ilYuBYyGF3Xy/+AT2DXick8/A4JkyWBA=";
31 };
32
33 propagatedBuildInputs = [
34 cryptography
35 requests
36 ];
37
38 nativeCheckInputs = [
39 cachelib
40 flask
41 flask-sqlalchemy
42 httpx
43 mock
44 pytest-asyncio
45 pytestCheckHook
46 starlette
47 werkzeug
48 ];
49
50 pythonImportsCheck = [ "authlib" ];
51
52 disabledTestPaths = [
53 # Django tests require a running instance
54 "tests/django/"
55 "tests/clients/test_django/"
56 # Unsupported encryption algorithm
57 "tests/jose/test_chacha20.py"
58 ];
59
60 meta = with lib; {
61 description = "Library for building OAuth and OpenID Connect servers";
62 homepage = "https://github.com/lepture/authlib";
63 changelog = "https://github.com/lepture/authlib/blob/v${version}/docs/changelog.rst";
64 license = licenses.bsd3;
65 maintainers = with maintainers; [ flokli ];
66 };
67}