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-extensions
20, watchdog
21, websocket-client
22, wheel
23}:
24
25buildPythonPackage rec {
26 pname = "chalice";
27 version = "1.28.0";
28 format = "setuptools";
29
30 disabled = pythonOlder "3.7";
31
32 src = fetchFromGitHub {
33 owner = "aws";
34 repo = pname;
35 rev = "refs/tags/${version}";
36 hash = "sha256-m3pSD4fahBW6Yt/w07Co4fTZD7k6as5cPwoK5QSry6M=";
37 };
38
39 postPatch = ''
40 substituteInPlace setup.py \
41 --replace "inquirer>=2.7.0,<3.0.0" "inquirer" \
42 --replace "pip>=9,<23.1" "pip" \
43 '';
44
45 propagatedBuildInputs = [
46 attrs
47 botocore
48 click
49 inquirer
50 jmespath
51 mypy-extensions
52 pip
53 pyyaml
54 setuptools
55 six
56 typing-extensions
57 wheel
58 watchdog
59 ];
60
61 nativeCheckInputs = [
62 hypothesis
63 mock
64 pytestCheckHook
65 requests
66 websocket-client
67 ];
68
69 disabledTestPaths = [
70 # Don't check the templates and the sample app
71 "chalice/templates"
72 "docs/source/samples/todo-app/code/tests/test_db.py"
73 # Requires credentials
74 "tests/aws/test_features.py"
75 # Requires network access
76 "tests/aws/test_websockets.py"
77 "tests/integration/test_package.py"
78 ];
79
80 disabledTests = [
81 # Requires network access
82 "test_update_domain_name_failed"
83 "test_can_reload_server"
84 # Content for the tests is missing
85 "test_can_import_env_vars"
86 "test_stack_trace_printed_on_error"
87 # Don't build
88 "test_can_generate_pipeline_for_all"
89 "test_build_wheel"
90 # https://github.com/aws/chalice/issues/1850
91 "test_resolve_endpoint"
92 "test_endpoint_from_arn"
93 # Tests require dist
94 "test_setup_tar_gz_hyphens_in_name"
95 "test_both_tar_gz"
96 "test_both_tar_bz2"
97 ];
98
99 pythonImportsCheck = [
100 "chalice"
101 ];
102
103 meta = with lib; {
104 description = "Python Serverless Microframework for AWS";
105 homepage = "https://github.com/aws/chalice";
106 changelog = "https://github.com/aws/chalice/blob/${version}/CHANGELOG.rst";
107 license = licenses.asl20;
108 maintainers = with maintainers; [ ];
109 };
110}