| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | [project] | 
					
						
							|  |  |  | name = "Flask" | 
					
						
							| 
									
										
										
										
											2025-05-13 22:51:12 +08:00
										 |  |  | version = "3.1.1" | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | description = "A simple framework for building complex web applications." | 
					
						
							| 
									
										
										
										
											2024-04-08 01:24:40 +08:00
										 |  |  | readme = "README.md" | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | license = "BSD-3-Clause" | 
					
						
							|  |  |  | license-files = ["LICENSE.txt"] | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | maintainers = [{name = "Pallets", email = "contact@palletsprojects.com"}] | 
					
						
							|  |  |  | classifiers = [ | 
					
						
							|  |  |  |     "Development Status :: 5 - Production/Stable", | 
					
						
							|  |  |  |     "Environment :: Web Environment", | 
					
						
							|  |  |  |     "Framework :: Flask", | 
					
						
							|  |  |  |     "Intended Audience :: Developers", | 
					
						
							|  |  |  |     "Operating System :: OS Independent", | 
					
						
							|  |  |  |     "Programming Language :: Python", | 
					
						
							|  |  |  |     "Topic :: Internet :: WWW/HTTP :: Dynamic Content", | 
					
						
							|  |  |  |     "Topic :: Internet :: WWW/HTTP :: WSGI", | 
					
						
							|  |  |  |     "Topic :: Internet :: WWW/HTTP :: WSGI :: Application", | 
					
						
							|  |  |  |     "Topic :: Software Development :: Libraries :: Application Frameworks", | 
					
						
							| 
									
										
										
										
											2024-04-08 01:24:40 +08:00
										 |  |  |     "Typing :: Typed", | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | ] | 
					
						
							| 
									
										
										
										
											2024-11-01 03:28:46 +08:00
										 |  |  | requires-python = ">=3.9" | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | dependencies = [ | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  |     "blinker>=1.9.0", | 
					
						
							| 
									
										
										
										
											2023-04-26 02:27:06 +08:00
										 |  |  |     "click>=8.1.3", | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  |     "importlib-metadata>=3.6.0; python_version < '3.10'", | 
					
						
							|  |  |  |     "itsdangerous>=2.2.0", | 
					
						
							|  |  |  |     "jinja2>=3.1.2", | 
					
						
							|  |  |  |     "markupsafe>=2.1.1", | 
					
						
							|  |  |  |     "werkzeug>=3.1.0", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [project.optional-dependencies] | 
					
						
							|  |  |  | async = ["asgiref>=3.2"] | 
					
						
							|  |  |  | dotenv = ["python-dotenv"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [dependency-groups] | 
					
						
							|  |  |  | dev = [ | 
					
						
							|  |  |  |     "ruff", | 
					
						
							|  |  |  |     "tox", | 
					
						
							|  |  |  |     "tox-uv", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | docs = [ | 
					
						
							|  |  |  |     "pallets-sphinx-themes", | 
					
						
							|  |  |  |     "sphinx", | 
					
						
							|  |  |  |     "sphinx-tabs", | 
					
						
							|  |  |  |     "sphinxcontrib-log-cabinet", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | docs-auto = [ | 
					
						
							|  |  |  |     "sphinx-autobuild", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | gha-update = [ | 
					
						
							|  |  |  |     "gha-update ; python_full_version >= '3.12'", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | pre-commit = [ | 
					
						
							|  |  |  |     "pre-commit", | 
					
						
							|  |  |  |     "pre-commit-uv", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | tests = [ | 
					
						
							|  |  |  |     "asgiref", | 
					
						
							|  |  |  |     "greenlet ; python_version < '3.11'", | 
					
						
							|  |  |  |     "pytest", | 
					
						
							|  |  |  |     "python-dotenv", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | typing = [ | 
					
						
							|  |  |  |     "asgiref", | 
					
						
							|  |  |  |     "cryptography", | 
					
						
							|  |  |  |     "mypy", | 
					
						
							|  |  |  |     "pyright", | 
					
						
							|  |  |  |     "pytest", | 
					
						
							|  |  |  |     "python-dotenv", | 
					
						
							|  |  |  |     "types-contextvars", | 
					
						
							|  |  |  |     "types-dataclasses", | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [project.urls] | 
					
						
							|  |  |  | Donate = "https://palletsprojects.com/donate" | 
					
						
							|  |  |  | Documentation = "https://flask.palletsprojects.com/" | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | Changes = "https://flask.palletsprojects.com/page/changes/" | 
					
						
							| 
									
										
										
										
											2024-04-08 01:24:40 +08:00
										 |  |  | Source = "https://github.com/pallets/flask/" | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | Chat = "https://discord.gg/pallets" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [project.scripts] | 
					
						
							|  |  |  | flask = "flask.cli:main" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [build-system] | 
					
						
							| 
									
										
										
										
											2023-06-28 05:03:25 +08:00
										 |  |  | requires = ["flit_core<4"] | 
					
						
							|  |  |  | build-backend = "flit_core.buildapi" | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-28 05:03:25 +08:00
										 |  |  | [tool.flit.module] | 
					
						
							|  |  |  | name = "flask" | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.flit.sdist] | 
					
						
							|  |  |  | include = [ | 
					
						
							|  |  |  |     "docs/", | 
					
						
							|  |  |  |     "examples/", | 
					
						
							|  |  |  |     "tests/", | 
					
						
							|  |  |  |     "CHANGES.rst", | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  |     "uv.lock" | 
					
						
							| 
									
										
										
										
											2023-06-28 05:03:25 +08:00
										 |  |  | ] | 
					
						
							|  |  |  | exclude = [ | 
					
						
							|  |  |  |     "docs/_build/", | 
					
						
							|  |  |  | ] | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | [tool.uv] | 
					
						
							|  |  |  | default-groups = ["dev", "pre-commit", "tests", "typing"] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | [tool.pytest.ini_options] | 
					
						
							|  |  |  | testpaths = ["tests"] | 
					
						
							| 
									
										
										
										
											2023-04-12 06:34:39 +08:00
										 |  |  | filterwarnings = [ | 
					
						
							|  |  |  |     "error", | 
					
						
							|  |  |  | ] | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | [tool.coverage.run] | 
					
						
							|  |  |  | branch = true | 
					
						
							|  |  |  | source = ["flask", "tests"] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.coverage.paths] | 
					
						
							|  |  |  | source = ["src", "*/site-packages"] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | [tool.coverage.report] | 
					
						
							|  |  |  | exclude_also = [ | 
					
						
							|  |  |  |     "if t.TYPE_CHECKING", | 
					
						
							|  |  |  |     "raise NotImplementedError", | 
					
						
							|  |  |  |     ": \\.{3}", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | [tool.mypy] | 
					
						
							| 
									
										
										
										
											2024-11-01 03:28:46 +08:00
										 |  |  | python_version = "3.9" | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | files = ["src", "tests/type_check"] | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | show_error_codes = true | 
					
						
							|  |  |  | pretty = true | 
					
						
							| 
									
										
										
										
											2023-12-15 00:58:13 +08:00
										 |  |  | strict = true | 
					
						
							| 
									
										
										
										
											2023-01-19 01:50:41 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | [[tool.mypy.overrides]] | 
					
						
							|  |  |  | module = [ | 
					
						
							|  |  |  |     "asgiref.*", | 
					
						
							|  |  |  |     "dotenv.*", | 
					
						
							|  |  |  |     "cryptography.*", | 
					
						
							|  |  |  |     "importlib_metadata", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | ignore_missing_imports = true | 
					
						
							| 
									
										
										
										
											2023-11-10 01:20:27 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-08 01:24:40 +08:00
										 |  |  | [tool.pyright] | 
					
						
							| 
									
										
										
										
											2024-11-01 03:28:46 +08:00
										 |  |  | pythonVersion = "3.9" | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | include = ["src", "tests/type_check"] | 
					
						
							| 
									
										
										
										
											2024-04-08 01:24:40 +08:00
										 |  |  | typeCheckingMode = "basic" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-11-10 01:20:27 +08:00
										 |  |  | [tool.ruff] | 
					
						
							|  |  |  | src = ["src"] | 
					
						
							|  |  |  | fix = true | 
					
						
							|  |  |  | show-fixes = true | 
					
						
							| 
									
										
										
										
											2024-04-08 01:24:40 +08:00
										 |  |  | output-format = "full" | 
					
						
							| 
									
										
										
										
											2023-11-10 01:20:27 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | [tool.ruff.lint] | 
					
						
							|  |  |  | select = [ | 
					
						
							|  |  |  |     "B",  # flake8-bugbear | 
					
						
							|  |  |  |     "E",  # pycodestyle error | 
					
						
							|  |  |  |     "F",  # pyflakes | 
					
						
							|  |  |  |     "I",  # isort | 
					
						
							|  |  |  |     "UP",  # pyupgrade | 
					
						
							|  |  |  |     "W",  # pycodestyle warning | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.ruff.lint.isort] | 
					
						
							|  |  |  | force-single-line = true | 
					
						
							|  |  |  | order-by-type = false | 
					
						
							| 
									
										
										
										
											2024-08-24 07:32:33 +08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-05-12 08:45:03 +08:00
										 |  |  | [tool.tox] | 
					
						
							|  |  |  | env_list = [ | 
					
						
							|  |  |  |     "py3.13", "py3.12", "py3.11", "py3.10", "py3.9", | 
					
						
							|  |  |  |     "pypy3.11", | 
					
						
							|  |  |  |     "tests-min", "tests-dev", | 
					
						
							|  |  |  |     "style", | 
					
						
							|  |  |  |     "typing", | 
					
						
							|  |  |  |     "docs", | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env_run_base] | 
					
						
							|  |  |  | description = "pytest on latest dependency versions" | 
					
						
							|  |  |  | runner = "uv-venv-lock-runner" | 
					
						
							|  |  |  | package = "wheel" | 
					
						
							|  |  |  | wheel_build_env = ".pkg" | 
					
						
							|  |  |  | constrain_package_deps = true | 
					
						
							|  |  |  | use_frozen_constraints = true | 
					
						
							|  |  |  | dependency_groups = ["tests"] | 
					
						
							|  |  |  | env_tmp_dir = "{toxworkdir}/tmp/{envname}" | 
					
						
							|  |  |  | commands = [[ | 
					
						
							|  |  |  |     "pytest", "-v", "--tb=short", "--basetemp={env_tmp_dir}", | 
					
						
							|  |  |  |     {replace = "posargs", default = [], extend = true}, | 
					
						
							|  |  |  | ]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.tests-min] | 
					
						
							|  |  |  | description = "pytest on minimum dependency versions" | 
					
						
							|  |  |  | base_python = ["3.13"] | 
					
						
							|  |  |  | commands = [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "uv", "pip", "install", | 
					
						
							|  |  |  |         "blinker==1.9.0", | 
					
						
							|  |  |  |         "click==8.1.3", | 
					
						
							|  |  |  |         "itsdangerous==2.2.0", | 
					
						
							|  |  |  |         "jinja2==3.1.2", | 
					
						
							|  |  |  |         "markupsafe==2.1.1", | 
					
						
							|  |  |  |         "werkzeug==3.1.0", | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "pytest", "-v", "--tb=short", "--basetemp={env_tmp_dir}", | 
					
						
							|  |  |  |         {replace = "posargs", default = [], extend = true}, | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.tests-dev] | 
					
						
							|  |  |  | description = "pytest on development dependency versions (git main branch)" | 
					
						
							|  |  |  | base_python = ["3.10"] | 
					
						
							|  |  |  | commands = [ | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "uv", "pip", "install", | 
					
						
							|  |  |  |         "https://github.com/pallets-eco/blinker/archive/refs/heads/main.tar.gz", | 
					
						
							|  |  |  |         "https://github.com/pallets/click/archive/refs/heads/main.tar.gz", | 
					
						
							|  |  |  |         "https://github.com/pallets/itsdangerous/archive/refs/heads/main.tar.gz", | 
					
						
							|  |  |  |         "https://github.com/pallets/jinja/archive/refs/heads/main.tar.gz", | 
					
						
							|  |  |  |         "https://github.com/pallets/markupsafe/archive/refs/heads/main.tar.gz", | 
					
						
							|  |  |  |         "https://github.com/pallets/werkzeug/archive/refs/heads/main.tar.gz", | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  |     [ | 
					
						
							|  |  |  |         "pytest", "-v", "--tb=short", "--basetemp={env_tmp_dir}", | 
					
						
							|  |  |  |         {replace = "posargs", default = [], extend = true}, | 
					
						
							|  |  |  |     ], | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.style] | 
					
						
							|  |  |  | description = "run all pre-commit hooks on all files" | 
					
						
							|  |  |  | dependency_groups = ["pre-commit"] | 
					
						
							|  |  |  | skip_install = true | 
					
						
							|  |  |  | commands = [["pre-commit", "run", "--all-files"]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.typing] | 
					
						
							|  |  |  | description = "run static type checkers" | 
					
						
							|  |  |  | dependency_groups = ["typing"] | 
					
						
							|  |  |  | commands = [ | 
					
						
							|  |  |  |     ["mypy"], | 
					
						
							|  |  |  |     ["pyright"], | 
					
						
							|  |  |  | ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.docs] | 
					
						
							|  |  |  | description = "build docs" | 
					
						
							|  |  |  | dependency_groups = ["docs"] | 
					
						
							|  |  |  | commands = [["sphinx-build", "-E", "-W", "-b", "dirhtml", "docs", "docs/_build/dirhtml"]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.docs-auto] | 
					
						
							|  |  |  | description = "continuously rebuild docs and start a local server" | 
					
						
							|  |  |  | dependency_groups = ["docs", "docs-auto"] | 
					
						
							|  |  |  | commands = [["sphinx-autobuild", "-W", "-b", "dirhtml", "--watch", "src", "docs", "docs/_build/dirhtml"]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.update-actions] | 
					
						
							|  |  |  | description = "update GitHub Actions pins" | 
					
						
							|  |  |  | labels = ["update"] | 
					
						
							|  |  |  | dependency_groups = ["gha-update"] | 
					
						
							|  |  |  | skip_install = true | 
					
						
							|  |  |  | commands = [["gha-update"]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.update-pre_commit] | 
					
						
							|  |  |  | description = "update pre-commit pins" | 
					
						
							|  |  |  | labels = ["update"] | 
					
						
							|  |  |  | dependency_groups = ["pre-commit"] | 
					
						
							|  |  |  | skip_install = true | 
					
						
							|  |  |  | commands = [["pre-commit", "autoupdate", "--freeze", "-j4"]] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | [tool.tox.env.update-requirements] | 
					
						
							|  |  |  | description = "update uv lock" | 
					
						
							|  |  |  | labels = ["update"] | 
					
						
							|  |  |  | dependency_groups = [] | 
					
						
							|  |  |  | no_default_groups = true | 
					
						
							|  |  |  | skip_install = true | 
					
						
							|  |  |  | commands = [["uv", "lock", {replace = "posargs", default = ["-U"], extend = true}]] |