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.24.2";
28
29 src = fetchFromGitHub {
30 owner = "aws";
31 repo = pname;
32 rev = version;
33 sha256 = "0xpzc3rizdkjxclgxngswz0a22kdv1pw235gsw517ma7i06d0lw6";
34 };
35
36 propagatedBuildInputs = [
37 attrs
38 botocore
39 click
40 inquirer
41 jmespath
42 mypy-extensions
43 pip
44 pyyaml
45 setuptools
46 six
47 wheel
48 watchdog
49 ] ++ lib.optionals (pythonOlder "3.7") [
50 typing
51 ];
52
53 checkInputs = [
54 hypothesis
55 mock
56 pytestCheckHook
57 requests
58 websocket-client
59 ];
60
61 postPatch = ''
62 sed -i setup.py -e "/pip>=/c\'pip',"
63 substituteInPlace setup.py \
64 --replace 'typing==3.6.4' 'typing'
65 '';
66
67 disabledTestPaths = [
68 # Don't check the templates and the sample app
69 "chalice/templates"
70 "docs/source/samples/todo-app/code/tests/test_db.py"
71 # Requires credentials
72 "tests/aws/test_features.py"
73 # Requires network access
74 "tests/aws/test_websockets.py"
75 "tests/integration/test_package.py"
76 ];
77
78 disabledTests = [
79 # Requires network access
80 "test_update_domain_name_failed"
81 "test_can_reload_server"
82 # Content for the tests is missing
83 "test_can_import_env_vars"
84 "test_stack_trace_printed_on_error"
85 # Don't build
86 "test_can_generate_pipeline_for_all"
87 "test_build_wheel"
88 ];
89
90 pythonImportsCheck = [ "chalice" ];
91
92 meta = with lib; {
93 description = "Python Serverless Microframework for AWS";
94 homepage = "https://github.com/aws/chalice";
95 license = licenses.asl20;
96 maintainers = with maintainers; [ costrouc ];
97 };
98}