mirror of
https://github.com/jupyter/notebook.git
synced 2025-01-18 11:55:46 +08:00
added --autoreload
flag to NotebookApp
(#4795)
* added `--autoreload` flag When passed, the webapp will watch for any changes to its Python source. On change, all changed packages will be reimported and the webapp will restart. Also works on Python source files in Jupyter server extensions. Implemented using the built in `autoreload` parameter in the constructor of `tornado.web.Application`. * updated .gitignore
This commit is contained in:
parent
7fbbe796c3
commit
01e298f83d
9
.gitignore
vendored
9
.gitignore
vendored
@ -42,3 +42,12 @@ config.rst
|
||||
package-lock.json
|
||||
geckodriver.log
|
||||
*.iml
|
||||
|
||||
# jetbrains IDE stuff
|
||||
*.iml
|
||||
.idea/
|
||||
|
||||
# ms IDE stuff
|
||||
*.code-workspace
|
||||
.history
|
||||
.vscode
|
||||
|
@ -181,6 +181,9 @@ class NotebookWebApplication(web.Application):
|
||||
default_url, settings_overrides, jinja_env_options)
|
||||
handlers = self.init_handlers(settings)
|
||||
|
||||
if settings['autoreload']:
|
||||
log.info('Autoreload enabled: the webapp will restart when any Python src file changes.')
|
||||
|
||||
super(NotebookWebApplication, self).__init__(handlers, **settings)
|
||||
|
||||
def init_settings(self, jupyter_app, kernel_manager, contents_manager,
|
||||
@ -620,6 +623,16 @@ flags['allow-root']=(
|
||||
_("Allow the notebook to be run from root user.")
|
||||
)
|
||||
|
||||
flags['autoreload'] = (
|
||||
{'NotebookApp': {'autoreload': True}},
|
||||
"""Autoreload the webapp
|
||||
|
||||
Enable reloading of the tornado webapp and all imported Python packages
|
||||
when any changes are made to any Python src files in Notebook or
|
||||
extensions.
|
||||
"""
|
||||
)
|
||||
|
||||
# Add notebook manager flags
|
||||
flags.update(boolean_flag('script', 'FileContentsManager.save_script',
|
||||
'DEPRECATED, IGNORED',
|
||||
@ -731,19 +744,23 @@ class NotebookApp(JupyterApp):
|
||||
use_redirect_file = Bool(True, config=True,
|
||||
help="""Disable launching browser by redirect file
|
||||
|
||||
For versions of notebook > 5.7.2, a security feature measure was added that
|
||||
prevented the authentication token used to launch the browser from being visible.
|
||||
This feature makes it difficult for other users on a multi-user system from
|
||||
running code in your Jupyter session as you.
|
||||
For versions of notebook > 5.7.2, a security feature measure was added that
|
||||
prevented the authentication token used to launch the browser from being visible.
|
||||
This feature makes it difficult for other users on a multi-user system from
|
||||
running code in your Jupyter session as you.
|
||||
|
||||
However, some environments (like Windows Subsystem for Linux (WSL) and Chromebooks),
|
||||
launching a browser using a redirect file can lead the browser failing to load.
|
||||
This is because of the difference in file structures/paths between the runtime and
|
||||
the browser.
|
||||
However, some environments (like Windows Subsystem for Linux (WSL) and Chromebooks),
|
||||
launching a browser using a redirect file can lead the browser failing to load.
|
||||
This is because of the difference in file structures/paths between the runtime and
|
||||
the browser.
|
||||
|
||||
Disabling this setting to False will disable this behavior, allowing the browser
|
||||
to launch by using a URL and visible token (as before).
|
||||
"""
|
||||
Disabling this setting to False will disable this behavior, allowing the browser
|
||||
to launch by using a URL and visible token (as before).
|
||||
"""
|
||||
)
|
||||
|
||||
autoreload = Bool(False, config=True,
|
||||
help= ("Reload the webapp when changes are made to any Python src files.")
|
||||
)
|
||||
|
||||
default_url = Unicode('/tree', config=True,
|
||||
@ -1575,6 +1592,7 @@ class NotebookApp(JupyterApp):
|
||||
if self.allow_origin_pat:
|
||||
self.tornado_settings['allow_origin_pat'] = re.compile(self.allow_origin_pat)
|
||||
self.tornado_settings['allow_credentials'] = self.allow_credentials
|
||||
self.tornado_settings['autoreload'] = self.autoreload
|
||||
self.tornado_settings['cookie_options'] = self.cookie_options
|
||||
self.tornado_settings['get_secure_cookie_kwargs'] = self.get_secure_cookie_kwargs
|
||||
self.tornado_settings['token'] = self.token
|
||||
|
Loading…
Reference in New Issue
Block a user