jupyverse 0.4.1__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.
Files changed (272) hide show
  1. {jupyverse-0.4.1 → jupyverse-0.5.0}/.github/workflows/check-release.yml +1 -1
  2. {jupyverse-0.4.1 → jupyverse-0.5.0}/.github/workflows/test.yml +5 -5
  3. {jupyverse-0.4.1 → jupyverse-0.5.0}/.pre-commit-config.yaml +2 -2
  4. {jupyverse-0.4.1 → jupyverse-0.5.0}/CHANGELOG.md +31 -2
  5. {jupyverse-0.4.1 → jupyverse-0.5.0}/CONTRIBUTING.md +1 -1
  6. {jupyverse-0.4.1 → jupyverse-0.5.0}/PKG-INFO +6 -6
  7. {jupyverse-0.4.1 → jupyverse-0.5.0}/README.md +2 -2
  8. jupyverse-0.5.0/binder/jupyter_notebook_config.py +44 -0
  9. {jupyverse-0.4.1 → jupyverse-0.5.0}/binder/postBuild +1 -1
  10. {jupyverse-0.4.1 → jupyverse-0.5.0}/config.yaml +2 -2
  11. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/install.md +9 -9
  12. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/lab.md +1 -1
  13. jupyverse-0.5.0/docs/plugins/notebook.md +1 -0
  14. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/usage/single_user.md +1 -1
  15. jupyverse-0.5.0/jupyverse/__init__.py +1 -0
  16. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/__init__.py +1 -1
  17. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/cli.py +7 -2
  18. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/exceptions.py +5 -2
  19. {jupyverse-0.4.1/jupyverse_api/jupyverse_api/retrolab → jupyverse-0.5.0/jupyverse_api/jupyverse_api/notebook}/__init__.py +6 -6
  20. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/pyproject.toml +1 -0
  21. {jupyverse-0.4.1 → jupyverse-0.5.0}/mkdocs.yml +1 -1
  22. jupyverse-0.5.0/plugins/auth/fps_auth/__init__.py +1 -0
  23. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/pyproject.toml +1 -1
  24. jupyverse-0.5.0/plugins/auth_fief/fps_auth_fief/__init__.py +1 -0
  25. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/__init__.py +1 -1
  26. jupyverse-0.5.0/plugins/contents/fps_contents/__init__.py +1 -0
  27. jupyverse-0.5.0/plugins/frontend/fps_frontend/__init__.py +1 -0
  28. jupyverse-0.5.0/plugins/jupyterlab/fps_jupyterlab/__init__.py +1 -0
  29. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/routes.py +2 -2
  30. jupyverse-0.5.0/plugins/kernels/fps_kernels/__init__.py +1 -0
  31. jupyverse-0.5.0/plugins/lab/README.md +3 -0
  32. jupyverse-0.5.0/plugins/lab/fps_lab/__init__.py +1 -0
  33. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/lab/fps_lab/routes.py +9 -4
  34. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/lab/pyproject.toml +2 -1
  35. jupyverse-0.5.0/plugins/login/fps_login/__init__.py +1 -0
  36. jupyverse-0.5.0/plugins/nbconvert/fps_nbconvert/__init__.py +1 -0
  37. jupyverse-0.5.0/plugins/noauth/fps_noauth/__init__.py +1 -0
  38. jupyverse-0.5.0/plugins/notebook/README.md +3 -0
  39. jupyverse-0.5.0/plugins/notebook/fps_notebook/__init__.py +1 -0
  40. {jupyverse-0.4.1/plugins/retrolab/fps_retrolab → jupyverse-0.5.0/plugins/notebook/fps_notebook}/main.py +5 -5
  41. {jupyverse-0.4.1/plugins/retrolab/fps_retrolab → jupyverse-0.5.0/plugins/notebook/fps_notebook}/routes.py +47 -46
  42. {jupyverse-0.4.1/plugins/retrolab → jupyverse-0.5.0/plugins/notebook}/pyproject.toml +6 -6
  43. jupyverse-0.5.0/plugins/resource_usage/fps_resource_usage/__init__.py +1 -0
  44. jupyverse-0.5.0/plugins/terminals/fps_terminals/__init__.py +1 -0
  45. jupyverse-0.5.0/plugins/webdav/fps_webdav/__init__.py +1 -0
  46. jupyverse-0.5.0/plugins/yjs/fps_yjs/__init__.py +1 -0
  47. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/ybasedoc.py +2 -2
  48. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywidgets/widgets.py +7 -2
  49. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/pyproject.toml +2 -1
  50. {jupyverse-0.4.1 → jupyverse-0.5.0}/pyproject.toml +19 -10
  51. jupyverse-0.4.1/binder/jupyter_notebook_config.py +0 -44
  52. jupyverse-0.4.1/docs/plugins/retrolab.md +0 -1
  53. jupyverse-0.4.1/jupyverse/__init__.py +0 -1
  54. jupyverse-0.4.1/plugins/auth/fps_auth/__init__.py +0 -1
  55. jupyverse-0.4.1/plugins/auth_fief/fps_auth_fief/__init__.py +0 -1
  56. jupyverse-0.4.1/plugins/contents/fps_contents/__init__.py +0 -1
  57. jupyverse-0.4.1/plugins/frontend/fps_frontend/__init__.py +0 -1
  58. jupyverse-0.4.1/plugins/jupyterlab/fps_jupyterlab/__init__.py +0 -1
  59. jupyverse-0.4.1/plugins/kernels/fps_kernels/__init__.py +0 -1
  60. jupyverse-0.4.1/plugins/lab/README.md +0 -3
  61. jupyverse-0.4.1/plugins/lab/fps_lab/__init__.py +0 -1
  62. jupyverse-0.4.1/plugins/login/fps_login/__init__.py +0 -1
  63. jupyverse-0.4.1/plugins/nbconvert/fps_nbconvert/__init__.py +0 -1
  64. jupyverse-0.4.1/plugins/noauth/fps_noauth/__init__.py +0 -1
  65. jupyverse-0.4.1/plugins/resource_usage/fps_resource_usage/__init__.py +0 -1
  66. jupyverse-0.4.1/plugins/retrolab/README.md +0 -3
  67. jupyverse-0.4.1/plugins/retrolab/fps_retrolab/__init__.py +0 -1
  68. jupyverse-0.4.1/plugins/terminals/fps_terminals/__init__.py +0 -1
  69. jupyverse-0.4.1/plugins/webdav/fps_webdav/__init__.py +0 -1
  70. jupyverse-0.4.1/plugins/yjs/fps_yjs/__init__.py +0 -1
  71. {jupyverse-0.4.1 → jupyverse-0.5.0}/.devcontainer/devcontainer.json +0 -0
  72. {jupyverse-0.4.1 → jupyverse-0.5.0}/.devcontainer/requirements.txt +0 -0
  73. {jupyverse-0.4.1 → jupyverse-0.5.0}/.gitignore +0 -0
  74. {jupyverse-0.4.1 → jupyverse-0.5.0}/COPYING.md +0 -0
  75. {jupyverse-0.4.1 → jupyverse-0.5.0}/MANIFEST.in +0 -0
  76. {jupyverse-0.4.1 → jupyverse-0.5.0}/binder/environment.yml +0 -0
  77. {jupyverse-0.4.1 → jupyverse-0.5.0}/binder/start +0 -0
  78. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/index.md +0 -0
  79. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/jupyter.svg +0 -0
  80. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/auth.md +0 -0
  81. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/contents.md +0 -0
  82. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/frontend.md +0 -0
  83. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/jupyterlab.md +0 -0
  84. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/kernels.md +0 -0
  85. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/login.md +0 -0
  86. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/nbconvert.md +0 -0
  87. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/resource_usage.md +0 -0
  88. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/terminals.md +0 -0
  89. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/plugins/yjs.md +0 -0
  90. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/tutorials/jupyterhub_jupyverse_deployment.md +0 -0
  91. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/tutorials/standalone_jupyverse_deployment.md +0 -0
  92. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/usage/microservices.md +0 -0
  93. {jupyverse-0.4.1 → jupyverse-0.5.0}/docs/usage/multi_user.md +0 -0
  94. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse/py.typed +0 -0
  95. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/COPYING.md +0 -0
  96. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/README.md +0 -0
  97. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/app/__init__.py +0 -0
  98. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/auth/__init__.py +0 -0
  99. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/auth/models.py +0 -0
  100. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/contents/__init__.py +0 -0
  101. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/contents/models.py +0 -0
  102. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/frontend/__init__.py +0 -0
  103. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/jupyterlab/__init__.py +0 -0
  104. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/kernels/__init__.py +0 -0
  105. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/kernels/models.py +0 -0
  106. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/lab/__init__.py +0 -0
  107. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/login/__init__.py +0 -0
  108. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/main/__init__.py +0 -0
  109. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/nbconvert/__init__.py +0 -0
  110. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/py.typed +0 -0
  111. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/resource_usage/__init__.py +0 -0
  112. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/terminals/__init__.py +0 -0
  113. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/terminals/models.py +0 -0
  114. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/yjs/__init__.py +0 -0
  115. {jupyverse-0.4.1 → jupyverse-0.5.0}/jupyverse_api/jupyverse_api/yjs/models.py +0 -0
  116. {jupyverse-0.4.1 → jupyverse-0.5.0}/notebooks/admin_users.ipynb +0 -0
  117. {jupyverse-0.4.1 → jupyverse-0.5.0}/notebooks/admin_users.py +0 -0
  118. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/COPYING.md +0 -0
  119. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/MANIFEST.in +0 -0
  120. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/README.md +0 -0
  121. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/backends.py +0 -0
  122. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/config.py +0 -0
  123. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/db.py +0 -0
  124. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/main.py +0 -0
  125. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/models.py +0 -0
  126. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/py.typed +0 -0
  127. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth/fps_auth/routes.py +0 -0
  128. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/COPYING.md +0 -0
  129. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/MANIFEST.in +0 -0
  130. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/README.md +0 -0
  131. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/backend.py +0 -0
  132. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/config.py +0 -0
  133. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/main.py +0 -0
  134. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/fps_auth_fief/routes.py +0 -0
  135. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_fief/pyproject.toml +0 -0
  136. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/COPYING.md +0 -0
  137. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/README.md +0 -0
  138. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/config.py +0 -0
  139. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/db.py +0 -0
  140. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/launch.py +0 -0
  141. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/main.py +0 -0
  142. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/models.py +0 -0
  143. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/fps_auth_jupyterhub/routes.py +0 -0
  144. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/auth_jupyterhub/pyproject.toml +0 -0
  145. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/COPYING.md +0 -0
  146. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/MANIFEST.in +0 -0
  147. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/README.md +0 -0
  148. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/fps_contents/fileid.py +0 -0
  149. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/fps_contents/main.py +0 -0
  150. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/fps_contents/py.typed +0 -0
  151. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/fps_contents/routes.py +0 -0
  152. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/contents/pyproject.toml +0 -0
  153. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/frontend/COPYING.md +0 -0
  154. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/frontend/MANIFEST.in +0 -0
  155. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/frontend/README.md +0 -0
  156. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/frontend/fps_frontend/main.py +0 -0
  157. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/frontend/fps_frontend/py.typed +0 -0
  158. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/frontend/pyproject.toml +0 -0
  159. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/COPYING.md +0 -0
  160. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/MANIFEST.in +0 -0
  161. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/README.md +0 -0
  162. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/index.py +0 -0
  163. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/main.py +0 -0
  164. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/fps_jupyterlab/py.typed +0 -0
  165. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/jupyterlab/pyproject.toml +0 -0
  166. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/COPYING.md +0 -0
  167. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/MANIFEST.in +0 -0
  168. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/README.md +0 -0
  169. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/__init__.py +0 -0
  170. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/connect.py +0 -0
  171. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/driver.py +0 -0
  172. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/kernelspec.py +0 -0
  173. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/message.py +0 -0
  174. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_driver/paths.py +0 -0
  175. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_server/__init__.py +0 -0
  176. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_server/message.py +0 -0
  177. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/kernel_server/server.py +0 -0
  178. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/main.py +0 -0
  179. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/fps_kernels/routes.py +0 -0
  180. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/kernels/pyproject.toml +0 -0
  181. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/lab/COPYING.md +0 -0
  182. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/lab/MANIFEST.in +0 -0
  183. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/lab/fps_lab/main.py +0 -0
  184. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/lab/fps_lab/static/favicon.ico +0 -0
  185. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/COPYING.md +0 -0
  186. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/MANIFEST.in +0 -0
  187. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/README.md +0 -0
  188. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/main.py +0 -0
  189. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/routes.py +0 -0
  190. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-busy-1.ico +0 -0
  191. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-busy-2.ico +0 -0
  192. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-busy-3.ico +0 -0
  193. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-file.ico +0 -0
  194. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-notebook.ico +0 -0
  195. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon-terminal.ico +0 -0
  196. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/favicons/favicon.ico +0 -0
  197. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/index.html +0 -0
  198. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/logo/github.svg +0 -0
  199. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/logo/logo.png +0 -0
  200. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/fps_login/static/style/index.css +0 -0
  201. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/login/pyproject.toml +0 -0
  202. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/nbconvert/COPYING.md +0 -0
  203. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/nbconvert/MANIFEST.in +0 -0
  204. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/nbconvert/README.md +0 -0
  205. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/nbconvert/fps_nbconvert/main.py +0 -0
  206. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/nbconvert/fps_nbconvert/routes.py +0 -0
  207. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/nbconvert/pyproject.toml +0 -0
  208. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/COPYING.md +0 -0
  209. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/MANIFEST.in +0 -0
  210. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/README.md +0 -0
  211. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/fps_noauth/backends.py +0 -0
  212. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/fps_noauth/main.py +0 -0
  213. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/fps_noauth/py.typed +0 -0
  214. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/noauth/pyproject.toml +0 -0
  215. {jupyverse-0.4.1/plugins/retrolab → jupyverse-0.5.0/plugins/notebook}/COPYING.md +0 -0
  216. {jupyverse-0.4.1/plugins/retrolab → jupyverse-0.5.0/plugins/notebook}/MANIFEST.in +0 -0
  217. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/resource_usage/COPYING.md +0 -0
  218. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/resource_usage/README.md +0 -0
  219. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/resource_usage/fps_resource_usage/main.py +0 -0
  220. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/resource_usage/fps_resource_usage/routes.py +0 -0
  221. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/resource_usage/pyproject.toml +0 -0
  222. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/COPYING.md +0 -0
  223. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/MANIFEST.in +0 -0
  224. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/README.md +0 -0
  225. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/main.py +0 -0
  226. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/routes.py +0 -0
  227. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/server.py +0 -0
  228. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/fps_terminals/win_server.py +0 -0
  229. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/terminals/pyproject.toml +0 -0
  230. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/COPYING.md +0 -0
  231. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/README.md +0 -0
  232. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/config.py +0 -0
  233. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/main.py +0 -0
  234. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/py.typed +0 -0
  235. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/fps_webdav/routes.py +0 -0
  236. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/pyproject.toml +0 -0
  237. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/webdav/tests/test_webdav.py +0 -0
  238. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/COPYING.md +0 -0
  239. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/MANIFEST.in +0 -0
  240. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/README.md +0 -0
  241. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/main.py +0 -0
  242. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/py.typed +0 -0
  243. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/routes.py +0 -0
  244. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/__init__.py +0 -0
  245. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/utils.py +0 -0
  246. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/yblob.py +0 -0
  247. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/yfile.py +0 -0
  248. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/ynotebook.py +0 -0
  249. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ydocs/yunicode.py +0 -0
  250. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/__init__.py +0 -0
  251. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/asgi_server.py +0 -0
  252. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/awareness.py +0 -0
  253. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/django_channels_consumer.py +0 -0
  254. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/websocket.py +0 -0
  255. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/websocket_provider.py +0 -0
  256. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/websocket_server.py +0 -0
  257. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/yroom.py +0 -0
  258. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/ystore.py +0 -0
  259. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywebsocket/yutils.py +0 -0
  260. {jupyverse-0.4.1 → jupyverse-0.5.0}/plugins/yjs/fps_yjs/ywidgets/__init__.py +0 -0
  261. {jupyverse-0.4.1 → jupyverse-0.5.0}/pytest.ini +0 -0
  262. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/conftest.py +0 -0
  263. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/data/notebook0.ipynb +0 -0
  264. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/data/notebook1.ipynb +0 -0
  265. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_app.py +0 -0
  266. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_auth.py +0 -0
  267. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_contents.py +0 -0
  268. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_execute.py +0 -0
  269. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_kernels.py +0 -0
  270. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_server.py +0 -0
  271. {jupyverse-0.4.1 → jupyverse-0.5.0}/tests/test_settings.py +0 -0
  272. {jupyverse-0.4.1 → 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/retrolab
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.11'
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.retrolab-noauth:typecheck
36
- hatch run dev.retrolab-auth:typecheck
37
- hatch run dev.retrolab-auth_fief:typecheck
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.5.0
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.1.7
19
+ rev: v0.3.5
20
20
  hooks:
21
21
  - id: ruff
22
22
  args: ["--fix"]
@@ -2,6 +2,37 @@
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
+
22
+ ## 0.4.2
23
+
24
+ ([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.4.1...2f084c7c744bb2d2865bdad223c680eca5c8a2cb))
25
+
26
+ ### Merged PRs
27
+
28
+ - Update pycrdt >=0.8.2 [#379](https://github.com/jupyter-server/jupyverse/pull/379) ([@davidbrochart](https://github.com/davidbrochart))
29
+
30
+ ### Contributors to this release
31
+
32
+ ([GitHub contributors page for this release](https://github.com/jupyter-server/jupyverse/graphs/contributors?from=2023-12-18&to=2024-01-02&type=c))
33
+
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)
35
+
5
36
  ## 0.4.1
6
37
 
7
38
  ([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.4.0...8321cf2a280ebe5e4bb4b09571a5b11855db649a))
@@ -16,8 +47,6 @@
16
47
 
17
48
  [@davidbrochart](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Adavidbrochart+updated%3A2023-12-16..2023-12-18&type=Issues)
18
49
 
19
- <!-- <END NEW CHANGELOG ENTRY> -->
20
-
21
50
  ## 0.4.0
22
51
 
23
52
  ([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.3.0...73a16c326e333838aaa8ec2321c40d5d13a96f05))
@@ -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/retrolab ; rm -rf dist && python setup.py sdist bdist_wheel ; cp dist/* ../../dist/ ; cd ../..
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
1
+ Metadata-Version: 2.3
2
2
  Name: jupyverse
3
- Version: 0.4.1
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: retrolab
34
- Requires-Dist: fps-retrolab<1,>=0.1.2; extra == 'retrolab'
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: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-jlab)
61
- - RetroLab frontend: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-rlab)
60
+ - JupyterLab frontend: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-jupyterlab)
61
+ - Jupyter Notebook frontend: [![Binder](https://mybinder.org/badge_logo.svg)](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: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-jlab)
9
- - RetroLab frontend: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-rlab)
8
+ - JupyterLab frontend: [![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/jupyter-server/jupyverse/HEAD?urlpath=jupyverse-jupyterlab)
9
+ - Jupyter Notebook frontend: [![Binder](https://mybinder.org/badge_logo.svg)](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/retrolab
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
@@ -27,8 +27,8 @@ component:
27
27
  resource_usage:
28
28
  type: resource_usage
29
29
  track_cpu_percent: true
30
- #retrolab:
31
- # type: retrolab
30
+ #notebook:
31
+ # type: notebook
32
32
  terminals:
33
33
  type: terminals
34
34
  yjs:
@@ -1,4 +1,4 @@
1
- Jupyverse can be installed to run either [JupyterLab](https://jupyterlab.readthedocs.io) or [RetroLab](https://github.com/jupyterlab/retrolab).
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 RetroLab frontend:
9
+ Or for the Jupyter Notebook frontend:
10
10
  ```bash
11
- pip install "jupyverse[retrolab,auth]"
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 RetroLab frontend:
30
+ Or for the Jupyter Notebook frontend:
31
31
  ```bash
32
- micromamba install -c conda-forge jupyverse fps-retrolab fps-auth
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.retrolab-noauth │ │ │
73
- │ │ │ dev.retrolab-auth │ │ │
74
- │ │ │ dev.retrolab-auth_fief │ │ │
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`, `retrolab`) and authentication methods (`noauth`, `auth`, `auth_fief`),
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 RetroLab.
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 RetroLab, depending on the front-end you chose to install (see [Install](../../install)).
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"
@@ -4,7 +4,7 @@ from pydantic import BaseModel
4
4
 
5
5
  from .app import App
6
6
 
7
- __version__ = "0.4.1"
7
+ __version__ = "0.5.0"
8
8
 
9
9
 
10
10
  class Singleton(type):
@@ -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 pkg_resources.iter_entry_points(group="jupyverse.components")
80
+ for ep in entry_points(group="jupyverse.components")
76
81
  if ep.name not in disable
77
82
  ]
78
83
 
@@ -1,4 +1,6 @@
1
- from fastapi import Request, Response
1
+ from typing import cast
2
+
3
+ from fastapi import Request
2
4
  from fastapi.responses import RedirectResponse
3
5
 
4
6
 
@@ -7,5 +9,6 @@ class RedirectException(Exception):
7
9
  self.redirect_to = redirect_to
8
10
 
9
11
 
10
- async def _redirect_exception_handler(request: Request, exc: RedirectException) -> Response:
12
+ async def _redirect_exception_handler(request: Request, exc: Exception) -> RedirectResponse:
13
+ exc = cast(RedirectException, exc)
11
14
  return RedirectResponse(url=exc.redirect_to)
@@ -10,40 +10,40 @@ from ..auth import Auth, User
10
10
  from ..lab import Lab
11
11
 
12
12
 
13
- class RetroLab(Router, ABC):
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("/retro/tree", response_class=HTMLResponse)
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("/retro/notebooks/{path:path}", response_class=HTMLResponse)
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("/retro/edit/{path:path}", response_class=HTMLResponse)
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("/retro/consoles/{path:path}", response_class=HTMLResponse)
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("/retro/terminals/{name}", response_class=HTMLResponse)
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()),
@@ -24,6 +24,7 @@ classifiers = [
24
24
  "Programming Language :: Python :: Implementation :: PyPy",
25
25
  ]
26
26
  dependencies = [
27
+ "importlib_metadata >=3.6; python_version<'3.10'",
27
28
  "pydantic >=2,<3",
28
29
  "fastapi >=0.95.0,<1",
29
30
  "rich-click >=1.6.1,<2",
@@ -44,7 +44,7 @@ nav:
44
44
  - 'frontend': plugins/frontend.md
45
45
  - 'lab': plugins/lab.md
46
46
  - 'jupyterlab': plugins/jupyterlab.md
47
- - 'retrolab': plugins/retrolab.md
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"
@@ -10,7 +10,7 @@ dynamic = ["version"]
10
10
  requires-python = ">=3.8"
11
11
  dependencies = [
12
12
  "aiosqlite",
13
- "fastapi-users[sqlalchemy,oauth] >=12,<13",
13
+ "fastapi-users[sqlalchemy,oauth] >=13.0.0,<14.0.0",
14
14
  "jupyverse-api >=0.1.2,<1",
15
15
  ]
16
16
 
@@ -0,0 +1 @@
1
+ __version__ = "0.5.0"
@@ -1,3 +1,3 @@
1
- __version__ = "0.4.1"
1
+ __version__ = "0.5.0"
2
2
 
3
3
  from .launch import launch # noqa
@@ -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.disabled_extension = lab.get_federated_extensions(
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.disabled_extension,
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,3 @@
1
+ # fps-lab
2
+
3
+ An FPS plugin for the JupyterLab/Notebook API.
@@ -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 pkg_resources.iter_entry_points(group="jupyterlab.languagepack"):
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 pkg_resources.iter_entry_points(group="jupyterlab.languagepack"):
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", "@retrolab"]:
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/RetroLab API"
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,3 @@
1
+ # fps-notebook
2
+
3
+ An FPS plugin for the Notebook API.
@@ -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.retrolab import RetroLab
7
+ from jupyverse_api.notebook import Notebook
8
8
 
9
- from .routes import _RetroLab
9
+ from .routes import _Notebook
10
10
 
11
11
 
12
- class RetroLabComponent(Component):
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
- retrolab = _RetroLab(app, auth, frontend_config, lab)
23
- ctx.add_resource(retrolab, types=RetroLab)
22
+ notebook = _Notebook(app, auth, frontend_config, lab)
23
+ ctx.add_resource(notebook, types=Notebook)