Merge pull request #4007 from pallets/release-2.0.0

Release 2.0.0
This commit is contained in:
David Lord 2021-05-11 14:43:42 -07:00 committed by GitHub
commit d086a724be
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 60 additions and 49 deletions

View file

@ -3,7 +3,7 @@
Version 2.0.0 Version 2.0.0
------------- -------------
Unreleased Released 2021-05-11
- Drop support for Python 2 and 3.5. - Drop support for Python 2 and 3.5.
- Bump minimum versions of other Pallets projects: Werkzeug >= 2, - Bump minimum versions of other Pallets projects: Werkzeug >= 2,

View file

@ -1,5 +1,6 @@
-r docs.in -r docs.in
-r tests.in -r tests.in
-r typing.in
pip-tools pip-tools
pre-commit pre-commit
tox tox

View file

@ -10,9 +10,9 @@ appdirs==1.4.4
# via virtualenv # via virtualenv
asgiref==3.3.4 asgiref==3.3.4
# via -r requirements/tests.in # via -r requirements/tests.in
attrs==20.3.0 attrs==21.2.0
# via pytest # via pytest
babel==2.9.0 babel==2.9.1
# via sphinx # via sphinx
blinker==1.4 blinker==1.4
# via -r requirements/tests.in # via -r requirements/tests.in
@ -22,19 +22,21 @@ cfgv==3.2.0
# via pre-commit # via pre-commit
chardet==4.0.0 chardet==4.0.0
# via requests # via requests
click==7.1.2 click==8.0.0
# via pip-tools # via pip-tools
distlib==0.3.1 distlib==0.3.1
# via virtualenv # via virtualenv
docutils==0.16 docutils==0.16
# via sphinx # via
# sphinx
# sphinx-tabs
filelock==3.0.12 filelock==3.0.12
# via # via
# tox # tox
# virtualenv # virtualenv
greenlet==1.0.0 greenlet==1.1.0
# via -r requirements/tests.in # via -r requirements/tests.in
identify==2.2.3 identify==2.2.4
# via pre-commit # via pre-commit
idna==2.10 idna==2.10
# via requests # via requests
@ -45,7 +47,13 @@ iniconfig==1.1.1
jinja2==2.11.3 jinja2==2.11.3
# via sphinx # via sphinx
markupsafe==1.1.1 markupsafe==1.1.1
# via jinja2 # via
# jinja2
# sphinx
mypy-extensions==0.4.3
# via mypy
mypy==0.812
# via -r requirements/typing.in
nodeenv==1.6.0 nodeenv==1.6.0
# via pre-commit # via pre-commit
packaging==20.9 packaging==20.9
@ -54,7 +62,7 @@ packaging==20.9
# pytest # pytest
# sphinx # sphinx
# tox # tox
pallets-sphinx-themes==2.0.0rc1 pallets-sphinx-themes==2.0.0
# via -r requirements/docs.in # via -r requirements/docs.in
pep517==0.10.0 pep517==0.10.0
# via pip-tools # via pip-tools
@ -70,13 +78,13 @@ py==1.10.0
# via # via
# pytest # pytest
# tox # tox
pygments==2.8.1 pygments==2.9.0
# via # via
# sphinx # sphinx
# sphinx-tabs # sphinx-tabs
pyparsing==2.4.7 pyparsing==2.4.7
# via packaging # via packaging
pytest==6.2.3 pytest==6.2.4
# via -r requirements/tests.in # via -r requirements/tests.in
python-dotenv==0.17.1 python-dotenv==0.17.1
# via -r requirements/tests.in # via -r requirements/tests.in
@ -86,7 +94,7 @@ pyyaml==5.4.1
# via pre-commit # via pre-commit
requests==2.25.1 requests==2.25.1
# via sphinx # via sphinx
six==1.15.0 six==1.16.0
# via # via
# tox # tox
# virtualenv # virtualenv
@ -94,9 +102,9 @@ snowballstemmer==2.1.0
# via sphinx # via sphinx
sphinx-issues==1.2.0 sphinx-issues==1.2.0
# via -r requirements/docs.in # via -r requirements/docs.in
sphinx-tabs==2.1.0 sphinx-tabs==3.0.0
# via -r requirements/docs.in # via -r requirements/docs.in
sphinx==3.5.4 sphinx==4.0.1
# via # via
# -r requirements/docs.in # -r requirements/docs.in
# pallets-sphinx-themes # pallets-sphinx-themes
@ -123,11 +131,15 @@ toml==0.10.2
# pre-commit # pre-commit
# pytest # pytest
# tox # tox
tox==3.23.0 tox==3.23.1
# via -r requirements/dev.in # via -r requirements/dev.in
typed-ast==1.4.3
# via mypy
typing-extensions==3.10.0.0
# via mypy
urllib3==1.26.4 urllib3==1.26.4
# via requests # via requests
virtualenv==20.4.3 virtualenv==20.4.6
# via # via
# pre-commit # pre-commit
# tox # tox

View file

@ -1,4 +1,4 @@
Pallets-Sphinx-Themes >= 2.0.0rc1 Pallets-Sphinx-Themes
Sphinx Sphinx
sphinx-issues sphinx-issues
sphinxcontrib-log-cabinet sphinxcontrib-log-cabinet

View file

@ -6,14 +6,16 @@
# #
alabaster==0.7.12 alabaster==0.7.12
# via sphinx # via sphinx
babel==2.9.0 babel==2.9.1
# via sphinx # via sphinx
certifi==2020.12.5 certifi==2020.12.5
# via requests # via requests
chardet==4.0.0 chardet==4.0.0
# via requests # via requests
docutils==0.16 docutils==0.16
# via sphinx # via
# sphinx
# sphinx-tabs
idna==2.10 idna==2.10
# via requests # via requests
imagesize==1.2.0 imagesize==1.2.0
@ -21,14 +23,16 @@ imagesize==1.2.0
jinja2==2.11.3 jinja2==2.11.3
# via sphinx # via sphinx
markupsafe==1.1.1 markupsafe==1.1.1
# via jinja2 # via
# jinja2
# sphinx
packaging==20.9 packaging==20.9
# via # via
# pallets-sphinx-themes # pallets-sphinx-themes
# sphinx # sphinx
pallets-sphinx-themes==2.0.0rc1 pallets-sphinx-themes==2.0.0
# via -r requirements/docs.in # via -r requirements/docs.in
pygments==2.8.1 pygments==2.9.0
# via # via
# sphinx # sphinx
# sphinx-tabs # sphinx-tabs
@ -42,9 +46,9 @@ snowballstemmer==2.1.0
# via sphinx # via sphinx
sphinx-issues==1.2.0 sphinx-issues==1.2.0
# via -r requirements/docs.in # via -r requirements/docs.in
sphinx-tabs==2.1.0 sphinx-tabs==3.0.0
# via -r requirements/docs.in # via -r requirements/docs.in
sphinx==3.5.4 sphinx==4.0.1
# via # via
# -r requirements/docs.in # -r requirements/docs.in
# pallets-sphinx-themes # pallets-sphinx-themes

View file

@ -6,11 +6,11 @@
# #
asgiref==3.3.4 asgiref==3.3.4
# via -r requirements/tests.in # via -r requirements/tests.in
attrs==20.3.0 attrs==21.2.0
# via pytest # via pytest
blinker==1.4 blinker==1.4
# via -r requirements/tests.in # via -r requirements/tests.in
greenlet==1.0.0 greenlet==1.1.0
# via -r requirements/tests.in # via -r requirements/tests.in
iniconfig==1.1.1 iniconfig==1.1.1
# via pytest # via pytest
@ -22,7 +22,7 @@ py==1.10.0
# via pytest # via pytest
pyparsing==2.4.7 pyparsing==2.4.7
# via packaging # via packaging
pytest==6.2.3 pytest==6.2.4
# via -r requirements/tests.in # via -r requirements/tests.in
python-dotenv==0.17.1 python-dotenv==0.17.1
# via -r requirements/tests.in # via -r requirements/tests.in

View file

@ -10,5 +10,5 @@ mypy==0.812
# via -r requirements/typing.in # via -r requirements/typing.in
typed-ast==1.4.3 typed-ast==1.4.3
# via mypy # via mypy
typing-extensions==3.7.4.3 typing-extensions==3.10.0.0
# via mypy # via mypy

View file

