1{
2 lib,
3 stdenv,
4 buildPythonPackage,
5 fetchFromGitHub,
6 setuptools,
7 hatchling,
8 cachecontrol,
9 cryptography,
10 google-api-python-client,
11 google-cloud-firestore,
12 google-cloud-storage,
13 pyjwt,
14 requests,
15 pytestCheckHook,
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-localserver
47 pytest-mock
48 ];
49
50 __darwinAllowLocalNetworking = true;
51
52 disabledTests = [
53 # Flaky (AssertionError)
54 # > assert delta <= timedelta(seconds=15)
55 # E assert datetime.timedelta(seconds=17, microseconds=28239) <= datetime.timedelta(seconds=15)
56 "test_task_options"
57 ];
58
59 meta = {
60 description = "Firebase Admin Python SDK";
61 homepage = "https://github.com/firebase/firebase-admin-python";
62 changelog = "https://github.com/firebase/firebase-admin-python/releases/tag/${src.tag}";
63 license = lib.licenses.asl20;
64 maintainers = with lib.maintainers; [ jhahn ];
65 };
66}