Commit graph

4160 commits

Author SHA1 Message Date
David Lord
61fbae8664
skip async tests if asgiref isn't installed 2021-04-06 15:33:06 -07:00
pgjones
00f5a3e55c
Alter ensure_sync implementation to support extensions
This allows extensions to override the Flask.ensure_sync method and
have the change apply to blueprints as well. Without this change it is
possible for differing blueprints to have differing ensure_sync
approaches depending on the extension used - which would likely result
in event-loop blocking issues.

This also allows blueprints to have a custom ensure_sync, although
this is a by product rather than an expected use case.
2021-04-06 15:33:06 -07:00
pgjones
c6c6408c3f
Raise a runtime error if run_async is called without real ContextVars
Werkzeug offers a ContextVar replacement for Python < 3.7, however it
doesn't work across asyncio tasks, hence it makes sense to error out
rather than find there are odd bugs.

Note the docs build requires the latest (dev) Werkzeug due to this
change (to import ContextVar from werkzeug.local).
2021-04-06 09:35:10 -07:00
pgjones
6979265fa6
Add async support
This allows for async functions to be passed to the Flask class
instance, for example as a view function,

    @app.route("/")
    async def index():
        return "Async hello"

this comes with a cost though of poorer performance than using the
sync equivalent.

asgiref is the standard way to run async code within a sync context,
and is used in Django making it a safe and sane choice for this.
2021-04-06 09:35:10 -07:00
David Lord
85b8fab268
Merge pull request #3952 from pallets/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-04-05 10:24:22 -07:00
pre-commit-ci[bot]
70b58c82d9
[pre-commit.ci] pre-commit autoupdate 2021-04-05 17:10:21 +00:00
David Lord
ecb3450f19
Merge pull request #3943 from pallets/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-03-22 10:50:37 -07:00
pre-commit-ci[bot]
06fd6aca27
[pre-commit.ci] pre-commit autoupdate 2021-03-22 17:04:33 +00:00
David Lord
020331522b
Merge pull request #3937 from pallets/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-03-15 11:36:59 -07:00
pre-commit-ci[bot]
46d8e90f29
[pre-commit.ci] pre-commit autoupdate 2021-03-15 17:00:57 +00:00
David Lord
510c38cc63
Merge pull request #3933 from pallets/more-scaffold
more work on Scaffold base class
2021-03-10 11:02:16 -08:00
David Lord
3dfc12e8d8
only extend on first registration 2021-03-10 10:51:06 -08:00
David Lord
ef52e3e4a3
remove redundant _register_error_handler 2021-03-10 10:38:17 -08:00
David Lord
25ab05e6a2
remove old note about InternalServerError 2021-03-10 10:38:16 -08:00
David Lord
7029674775
rewrite Scaffold docs 2021-03-10 10:38:16 -08:00
David Lord
9f7c602a84
move _PackageBoundObject into Scaffold 2021-03-10 10:38:13 -08:00
David Lord
3316604822
Merge pull request #3932 from greyli/set-encoding
Set default encoding to UTF-8 for load_dotenv
2021-03-10 06:30:24 -08:00
Grey Li
33145c3699 Set default encoding to UTF-8 for load_dotenv 2021-03-10 21:40:29 +08:00
David Lord
6d9d79c70d
Merge pull request #3918 from pgjones/defaultdict 2021-03-08 10:15:26 -08:00
pgjones
83d358d2c4
remove _blueprint_order, dicts are ordered
This code originates from supporting Python 2.4. Dicts are ordered in
supported Pythons as of 3.6. An OrderedDict could be used to indicate
that order matters, but is not since we don't rely on the implementation
differences.
2021-03-08 09:58:12 -08:00
pgjones
fd62210f58
Utilise defaultdicts
This code originates from the Python 2.4 supporting version of Flask,
with defaultdicts being added in 2.5. Using defaultdict makes the
intentional usage clearer, and slightly simplifies the code.
2021-03-08 09:58:12 -08:00
David Lord
5fea7caba2
Merge pull request #3907 from pgjones/sugar
Add syntatic sugar for route registration
2021-03-08 08:57:58 -08:00
pgjones
705e52684a
Add syntatic sugar for route registration
This takes a popular API whereby instead of passing the HTTP method as
an argument to route it is instead used as the method name i.e.

    @app.route("/", methods=["POST"])

is now writeable as,

    @app.post("/")

This is simply syntatic sugar, it doesn't do anything else, but makes
it slightly easier for users.