@ -4,9 +4,9 @@ from setuptools import setup
setup( setup(
name="Flask", name="Flask",
install_requires=[ install_requires=[
"Werkzeug>=2.0.0rc4", "Werkzeug>=2.0",
"Jinja2>=3.0.0rc1", "Jinja2>=3.0",
"itsdangerous>=2.0.0rc2", "itsdangerous>=2.0",
"click>=7.1.2", "click>=7.1.2",
], ],
extras_require={ extras_require={

View file

@ -43,4 +43,4 @@ from .signals import template_rendered
from .templating import render_template from .templating import render_template
from .templating import render_template_string from .templating import render_template_string
__version__ = "2.0.0rc2" __version__ = "2.0.0"

View file

@ -704,7 +704,7 @@ class Flask(Scaffold):
session=session, session=session,
g=g, g=g,
) )
rv.policies["json.dumps_function"] = json.dumps # type: ignore rv.policies["json.dumps_function"] = json.dumps
return rv return rv
def create_global_jinja_loader(self) -> DispatchingJinjaLoader: def create_global_jinja_loader(self) -> DispatchingJinjaLoader:

View file

@ -5,7 +5,7 @@ import uuid
import warnings import warnings
from datetime import date from datetime import date
from jinja2.utils import htmlsafe_json_dumps as _jinja_htmlsafe_dumps # type: ignore from jinja2.utils import htmlsafe_json_dumps as _jinja_htmlsafe_dumps
from werkzeug.http import http_date from werkzeug.http import http_date
from ..globals import current_app from ..globals import current_app

View file

@ -51,18 +51,21 @@ class DispatchingJinjaLoader(BaseLoader):
def __init__(self, app: "Flask") -> None: def __init__(self, app: "Flask") -> None:
self.app = app self.app = app
def get_source( def get_source( # type: ignore
self, environment: Environment, template: str self, environment: Environment, template: str
) -> t.Tuple[str, t.Optional[str], t.Callable]: ) -> t.Tuple[str, t.Optional[str], t.Optional[t.Callable]]:
if self.app.config["EXPLAIN_TEMPLATE_LOADING"]: if self.app.config["EXPLAIN_TEMPLATE_LOADING"]:
return self._get_source_explained(environment, template) return self._get_source_explained(environment, template)
return self._get_source_fast(environment, template) return self._get_source_fast(environment, template)
def _get_source_explained( def _get_source_explained(
self, environment: Environment, template: str self, environment: Environment, template: str
) -> t.Tuple[str, t.Optional[str], t.Callable]: ) -> t.Tuple[str, t.Optional[str], t.Optional[t.Callable]]:
attempts = [] attempts = []
trv = None rv: t.Optional[t.Tuple[str, t.Optional[str], t.Optional[t.Callable[[], bool]]]]
trv: t.Optional[
t.Tuple[str, t.Optional[str], t.Optional[t.Callable[[], bool]]]
] = None
for srcobj, loader in self._iter_loaders(template): for srcobj, loader in self._iter_loaders(template):
try: try:
@ -83,7 +86,7 @@ class DispatchingJinjaLoader(BaseLoader):
def _get_source_fast( def _get_source_fast(
self, environment: Environment, template: str self, environment: Environment, template: str
) -> t.Tuple[str, t.Optional[str], t.Callable]: ) -> t.Tuple[str, t.Optional[str], t.Optional[t.Callable]]:
for _srcobj, loader in self._iter_loaders(template): for _srcobj, loader in self._iter_loaders(template):
try: try:
return loader.get_source(environment, template) return loader.get_source(environment, template)

11
tox.ini
View file

@ -11,12 +11,6 @@ skip_missing_interpreters = true
deps = deps =
-r requirements/tests.txt -r requirements/tests.txt
https://github.com/pallets/werkzeug/archive/master.tar.gz
https://github.com/pallets/markupsafe/archive/master.tar.gz
https://github.com/pallets/jinja/archive/master.tar.gz
https://github.com/pallets/itsdangerous/archive/master.tar.gz
!click7: https://github.com/pallets/click/archive/master.tar.gz
click7: click<8 click7: click<8
examples/tutorial[test] examples/tutorial[test]
@ -33,8 +27,5 @@ deps = -r requirements/typing.txt
commands = mypy commands = mypy
[testenv:docs] [testenv:docs]
deps = deps = -r requirements/docs.txt
-r requirements/docs.txt
https://github.com/pallets/werkzeug/archive/master.tar.gz
commands = sphinx-build -W -b html -d {envtmpdir}/doctrees docs {envtmpdir}/html commands = sphinx-build -W -b html -d {envtmpdir}/doctrees docs {envtmpdir}/html