jupyverse 0.5.3__tar.gz → 0.5.4__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 (268) hide show
  1. {jupyverse-0.5.3 → jupyverse-0.5.4}/.pre-commit-config.yaml +1 -1
  2. {jupyverse-0.5.3 → jupyverse-0.5.4}/CHANGELOG.md +16 -2
  3. {jupyverse-0.5.3 → jupyverse-0.5.4}/PKG-INFO +1 -1
  4. jupyverse-0.5.4/jupyverse/__init__.py +1 -0
  5. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/__init__.py +1 -1
  6. jupyverse-0.5.4/plugins/auth/fps_auth/__init__.py +1 -0
  7. jupyverse-0.5.4/plugins/auth_fief/fps_auth_fief/__init__.py +1 -0
  8. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/__init__.py +1 -1
  9. jupyverse-0.5.4/plugins/contents/fps_contents/__init__.py +1 -0
  10. jupyverse-0.5.4/plugins/frontend/fps_frontend/__init__.py +1 -0
  11. jupyverse-0.5.4/plugins/jupyterlab/fps_jupyterlab/__init__.py +1 -0
  12. jupyverse-0.5.4/plugins/kernels/fps_kernels/__init__.py +1 -0
  13. jupyverse-0.5.4/plugins/lab/fps_lab/__init__.py +1 -0
  14. jupyverse-0.5.4/plugins/login/fps_login/__init__.py +1 -0
  15. jupyverse-0.5.4/plugins/nbconvert/fps_nbconvert/__init__.py +1 -0
  16. jupyverse-0.5.4/plugins/noauth/fps_noauth/__init__.py +1 -0
  17. jupyverse-0.5.4/plugins/notebook/fps_notebook/__init__.py +1 -0
  18. jupyverse-0.5.4/plugins/resource_usage/fps_resource_usage/__init__.py +1 -0
  19. jupyverse-0.5.4/plugins/terminals/fps_terminals/__init__.py +1 -0
  20. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/fps_terminals/routes.py +6 -1
  21. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/fps_terminals/server.py +38 -20
  22. jupyverse-0.5.4/plugins/webdav/fps_webdav/__init__.py +1 -0
  23. jupyverse-0.5.4/plugins/yjs/fps_yjs/__init__.py +1 -0
  24. jupyverse-0.5.3/jupyverse/__init__.py +0 -1
  25. jupyverse-0.5.3/plugins/auth/fps_auth/__init__.py +0 -1
  26. jupyverse-0.5.3/plugins/auth_fief/fps_auth_fief/__init__.py +0 -1
  27. jupyverse-0.5.3/plugins/contents/fps_contents/__init__.py +0 -1
  28. jupyverse-0.5.3/plugins/frontend/fps_frontend/__init__.py +0 -1
  29. jupyverse-0.5.3/plugins/jupyterlab/fps_jupyterlab/__init__.py +0 -1
  30. jupyverse-0.5.3/plugins/kernels/fps_kernels/__init__.py +0 -1
  31. jupyverse-0.5.3/plugins/lab/fps_lab/__init__.py +0 -1
  32. jupyverse-0.5.3/plugins/login/fps_login/__init__.py +0 -1
  33. jupyverse-0.5.3/plugins/nbconvert/fps_nbconvert/__init__.py +0 -1
  34. jupyverse-0.5.3/plugins/noauth/fps_noauth/__init__.py +0 -1
  35. jupyverse-0.5.3/plugins/notebook/fps_notebook/__init__.py +0 -1
  36. jupyverse-0.5.3/plugins/resource_usage/fps_resource_usage/__init__.py +0 -1
  37. jupyverse-0.5.3/plugins/terminals/fps_terminals/__init__.py +0 -1
  38. jupyverse-0.5.3/plugins/webdav/fps_webdav/__init__.py +0 -1
  39. jupyverse-0.5.3/plugins/yjs/fps_yjs/__init__.py +0 -1
  40. {jupyverse-0.5.3 → jupyverse-0.5.4}/.devcontainer/devcontainer.json +0 -0
  41. {jupyverse-0.5.3 → jupyverse-0.5.4}/.devcontainer/requirements.txt +0 -0
  42. {jupyverse-0.5.3 → jupyverse-0.5.4}/.github/workflows/check-release.yml +0 -0
  43. {jupyverse-0.5.3 → jupyverse-0.5.4}/.github/workflows/test.yml +0 -0
  44. {jupyverse-0.5.3 → jupyverse-0.5.4}/.gitignore +0 -0
  45. {jupyverse-0.5.3 → jupyverse-0.5.4}/CONTRIBUTING.md +0 -0
  46. {jupyverse-0.5.3 → jupyverse-0.5.4}/COPYING.md +0 -0
  47. {jupyverse-0.5.3 → jupyverse-0.5.4}/MANIFEST.in +0 -0
  48. {jupyverse-0.5.3 → jupyverse-0.5.4}/README.md +0 -0
  49. {jupyverse-0.5.3 → jupyverse-0.5.4}/binder/environment.yml +0 -0
  50. {jupyverse-0.5.3 → jupyverse-0.5.4}/binder/jupyter_notebook_config.py +0 -0
  51. {jupyverse-0.5.3 → jupyverse-0.5.4}/binder/postBuild +0 -0
  52. {jupyverse-0.5.3 → jupyverse-0.5.4}/binder/start +0 -0
  53. {jupyverse-0.5.3 → jupyverse-0.5.4}/config.yaml +0 -0
  54. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/index.md +0 -0
  55. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/install.md +0 -0
  56. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/jupyter.svg +0 -0
  57. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/auth.md +0 -0
  58. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/contents.md +0 -0
  59. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/frontend.md +0 -0
  60. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/jupyterlab.md +0 -0
  61. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/kernels.md +0 -0
  62. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/lab.md +0 -0
  63. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/login.md +0 -0
  64. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/nbconvert.md +0 -0
  65. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/notebook.md +0 -0
  66. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/resource_usage.md +0 -0
  67. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/terminals.md +0 -0
  68. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/plugins/yjs.md +0 -0
  69. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/tutorials/jupyterhub_jupyverse_deployment.md +0 -0
  70. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/tutorials/standalone_jupyverse_deployment.md +0 -0
  71. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/usage/microservices.md +0 -0
  72. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/usage/multi_user.md +0 -0
  73. {jupyverse-0.5.3 → jupyverse-0.5.4}/docs/usage/single_user.md +0 -0
  74. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse/py.typed +0 -0
  75. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/COPYING.md +0 -0
  76. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/README.md +0 -0
  77. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/app/__init__.py +0 -0
  78. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/auth/__init__.py +0 -0
  79. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/auth/models.py +0 -0
  80. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/cli.py +0 -0
  81. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/contents/__init__.py +0 -0
  82. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/contents/models.py +0 -0
  83. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/exceptions.py +0 -0
  84. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/frontend/__init__.py +0 -0
  85. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/jupyterlab/__init__.py +0 -0
  86. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/kernels/__init__.py +0 -0
  87. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/kernels/models.py +0 -0
  88. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/lab/__init__.py +0 -0
  89. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/login/__init__.py +0 -0
  90. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/main/__init__.py +0 -0
  91. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/nbconvert/__init__.py +0 -0
  92. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/notebook/__init__.py +0 -0
  93. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/py.typed +0 -0
  94. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/resource_usage/__init__.py +0 -0
  95. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/terminals/__init__.py +0 -0
  96. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/terminals/models.py +0 -0
  97. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/yjs/__init__.py +0 -0
  98. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/jupyverse_api/yjs/models.py +0 -0
  99. {jupyverse-0.5.3 → jupyverse-0.5.4}/jupyverse_api/pyproject.toml +0 -0
  100. {jupyverse-0.5.3 → jupyverse-0.5.4}/mkdocs.yml +0 -0
  101. {jupyverse-0.5.3 → jupyverse-0.5.4}/notebooks/admin_users.ipynb +0 -0
  102. {jupyverse-0.5.3 → jupyverse-0.5.4}/notebooks/admin_users.py +0 -0
  103. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/COPYING.md +0 -0
  104. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/MANIFEST.in +0 -0
  105. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/README.md +0 -0
  106. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/backends.py +0 -0
  107. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/config.py +0 -0
  108. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/db.py +0 -0
  109. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/main.py +0 -0
  110. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/models.py +0 -0
  111. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/py.typed +0 -0
  112. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/fps_auth/routes.py +0 -0
  113. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth/pyproject.toml +0 -0
  114. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/COPYING.md +0 -0
  115. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/MANIFEST.in +0 -0
  116. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/README.md +0 -0
  117. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/fps_auth_fief/backend.py +0 -0
  118. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/fps_auth_fief/config.py +0 -0
  119. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/fps_auth_fief/main.py +0 -0
  120. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/fps_auth_fief/routes.py +0 -0
  121. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_fief/pyproject.toml +0 -0
  122. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/COPYING.md +0 -0
  123. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/README.md +0 -0
  124. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/config.py +0 -0
  125. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/db.py +0 -0
  126. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/launch.py +0 -0
  127. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/main.py +0 -0
  128. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/models.py +0 -0
  129. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/fps_auth_jupyterhub/routes.py +0 -0
  130. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/auth_jupyterhub/pyproject.toml +0 -0
  131. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/COPYING.md +0 -0
  132. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/MANIFEST.in +0 -0
  133. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/README.md +0 -0
  134. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/fps_contents/fileid.py +0 -0
  135. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/fps_contents/main.py +0 -0
  136. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/fps_contents/py.typed +0 -0
  137. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/fps_contents/routes.py +0 -0
  138. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/contents/pyproject.toml +0 -0
  139. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/frontend/COPYING.md +0 -0
  140. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/frontend/MANIFEST.in +0 -0
  141. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/frontend/README.md +0 -0
  142. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/frontend/fps_frontend/main.py +0 -0
  143. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/frontend/fps_frontend/py.typed +0 -0
  144. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/frontend/pyproject.toml +0 -0
  145. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/COPYING.md +0 -0
  146. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/MANIFEST.in +0 -0
  147. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/README.md +0 -0
  148. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/fps_jupyterlab/index.py +0 -0
  149. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/fps_jupyterlab/main.py +0 -0
  150. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/fps_jupyterlab/py.typed +0 -0
  151. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/fps_jupyterlab/routes.py +0 -0
  152. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/jupyterlab/pyproject.toml +0 -0
  153. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/COPYING.md +0 -0
  154. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/MANIFEST.in +0 -0
  155. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/README.md +0 -0
  156. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_driver/__init__.py +0 -0
  157. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_driver/connect.py +0 -0
  158. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_driver/driver.py +0 -0
  159. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_driver/kernelspec.py +0 -0
  160. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_driver/message.py +0 -0
  161. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_driver/paths.py +0 -0
  162. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_server/__init__.py +0 -0
  163. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_server/message.py +0 -0
  164. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/kernel_server/server.py +0 -0
  165. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/main.py +0 -0
  166. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/fps_kernels/routes.py +0 -0
  167. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/kernels/pyproject.toml +0 -0
  168. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/COPYING.md +0 -0
  169. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/MANIFEST.in +0 -0
  170. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/README.md +0 -0
  171. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/fps_lab/main.py +0 -0
  172. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/fps_lab/routes.py +0 -0
  173. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/fps_lab/static/favicon.ico +0 -0
  174. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/lab/pyproject.toml +0 -0
  175. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/COPYING.md +0 -0
  176. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/MANIFEST.in +0 -0
  177. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/README.md +0 -0
  178. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/main.py +0 -0
  179. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/routes.py +0 -0
  180. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon-busy-1.ico +0 -0
  181. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon-busy-2.ico +0 -0
  182. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon-busy-3.ico +0 -0
  183. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon-file.ico +0 -0
  184. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon-notebook.ico +0 -0
  185. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon-terminal.ico +0 -0
  186. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/favicons/favicon.ico +0 -0
  187. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/index.html +0 -0
  188. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/logo/github.svg +0 -0
  189. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/logo/logo.png +0 -0
  190. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/fps_login/static/style/index.css +0 -0
  191. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/login/pyproject.toml +0 -0
  192. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/nbconvert/COPYING.md +0 -0
  193. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/nbconvert/MANIFEST.in +0 -0
  194. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/nbconvert/README.md +0 -0
  195. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/nbconvert/fps_nbconvert/main.py +0 -0
  196. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/nbconvert/fps_nbconvert/routes.py +0 -0
  197. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/nbconvert/pyproject.toml +0 -0
  198. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/COPYING.md +0 -0
  199. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/MANIFEST.in +0 -0
  200. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/README.md +0 -0
  201. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/fps_noauth/backends.py +0 -0
  202. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/fps_noauth/main.py +0 -0
  203. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/fps_noauth/py.typed +0 -0
  204. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/noauth/pyproject.toml +0 -0
  205. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/notebook/COPYING.md +0 -0
  206. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/notebook/MANIFEST.in +0 -0
  207. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/notebook/README.md +0 -0
  208. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/notebook/fps_notebook/main.py +0 -0
  209. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/notebook/fps_notebook/routes.py +0 -0
  210. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/notebook/pyproject.toml +0 -0
  211. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/resource_usage/COPYING.md +0 -0
  212. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/resource_usage/README.md +0 -0
  213. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/resource_usage/fps_resource_usage/main.py +0 -0
  214. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/resource_usage/fps_resource_usage/routes.py +0 -0
  215. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/resource_usage/pyproject.toml +0 -0
  216. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/COPYING.md +0 -0
  217. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/MANIFEST.in +0 -0
  218. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/README.md +0 -0
  219. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/fps_terminals/main.py +0 -0
  220. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/fps_terminals/win_server.py +0 -0
  221. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/terminals/pyproject.toml +0 -0
  222. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/COPYING.md +0 -0
  223. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/README.md +0 -0
  224. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/fps_webdav/config.py +0 -0
  225. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/fps_webdav/main.py +0 -0
  226. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/fps_webdav/py.typed +0 -0
  227. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/fps_webdav/routes.py +0 -0
  228. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/pyproject.toml +0 -0
  229. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/webdav/tests/test_webdav.py +0 -0
  230. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/COPYING.md +0 -0
  231. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/MANIFEST.in +0 -0
  232. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/README.md +0 -0
  233. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/main.py +0 -0
  234. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/py.typed +0 -0
  235. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/routes.py +0 -0
  236. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/__init__.py +0 -0
  237. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/utils.py +0 -0
  238. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/ybasedoc.py +0 -0
  239. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/yblob.py +0 -0
  240. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/yfile.py +0 -0
  241. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/ynotebook.py +0 -0
  242. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ydocs/yunicode.py +0 -0
  243. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/__init__.py +0 -0
  244. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/asgi_server.py +0 -0
  245. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/awareness.py +0 -0
  246. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/django_channels_consumer.py +0 -0
  247. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/websocket.py +0 -0
  248. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/websocket_provider.py +0 -0
  249. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/websocket_server.py +0 -0
  250. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/yroom.py +0 -0
  251. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/ystore.py +0 -0
  252. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywebsocket/yutils.py +0 -0
  253. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywidgets/__init__.py +0 -0
  254. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/fps_yjs/ywidgets/widgets.py +0 -0
  255. {jupyverse-0.5.3 → jupyverse-0.5.4}/plugins/yjs/pyproject.toml +0 -0
  256. {jupyverse-0.5.3 → jupyverse-0.5.4}/pyproject.toml +0 -0
  257. {jupyverse-0.5.3 → jupyverse-0.5.4}/pytest.ini +0 -0
  258. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/conftest.py +0 -0
  259. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/data/notebook0.ipynb +0 -0
  260. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/data/notebook1.ipynb +0 -0
  261. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_app.py +0 -0
  262. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_auth.py +0 -0
  263. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_contents.py +0 -0
  264. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_execute.py +0 -0
  265. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_kernels.py +0 -0
  266. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_server.py +0 -0
  267. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/test_settings.py +0 -0
  268. {jupyverse-0.5.3 → jupyverse-0.5.4}/tests/utils.py +0 -0
@@ -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.4.3
19
+ rev: v0.4.4
20
20
  hooks:
21
21
  - id: ruff
22
22
  args: ["--fix"]
@@ -2,6 +2,22 @@
2
2
 
3
3
  <!-- <START NEW CHANGELOG ENTRY> -->
4
4
 
5
+ ## 0.5.4
6
+
7
+ ([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.5.3...9f208a6e2e13396f6723a80e23bef688285611e5))
8
+
9
+ ### Merged PRs
10
+
11
+ - Improve terminals [#413](https://github.com/jupyter-server/jupyverse/pull/413) ([@davidbrochart](https://github.com/davidbrochart))
12
+
13
+ ### Contributors to this release
14
+
15
+ ([GitHub contributors page for this release](https://github.com/jupyter-server/jupyverse/graphs/contributors?from=2024-05-13&to=2024-05-14&type=c))
16
+
17
+ [@davidbrochart](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Adavidbrochart+updated%3A2024-05-13..2024-05-14&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Apre-commit-ci+updated%3A2024-05-13..2024-05-14&type=Issues)
18
+
19
+ <!-- <END NEW CHANGELOG ENTRY> -->
20
+
5
21
  ## 0.5.3
6
22
 
7
23
  ([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.5.2...d5a5b178b93172a9bb8b90459d45ed20a1b734c5))
@@ -16,8 +32,6 @@
16
32
 
17
33
  [@davidbrochart](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Adavidbrochart+updated%3A2024-05-02..2024-05-13&type=Issues) | [@pre-commit-ci](https://github.com/search?q=repo%3Ajupyter-server%2Fjupyverse+involves%3Apre-commit-ci+updated%3A2024-05-02..2024-05-13&type=Issues)
18
34
 
19
- <!-- <END NEW CHANGELOG ENTRY> -->
20
-
21
35
  ## 0.5.2
22
36
 
23
37
  ([Full Changelog](https://github.com/jupyter-server/jupyverse/compare/v0.5.1...0bd54d15a6ad7fbfe7c54f5a06ed4546de4ad90d))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: jupyverse
3
- Version: 0.5.3
3
+ Version: 0.5.4
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>
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -4,7 +4,7 @@ from pydantic import BaseModel
4
4
 
5
5
  from .app import App
6
6
 
7
- __version__ = "0.5.3"
7
+ __version__ = "0.5.4"
8
8
 
9
9
 
10
10
  class Singleton(type):
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -1,3 +1,3 @@
1
- __version__ = "0.5.3"
1
+ __version__ = "0.5.4"
2
2
 
3
3
  from .launch import launch # noqa
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -26,7 +26,12 @@ class _Terminals(Terminals):
26
26
  self,
27
27
  user: User,
28
28
  ):
29
- name = str(len(TERMINALS) + 1)
29
+ name_int = 1
30
+ while True:
31
+ if str(name_int) not in TERMINALS:
32
+ break
33
+ name_int += 1
34
+ name = str(name_int)
30
35
  terminal = Terminal(
31
36
  name=name,
32
37
  last_activity=datetime.utcnow().isoformat() + "Z",
@@ -30,20 +30,28 @@ class _TerminalServer(TerminalServer):
30
30
  async def serve(self, websocket, permissions):
31
31
  self.websocket = websocket
32
32
  self.websockets.append(websocket)
33
- self.event = asyncio.Event()
33
+ self.data_from_terminal = asyncio.Queue()
34
34
  self.loop = asyncio.get_event_loop()
35
35
 
36
- task = asyncio.create_task(self.send_data())
36
+ task = asyncio.create_task(self.send_data()) # noqa: F841
37
37
 
38
38
  def on_output():
39
39
  try:
40
- self.data_or_disconnect = self.p_out.read(65536).decode()
41
- self.event.set()
42
- except Exception:
43
- os.close(self.fd)
44
- self.loop.remove_reader(self.p_out)
45
- self.data_or_disconnect = None
46
- self.event.set()
40
+ data = self.p_out.read(65536).decode()
41
+ except OSError:
42
+ try:
43
+ self.loop.remove_reader(self.p_out)
44
+ except Exception:
45
+ pass
46
+ try:
47
+ os.close(self.fd)
48
+ except OSError:
49
+ pass
50
+ self.data_from_terminal.put_nowait(None)
51
+ self.websockets.clear()
52
+ self.quit()
53
+ else:
54
+ self.data_from_terminal.put_nowait(data)
47
55
 
48
56
  self.loop.add_reader(self.p_out, on_output)
49
57
  await websocket.send_json(["setup", {}])
@@ -58,21 +66,31 @@ class _TerminalServer(TerminalServer):
58
66
  winsize = struct.pack("HH", msg[1], msg[2])
59
67
  fcntl.ioctl(self.fd, termios.TIOCSWINSZ, winsize)
60
68
  except WebSocketDisconnect:
61
- task.cancel()
69
+ self.quit(websocket)
62
70
 
63
71
  async def send_data(self):
64
72
  while True:
65
- await self.event.wait()
66
- self.event.clear()
67
- if self.data_or_disconnect is None:
68
- await self.websocket.send_json(["disconnect", 1])
69
- else:
70
- for websocket in self.websockets:
71
- await websocket.send_json(["stdout", self.data_or_disconnect])
73
+ data = await self.data_from_terminal.get()
74
+ if data is None:
75
+ try:
76
+ await self.websocket.send_json(["disconnect", 1])
77
+ except Exception:
78
+ pass
79
+ return
80
+
81
+ for websocket in self.websockets:
82
+ await websocket.send_json(["stdout", data])
72
83
 
73
- def quit(self, websocket):
84
+ def quit(self, websocket=None):
74
85
  if websocket in self.websockets:
75
86
  self.websockets.remove(websocket)
76
87
  if not self.websockets:
77
- os.close(self.fd)
78
- self.loop.remove_reader(self.p_out)
88
+ try:
89
+ self.loop.remove_reader(self.p_out)
90
+ except Exception:
91
+ pass
92
+ try:
93
+ os.close(self.fd)
94
+ except OSError:
95
+ pass
96
+ self.data_from_terminal.put_nowait(None)
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -0,0 +1 @@
1
+ __version__ = "0.5.4"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
@@ -1 +0,0 @@
1
- __version__ = "0.5.3"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes