1{ lib
2, attrs
3, botocore
4, buildPythonPackage
5, click
6, fetchFromGitHub
7, hypothesis
8, inquirer
9, jmespath
10, mock
11, mypy-extensions
12, pip
13, pytestCheckHook
14, pythonOlder
15, pyyaml
16, requests
17, setuptools
18, six
19, typing
20, watchdog
21, websocket-client
22, wheel
23}:
24
25buildPythonPackage rec {
26 pname = "chalice";
27 version = "1.27.1";
28
29 src = fetchFromGitHub {
30 owner = "aws";
31 repo = pname;
32 rev = version;
33 sha256 = "sha256-Qz8kYXu2NmcgtW8GbmLPfB4BOearEycE6EMmQRXmWeI=";
34 };
35
36 postPatch = ''
37 substituteInPlace setup.py \
38 --replace "attrs>=19.3.0,<21.5.0" "attrs" \
39 --replace "pip>=9,<22.2" "pip" \
40 --replace "typing==3.6.4" "typing"
41 '';
42
43 propagatedBuildInputs = [
44 attrs
45 botocore
46 click
47 inquirer
48 jmespath
49 mypy-extensions
50 pip
51 pyyaml
52 setuptools
53 six
54 wheel
55 watchdog
56 ] ++ lib.optionals (pythonOlder "3.7") [
57 typing
58 ];
59
60 checkInputs = [
61 hypothesis
62 mock
63 pytestCheckHook
64 requests
65 websocket-client
66 ];
67
68 disabledTestPaths = [
69 # Don't check the templates and the sample app
70 "chalice/templates"
71 "docs/source/samples/todo-app/code/tests/test_db.py"
72 # Requires credentials
73 "tests/aws/test_features.py"
74 # Requires network access
75 "tests/aws/test_websockets.py"
76 "tests/integration/test_package.py"
77 ];
78
79 disabledTests = [
80 # Requires network access
81 "test_update_domain_name_failed"
82 "test_can_reload_server"
83 # Content for the tests is missing
84 "test_can_import_env_vars"
85 "test_stack_trace_printed_on_error"
86 # Don't build
87 "test_can_generate_pipeline_for_all"
88 "test_build_wheel"
89 # https://github.com/aws/chalice/issues/1850
90 "test_resolve_endpoint"
91 "test_endpoint_from_arn"
92 ];
93
94 pythonImportsCheck = [ "chalice" ];
95
96 meta = with lib; {
97 description = "Python Serverless Microframework for AWS";
98 homepage = "https://github.com/aws/chalice";
99 license = licenses.asl20;
100 maintainers = with maintainers; [ costrouc ];
101 };
102}