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