Commit graph

4220 commits

Author SHA1 Message Date
David Lord
d7ac6f5bcf
Merge pull request #3991 from pallets/release-2.0.0rc2
release version 2.0.0rc2
2021-05-03 07:13:43 -07:00
David Lord
e2b7d1056c
release version 2.0.0rc2 2021-05-03 07:02:42 -07:00
David Lord
47f0e799db
Merge pull request #3989 from pgjones/async
Async improvements
2021-05-03 06:23:00 -07:00
pgjones
2889da67cb
Remove the async helper method
It is better to encourage users to utilise the app ensure_sync method
(or the newely added async_to_sync method) so that any extensions that
alter these methods take affect throughout the users code.

With the helper method users code fix parts of their code to the
asgiref async_to_sync ignoring any extension changes.
2021-05-03 06:18:41 -07:00
pgjones
7f87f3dd93
Simplify the async handling code
Firstly `run_sync` was a misleading name as it didn't run anything,
instead I think `async_to_sync` is much clearer as it converts a
coroutine function to a function. (Name stolen from asgiref).

Secondly trying to run the ensure_sync during registration made the
code more complex and brittle, e.g. the _flask_async_wrapper
usage. This was done to pay any setup costs during registration rather
than runtime, however this only saved a iscoroutne check. It allows
the weirdness of the Blueprint and Scaffold ensure_sync methods to be
removed.

Switching to runtime ensure_sync usage provides a method for
extensions to also support async, as now documented.
2021-05-03 06:15:39 -07:00
pgjones
cb13128cf0
Remove context copying from run_async function
This was required with the previous implementation of Werkzeug's
locals which didn't persist across threads. However as the current
implementation uses ContextVars which do persist the context copying
is no longer required.
2021-05-03 06:15:39 -07:00
Grey Li
188f4785ad
Merge pull request #3976 from greyli/update-changelog
Update changelog for #3932
2021-05-03 08:09:40 +08:00
Joshua Bronson
8bfce88e39
Minor docs fixes. (#3988) 2021-05-02 16:05:08 -04:00
David Lord
98fbb6a3a7
Merge pull request #3986 from pallets/dependabot/pip/python-dotenv-0.17.1
Bump python-dotenv from 0.17.0 to 0.17.1
2021-05-01 05:08:44 -07:00
dependabot[bot]
467d2e2a43
Bump python-dotenv from 0.17.0 to 0.17.1
Bumps [python-dotenv](https://github.com/theskumar/python-dotenv) from 0.17.0 to 0.17.1.
- [Release notes](https://github.com/theskumar/python-dotenv/releases)
- [Changelog](https://github.com/theskumar/python-dotenv/blob/master/CHANGELOG.md)
- [Commits](https://github.com/theskumar/python-dotenv/compare/v0.17.0...v0.17.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-05-01 08:02:41 +00:00
David Lord
0c198dffc3
Merge pull request #3985 from greyli/async-note
Add tips for using async on Windows on Python 3.8
2021-04-29 10:11:09 -07:00
Grey Li
ec044a24e1 Add tips for using async on Windows on Python 3.8 2021-04-29 10:59:26 +08:00
dependabot[bot]
83b2f8f0f1
Merge pull request #3984 from pallets/dependabot/pip/pre-commit-2.12.1 2021-04-28 20:59:01 +00:00
dependabot[bot]
36e6ec45a9
Bump pre-commit from 2.12.0 to 2.12.1
Bumps [pre-commit](https://github.com/pre-commit/pre-commit) from 2.12.0 to 2.12.1.
- [Release notes](https://github.com/pre-commit/pre-commit/releases)
- [Changelog](https://github.com/pre-commit/pre-commit/blob/master/CHANGELOG.md)
- [Commits](https://github.com/pre-commit/pre-commit/compare/v2.12.0...v2.12.1)

Signed-off-by: dependabot[bot] <support@github.com>
2021-04-28 20:54:53 +00:00
David Lord
0d63f1021d
Merge pull request #3983 from pallets/dependabot/add-v2-config-file
Upgrade to GitHub-native Dependabot
2021-04-28 13:53:29 -07:00
dependabot-preview[bot]
d124214129
Upgrade to GitHub-native Dependabot 2021-04-28 16:46:45 +00:00
Grey Li
9be01564f2 Update changelog for #3932 2021-04-28 14:20:44 +08:00
David Lord
77db3d5ede
Merge pull request #3972 from ThiefMaster/click-7
Allow using Click 7 with a DeprecationWarning
2021-04-27 07:58:25 -07:00
David Lord
1ccf063f80
Merge pull request #3971 from ThiefMaster/get-root-path
Move get_root_path back to flask.helpers
2021-04-27 07:55:26 -07:00
Adrian Moennich
26a6cc0f94 Allow using Click 7 with a DeprecationWarning
As long as popular libraries (e.g. Celery) require click 7, depending
on Click 8 in Flask makes it hard to test the latest version (and its
other dependencies) in existing applications.
2021-04-27 16:45:06 +02:00
Adrian Moennich
10b0d6b33f Move get_root_path back to flask.helpers
Many libraries use it so the move is somewhat disruptive.
2021-04-27 16:42:16 +02:00
David Lord
1a8549debb
Merge pull request #3973 from pgjones/typing 2021-04-27 07:32:10 -07:00
Grey Li
b8ddd52a0d
Merge pull request #3974 from pallets/pre-commit-ci-update-config
[pre-commit.ci] pre-commit autoupdate
2021-04-27 09:47:43 +08:00
pre-commit-ci[bot]
b373e7a456
[pre-commit.ci] pre-commit autoupdate
updates:
- [github.com/asottile/pyupgrade: v2.12.0 → v2.13.0](https://github.com/asottile/pyupgrade/compare/v2.12.0...v2.13.0)
- [github.com/asottile/reorder_python_imports: v2.4.0 → v2.5.0](https://github.com/asottile/reorder_python_imports/compare/v2.4.0...v2.5.0)
- [github.com/psf/black: 20.8b1 → 21.4b0](https://github.com/psf/black/compare/20.8b1...21.4b0)
2021-04-26 17:21:56 +00:00
pgjones
77237093da Add initial type hints
This should make it easier for users to correctly use Flask. The hints
are from Quart.
2021-04-26 17:29:53 +01:00
pgjones
f405c6f19e Initial typing support
This enables type checking in CI and marks the project as typed.
2021-04-26 17:20:24 +01:00
David Lord
e6e75e5547
changelog for bumped pallets versions 2021-04-24 07:31:16 -07:00
Grey Li
c791f6312b
Fix typo in issue template 2021-04-22 20:34:55 +08:00
David Lord
03db9194d8
Merge pull request #3967 from pgjones/docs 2021-04-17 07:34:56 -07:00
pgjones
f74cce164e Update documentation on asyncio background tasks
This has been an early question from users, so best to explain.
2021-04-17 15:13:33 +01:00
pgjones
1c3b53c5db Update the docs on serving with ASGI
Whilst it has been possible to serve via an ASGI server for a while
(using WSGI to ASGI middleware/adapters) it hasn't added much. Now
though it makes sense to recommend the asgiref adapter as it
integrates with the same event loop used for async route handlers
etc...
2021-04-17 11:30:22 +01:00
David Lord
34eb0dad15
Merge pull request #3965 from pallets/release-2.0.0rc1
Release 2.0.0rc1
2021-04-16 08:52:35 -07:00
David Lord
7df5db7b0c
release version 2.0.0rc1 2021-04-16 08:45:26 -07:00
David Lord
07000942da
update minimum install requirements 2021-04-16 08:45:04 -07:00
David Lord
afda0ed9f2
update deprecated pre-commit hook 2021-04-16 08:44:30 -07:00
David Lord
078a3c3631
update requirements 2021-04-16 08:44:18 -07:00
David Lord
e00a4a4b44
update pallets-sphinx-themes 2021-04-16 08:43:31 -07:00
David Lord
6f09b4b5ed
Merge remote-tracking branch 'origin/1.1.x' into release-2.0.0rc1 2021-04-16 08:37:56 -07:00
David Lord
39887ee4df
Merge pull request #3964 from pgjones/fix
Fix wrapped view function comparison
2021-04-16 06:28:53 -07:00
pgjones
5c6a0f0c12 Fix wrapped view function comparison
Wrapped functions are not comparable, see
https://bugs.python.org/issue3564, therefore a marker is used to note
when the function has been sync wrapped to allow comparison with the
wrapped function instead.

This ensures that multiple route decorators work without raising
exceptions i.e.,

    @app.route("/")
    @app.route("/a")
    async def index():
        ...

works.
2021-04-16 12:34:51 +01:00
David Lord
fab26dcbe9
Merge pull request #3963 from pallets/deprecate-helpers
deprecate `helpers.total_seconds`
2021-04-15 23:18:39 -07:00
David Lord
ec27677f95
remove _os_alt_seps 2021-04-15 23:14:53 -07:00
David Lord
85b430a366
deprecate total_seconds 2021-04-15 23:14:53 -07:00
David Lord
f3ed1322a6
Merge pull request #3962 from pallets/cached-property
locked_cached_property subclasses Werkzeug's cached_property
2021-04-15 23:14:24 -07:00
David Lord
5a7a4ab4c5
locked_cached_property subclasses cached_property 2021-04-15 23:07:28 -07:00
David Lord
8ab4967703
consistent versions and deprecation messages 2021-04-15 15:58:24 -07:00
David Lord
16f51ef799
Merge pull request #3960 from pallets/shell-interactive-hook
shell calls sys.__interativehook__
2021-04-14 10:06:50 -07:00
David Lord
32272da9ac
shell calls sys.__interativehook__
This will set up readline tab and history completion by default.
2021-04-14 10:01:32 -07:00
David Lord
64213fc021
Merge pull request #3923 from pgjones/nested
Nested blueprints
2021-04-14 09:30:48 -07:00
pgjones
f92e820b4b
Nested blueprints
This allows blueprints to be nested within blueprints via a new
Blueprint.register_blueprint method. This should provide a use case
that has been desired for the past ~10 years.

This works by setting the endpoint name to be the blueprint names,
from parent to child delimeted by "." and then iterating over the
blueprint names in reverse order in the app (from most specific to
most general). This means that the expectation of nesting a blueprint
within a nested blueprint is met.
2021-04-14 09:25:42 -07:00