1{ lib
2, buildPythonPackage
3, fetchPypi
4, asgiref
5, blinker
6, click
7, flit-core
8, importlib-metadata
9, itsdangerous
10, jinja2
11, python-dotenv
12, werkzeug
13, pytestCheckHook
14, pythonOlder
15 # used in passthru.tests
16, flask-limiter
17, flask-restful
18, flask-restx
19, moto
20}:
21
22buildPythonPackage rec {
23 pname = "flask";
24 version = "2.3.3";
25 format = "pyproject";
26
27 src = fetchPypi {
28 inherit pname version;
29 hash = "sha256-CcNHqSqn/0qOfzIGeV8w2CZlS684uHPQdEzVccpgnvw=";
30 };
31
32 nativeBuildInputs = [
33 flit-core
34 ];
35
36 propagatedBuildInputs = [
37 click
38 blinker
39 itsdangerous
40 jinja2
41 werkzeug
42 ] ++ lib.optional (pythonOlder "3.10") importlib-metadata;
43
44 nativeCheckInputs = [
45 pytestCheckHook
46 ];
47
48 passthru.tests = {
49 inherit flask-limiter flask-restful flask-restx moto;
50 };
51 passthru.optional-dependencies = {
52 dotenv = [ python-dotenv ];
53 async = [ asgiref ];
54 };
55
56 meta = with lib; {
57 homepage = "https://flask.palletsprojects.com/";
58 description = "The Python micro framework for building web applications";
59 longDescription = ''
60 Flask is a lightweight WSGI web application framework. It is
61 designed to make getting started quick and easy, with the ability
62 to scale up to complex applications. It began as a simple wrapper
63 around Werkzeug and Jinja and has become one of the most popular
64 Python web application frameworks.
65 '';
66 license = licenses.bsd3;
67 maintainers = with maintainers; [ nickcao ];
68 };
69}