add `exclude-patterns` option to `flask run`

This commit is contained in:
Mickaël Guérin 2021-07-06 13:32:45 +02:00 committed by David Lord
parent e06dad62f6
commit beae1249f7
No known key found for this signature in database
GPG Key ID: 7A1C87E3F5BC42A8
3 changed files with 33 additions and 1 deletions

View File

@ -39,6 +39,9 @@ Unreleased
load command entry points. :issue:`4419` load command entry points. :issue:`4419`
- Overriding ``FlaskClient.open`` will not cause an error on redirect. - Overriding ``FlaskClient.open`` will not cause an error on redirect.
:issue:`3396` :issue:`3396`
- Add an ``--exclude-patterns`` option to the ``flask run`` CLI
command to specify patterns that will be ignored by the reloader.
:issue:`4188`
Version 2.0.3 Version 2.0.3

View File

@ -262,6 +262,15 @@ separated with ``:``, or ``;`` on Windows.
* Detected change in '/path/to/file1', reloading * Detected change in '/path/to/file1', reloading
Ignore files with the Reloader
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The reloader can also ignore files using :mod:`fnmatch` patterns with
the ``--exclude-patterns`` option, or the ``FLASK_RUN_EXCLUDE_PATTERNS``
environment variable. Multiple patterns are separated with ``:``, or
``;`` on Windows.
Debug Mode Debug Mode
---------- ----------

View File

@ -796,9 +796,28 @@ class SeparatedPathType(click.Path):
f" are separated by {os.path.pathsep!r}." f" are separated by {os.path.pathsep!r}."
), ),
) )
@click.option(
"--exclude-patterns",
default=None,
type=SeparatedPathType(),
help=(
"Files matching these fnmatch patterns will not trigger a reload"
" on change. Multiple patterns are separated by"
f" {os.path.pathsep!r}."
),
)
@pass_script_info @pass_script_info
def run_command( def run_command(
info, host, port, reload, debugger, eager_loading, with_threads, cert, extra_files info,
host,
port,
reload,
debugger,
eager_loading,
with_threads,
cert,
extra_files,
exclude_patterns,
): ):
"""Run a local development server. """Run a local development server.
@ -830,6 +849,7 @@ def run_command(
threaded=with_threads, threaded=with_threads,
ssl_context=cert, ssl_context=cert,
extra_files=extra_files, extra_files=extra_files,
exclude_patterns=exclude_patterns,
) )