jupyverse 0.4.2__tar.gz → 0.5.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {jupyverse-0.4.2 → jupyverse-0.5.0}/.github/workflows/check-release.yml +1 -1
- {jupyverse-0.4.2 → jupyverse-0.5.0}/.github/workflows/test.yml +5 -5
- {jupyverse-0.4.2 → jupyverse-0.5.0}/.pre-commit-config.yaml +2 -2
- {jupyverse-0.4.2 → jupyverse-0.5.0}/CHANGELOG.md +17 -2
- {jupyverse-0.4.2 → jupyverse-0.5.0}/CONTRIBUTING.md +1 -1
- {jupyverse-0.4.2 → jupyverse-0.5.0}/PKG-INFO +6 -6
- {jupyverse-0.4.2 → jupyverse-0.5.0}/README.md +2 -2
- jupyverse-0.5.0/binder/jupyter_notebook_config.py +44 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/binder/postBuild +1 -1
- {jupyverse-0.4.2 → jupyverse-0.5.0}/config.yaml +2 -2
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/install.md +9 -9
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/lab.md +1 -1
- jupyverse-0.5.0/docs/plugins/notebook.md +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/usage/single_user.md +1 -1
- jupyverse-0.5.0/jupyverse/__init__.py +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/__init__.py +1 -1
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/cli.py +7 -2
- {jupyverse-0.4.2/jupyverse_api/jupyverse_api/retrolab → jupyverse-0.5.0/jupyverse_api/jupyverse_api/notebook}/__init__.py +6 -6
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/pyproject.toml +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/mkdocs.yml +1 -1
- jupyverse-0.5.0/plugins/auth/fps_auth/__init__.py +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/pyproject.toml +1 -1
- jupyverse-0.5.0/plugins/auth_fief/fps_auth_fief/__init__.py +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/__init__.py +1 -1
- jupyverse-0.5.0/plugins/contents/fps_contents/__init__.py +1 -0
- jupyverse-0.5.0/plugins/frontend/fps_frontend/__init__.py +1 -0
- jupyverse-0.5.0/plugins/jupyterlab/fps_jupyterlab/__init__.py +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/routes.py +2 -2
- jupyverse-0.5.0/plugins/kernels/fps_kernels/__init__.py +1 -0
- jupyverse-0.5.0/plugins/lab/README.md +3 -0
- jupyverse-0.5.0/plugins/lab/fps_lab/__init__.py +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/lab/fps_lab/routes.py +9 -4
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/lab/pyproject.toml +2 -1
- jupyverse-0.5.0/plugins/login/fps_login/__init__.py +1 -0
- jupyverse-0.5.0/plugins/nbconvert/fps_nbconvert/__init__.py +1 -0
- jupyverse-0.5.0/plugins/noauth/fps_noauth/__init__.py +1 -0
- jupyverse-0.5.0/plugins/notebook/README.md +3 -0
- jupyverse-0.5.0/plugins/notebook/fps_notebook/__init__.py +1 -0
- {jupyverse-0.4.2/plugins/retrolab/fps_retrolab → jupyverse-0.5.0/plugins/notebook/fps_notebook}/main.py +5 -5
- {jupyverse-0.4.2/plugins/retrolab/fps_retrolab → jupyverse-0.5.0/plugins/notebook/fps_notebook}/routes.py +47 -46
- {jupyverse-0.4.2/plugins/retrolab → jupyverse-0.5.0/plugins/notebook}/pyproject.toml +6 -6
- jupyverse-0.5.0/plugins/resource_usage/fps_resource_usage/__init__.py +1 -0
- jupyverse-0.5.0/plugins/terminals/fps_terminals/__init__.py +1 -0
- jupyverse-0.5.0/plugins/webdav/fps_webdav/__init__.py +1 -0
- jupyverse-0.5.0/plugins/yjs/fps_yjs/__init__.py +1 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/ybasedoc.py +2 -2
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywidgets/widgets.py +7 -2
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/pyproject.toml +2 -1
- {jupyverse-0.4.2 → jupyverse-0.5.0}/pyproject.toml +19 -10
- jupyverse-0.4.2/binder/jupyter_notebook_config.py +0 -44
- jupyverse-0.4.2/docs/plugins/retrolab.md +0 -1
- jupyverse-0.4.2/jupyverse/__init__.py +0 -1
- jupyverse-0.4.2/plugins/auth/fps_auth/__init__.py +0 -1
- jupyverse-0.4.2/plugins/auth_fief/fps_auth_fief/__init__.py +0 -1
- jupyverse-0.4.2/plugins/contents/fps_contents/__init__.py +0 -1
- jupyverse-0.4.2/plugins/frontend/fps_frontend/__init__.py +0 -1
- jupyverse-0.4.2/plugins/jupyterlab/fps_jupyterlab/__init__.py +0 -1
- jupyverse-0.4.2/plugins/kernels/fps_kernels/__init__.py +0 -1
- jupyverse-0.4.2/plugins/lab/README.md +0 -3
- jupyverse-0.4.2/plugins/lab/fps_lab/__init__.py +0 -1
- jupyverse-0.4.2/plugins/login/fps_login/__init__.py +0 -1
- jupyverse-0.4.2/plugins/nbconvert/fps_nbconvert/__init__.py +0 -1
- jupyverse-0.4.2/plugins/noauth/fps_noauth/__init__.py +0 -1
- jupyverse-0.4.2/plugins/resource_usage/fps_resource_usage/__init__.py +0 -1
- jupyverse-0.4.2/plugins/retrolab/README.md +0 -3
- jupyverse-0.4.2/plugins/retrolab/fps_retrolab/__init__.py +0 -1
- jupyverse-0.4.2/plugins/terminals/fps_terminals/__init__.py +0 -1
- jupyverse-0.4.2/plugins/webdav/fps_webdav/__init__.py +0 -1
- jupyverse-0.4.2/plugins/yjs/fps_yjs/__init__.py +0 -1
- {jupyverse-0.4.2 → jupyverse-0.5.0}/.devcontainer/devcontainer.json +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/.devcontainer/requirements.txt +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/.gitignore +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/binder/environment.yml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/binder/start +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/index.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/jupyter.svg +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/auth.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/contents.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/frontend.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/jupyterlab.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/kernels.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/login.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/nbconvert.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/resource_usage.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/terminals.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/plugins/yjs.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/tutorials/jupyterhub_jupyverse_deployment.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/tutorials/standalone_jupyverse_deployment.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/usage/microservices.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/docs/usage/multi_user.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/app/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/auth/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/auth/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/contents/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/contents/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/exceptions.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/frontend/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/jupyterlab/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/kernels/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/kernels/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/lab/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/login/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/main/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/nbconvert/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/resource_usage/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/terminals/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/terminals/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/yjs/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/yjs/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/notebooks/admin_users.ipynb +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/notebooks/admin_users.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/backends.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/config.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/db.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth/fps_auth/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/backend.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/config.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_fief/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/config.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/db.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/launch.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/models.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/auth_jupyterhub/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/fps_contents/fileid.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/fps_contents/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/fps_contents/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/fps_contents/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/contents/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/frontend/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/frontend/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/frontend/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/frontend/fps_frontend/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/frontend/fps_frontend/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/frontend/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/index.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/jupyterlab/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/connect.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/driver.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/kernelspec.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/message.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/paths.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_server/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_server/message.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_server/server.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/kernels/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/lab/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/lab/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/lab/fps_lab/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/lab/fps_lab/static/favicon.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-busy-1.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-busy-2.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-busy-3.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-file.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-notebook.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-terminal.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon.ico +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/index.html +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/logo/github.svg +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/logo/logo.png +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/fps_login/static/style/index.css +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/login/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/nbconvert/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/nbconvert/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/nbconvert/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/nbconvert/fps_nbconvert/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/nbconvert/fps_nbconvert/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/nbconvert/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/fps_noauth/backends.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/fps_noauth/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/fps_noauth/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/noauth/pyproject.toml +0 -0
- {jupyverse-0.4.2/plugins/retrolab → jupyverse-0.5.0/plugins/notebook}/COPYING.md +0 -0
- {jupyverse-0.4.2/plugins/retrolab → jupyverse-0.5.0/plugins/notebook}/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/resource_usage/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/resource_usage/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/resource_usage/fps_resource_usage/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/resource_usage/fps_resource_usage/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/resource_usage/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/server.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/win_server.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/terminals/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/config.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/pyproject.toml +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/webdav/tests/test_webdav.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/COPYING.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/MANIFEST.in +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/README.md +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/main.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/py.typed +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/routes.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/utils.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/yblob.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/yfile.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/ynotebook.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/yunicode.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/asgi_server.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/awareness.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/django_channels_consumer.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/websocket.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/websocket_provider.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/websocket_server.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/yroom.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/ystore.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/yutils.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywidgets/__init__.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/pytest.ini +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/conftest.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/data/notebook0.ipynb +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/data/notebook1.ipynb +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_app.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_auth.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_contents.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_execute.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_kernels.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_server.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/test_settings.py +0 -0
- {jupyverse-0.4.2 → jupyverse-0.5.0}/tests/utils.py +0 -0
@@ -47,7 +47,7 @@ jobs:
|
|
47
47
|
pip install -e jupyverse_api
|
48
48
|
pip install -e plugins/frontend
|
49
49
|
pip install -e plugins/jupyterlab
|
50
|
-
pip install -e plugins/
|
50
|
+
pip install -e plugins/notebook
|
51
51
|
pip install -e plugins/contents
|
52
52
|
pip install -e plugins/kernels
|
53
53
|
pip install -e plugins/terminals
|
@@ -21,7 +21,7 @@ jobs:
|
|
21
21
|
uses: actions/checkout@v3
|
22
22
|
- uses: actions/setup-python@v4
|
23
23
|
with:
|
24
|
-
python-version: '3.
|
24
|
+
python-version: '3.12'
|
25
25
|
cache: 'pip'
|
26
26
|
- name: Install hatch
|
27
27
|
run: |
|
@@ -32,9 +32,9 @@ jobs:
|
|
32
32
|
hatch run dev.jupyterlab-noauth:typecheck
|
33
33
|
hatch run dev.jupyterlab-auth:typecheck
|
34
34
|
hatch run dev.jupyterlab-auth_fief:typecheck
|
35
|
-
hatch run dev.
|
36
|
-
hatch run dev.
|
37
|
-
hatch run dev.
|
35
|
+
hatch run dev.notebook-noauth:typecheck
|
36
|
+
hatch run dev.notebook-auth:typecheck
|
37
|
+
hatch run dev.notebook-auth_fief:typecheck
|
38
38
|
|
39
39
|
test:
|
40
40
|
name: Tests
|
@@ -43,7 +43,7 @@ jobs:
|
|
43
43
|
fail-fast: false
|
44
44
|
matrix:
|
45
45
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
46
|
-
python-version: [ '3.8', '3.9', '3.10', '3.11' ]
|
46
|
+
python-version: [ '3.8', '3.9', '3.10', '3.11', '3.12' ]
|
47
47
|
|
48
48
|
steps:
|
49
49
|
- name: Checkout
|
@@ -1,6 +1,6 @@
|
|
1
1
|
repos:
|
2
2
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
3
|
-
rev: v4.
|
3
|
+
rev: v4.6.0
|
4
4
|
hooks:
|
5
5
|
- id: end-of-file-fixer
|
6
6
|
- id: check-case-conflict
|
@@ -16,7 +16,7 @@ repos:
|
|
16
16
|
- id: trailing-whitespace
|
17
17
|
|
18
18
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
19
|
-
rev: v0.
|
19
|
+
rev: v0.3.5
|
20
20
|
hooks:
|
21
21
|
- id: ruff
|
22
22
|
args: ["--fix"]
|
@@ -2,6 +2,23 @@
|
|
2
2
|
|
3
3
|
<!-- <START NEW CHANGELOG ENTRY> -->
|
4
4
|
|
5
|
+
## 0.5.0
|
6
|
+
|
7
|
+
([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.4.2...66aac71cf07cbc14c5196cc1c144b9965fec7d2c))
|
8
|
+
|
9
|
+
### Merged PRs
|
10
|
+
|
11
|
+
- Replace RetroLab with Notebook [#396](https://github.com/jupyter-server/jupyverse/pull/396) ([@davidbrochart](https://github.com/davidbrochart))
|
12
|
+
- Update FastAPI-Users v13.0.0 [#395](https://github.com/jupyter-server/jupyverse/pull/395) ([@davidbrochart](https://github.com/davidbrochart))
|
13
|
+
|
14
|
+
### Contributors to this release
|
15
|
+
|
16
|
+
([GitHub contributors page for this release](https://github.com/jupyter-server/jupyverse/graphs/contributors?from=2024-01-02&to=2024-04-12&type=c))
|
17
|
+
|
18
|
+
[@davidbrochart](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Adavidbrochart+updated%3A2024-01-02..2024-04-12&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Apre-commit-ci+updated%3A2024-01-02..2024-04-12&type=Issues)
|
19
|
+
|
20
|
+
<!-- <END NEW CHANGELOG ENTRY> -->
|
21
|
+
|
5
22
|
## 0.4.2
|
6
23
|
|
7
24
|
([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.4.1...2f084c7c744bb2d2865bdad223c680eca5c8a2cb))
|
@@ -16,8 +33,6 @@
|
|
16
33
|
|
17
34
|
[@davidbrochart](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Adavidbrochart+updated%3A2023-12-18..2024-01-02&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Apre-commit-ci+updated%3A2023-12-18..2024-01-02&type=Issues)
|
18
35
|
|
19
|
-
<!-- <END NEW CHANGELOG ENTRY> -->
|
20
|
-
|
21
36
|
## 0.4.1
|
22
37
|
|
23
38
|
([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.4.0...8321cf2a280ebe5e4bb4b09571a5b11855db649a))
|
@@ -6,7 +6,7 @@ cd plugins/auth ; rm -rf dist && python setup.py sdist bdist_wheel ; cp di
|
|
6
6
|
cd plugins/contents ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
7
7
|
cd plugins/lab ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
8
8
|
cd plugins/jupyterlab ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
9
|
-
cd plugins/
|
9
|
+
cd plugins/notebook ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
10
10
|
cd plugins/kernels ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
11
11
|
cd plugins/nbconvert ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
12
12
|
cd plugins/terminals ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
|
@@ -1,6 +1,6 @@
|
|
1
|
-
Metadata-Version: 2.
|
1
|
+
Metadata-Version: 2.3
|
2
2
|
Name: jupyverse
|
3
|
-
Version: 0.
|
3
|
+
Version: 0.5.0
|
4
4
|
Summary: A set of FPS plugins implementing a Jupyter server
|
5
5
|
Project-URL: Homepage, https://jupyter.org
|
6
6
|
Author-email: Jupyter Development Team <jupyter@googlegroups.com>
|
@@ -30,8 +30,8 @@ Provides-Extra: jupyterlab
|
|
30
30
|
Requires-Dist: fps-jupyterlab<1,>=0.1.2; extra == 'jupyterlab'
|
31
31
|
Provides-Extra: noauth
|
32
32
|
Requires-Dist: fps-noauth<1,>=0.1.2; extra == 'noauth'
|
33
|
-
Provides-Extra:
|
34
|
-
Requires-Dist: fps-
|
33
|
+
Provides-Extra: notebook
|
34
|
+
Requires-Dist: fps-notebook<1,>=0.1.2; extra == 'notebook'
|
35
35
|
Provides-Extra: test
|
36
36
|
Requires-Dist: httpx; extra == 'test'
|
37
37
|
Requires-Dist: httpx-ws>=0.4.1; extra == 'test'
|
@@ -57,8 +57,8 @@ Description-Content-Type: text/markdown
|
|
57
57
|
A set of [Asphalt](https://asphalt.readthedocs.io) components implementing a Jupyter server.
|
58
58
|
|
59
59
|
Try it online:
|
60
|
-
- JupyterLab frontend: [](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-
|
61
|
-
-
|
60
|
+
- JupyterLab frontend: [](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-jupyterlab)
|
61
|
+
- Jupyter Notebook frontend: [](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-notebook)
|
62
62
|
|
63
63
|
Documentation is available [here](https://davidbrochart.github.io/jupyverse).
|
64
64
|
|
@@ -5,8 +5,8 @@
|
|
5
5
|
A set of [Asphalt](https://asphalt.readthedocs.io) components implementing a Jupyter server.
|
6
6
|
|
7
7
|
Try it online:
|
8
|
-
- JupyterLab frontend: [](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-
|
9
|
-
-
|
8
|
+
- JupyterLab frontend: [](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-jupyterlab)
|
9
|
+
- Jupyter Notebook frontend: [](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-notebook)
|
10
10
|
|
11
11
|
Documentation is available [here](https://davidbrochart.github.io/jupyverse).
|
12
12
|
|
@@ -0,0 +1,44 @@
|
|
1
|
+
jupyverse_jupyterlab_command = " ".join(
|
2
|
+
[
|
3
|
+
"jupyverse",
|
4
|
+
"--set auth.mode=noauth",
|
5
|
+
"--set frontend.collaborative=true",
|
6
|
+
"--set frontend.base_url={base_url}jupyverse-jupyterlab/",
|
7
|
+
"--disable notebook",
|
8
|
+
"--port={port}",
|
9
|
+
]
|
10
|
+
+ [">jupyverse_jupyterlab.log 2>&1"]
|
11
|
+
)
|
12
|
+
|
13
|
+
|
14
|
+
jupyverse_notebook_command = " ".join(
|
15
|
+
[
|
16
|
+
"jupyverse",
|
17
|
+
"--set auth.mode=noauth",
|
18
|
+
"--set frontend.collaborative=true",
|
19
|
+
"--set frontend.base_url={base_url}jupyverse-notebook/",
|
20
|
+
"--disable jupyterlab",
|
21
|
+
"--port={port}",
|
22
|
+
]
|
23
|
+
+ [">jupyverse_notebook.log 2>&1"]
|
24
|
+
)
|
25
|
+
|
26
|
+
|
27
|
+
c.ServerProxy.servers = {
|
28
|
+
"jupyverse-jupyterlab": {
|
29
|
+
"command": ["/bin/bash", "-c", jupyverse_jupyterlab_command],
|
30
|
+
"timeout": 60,
|
31
|
+
"absolute_url": False,
|
32
|
+
},
|
33
|
+
"jupyverse-notebook": {
|
34
|
+
"command": ["/bin/bash", "-c", jupyverse_notebook_command],
|
35
|
+
"timeout": 60,
|
36
|
+
"absolute_url": False,
|
37
|
+
},
|
38
|
+
}
|
39
|
+
|
40
|
+
c.NotebookApp.default_url = "/jupyverse-jupyterlab"
|
41
|
+
|
42
|
+
import logging
|
43
|
+
|
44
|
+
c.NotebookApp.log_level = logging.DEBUG
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
python -m pip install -e plugins/lab
|
4
4
|
python -m pip install -e plugins/jupyterlab
|
5
|
-
python -m pip install -e plugins/
|
5
|
+
python -m pip install -e plugins/notebook
|
6
6
|
python -m pip install -e plugins/contents
|
7
7
|
python -m pip install -e plugins/kernels
|
8
8
|
python -m pip install -e plugins/terminals
|
@@ -1,4 +1,4 @@
|
|
1
|
-
Jupyverse can be installed to run either [JupyterLab](https://jupyterlab.readthedocs.io) or [
|
1
|
+
Jupyverse can be installed to run either [JupyterLab](https://jupyterlab.readthedocs.io) or [Jupyter Notebook](https://jupyter-notebook.readthedocs.io).
|
2
2
|
|
3
3
|
## With `pip`
|
4
4
|
|
@@ -6,9 +6,9 @@ For the JupyterLab frontend:
|
|
6
6
|
```bash
|
7
7
|
pip install "jupyverse[jupyterlab,auth]"
|
8
8
|
```
|
9
|
-
Or for the
|
9
|
+
Or for the Jupyter Notebook frontend:
|
10
10
|
```bash
|
11
|
-
pip install "jupyverse[
|
11
|
+
pip install "jupyverse[notebook,auth]"
|
12
12
|
```
|
13
13
|
|
14
14
|
## With `micromamba`
|
@@ -27,9 +27,9 @@ For the JupyterLab frontend:
|
|
27
27
|
```bash
|
28
28
|
micromamba install -c conda-forge jupyverse fps-jupyterlab fps-auth
|
29
29
|
```
|
30
|
-
Or for the
|
30
|
+
Or for the Jupyter Notebook frontend:
|
31
31
|
```bash
|
32
|
-
micromamba install -c conda-forge jupyverse fps-
|
32
|
+
micromamba install -c conda-forge jupyverse fps-notebook fps-auth
|
33
33
|
```
|
34
34
|
|
35
35
|
## Development install
|
@@ -69,9 +69,9 @@ Entering `hatch env show` will show the available environments:
|
|
69
69
|
│ dev │ virtual │ dev.jupyterlab-noauth │ test │ lint │
|
70
70
|
│ │ │ dev.jupyterlab-auth │ │ test │
|
71
71
|
│ │ │ dev.jupyterlab-auth_fief │ │ typecheck │
|
72
|
-
│ │ │ dev.
|
73
|
-
│ │ │ dev.
|
74
|
-
│ │ │ dev.
|
72
|
+
│ │ │ dev.notebook-noauth │ │ │
|
73
|
+
│ │ │ dev.notebook-auth │ │ │
|
74
|
+
│ │ │ dev.notebook-auth_fief │ │ │
|
75
75
|
└──────┴─────────┴──────────────────────────┴──────────┴───────────┘
|
76
76
|
```
|
77
77
|
!!! note
|
@@ -80,7 +80,7 @@ Entering `hatch env show` will show the available environments:
|
|
80
80
|
from your local repository. So you want to use the `dev` environment.
|
81
81
|
|
82
82
|
Currently, the `dev` environment matrix consists of all combinations of frontends
|
83
|
-
(`jupyterlab`, `
|
83
|
+
(`jupyterlab`, `notebook`) and authentication methods (`noauth`, `auth`, `auth_fief`),
|
84
84
|
which leads to six environments.
|
85
85
|
|
86
86
|
A number of scripts are available in the `dev` environments. They can be
|
@@ -1 +1 @@
|
|
1
|
-
`fps-lab` implements everything that is common to JupyterLab and
|
1
|
+
`fps-lab` implements everything that is common to JupyterLab and Jupyter Notebook.
|
@@ -0,0 +1 @@
|
|
1
|
+
`fps-notebook` implements the Notebook API.
|
@@ -11,7 +11,7 @@ This is the default mode when launching Jupyverse, just enter in a terminal:
|
|
11
11
|
jupyverse --open-browser
|
12
12
|
# same as: jupyverse --set auth.mode=token --open-browser
|
13
13
|
```
|
14
|
-
This should open a new window in a browser, and load JupyterLab or
|
14
|
+
This should open a new window in a browser, and load JupyterLab or Jupyter Notebook, depending on the front-end you chose to install (see [Install](../../install)).
|
15
15
|
|
16
16
|
If you look at the terminal, you should see among other things:
|
17
17
|
```
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -1,9 +1,14 @@
|
|
1
|
+
import sys
|
1
2
|
from typing import List, Tuple
|
2
3
|
|
3
|
-
import pkg_resources
|
4
4
|
import rich_click as click
|
5
5
|
from asphalt.core.cli import run
|
6
6
|
|
7
|
+
if sys.version_info < (3, 10):
|
8
|
+
from importlib_metadata import entry_points
|
9
|
+
else:
|
10
|
+
from importlib.metadata import entry_points
|
11
|
+
|
7
12
|
|
8
13
|
@click.command() # type: ignore
|
9
14
|
@click.option(
|
@@ -72,7 +77,7 @@ def main(
|
|
72
77
|
def get_config(disable: Tuple[str, ...]) -> str:
|
73
78
|
jupyverse_components = [
|
74
79
|
ep.name
|
75
|
-
for ep in
|
80
|
+
for ep in entry_points(group="jupyverse.components")
|
76
81
|
if ep.name not in disable
|
77
82
|
]
|
78
83
|
|
@@ -10,40 +10,40 @@ from ..auth import Auth, User
|
|
10
10
|
from ..lab import Lab
|
11
11
|
|
12
12
|
|
13
|
-
class
|
13
|
+
class Notebook(Router, ABC):
|
14
14
|
def __init__(self, app: App, auth: Auth, lab: Lab):
|
15
15
|
super().__init__(app=app)
|
16
16
|
|
17
17
|
router = APIRouter()
|
18
18
|
|
19
|
-
@router.get("/
|
19
|
+
@router.get("/tree", response_class=HTMLResponse)
|
20
20
|
async def get_tree(
|
21
21
|
user: User = Depends(auth.current_user()),
|
22
22
|
):
|
23
23
|
return await self.get_tree(user)
|
24
24
|
|
25
|
-
@router.get("/
|
25
|
+
@router.get("/notebooks/{path:path}", response_class=HTMLResponse)
|
26
26
|
async def get_notebook(
|
27
27
|
path,
|
28
28
|
user: User = Depends(auth.current_user()),
|
29
29
|
):
|
30
30
|
return await self.get_notebook(path, user)
|
31
31
|
|
32
|
-
@router.get("/
|
32
|
+
@router.get("/edit/{path:path}", response_class=HTMLResponse)
|
33
33
|
async def edit_file(
|
34
34
|
path,
|
35
35
|
user: User = Depends(auth.current_user()),
|
36
36
|
):
|
37
37
|
return await self.edit_file(path, user)
|
38
38
|
|
39
|
-
@router.get("/
|
39
|
+
@router.get("/consoles/{path:path}", response_class=HTMLResponse)
|
40
40
|
async def get_console(
|
41
41
|
path,
|
42
42
|
user: User = Depends(auth.current_user()),
|
43
43
|
):
|
44
44
|
return await self.get_console(path, user)
|
45
45
|
|
46
|
-
@router.get("/
|
46
|
+
@router.get("/terminals/{name}", response_class=HTMLResponse)
|
47
47
|
async def get_terminal(
|
48
48
|
name: str,
|
49
49
|
user: User = Depends(auth.current_user()),
|
@@ -44,7 +44,7 @@ nav:
|
|
44
44
|
- 'frontend': plugins/frontend.md
|
45
45
|
- 'lab': plugins/lab.md
|
46
46
|
- 'jupyterlab': plugins/jupyterlab.md
|
47
|
-
- '
|
47
|
+
- 'notebook': plugins/notebook.md
|
48
48
|
- 'nbconvert': plugins/nbconvert.md
|
49
49
|
- 'login': plugins/login.md
|
50
50
|
- 'kernels': plugins/kernels.md
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -34,7 +34,7 @@ class _JupyterLab(JupyterLab):
|
|
34
34
|
lab.redirect_after_root = "lab"
|
35
35
|
|
36
36
|
extensions_dir = lab.prefix_dir / "share" / "jupyter" / "labextensions"
|
37
|
-
self.federated_extensions, self.
|
37
|
+
self.federated_extensions, self.disabled_extensions = lab.get_federated_extensions(
|
38
38
|
extensions_dir
|
39
39
|
)
|
40
40
|
jupyterlab_dir = Path(jupyterlab_module.__file__).parents[1]
|
@@ -126,7 +126,7 @@ class _JupyterLab(JupyterLab):
|
|
126
126
|
"collaborative": collaborative,
|
127
127
|
"serverSideExecution": server_side_execution,
|
128
128
|
"devMode": dev_mode,
|
129
|
-
"disabledExtensions": self.
|
129
|
+
"disabledExtensions": self.disabled_extensions,
|
130
130
|
"exposeAppInBrowser": False,
|
131
131
|
"extraLabextensionsPath": [],
|
132
132
|
"federated_extensions": self.federated_extensions,
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -1,13 +1,13 @@
|
|
1
1
|
import json
|
2
2
|
import logging
|
3
3
|
import os
|
4
|
+
import sys
|
4
5
|
from glob import glob
|
5
6
|
from http import HTTPStatus
|
6
7
|
from pathlib import Path
|
7
8
|
from typing import List, Optional, Tuple
|
8
9
|
|
9
10
|
import json5 # type: ignore
|
10
|
-
import pkg_resources
|
11
11
|
from babel import Locale
|
12
12
|
from fastapi import Response, status
|
13
13
|
from fastapi.responses import FileResponse, RedirectResponse
|
@@ -19,6 +19,11 @@ from jupyverse_api.frontend import FrontendConfig
|
|
19
19
|
from jupyverse_api.jupyterlab import JupyterLabConfig
|
20
20
|
from jupyverse_api.lab import Lab
|
21
21
|
|
22
|
+
if sys.version_info < (3, 10):
|
23
|
+
from importlib_metadata import entry_points
|
24
|
+
else:
|
25
|
+
from importlib.metadata import entry_points
|
26
|
+
|
22
27
|
logger = logging.getLogger("lab")
|
23
28
|
|
24
29
|
|
@@ -79,7 +84,7 @@ class _Lab(Lab):
|
|
79
84
|
"nativeName": native_name,
|
80
85
|
}
|
81
86
|
}
|
82
|
-
for ep in
|
87
|
+
for ep in entry_points(group="jupyterlab.languagepack"):
|
83
88
|
locale = Locale.parse(ep.name)
|
84
89
|
data[ep.name] = {
|
85
90
|
"displayName": display_name,
|
@@ -96,7 +101,7 @@ class _Lab(Lab):
|
|
96
101
|
self.locale = language
|
97
102
|
return {}
|
98
103
|
|
99
|
-
for ep in
|
104
|
+
for ep in entry_points(group="jupyterlab.languagepack"):
|
100
105
|
if ep.name == language:
|
101
106
|
break
|
102
107
|
else:
|
@@ -120,7 +125,7 @@ class _Lab(Lab):
|
|
120
125
|
):
|
121
126
|
with open(self.jlab_dir / "static" / "package.json") as f:
|
122
127
|
package = json.load(f)
|
123
|
-
if name0 in ["@jupyterlab", "@
|
128
|
+
if name0 in ["@jupyterlab", "@notebook"]:
|
124
129
|
schemas_parent = self.jlab_dir
|
125
130
|
else:
|
126
131
|
schemas_parent = self.extensions_dir / name0 / name1
|
@@ -4,10 +4,11 @@ build-backend = "hatchling.build"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "fps_lab"
|
7
|
-
description = "An FPS plugin for the JupyterLab/
|
7
|
+
description = "An FPS plugin for the JupyterLab/Notebook API"
|
8
8
|
keywords = ["jupyter", "server", "fastapi", "plugins"]
|
9
9
|
requires-python = ">=3.8"
|
10
10
|
dependencies = [
|
11
|
+
"importlib_metadata >=3.6; python_version<'3.10'",
|
11
12
|
"babel",
|
12
13
|
"json5",
|
13
14
|
"jupyverse-api >=0.1.2,<1",
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -0,0 +1 @@
|
|
1
|
+
__version__ = "0.5.0"
|
@@ -4,12 +4,12 @@ from jupyverse_api.app import App
|
|
4
4
|
from jupyverse_api.auth import Auth
|
5
5
|
from jupyverse_api.frontend import FrontendConfig
|
6
6
|
from jupyverse_api.lab import Lab
|
7
|
-
from jupyverse_api.
|
7
|
+
from jupyverse_api.notebook import Notebook
|
8
8
|
|
9
|
-
from .routes import
|
9
|
+
from .routes import _Notebook
|
10
10
|
|
11
11
|
|
12
|
-
class
|
12
|
+
class NotebookComponent(Component):
|
13
13
|
async def start(
|
14
14
|
self,
|
15
15
|
ctx: Context,
|
@@ -19,5 +19,5 @@ class RetroLabComponent(Component):
|
|
19
19
|
frontend_config = await ctx.request_resource(FrontendConfig)
|
20
20
|
lab = await ctx.request_resource(Lab) # type: ignore
|
21
21
|
|
22
|
-
|
23
|
-
ctx.add_resource(
|
22
|
+
notebook = _Notebook(app, auth, frontend_config, lab)
|
23
|
+
ctx.add_resource(notebook, types=Notebook)
|