1{
2 lib,
3 buildPythonPackage,
4 fetchFromGitHub,
5 setuptools,
6 cachecontrol,
7 cryptography,
8 google-api-python-client,
9 google-cloud-firestore,
10 google-cloud-storage,
11 h2,
12 httpx,
13 pyjwt,
14 requests,
15 respx,
16 pytestCheckHook,
17 pytest-asyncio,
18 pytest-localserver,
19 pytest-mock,
20}:
21
22buildPythonPackage rec {
23 pname = "firebase-admin";
24 version = "7.1.0";
25 pyproject = true;
26
27 src = fetchFromGitHub {
28 owner = "firebase";
29 repo = "firebase-admin-python";
30 tag = "v${version}";
31 hash = "sha256-xlKrtH8f9UzY9OGYrpNH0i2OAlcxTrpzPC5JEuL8plM=";
32 };
33
34 build-system = [ setuptools ];
35
36 dependencies = [
37 cachecontrol
38 cryptography
39 google-api-python-client
40 google-cloud-firestore
41 google-cloud-storage
42 httpx
43 pyjwt
44 requests
45 ];
46
47 nativeCheckInputs = [
48 pytestCheckHook
49 pytest-asyncio
50 pytest-localserver
51 pytest-mock
52 h2
53 respx
54 ];
55
56 __darwinAllowLocalNetworking = true;
57
58 disabledTests = [
59 # Flaky (AssertionError)
60 # > assert delta <= timedelta(seconds=15)
61 # E assert datetime.timedelta(seconds=17, microseconds=28239) <= datetime.timedelta(seconds=15)
62 "test_task_options"
63
64 # Flaky / timing sensitive
65 "test_expired_cookie_with_tolerance"
66 "test_expired_token_with_tolerance"
67 ];
68
69 meta = {
70 description = "Firebase Admin Python SDK";
71 homepage = "https://github.com/firebase/firebase-admin-python";
72 changelog = "https://github.com/firebase/firebase-admin-python/releases/tag/${src.tag}";
73 license = lib.licenses.asl20;
74 maintainers = with lib.maintainers; [
75 jhahn
76 sarahec
77 ];
78 };
79}