{ lib, buildPythonPackage, fetchPypi, # build-system flit-core, # dependencies blinker, click, itsdangerous, jinja2, werkzeug, # optional-dependencies asgiref, python-dotenv, # tests pytestCheckHook, # reverse dependencies flask-limiter, flask-restful, flask-restx, moto, }: buildPythonPackage rec { pname = "flask"; version = "3.1.3"; pyproject = true; src = fetchPypi { inherit pname version; hash = "sha256-DvDlK4qc2TKFU3kZfdj5QEezWcoKeGlRRDBMtF+Hyes="; }; patches = [ # https://github.com/pallets/flask/issues/6071 ./pytest-9.1-compat.patch ]; build-system = [ flit-core ]; dependencies = [ click blinker itsdangerous jinja2 werkzeug ]; optional-dependencies = { async = [ asgiref ]; dotenv = [ python-dotenv ]; }; nativeCheckInputs = [ pytestCheckHook ] ++ lib.concatAttrValues optional-dependencies; disabledTests = [ # https://github.com/pallets/flask/issues/6092#issuecomment-4952497033 "test_bad_environ_raises_bad_request" ]; passthru.tests = { inherit flask-limiter flask-restful flask-restx moto ; }; meta = { changelog = "https://flask.palletsprojects.com/en/stable/changes/#version-${ lib.replaceStrings [ "." ] [ "-" ] version }"; homepage = "https://flask.palletsprojects.com/"; description = "Python micro framework for building web applications"; mainProgram = "flask"; longDescription = '' Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. It began as a simple wrapper around Werkzeug and Jinja and has become one of the most popular Python web application frameworks. ''; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ nickcao ]; }; }