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