diff --git a/CHANGES.rst b/CHANGES.rst index 3af9a706..5f9c2e69 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -39,6 +39,9 @@ Unreleased load command entry points. :issue:`4419` - Overriding ``FlaskClient.open`` will not cause an error on redirect. :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 diff --git a/docs/cli.rst b/docs/cli.rst index e367c4b9..4b40307e 100644 --- a/docs/cli.rst +++ b/docs/cli.rst @@ -262,6 +262,15 @@ separated with ``:``, or ``;`` on Windows. * 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 ---------- diff --git a/src/flask/cli.py b/src/flask/cli.py index 3a51535e..d59942b8 100644 --- a/src/flask/cli.py +++ b/src/flask/cli.py @@ -796,9 +796,28 @@ class SeparatedPathType(click.Path): 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 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. @@ -830,6 +849,7 @@ def run_command( threaded=with_threads, ssl_context=cert, extra_files=extra_files, + exclude_patterns=exclude_patterns, )