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 setuptools,
16 starlette,
17 werkzeug,
18}:
19
20buildPythonPackage rec {
21 pname = "authlib";
22 version = "1.3.2";
23 pyproject = true;
24
25 disabled = pythonOlder "3.8";
26
27 src = fetchFromGitHub {
28 owner = "lepture";
29 repo = "authlib";
30 rev = "refs/tags/v${version}";
31 hash = "sha256-gaFnai5QzHhnyn73JB+QzybaolLWC9barBFdnlEMyMU=";
32 };
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 cryptography
38 ];
39
40 nativeCheckInputs = [
41 cachelib
42 flask
43 flask-sqlalchemy
44 httpx
45 mock
46 pytest-asyncio
47 pytestCheckHook
48 requests
49 starlette
50 werkzeug
51 ];
52
53 pythonImportsCheck = [ "authlib" ];
54
55 disabledTestPaths = [
56 # Django tests require a running instance
57 "tests/django/"
58 "tests/clients/test_django/"
59 # Unsupported encryption algorithm
60 "tests/jose/test_chacha20.py"
61 ];
62
63 meta = with lib; {
64 description = "Library for building OAuth and OpenID Connect servers";
65 homepage = "https://github.com/lepture/authlib";
66 changelog = "https://github.com/lepture/authlib/blob/v${version}/docs/changelog.rst";
67 license = licenses.bsd3;
68 maintainers = with maintainers; [ flokli ];
69 };
70}