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