Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 lib,
3 buildPythonPackage,
4 click,
5 cloudevents,
6 deprecation,
7 docker,
8 fetchFromGitHub,
9 flask,
10 gunicorn,
11 httpx,
12 pretend,
13 pytest-asyncio,
14 pytestCheckHook,
15 requests,
16 setuptools,
17 starlette,
18 uvicorn,
19 uvicorn-worker,
20 watchdog,
21 werkzeug,
22}:
23
24buildPythonPackage rec {
25 pname = "functions-framework";
26 version = "3.9.2";
27 pyproject = true;
28
29 src = fetchFromGitHub {
30 owner = "GoogleCloudPlatform";
31 repo = "functions-framework-python";
32 tag = "v${version}";
33 hash = "sha256-TvC+URJtsquBX/5F5Z2Nw/4sD3hsvF2c/jlv87lGjfM=";
34 };
35
36 build-system = [ setuptools ];
37
38 dependencies = [
39 click
40 cloudevents
41 deprecation
42 flask
43 gunicorn
44 starlette
45 uvicorn
46 uvicorn-worker
47 watchdog
48 werkzeug
49 ];
50
51 nativeCheckInputs = [
52 docker
53 httpx
54 pretend
55 pytest-asyncio
56 pytestCheckHook
57 requests
58 ];
59
60 pythonImportsCheck = [ "functions_framework" ];
61
62 disabledTests = [
63 # Test requires a running Docker instance
64 "test_cloud_run_http"
65 ];
66
67 meta = {
68 description = "FaaS (Function as a service) framework for writing portable Python functions";
69 homepage = "https://github.com/GoogleCloudPlatform/functions-framework-python";
70 changelog = "https://github.com/GoogleCloudPlatform/functions-framework-python/blob/${src.tag}/CHANGELOG.md";
71 license = lib.licenses.asl20;
72 maintainers = with lib.maintainers; [ fab ];
73 };
74}