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