I've included all the methods that are relevant and aren't auto
generated i.e. not connect, head, options, and trace.
2021-03-08 08:55:14 -08:00
dependabot-preview[bot]
82d69cd06c
Merge pull request #3926 from pallets/dependabot/pip/sphinx-3.5.1 2021-03-01 15:25:15 +00:00
dependabot-preview[bot]
e4e66186c3
Merge pull request #3925 from pallets/dependabot/pip/tox-3.22.0 2021-03-01 15:22:59 +00:00
dependabot-preview[bot]
1748bb02eb
Bump sphinx from 3.4.3 to 3.5.1
Bumps [sphinx](https://github.com/sphinx-doc/sphinx) from 3.4.3 to 3.5.1.
- [Release notes](https://github.com/sphinx-doc/sphinx/releases)
- [Changelog](https://github.com/sphinx-doc/sphinx/blob/3.x/CHANGES)
- [Commits](https://github.com/sphinx-doc/sphinx/compare/v3.4.3...v3.5.1)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-03-01 15:17:54 +00:00
dependabot-preview[bot]
6e7869ec49
Bump tox from 3.21.4 to 3.22.0
Bumps [tox](https://github.com/tox-dev/tox) from 3.21.4 to 3.22.0.
- [Release notes](https://github.com/tox-dev/tox/releases)
- [Changelog](https://github.com/tox-dev/tox/blob/master/docs/changelog.rst)
- [Commits](https://github.com/tox-dev/tox/compare/3.21.4...3.22.0)

Signed-off-by: dependabot-preview[bot] <support@dependabot.com>
2021-03-01 15:15:58 +00:00
David Lord
4846e25e92
Merge pull request #3917 from greyli/fix-date-parse
update json.dumps for http_date changes
2021-02-25 09:51:58 -08:00
Grey Li
49b7341a49
update json.dumps for http_date changes 2021-02-25 09:45:55 -08:00
David Lord
dcd3b5c8f8
Merge pull request #3922 from pallets/consistency
various cleanup for consistency between projects
2021-02-24 10:35:16 -08:00
David Lord
0c7cbe2d11
move version to setup.cfg 2021-02-24 10:09:50 -08:00
David Lord
9e7d3a6b69
docs rename changelog to changes 2021-02-24 10:09:38 -08:00
David Lord
3cd615a1d6
update project links 2021-02-24 10:09:15 -08:00
David Lord
aee3f3fee9
Merge pull request #3916 from greyli/fix-extdev-docs
Remove the mention of Flask-OAuth in the extension dev docs
2021-02-19 07:21:18 -08:00
Grey Li
76abbe9062 Remove the mention of Flask-OAuth in the extension dev docs 2021-02-19 22:59:09 +08:00
David Lord
8d9501598f
use rtd to build docs for prs
skip code tests when only docs change
2021-02-16 08:36:14 -08:00
David Lord
adeaf27e76
Merge pull request #3904 from pallets/update-project
update project files
2021-02-08 18:32:18 -08:00
David Lord
b496d8b7cb
update contributing guide 2021-02-08 18:26:37 -08:00
David Lord
3c00658772
update requirements 2021-02-08 18:23:10 -08:00
David Lord
dbe76bb75d
add security policy
copy from pallets/.github repo
github was using docs/security.rst by mistake
2021-02-08 18:20:48 -08:00
David Lord
571e638e2a
update issue templates 2021-02-08 18:17:45 -08:00
David Lord
bfd4dc6d30
update test config 2021-02-08 18:17:45 -08:00
David Lord
ee089488ad
Merge pull request #3901 from pallets/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-02-08 18:17:33 -08:00
pre-commit-ci[bot]
3fe23bf899
[pre-commit.ci] pre-commit autoupdate 2021-02-08 18:12:19 -08:00
David Lord
ff3fb96896
Merge pull request #3903 from pallets/update-werkzeug
fix tests for latest Werkzeug
2021-02-08 18:11:47 -08:00
David Lord
0ee1b0b5d9
remove test relying on Werkzeug Local internals 2021-02-08 18:04:02 -08:00
David Lord
192f4ae0b2
Merge pull request #3895 from pallets/jinja-tojson
use Jinja's tojson filter
2021-02-01 22:57:42 -08:00
David Lord
b473e7c97c
use Jinja's tojson filter 2021-02-01 22:48:09 -08:00
David Lord
fdf5d11b51
Merge pull request #3794 from mbpreble/open-session-request-endpoint-none
Ensure session_interface.open_session is called after URL matching
2021-02-01 20:45:02 -08:00
Matthew Preble
01621485fd
Ensure session_interface.open_session is called after URL matching (#3776) 2021-02-01 20:41:17 -08:00