commit
d086a724be
13 changed files with 60 additions and 49 deletions
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
6
setup.py
6
setup.py
|
|
@ -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={
|
||||||
|
|
|
||||||
|
|
@ -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"
|
||||||
|
|
|
||||||
|
|
@ -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:
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
11
tox.ini
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue