You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Thanks to Jupyter Server 2's IdentityProvider and Authorizer APIs, JupyterHub can almost go without monkeypatching, and implement all of its features via public APIs. However, one JupyterHub feature: disable_user_config is actually harder to implement with the extension mechanism, because it needs to modify the config and template paths of all other extensions. Most, if not all, of these are produced from jupyter_path or jupyter_config_path, and don't inherit from their parent ServerApp. I've resorted to the far-from-ideal patch of the __code__ attribute of the jupyter_core.paths functions to achieve the necessary goal, which was once achieved by a simple subclass override of NotebookApp.
But jupyter_path and jupyter_config_path unconditionally add user paths to their return.
If there were a public option to exclude user paths (ideally an env or module constant like site.ENABLE_USER_SITE so it's a process-global state, not per-call), I think I could achieve this purely via public APIs and remove the last major monkeypatch from jupyterhub.singleuser.
It's a pretty JupyterHub-specific feature, but because the logic resides in jupyter-core and it's unconditional and un-overrideable, I think that's the only way it can be achieved in a public-api way. What do folks think about a jupyter_core.paths.ENABLE_USER_PATHS flag?
The text was updated successfully, but these errors were encountered:
Thanks to Jupyter Server 2's IdentityProvider and Authorizer APIs, JupyterHub can almost go without monkeypatching, and implement all of its features via public APIs. However, one JupyterHub feature:
disable_user_config
is actually harder to implement with the extension mechanism, because it needs to modify the config and template paths of all other extensions. Most, if not all, of these are produced fromjupyter_path
orjupyter_config_path
, and don't inherit from their parent ServerApp. I've resorted to the far-from-ideal patch of the__code__
attribute of thejupyter_core.paths
functions to achieve the necessary goal, which was once achieved by a simple subclass override of NotebookApp.But
jupyter_path
andjupyter_config_path
unconditionally add user paths to their return.If there were a public option to exclude user paths (ideally an env or module constant like
site.ENABLE_USER_SITE
so it's a process-global state, not per-call), I think I could achieve this purely via public APIs and remove the last major monkeypatch from jupyterhub.singleuser.It's a pretty JupyterHub-specific feature, but because the logic resides in jupyter-core and it's unconditional and un-overrideable, I think that's the only way it can be achieved in a public-api way. What do folks think about a
jupyter_core.paths.ENABLE_USER_PATHS
flag?The text was updated successfully, but these errors were encountered: