1{ lib
2, stdenv
3, buildPythonPackage
4, pythonOlder
5, fetchPypi
6, watchdog
7, ephemeral-port-reserve
8, pytest-timeout
9, pytest-xprocess
10, pytestCheckHook
11, markupsafe
12# for passthru.tests
13, moto, sentry-sdk
14}:
15
16buildPythonPackage rec {
17 pname = "werkzeug";
18 version = "2.2.3";
19 format = "setuptools";
20
21 disabled = pythonOlder "3.7";
22
23 src = fetchPypi {
24 pname = "Werkzeug";
25 inherit version;
26 hash = "sha256-LhzMlBfU2jWLnebxdOOsCUOR6h1PvvLWZ4ZdgZ39Cv4=";
27 };
28
29 propagatedBuildInputs = [
30 markupsafe
31 ] ++ lib.optionals (!stdenv.isDarwin) [
32 # watchdog requires macos-sdk 10.13+
33 watchdog
34 ];
35
36 nativeCheckInputs = [
37 ephemeral-port-reserve
38 pytest-timeout
39 pytest-xprocess
40 pytestCheckHook
41 ];
42
43 disabledTests = lib.optionals stdenv.isDarwin [
44 "test_get_machine_id"
45 ];
46
47 disabledTestPaths = [
48 # ConnectionRefusedError: [Errno 111] Connection refused
49 "tests/test_serving.py"
50 ];
51
52 pytestFlagsArray = [
53 # don't run tests that are marked with filterwarnings, they fail with
54 # warnings._OptionError: unknown warning category: 'pytest.PytestUnraisableExceptionWarning'
55 "-m 'not filterwarnings'"
56 ];
57
58 passthru.tests = {
59 inherit moto sentry-sdk;
60 };
61
62 meta = with lib; {
63 homepage = "https://palletsprojects.com/p/werkzeug/";
64 description = "The comprehensive WSGI web application library";
65 longDescription = ''
66 Werkzeug is a comprehensive WSGI web application library. It
67 began as a simple collection of various utilities for WSGI
68 applications and has become one of the most advanced WSGI
69 utility libraries.
70 '';
71 license = licenses.bsd3;
72 maintainers = with maintainers; [ SuperSandro2000 ];
73 };
74}