From 1d5f654783100e8408d20b2fed11c9ac5980a585 Mon Sep 17 00:00:00 2001 From: Bilal Mahmoud Date: Thu, 20 May 2021 16:00:18 +0200 Subject: [PATCH 1/3] SocketIO.run() new reloader specific params Currently, the SocketIO development server can only include additional files, but not selectively exclude them during debugging. The Werkzeug reloader already provides a parameter to be able to exclude specific patterns, leveraging that ability, SocketIO would be able to do the same. An additional parameter was added the run() method has the same behavior across extra_files, exclude_patterns, and reloader_type The same has been done for the reloader_type additional argument. Werkzeug lets you choose which reloader to use and depending on the architecture/machine it may be beneficial to allow explicitly specifying the reloader used. --- flask_socketio/__init__.py | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/flask_socketio/__init__.py b/flask_socketio/__init__.py index 12ab46f3..7d39e3f3 100644 --- a/flask_socketio/__init__.py +++ b/flask_socketio/__init__.py @@ -529,6 +529,11 @@ def run(self, app, host=None, port=None, **kwargs): to disable it. :param extra_files: A list of additional files that the Flask reloader should watch. Defaults to ``None`` + :param exclude_patterns: A list of patterns (matched by fnmatch) + the Flask reloader should exclude. + Defaults to ``None`` + :param reloader_type: The reloader Flask should use when + reloading is enabled. Detauls to ``auto`` :param log_output: If ``True``, the server logs all incoming connections. If ``False`` logging is disabled. Defaults to ``True`` in debug mode, ``False`` @@ -554,6 +559,8 @@ def run(self, app, host=None, port=None, **kwargs): log_output = kwargs.pop('log_output', debug) use_reloader = kwargs.pop('use_reloader', debug) extra_files = kwargs.pop('extra_files', None) + exclude_patterns = kwargs.pop('exclude_patterns', None) + reloader_type = kwargs.pop('reloader_type', 'auto') app.debug = debug if app.debug and self.server.eio.async_mode != 'threading': @@ -616,7 +623,9 @@ def run_server(): log_output=log_output, **kwargs) if use_reloader: - run_with_reloader(run_server, extra_files=extra_files) + run_with_reloader(run_server, extra_files=extra_files, + exclude_patterns=exclude_patterns, + reloader_type=reloader_type) else: run_server() elif self.server.eio.async_mode == 'gevent': @@ -650,7 +659,9 @@ def run_server(): def run_server(): self.wsgi_server.serve_forever() - run_with_reloader(run_server, extra_files=extra_files) + run_with_reloader(run_server, extra_files=extra_files, + exclude_patterns=exclude_patterns + reloader_type=reloader_type) else: self.wsgi_server.serve_forever() From f27d6667dc262b5d68bce3980f9edae5d9b96a0b Mon Sep 17 00:00:00 2001 From: Bilal Mahmoud Date: Thu, 20 May 2021 16:02:02 +0200 Subject: [PATCH 2/3] fix typo --- flask_socketio/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/flask_socketio/__init__.py b/flask_socketio/__init__.py index 7d39e3f3..8a7a2ac2 100644 --- a/flask_socketio/__init__.py +++ b/flask_socketio/__init__.py @@ -660,7 +660,7 @@ def run_server(): self.wsgi_server.serve_forever() run_with_reloader(run_server, extra_files=extra_files, - exclude_patterns=exclude_patterns + exclude_patterns=exclude_patterns, reloader_type=reloader_type) else: self.wsgi_server.serve_forever() From f73aabe950c0a0239eac510668e3f282cafada8a Mon Sep 17 00:00:00 2001 From: Bilal Mahmoud Date: Fri, 21 May 2021 11:09:21 +0200 Subject: [PATCH 3/3] fix W291 trailing whitespace --- flask_socketio/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/flask_socketio/__init__.py b/flask_socketio/__init__.py index 8a7a2ac2..498ba03c 100644 --- a/flask_socketio/__init__.py +++ b/flask_socketio/__init__.py @@ -623,7 +623,7 @@ def run_server(): log_output=log_output, **kwargs) if use_reloader: - run_with_reloader(run_server, extra_files=extra_files, + run_with_reloader(run_server, extra_files=extra_files, exclude_patterns=exclude_patterns, reloader_type=reloader_type) else: @@ -659,7 +659,7 @@ def run_server(): def run_server(): self.wsgi_server.serve_forever() - run_with_reloader(run_server, extra_files=extra_files, + run_with_reloader(run_server, extra_files=extra_files, exclude_patterns=exclude_patterns, reloader_type=reloader_type) else: