jupyterlab 4.0.12__py3-none-any.whl → 4.1.0__py3-none-any.whl
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.
- jupyterlab/_version.py +1 -1
- jupyterlab/browser_check.py +1 -1
- jupyterlab/commands.py +122 -24
- jupyterlab/extensions/manager.py +146 -40
- jupyterlab/extensions/pypi.py +121 -143
- jupyterlab/galata/@jupyterlab/galata-extension/build_log.json +133 -95
- jupyterlab/galata/@jupyterlab/galata-extension/package.json +13 -13
- jupyterlab/galata/@jupyterlab/galata-extension/static/{lib_extension_index_js.6258249575a3de76958a.js → lib_extension_index_js.193465adc9aa81a6b29f.js} +11 -7
- jupyterlab/galata/@jupyterlab/galata-extension/static/{remoteEntry.b8fefd648959729a91e4.js → remoteEntry.9126d8bd4815ede2d14b.js} +4 -4
- jupyterlab/handlers/announcements.py +1 -1
- jupyterlab/handlers/plugin_manager_handler.py +64 -0
- jupyterlab/labapp.py +70 -12
- jupyterlab/labextensions.py +58 -3
- jupyterlab/schemas/@jupyterlab/application-extension/commands.json +181 -1
- jupyterlab/schemas/@jupyterlab/application-extension/package.json.orig +14 -14
- jupyterlab/schemas/@jupyterlab/apputils-extension/package.json.orig +18 -18
- jupyterlab/schemas/@jupyterlab/apputils-extension/themes.json +23 -1
- jupyterlab/schemas/@jupyterlab/cell-toolbar-extension/package.json.orig +8 -8
- jupyterlab/schemas/@jupyterlab/celltags-extension/package.json.orig +8 -8
- jupyterlab/schemas/@jupyterlab/codemirror-extension/package.json.orig +13 -13
- jupyterlab/schemas/@jupyterlab/completer-extension/inline-completer.json +64 -0
- jupyterlab/schemas/@jupyterlab/completer-extension/manager.json +2 -1
- jupyterlab/schemas/@jupyterlab/completer-extension/package.json.orig +10 -8
- jupyterlab/schemas/@jupyterlab/console-extension/package.json.orig +16 -16
- jupyterlab/schemas/@jupyterlab/console-extension/tracker.json +0 -5
- jupyterlab/schemas/@jupyterlab/csvviewer-extension/package.json.orig +14 -14
- jupyterlab/schemas/@jupyterlab/debugger-extension/package.json.orig +19 -19
- jupyterlab/schemas/@jupyterlab/docmanager-extension/package.json.orig +15 -15
- jupyterlab/schemas/@jupyterlab/documentsearch-extension/package.json.orig +10 -9
- jupyterlab/schemas/@jupyterlab/documentsearch-extension/plugin.json +13 -1
- jupyterlab/schemas/@jupyterlab/extensionmanager-extension/package.json.orig +9 -9
- jupyterlab/schemas/@jupyterlab/filebrowser-extension/browser.json +6 -0
- jupyterlab/schemas/@jupyterlab/filebrowser-extension/package.json.orig +17 -17
- jupyterlab/schemas/@jupyterlab/fileeditor-extension/package.json.orig +27 -27
- jupyterlab/schemas/@jupyterlab/help-extension/package.json.orig +11 -11
- jupyterlab/schemas/@jupyterlab/htmlviewer-extension/package.json.orig +11 -11
- jupyterlab/schemas/@jupyterlab/hub-extension/package.json.orig +8 -8
- jupyterlab/schemas/@jupyterlab/imageviewer-extension/package.json.orig +8 -8
- jupyterlab/schemas/@jupyterlab/inspector-extension/package.json.orig +12 -12
- jupyterlab/schemas/@jupyterlab/launcher-extension/package.json.orig +10 -10
- jupyterlab/schemas/@jupyterlab/logconsole-extension/package.json.orig +13 -13
- jupyterlab/schemas/@jupyterlab/lsp-extension/package.json.orig +11 -10
- jupyterlab/schemas/@jupyterlab/mainmenu-extension/package.json.orig +12 -12
- jupyterlab/schemas/@jupyterlab/mainmenu-extension/plugin.json +4 -4
- jupyterlab/schemas/@jupyterlab/markdownviewer-extension/package.json.orig +11 -11
- jupyterlab/schemas/@jupyterlab/mathjax-extension/package.json.orig +5 -5
- jupyterlab/schemas/@jupyterlab/metadataform-extension/package.json.orig +9 -9
- jupyterlab/schemas/@jupyterlab/notebook-extension/package.json.orig +35 -35
- jupyterlab/schemas/@jupyterlab/notebook-extension/panel.json +6 -1
- jupyterlab/schemas/@jupyterlab/notebook-extension/tracker.json +68 -46
- jupyterlab/schemas/@jupyterlab/running-extension/package.json.orig +13 -13
- jupyterlab/schemas/@jupyterlab/settingeditor-extension/package.json.orig +13 -12
- jupyterlab/schemas/@jupyterlab/shortcuts-extension/package.json.orig +11 -10
- jupyterlab/schemas/@jupyterlab/statusbar-extension/package.json.orig +8 -8
- jupyterlab/schemas/@jupyterlab/terminal-extension/package.json.orig +14 -14
- jupyterlab/schemas/@jupyterlab/terminal-extension/plugin.json +6 -0
- jupyterlab/schemas/@jupyterlab/toc-extension/package.json.orig +8 -8
- jupyterlab/schemas/@jupyterlab/tooltip-extension/package.json.orig +14 -14
- jupyterlab/schemas/@jupyterlab/translation-extension/package.json.orig +8 -10
- jupyterlab/semver.py +3 -3
- jupyterlab/staging/index.js +22 -3
- jupyterlab/staging/package.json +164 -145
- jupyterlab/staging/templates/partial.html +4 -0
- jupyterlab/staging/webpack.config.js +3 -4
- jupyterlab/staging/yarn.lock +2389 -1258
- jupyterlab/static/1166.08f9e1fd722f61c9b69c.js +1 -0
- jupyterlab/static/{1581.e988a625b879002dcc04.js → 1581.391504688eef08096360.js} +3 -3
- jupyterlab/static/1760.9a71f4501e9bbaa4c4d8.js +1 -0
- jupyterlab/static/{2473.cb9caf61d1e34a747cc0.js → 1851.0c7fca4c761a84e91876.js} +1 -1
- jupyterlab/static/1917.05d73322caab1f77e3bf.js +1 -0
- jupyterlab/static/1929.96e62233aa6f2a8363d4.js +1 -0
- jupyterlab/static/226.5dc3528c008170b37b21.js +1 -0
- jupyterlab/static/2551.b07d561a12360c38c589.js +1 -0
- jupyterlab/static/2579.b19edefeb9ee4daed4bd.js +1 -0
- jupyterlab/static/2655.f5b7c82c80d51a0f7ab7.js +1 -0
- jupyterlab/static/2727.6925b8cf1c5363f40138.js +1 -0
- jupyterlab/static/2755.696bab6bdca0d9a78131.js +1 -0
- jupyterlab/static/2995.0448b3ed572d9cc5fcc7.js +1 -0
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/3056.8a73f6aacd8ca45f84f9.js → jupyterlab/static/3056.6ed9d97c166cf2573275.js +1 -1
- jupyterlab/static/3308.764d71af7e591cdb1345.js +1 -0
- jupyterlab/static/367.835aef5c5efbd38183af.js +1 -0
- jupyterlab/static/3711.150292a21fd47be1c05f.js +1 -0
- jupyterlab/static/406.81906f96059e31e907a2.js +1 -0
- jupyterlab/static/4086.3087c0abed5ca45b823b.js +1 -0
- jupyterlab/static/4136.4b9f72f85f49f979ebb8.js +2 -0
- jupyterlab/static/4136.4b9f72f85f49f979ebb8.js.LICENSE.txt +9 -0
- jupyterlab/static/4765.093b4f8b3cee1251db8d.js +1 -0
- jupyterlab/static/526.601d8ddd8347cd7790b9.js +1 -0
- jupyterlab/static/5794.3cb2bcd1a3e23d0c084e.js +1 -0
- jupyterlab/static/6001.963601fcecb8b4c1d1f1.js +1 -0
- jupyterlab/static/627.7e292370f4d61d9e8648.js +5148 -0
- jupyterlab/static/627.7e292370f4d61d9e8648.js.LICENSE.txt +14 -0
- jupyterlab/static/6436.8d9ba427de4ab1053871.js +1 -0
- jupyterlab/static/6515.56c63929fb079a820cbc.js +1 -0
- jupyterlab/static/6770.fd7084bb2f4b7622401d.js +1 -0
- jupyterlab/static/6778.345e6ac9818e30317310.js +1 -0
- jupyterlab/static/6898.742a7062fa979fb68a80.js +1 -0
- jupyterlab/static/7161.353c3ab960df72e6f1ea.js +1 -0
- jupyterlab/static/7178.5f3dd740449b44efad2d.js +2 -0
- jupyterlab/static/7272.72081c10e0f645b0631a.js +1 -0
- jupyterlab/static/7313.4a8a9a1eee6f7ef15ee1.js +2 -0
- jupyterlab/static/7426.c83966ccc62601d391bd.js +2 -0
- jupyterlab/static/7426.c83966ccc62601d391bd.js.LICENSE.txt +17 -0
- jupyterlab/static/7629.1f295461ebf56a48c197.js +1 -0
- jupyterlab/static/7734.b08c15e9f538f44d0f52.js +1 -0
- jupyterlab/static/7946.7fe46d47492e459b7cb5.js +1 -0
- jupyterlab/static/812.647390901579c6a720cf.js +1 -0
- jupyterlab/static/8152.5baac73844a065f34284.js +1 -0
- jupyterlab/static/8302.5c5e5a2da7fe74b12a1d.js +1 -0
- jupyterlab/static/8322.288af285dac9cb9a8800.js +1 -0
- jupyterlab/static/8462.74d5f5afd4f9d7825eed.js +1 -0
- jupyterlab/static/8738.782816e9072ac38762b4.js +1 -0
- jupyterlab/static/881.972f79365eed0f77378e.js +1 -0
- jupyterlab/static/9395.b59dceae72715c9f885c.js +1 -0
- jupyterlab/static/9440.04751e25c9cde059ff37.js +1 -0
- jupyterlab/static/9545.f0f7a2959bdd17ee3448.js +1 -0
- jupyterlab/static/9579.4b1b079b6b7cd2924338.js +1465 -0
- jupyterlab/static/9579.4b1b079b6b7cd2924338.js.LICENSE.txt +19 -0
- jupyterlab/static/9870.70b2b59cc96c3a97c489.js +1 -0
- jupyterlab/static/9984.6ba5355e0d5487d5ac63.js +1 -0
- jupyterlab/static/build_log.json +133 -97
- jupyterlab/static/index.html +1 -1
- jupyterlab/static/index.out.js +97 -3
- jupyterlab/static/jlab_core.570a5c21bdeb57ca2ec8.js +1 -0
- jupyterlab/static/main.d277e1577010c7e39fdb.js +1 -0
- jupyterlab/static/package.json +164 -145
- jupyterlab/static/style.js +2 -0
- jupyterlab/static/third-party-licenses.json +481 -103
- jupyterlab/style.js +2 -0
- jupyterlab/tests/conftest.py +8 -0
- jupyterlab/tests/mock_packages/extension/package.json +3 -3
- jupyterlab/tests/mock_packages/interop/consumer/package.json +3 -3
- jupyterlab/tests/mock_packages/interop/provider/package.json +3 -3
- jupyterlab/tests/mock_packages/interop/token/package.json +1 -1
- jupyterlab/tests/mock_packages/mimeextension/package.json +1 -1
- jupyterlab/tests/test_custom_css_handler.py +37 -0
- jupyterlab/tests/test_extensions.py +30 -1
- jupyterlab/themes/@jupyterlab/theme-dark-extension/index.css +2 -0
- jupyterlab/themes/@jupyterlab/theme-light-extension/index.css +1 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/application-extension/commands.json +181 -1
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/application-extension/package.json.orig +14 -14
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/package.json.orig +18 -18
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/themes.json +23 -1
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/cell-toolbar-extension/package.json.orig +8 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/celltags-extension/package.json.orig +8 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/codemirror-extension/package.json.orig +13 -13
- jupyterlab-4.1.0.data/data/share/jupyter/lab/schemas/@jupyterlab/completer-extension/inline-completer.json +64 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/completer-extension/manager.json +2 -1
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/completer-extension/package.json.orig +10 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/console-extension/package.json.orig +16 -16
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/console-extension/tracker.json +0 -5
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/package.json.orig +14 -14
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/debugger-extension/package.json.orig +19 -19
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/package.json.orig +15 -15
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/documentsearch-extension/package.json.orig +10 -9
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/documentsearch-extension/plugin.json +13 -1
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/extensionmanager-extension/package.json.orig +9 -9
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/browser.json +6 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/package.json.orig +17 -17
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/package.json.orig +27 -27
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/help-extension/package.json.orig +11 -11
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/htmlviewer-extension/package.json.orig +11 -11
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/hub-extension/package.json.orig +8 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/imageviewer-extension/package.json.orig +8 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/package.json.orig +12 -12
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/package.json.orig +10 -10
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/logconsole-extension/package.json.orig +13 -13
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/lsp-extension/package.json.orig +11 -10
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/mainmenu-extension/package.json.orig +12 -12
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/mainmenu-extension/plugin.json +4 -4
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/markdownviewer-extension/package.json.orig +11 -11
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/package.json.orig +5 -5
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/metadataform-extension/package.json.orig +9 -9
- jupyterlab-4.1.0.data/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/package.json.orig +93 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/panel.json +6 -1
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/tracker.json +68 -46
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/running-extension/package.json.orig +13 -13
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/package.json.orig +13 -12
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/shortcuts-extension/package.json.orig +11 -10
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/statusbar-extension/package.json.orig +8 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/terminal-extension/package.json.orig +14 -14
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/terminal-extension/plugin.json +6 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/toc-extension/package.json.orig +8 -8
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/package.json.orig +14 -14
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/translation-extension/package.json.orig +8 -10
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1166.08f9e1fd722f61c9b69c.js +1 -0
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/1581.e988a625b879002dcc04.js → jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1581.391504688eef08096360.js +3 -3
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1760.9a71f4501e9bbaa4c4d8.js +1 -0
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/2473.cb9caf61d1e34a747cc0.js → jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1851.0c7fca4c761a84e91876.js +1 -1
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1917.05d73322caab1f77e3bf.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1929.96e62233aa6f2a8363d4.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/226.5dc3528c008170b37b21.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/2551.b07d561a12360c38c589.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/2579.b19edefeb9ee4daed4bd.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/2655.f5b7c82c80d51a0f7ab7.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/2727.6925b8cf1c5363f40138.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/2755.696bab6bdca0d9a78131.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/2995.0448b3ed572d9cc5fcc7.js +1 -0
- jupyterlab/static/3056.8a73f6aacd8ca45f84f9.js → jupyterlab-4.1.0.data/data/share/jupyter/lab/static/3056.6ed9d97c166cf2573275.js +1 -1
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/3308.764d71af7e591cdb1345.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/367.835aef5c5efbd38183af.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/3711.150292a21fd47be1c05f.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/406.81906f96059e31e907a2.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/4086.3087c0abed5ca45b823b.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/4136.4b9f72f85f49f979ebb8.js +2 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/4136.4b9f72f85f49f979ebb8.js.LICENSE.txt +9 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/4765.093b4f8b3cee1251db8d.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/526.601d8ddd8347cd7790b9.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/5794.3cb2bcd1a3e23d0c084e.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/6001.963601fcecb8b4c1d1f1.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/627.7e292370f4d61d9e8648.js +5148 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/627.7e292370f4d61d9e8648.js.LICENSE.txt +14 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/6436.8d9ba427de4ab1053871.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/6515.56c63929fb079a820cbc.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/6770.fd7084bb2f4b7622401d.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/6778.345e6ac9818e30317310.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/6898.742a7062fa979fb68a80.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7161.353c3ab960df72e6f1ea.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7178.5f3dd740449b44efad2d.js +2 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7272.72081c10e0f645b0631a.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7313.4a8a9a1eee6f7ef15ee1.js +2 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7426.c83966ccc62601d391bd.js +2 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7426.c83966ccc62601d391bd.js.LICENSE.txt +17 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7629.1f295461ebf56a48c197.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7734.b08c15e9f538f44d0f52.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7946.7fe46d47492e459b7cb5.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/812.647390901579c6a720cf.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/8152.5baac73844a065f34284.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/8302.5c5e5a2da7fe74b12a1d.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/8322.288af285dac9cb9a8800.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/8462.74d5f5afd4f9d7825eed.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/8738.782816e9072ac38762b4.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/881.972f79365eed0f77378e.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9395.b59dceae72715c9f885c.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9440.04751e25c9cde059ff37.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9545.f0f7a2959bdd17ee3448.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9579.4b1b079b6b7cd2924338.js +1465 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9579.4b1b079b6b7cd2924338.js.LICENSE.txt +19 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9870.70b2b59cc96c3a97c489.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/9984.6ba5355e0d5487d5ac63.js +1 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/build_log.json +133 -97
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/index.html +1 -1
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/index.out.js +97 -3
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/jlab_core.570a5c21bdeb57ca2ec8.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/main.d277e1577010c7e39fdb.js +1 -0
- jupyterlab-4.1.0.data/data/share/jupyter/lab/static/package.json +350 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/style.js +2 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/third-party-licenses.json +481 -103
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/themes/@jupyterlab/theme-dark-extension/index.css +2 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.css +1 -0
- {jupyterlab-4.0.12.dist-info → jupyterlab-4.1.0.dist-info}/METADATA +21 -20
- jupyterlab-4.1.0.dist-info/RECORD +872 -0
- jupyterlab/static/141.f110448d494068ebcc87.js +0 -2
- jupyterlab/static/2254.55c69210925ec9b28dd9.js +0 -1
- jupyterlab/static/2995.9791e1071c5f095421bf.js +0 -1
- jupyterlab/static/3127.75e12687687a3de3b59d.js +0 -1
- jupyterlab/static/3308.b85a46b26730c1cd5395.js +0 -1
- jupyterlab/static/4523.87224ea442d42316dda0.js +0 -1
- jupyterlab/static/812.063be439e3d9e318bdbd.js +0 -1
- jupyterlab/static/830.8ddf7d2d91f66a8e4d36.js +0 -1
- jupyterlab/static/8302.4c190e10b00fe083570e.js +0 -1
- jupyterlab/static/8768.4a80caab00174c50eb10.js +0 -2
- jupyterlab/static/9065.5305259c65dfa1c99874.js +0 -1
- jupyterlab/static/jlab_core.826ed748f0a8a70a419e.js +0 -1
- jupyterlab/static/main.7bc3df3894cb324b8f85.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/package.json.orig +0 -93
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/141.f110448d494068ebcc87.js +0 -2
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/2254.55c69210925ec9b28dd9.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/2995.9791e1071c5f095421bf.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/3127.75e12687687a3de3b59d.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/3308.b85a46b26730c1cd5395.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/4523.87224ea442d42316dda0.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/812.063be439e3d9e318bdbd.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/830.8ddf7d2d91f66a8e4d36.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/8302.4c190e10b00fe083570e.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/8768.4a80caab00174c50eb10.js +0 -2
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/9065.5305259c65dfa1c99874.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/jlab_core.826ed748f0a8a70a419e.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/main.7bc3df3894cb324b8f85.js +0 -1
- jupyterlab-4.0.12.data/data/share/jupyter/lab/static/package.json +0 -331
- jupyterlab-4.0.12.dist-info/RECORD +0 -786
- /jupyterlab/static/{1581.e988a625b879002dcc04.js.LICENSE.txt → 1581.391504688eef08096360.js.LICENSE.txt} +0 -0
- /jupyterlab/static/{141.f110448d494068ebcc87.js.LICENSE.txt → 7178.5f3dd740449b44efad2d.js.LICENSE.txt} +0 -0
- /jupyterlab/static/{8768.4a80caab00174c50eb10.js.LICENSE.txt → 7313.4a8a9a1eee6f7ef15ee1.js.LICENSE.txt} +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/etc/jupyter/jupyter_notebook_config.d/jupyterlab.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/etc/jupyter/jupyter_server_config.d/jupyterlab.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/applications/jupyterlab.desktop +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/icons/hicolor/scalable/apps/jupyterlab.svg +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/application-extension/context-menu.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/application-extension/property-inspector.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/application-extension/shell.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/application-extension/top-bar.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/notification.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/palette.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/print.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/sanitizer.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/utilityCommands.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/apputils-extension/workspaces.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/cell-toolbar-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/celltags-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/codemirror-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/console-extension/completer.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/console-extension/foreign.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/csv.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/csvviewer-extension/tsv.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/debugger-extension/main.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/download.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/docmanager-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/extensionmanager-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/download.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/open-browser-tab.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/open-with.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/filebrowser-extension/widget.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/completer.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/fileeditor-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/help-extension/about.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/help-extension/jupyter-forum.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/help-extension/launch-classic.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/htmlviewer-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/hub-extension/menu.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/imageviewer-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/consoles.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/inspector.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/inspector-extension/notebooks.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/launcher-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/logconsole-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/lsp-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/markdownviewer-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/mathjax-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/metadataform-extension/metadataforms.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/completer.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/export.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/notebook-extension/tools.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/running-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/form-ui.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/settingeditor-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/shortcuts-extension/shortcuts.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/statusbar-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/toc-extension/registry.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/consoles.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/files.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/tooltip-extension/notebooks.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/schemas/@jupyterlab/translation-extension/plugin.json +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1036.0d1f109c3d842497fd51.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1036.0d1f109c3d842497fd51.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1085.0b67f0736d85ec41fdd4.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1142.d5442a459b18907c1f91.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1168.0a95b9c93afe61ceb527.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1294.9d27be1098bc8abebe3f.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1410.e2302ff5f564d6e596bb.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1420.e8486ed074346bc629ca.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1448.c391061d8a8344f9d177.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1452.4cc17f31511d1f9c6052.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1467.dcd89539f6477c1367af.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1550.09375e869bc25429b07a.js +0 -0
- /jupyterlab-4.0.12.data/data/share/jupyter/lab/static/1581.e988a625b879002dcc04.js.LICENSE.txt → /jupyterlab-4.1.0.data/data/share/jupyter/lab/static/1581.391504688eef08096360.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1608.61240f3db67d3d952790.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1716.a6bbe1ae8a1986a73623.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1776.4f9305d35480467b23c9.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1861.4fc7b4afe2b09eb6b5c0.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1903.3b452e8ec30e57dbaba5.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1945.0fbbfe93a4aedd91875c.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1954.07d96e4020ed6e543d25.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1993.f8c5682f95ffa75cbaf6.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/1cb1c39ea642f26a4dfe.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2039.aa079dac5c520f93b234.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2090.abc86741318f76c3d726.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2091.600b1c32af186f6405f9.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2104.296346db0067b4883fbf.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2145.be9ec610f29703694fcf.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2295.cda0f7182bf2a1a03c5a.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2320.04abae549b19363c2fdd.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2363.6eef078cb37c32d7fbc3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2459.9f9cb02561de1bec73ff.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2485.dab750ed66209df61fe1.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2617.9c299e26785f7646cb39.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2646.0864fb63d7ab1ed16893.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/26683bf201fb258a2237.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2800.680b1fa0a4c66c69bb1e.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2857.27a6e85f5c4c092ab8a2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2909.e190307f7f84c7691068.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/292.3f7844a129f16ec1ffbc.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2929.b88233153dbf33f40b29.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2953.92ff8f12bad6ee06859c.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/2990.ea15322a41d3f133989b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/30e889b58cbc51adfbb0.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3123.85cea4be2e2ed3f9654f.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/32792104b5ef69eded90.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3306.8bdc49ad1a7ca593a838.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3520.3495b98946de6960ace8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3528.3b5ef5f31d460b5fcd01.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3547.bd90e90bfe79911486e8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3549.24f2fe646d8128bc9db0.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/355254db9ca10a09a3b5.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3601.5c17c015d71b69ddcab3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/36e0d72d8a7afc696a3e.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3724.a4657dc16be2ffc49282.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/373c04fd2418f5c77eea.eot +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/378.6d0f0fc4c8a2eb80ac43.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3783.93d5366ab28a19e1f0f9.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3807.08a8fd824036c30b3746.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/383.db345dbeef5ef774e50c.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3871.ba96e5b53bb16df56618.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3923.f29c06abdcb560130471.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3935.905285b8e22c337968ed.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3935.905285b8e22c337968ed.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3962.50786e3ed9a01329a4a0.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3bc6ecaae7ecf6f8d7f8.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3de784d07b9fa8f104c1.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/3f6d3488cf65374f6f67.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4008.86acbefff6de679f77b5.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4008.86acbefff6de679f77b5.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4017.096a74a538e031b6d346.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4043.aa012978c41d1d1b2f14.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4139.303ee7374c742287be85.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4155.5a8d6736017097028d78.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4283.f6092d8b7f2e53118d1b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4291.e5d8997127541f75fdaf.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4405.43dab120fea32f30bbb9.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4419.93938494f456cd76a7e3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4452.2f8819684b96ecff5231.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4519.6b784d052db42e93eff2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4562.72444a09f5f092646490.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4591.428531724f49fe824ffa.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/46.fb119c5e5b1e0c72a00f.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4743.d4e9658ea25301e15a94.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/481e39042508ae313a60.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4878.73004381601237a3ef9c.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/49.7233f68f95d10b85a83e.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/4986.a497cdda4b7152902568.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5041.cdc120bda0a0dec4cfc2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5157.9c77dc27a251d4135876.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5201.8866042bae350659528a.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5203.c002d40ac647dc6e1d61.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5331.0cd3f010bb08983ec3fd.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5440.2541fcda12b661665148.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5521.ce4a0274596e0325374c.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5746.e4434ef2027bcc5ed0c9.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/581.2b878ed37172aced15b5.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5881.3946238aa4afdcf4f964.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5959.a6b1fd3b03d3649ea8b1.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/5cda41563a095bd70c78.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6059.d83e7323b2ee1aa16009.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6163.f5b51a9f0df4846ba40f.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6207.a8079c8d8a61039dd530.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6243.2efd673d1304c43b7b78.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6267.1def2916929e185ab9fc.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6359.4b994bfd6b1dea2d6fe3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6443.e6b52d3732b3e8513a71.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6532.bb7137729a2d6d4e6ddf.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6560.f42276a0b1b92aea515b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6595.6a1d7e1abbf186dd119b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6686.3c518aa6e5f9785fb486.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6815.0b699f0c162a24b0dbe3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/6888.9d3914817f3290827a64.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7080.1330328bb6f46b4da81e.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7112.d5120c85ebd17620dda0.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7173.e28f63dbd553818e07d3.js +0 -0
- /jupyterlab-4.0.12.data/data/share/jupyter/lab/static/141.f110448d494068ebcc87.js.LICENSE.txt → /jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7178.5f3dd740449b44efad2d.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/721921bab0d001ebff02.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7245.c0cae8787dcd00b991b7.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7294.badf85a3180703d63f62.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7294.badf85a3180703d63f62.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/72bc573386dd1d48c5bb.woff +0 -0
- /jupyterlab-4.0.12.data/data/share/jupyter/lab/static/8768.4a80caab00174c50eb10.js.LICENSE.txt → /jupyterlab-4.1.0.data/data/share/jupyter/lab/static/7313.4a8a9a1eee6f7ef15ee1.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7317.af8a7da0f881a22752c1.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7318.397bf8e913e825b2be27.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7363.abe8e31a91e113753bae.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7384.60351e008d8f687e8fcc.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7390.8253478b90f756692702.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/745.85516a9bb83bcd94d00d.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7451.c0257dbfdd320e2c21f5.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7451.c0257dbfdd320e2c21f5.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7472.58ba8647a489d019c2ef.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7473.5012397d10d3b945ecaa.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7508.b902347f820c70cd386a.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7511.b381a696cf806983c654.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7517.f3e5d420f4af90d442dd.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7669.343e259c4c8269479f5b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7702.c479c69f7a532f7b3fd5.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7730.7e3a9fb140d2d55a51fc.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7731.26db150e967313b7a7e2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7763.19a095394000f9ef62bd.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7763.19a095394000f9ef62bd.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7775.3e0dee729369fe3d5008.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7823.817687f13e9a6781fdd3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7827.e36d073d947bf02a05e3.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7848.e83aa4b90ae87209abb8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/786.8a99ee7dbd7bd0eb9dce.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7877.a4c46a784149533b91d4.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/7887.128a155df5d25e88c0ce.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/795.47ab66037ef33f808f09.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/79d088064beb3826054f.eot +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8002.25f64485372af5158c83.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8010.1cf8237e9def8404f355.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8012.40cb006f0c180ebafa91.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8285.1eac7b7582569be1c3a8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8319.80fcbc832e1eb20b71e7.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8347.573b699e3590729bfa8a.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8405.154ba4b17a2dec22a355.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8493.fc635229db38e6fc6aa2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8498.27a245b23921914bf5c2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8512.1af96655287fd124877b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8678.dcd3dab9025b13eb9be8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/870673df72e70f87c91a.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8710.5fc5ecb762fb4494db02.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8771.327a202178f82f3b15b8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8787.4d36d28dcf94bf59cbfe.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8805.0f14a91b024b59c039a7.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8823.2ff947bcd96cc0723058.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8875.88988caaba1e33edad5b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/88b98cad3688915e50da.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8ea8791754915a898a31.woff2 +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/8ea8dbb1b02e6f730f55.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9.0e0cba0ccc2a4b670600.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9030.260bc05e28eccff70ae8.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9041.df39043656c7233552e4.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9055.bd710a8db8883a836b59.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9109.fa3ee74a5c0f378f4d51.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9192.db4337a516b7f38d1f89.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9222.1c2a8e69a2de57dd1984.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9230.58b8c42b730e1a56e69b.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9265.bc2b66a4502cdfcfc14f.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9362.823dcfac216f8057452d.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9409.34c33ed11e2d6f318480.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/942.93c8de61ea9ea08ec097.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9421.022dc7b4e9a2c80c32c2.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9445.fe5e9e5b728de8d15873.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9621.9cbfa52c42927bb398b4.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9653.d93c93e084cd5e93cd2d.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9674eb1bd55047179038.svg +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9738.c0234a1f7f6ac262f560.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9747.6dd327f4928c6989ea8a.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9747.6dd327f4928c6989ea8a.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9826.406d2a71dc45995bc549.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9826.406d2a71dc45995bc549.js.LICENSE.txt +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/9834b82ad26e2a37583d.woff2 +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/a009bea404f7a500ded4.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/a3b9817780214caf01e8.svg +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/af04542b29eaac04550a.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/af6397503fcefbd61397.ttf +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/af96f67d7accf5fd2a4a.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/b418136e3b384baaadec.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/be0a084962d8066884f7.svg +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/bootstrap.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/c49810b53ecc0d87d802.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/c56da8d69f1a0208b8e0.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/cb9e9e693192413cde2b.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/cda59d6efffa685830fd.ttf +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/e4299464e7b012968eed.eot +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/e42a88444448ac3d6054.woff2 +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/e8711bbb871afd8e9dea.ttf +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/f9217f66874b0c01cd8c.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/static/fc6ddf5df402b263cfb1.woff +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/themes/@jupyterlab/theme-dark-extension/index.js +0 -0
- {jupyterlab-4.0.12.data → jupyterlab-4.1.0.data}/data/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.js +0 -0
- {jupyterlab-4.0.12.dist-info → jupyterlab-4.1.0.dist-info}/WHEEL +0 -0
- {jupyterlab-4.0.12.dist-info → jupyterlab-4.1.0.dist-info}/entry_points.txt +0 -0
- {jupyterlab-4.0.12.dist-info → jupyterlab-4.1.0.dist-info}/licenses/LICENSE +0 -0
jupyterlab/_version.py
CHANGED
@@ -6,7 +6,7 @@ from collections import namedtuple
|
|
6
6
|
VersionInfo = namedtuple("VersionInfo", ["major", "minor", "micro", "releaselevel", "serial"])
|
7
7
|
|
8
8
|
# DO NOT EDIT THIS DIRECTLY! It is managed by bumpversion
|
9
|
-
version_info = VersionInfo(4,
|
9
|
+
version_info = VersionInfo(4, 1, 0, "final", 0)
|
10
10
|
|
11
11
|
_specifier_ = {"alpha": "a", "beta": "b", "candidate": "rc", "final": ""}
|
12
12
|
|
jupyterlab/browser_check.py
CHANGED
@@ -43,7 +43,7 @@ class LogErrorHandler(logging.Handler):
|
|
43
43
|
super().__init__(level=logging.ERROR)
|
44
44
|
self.errored = False
|
45
45
|
|
46
|
-
def filter(self, record):
|
46
|
+
def filter(self, record):
|
47
47
|
# Handle known StreamClosedError from Tornado
|
48
48
|
# These occur when we forcibly close Websockets or
|
49
49
|
# browser connections during the test.
|
jupyterlab/commands.py
CHANGED
@@ -18,10 +18,12 @@ import subprocess
|
|
18
18
|
import sys
|
19
19
|
import tarfile
|
20
20
|
from copy import deepcopy
|
21
|
+
from dataclasses import dataclass
|
21
22
|
from glob import glob
|
22
23
|
from pathlib import Path
|
23
24
|
from tempfile import TemporaryDirectory
|
24
25
|
from threading import Event
|
26
|
+
from typing import FrozenSet, Optional
|
25
27
|
from urllib.error import URLError
|
26
28
|
from urllib.request import Request, quote, urljoin, urlopen
|
27
29
|
|
@@ -522,7 +524,7 @@ def get_app_info(app_options=None):
|
|
522
524
|
|
523
525
|
|
524
526
|
def enable_extension(extension, app_options=None, level="sys_prefix"):
|
525
|
-
"""Enable a JupyterLab extension.
|
527
|
+
"""Enable a JupyterLab extension/plugin.
|
526
528
|
|
527
529
|
Returns `True` if a rebuild is recommended, `False` otherwise.
|
528
530
|
"""
|
@@ -531,7 +533,7 @@ def enable_extension(extension, app_options=None, level="sys_prefix"):
|
|
531
533
|
|
532
534
|
|
533
535
|
def disable_extension(extension, app_options=None, level="sys_prefix"):
|
534
|
-
"""Disable a JupyterLab
|
536
|
+
"""Disable a JupyterLab extension/plugin.
|
535
537
|
|
536
538
|
Returns `True` if a rebuild is recommended, `False` otherwise.
|
537
539
|
"""
|
@@ -545,6 +547,18 @@ def check_extension(extension, installed=False, app_options=None):
|
|
545
547
|
return handler.check_extension(extension, installed)
|
546
548
|
|
547
549
|
|
550
|
+
def lock_extension(extension, app_options=None, level="sys_prefix"):
|
551
|
+
"""Lock a JupyterLab extension/plugin."""
|
552
|
+
handler = _AppHandler(app_options)
|
553
|
+
return handler.toggle_extension_lock(extension, True, level=level)
|
554
|
+
|
555
|
+
|
556
|
+
def unlock_extension(extension, app_options=None, level="sys_prefix"):
|
557
|
+
"""Unlock a JupyterLab extension/plugin."""
|
558
|
+
handler = _AppHandler(app_options)
|
559
|
+
return handler.toggle_extension_lock(extension, False, level=level)
|
560
|
+
|
561
|
+
|
548
562
|
def build_check(app_options=None):
|
549
563
|
"""Determine whether JupyterLab should be built.
|
550
564
|
|
@@ -624,6 +638,19 @@ class _AppHandler:
|
|
624
638
|
|
625
639
|
# Do this last since it relies on other attributes
|
626
640
|
self.info = self._get_app_info()
|
641
|
+
# Migrate from 4.0 which did not have "locked" status
|
642
|
+
try:
|
643
|
+
self._maybe_mirror_disabled_in_locked(level="sys_prefix")
|
644
|
+
except PermissionError:
|
645
|
+
try:
|
646
|
+
self.logger.info(
|
647
|
+
"`sys_prefix` level settings are read-only, using `user` level for migration to `lockedExtensions`"
|
648
|
+
)
|
649
|
+
self._maybe_mirror_disabled_in_locked(level="user")
|
650
|
+
except PermissionError:
|
651
|
+
self.logger.warning(
|
652
|
+
"Both `sys_prefix` and `user` level settings are read-only, cannot auto-migrate `disabledExtensions` to `lockedExtensions`"
|
653
|
+
)
|
627
654
|
|
628
655
|
def install_extension(self, extension, existing=None, pin=None):
|
629
656
|
"""Install an extension package into JupyterLab.
|
@@ -1100,6 +1127,44 @@ class _AppHandler:
|
|
1100
1127
|
write_page_config(page_config, level=level)
|
1101
1128
|
return did_something
|
1102
1129
|
|
1130
|
+
def _maybe_mirror_disabled_in_locked(self, level="sys_prefix"):
|
1131
|
+
"""Lock all extensions that were previously disabled.
|
1132
|
+
|
1133
|
+
This exists to facilitate migration from 4.0 (which did not include lock
|
1134
|
+
function) to 4.1 which exposes the plugin management to users in UI.
|
1135
|
+
|
1136
|
+
Returns `True` if migration happened, `False` otherwise.
|
1137
|
+
"""
|
1138
|
+
app_settings_dir = osp.join(self.app_dir, "settings")
|
1139
|
+
|
1140
|
+
page_config = get_static_page_config(
|
1141
|
+
app_settings_dir=app_settings_dir, logger=self.logger, level=level
|
1142
|
+
)
|
1143
|
+
if "lockedExtensions" in page_config:
|
1144
|
+
# short-circuit if migration already happened
|
1145
|
+
return False
|
1146
|
+
|
1147
|
+
# copy disabled onto lockedExtensions, ensuring the mapping format
|
1148
|
+
disabled = page_config.get("disabledExtensions", {})
|
1149
|
+
if isinstance(disabled, list):
|
1150
|
+
disabled = {extension: True for extension in disabled}
|
1151
|
+
page_config["lockedExtensions"] = disabled
|
1152
|
+
write_page_config(page_config, level=level)
|
1153
|
+
return True
|
1154
|
+
|
1155
|
+
def toggle_extension_lock(self, extension, value, level="sys_prefix"):
|
1156
|
+
"""Lock or unlock a lab extension (/plugin)."""
|
1157
|
+
app_settings_dir = osp.join(self.app_dir, "settings")
|
1158
|
+
|
1159
|
+
page_config = get_static_page_config(
|
1160
|
+
app_settings_dir=app_settings_dir, logger=self.logger, level=level
|
1161
|
+
)
|
1162
|
+
|
1163
|
+
locked = page_config.get("lockedExtensions", {})
|
1164
|
+
locked[extension] = value
|
1165
|
+
|
1166
|
+
write_page_config(page_config, level=level)
|
1167
|
+
|
1103
1168
|
def check_extension(self, extension, check_installed_only=False):
|
1104
1169
|
"""Check if a lab extension is enabled or disabled"""
|
1105
1170
|
self._ensure_disabled_info()
|
@@ -1206,6 +1271,11 @@ class _AppHandler:
|
|
1206
1271
|
|
1207
1272
|
info["disabled"] = disabled
|
1208
1273
|
|
1274
|
+
locked = page_config.get("lockedExtensions", {})
|
1275
|
+
if isinstance(locked, list):
|
1276
|
+
locked = {extension: True for extension in locked}
|
1277
|
+
info["locked"] = locked
|
1278
|
+
|
1209
1279
|
disabled_core = []
|
1210
1280
|
for key in info["core_extensions"]:
|
1211
1281
|
if key in info["disabled"]:
|
@@ -1601,17 +1671,8 @@ class _AppHandler:
|
|
1601
1671
|
data = info["extensions"][name]
|
1602
1672
|
version = data["version"]
|
1603
1673
|
errors = info["compat_errors"][name]
|
1604
|
-
extra =
|
1605
|
-
|
1606
|
-
extra += " %s" % RED_DISABLED
|
1607
|
-
else:
|
1608
|
-
extra += " %s" % GREEN_ENABLED
|
1609
|
-
if errors:
|
1610
|
-
extra += " %s" % RED_X
|
1611
|
-
else:
|
1612
|
-
extra += " %s" % GREEN_OK
|
1613
|
-
if data["is_local"]:
|
1614
|
-
extra += "*"
|
1674
|
+
extra = self._compose_extra_status(name, info, data, errors)
|
1675
|
+
|
1615
1676
|
# If we have the package name in the data, this means this extension's name is the alias name
|
1616
1677
|
alias_package_source = data["alias_package_source"]
|
1617
1678
|
if alias_package_source:
|
@@ -1648,17 +1709,7 @@ class _AppHandler:
|
|
1648
1709
|
continue
|
1649
1710
|
version = data["version"]
|
1650
1711
|
errors = info["compat_errors"][name]
|
1651
|
-
extra =
|
1652
|
-
if _is_disabled(name, info["disabled"]):
|
1653
|
-
extra += " %s" % RED_DISABLED
|
1654
|
-
else:
|
1655
|
-
extra += " %s" % GREEN_ENABLED
|
1656
|
-
if errors:
|
1657
|
-
extra += " %s" % RED_X
|
1658
|
-
else:
|
1659
|
-
extra += " %s" % GREEN_OK
|
1660
|
-
if data["is_local"]:
|
1661
|
-
extra += "*"
|
1712
|
+
extra = self._compose_extra_status(name, info, data, errors)
|
1662
1713
|
|
1663
1714
|
install = data.get("install")
|
1664
1715
|
if install:
|
@@ -1672,6 +1723,26 @@ class _AppHandler:
|
|
1672
1723
|
# Write all errors at end:
|
1673
1724
|
_log_multiple_compat_errors(logger, error_accumulator)
|
1674
1725
|
|
1726
|
+
def _compose_extra_status(self, name: str, info: dict, data: dict, errors) -> str:
|
1727
|
+
extra = ""
|
1728
|
+
if _is_disabled(name, info["disabled"]):
|
1729
|
+
extra += " %s" % RED_DISABLED
|
1730
|
+
else:
|
1731
|
+
extra += " %s" % GREEN_ENABLED
|
1732
|
+
if errors:
|
1733
|
+
extra += " %s" % RED_X
|
1734
|
+
else:
|
1735
|
+
extra += " %s" % GREEN_OK
|
1736
|
+
if data["is_local"]:
|
1737
|
+
extra += "*"
|
1738
|
+
lock_status = _is_locked(name, info["locked"])
|
1739
|
+
if lock_status.entire_extension_locked:
|
1740
|
+
extra += " 🔒 (all plugins locked)"
|
1741
|
+
elif lock_status.locked_plugins:
|
1742
|
+
plugin_list = ", ".join(sorted(lock_status.locked_plugins))
|
1743
|
+
extra += " 🔒 (plugins: %s locked)" % plugin_list
|
1744
|
+
return extra
|
1745
|
+
|
1675
1746
|
def _read_build_config(self):
|
1676
1747
|
"""Get the build config data for the app dir."""
|
1677
1748
|
target = pjoin(self.app_dir, "settings", "build_config.json")
|
@@ -2285,6 +2356,33 @@ def _is_disabled(name, disabled=None):
|
|
2285
2356
|
return False
|
2286
2357
|
|
2287
2358
|
|
2359
|
+
@dataclass(frozen=True)
|
2360
|
+
class LockStatus:
|
2361
|
+
entire_extension_locked: bool
|
2362
|
+
# locked plugins are only given if extension is not locked as a whole
|
2363
|
+
locked_plugins: Optional[FrozenSet[str]] = None
|
2364
|
+
|
2365
|
+
|
2366
|
+
def _is_locked(name, locked=None) -> LockStatus:
|
2367
|
+
"""Test whether the package is locked.
|
2368
|
+
|
2369
|
+
If only a subset of extension plugins is locked return them.
|
2370
|
+
"""
|
2371
|
+
locked = locked or {}
|
2372
|
+
locked_plugins = set()
|
2373
|
+
for lock, value in locked.items():
|
2374
|
+
# skip packages explicitly marked as not locked
|
2375
|
+
if value is False:
|
2376
|
+
continue
|
2377
|
+
if name == lock:
|
2378
|
+
return LockStatus(entire_extension_locked=True)
|
2379
|
+
extension_part = lock.partition(":")[0]
|
2380
|
+
if name == extension_part:
|
2381
|
+
locked_plugins.add(lock)
|
2382
|
+
|
2383
|
+
return LockStatus(entire_extension_locked=False, locked_plugins=locked_plugins)
|
2384
|
+
|
2385
|
+
|
2288
2386
|
def _format_compatibility_errors(name, version, errors):
|
2289
2387
|
"""Format a message for compatibility errors."""
|
2290
2388
|
msgs = []
|
jupyterlab/extensions/manager.py
CHANGED
@@ -5,11 +5,13 @@
|
|
5
5
|
|
6
6
|
import json
|
7
7
|
import re
|
8
|
-
from dataclasses import dataclass, field, replace
|
8
|
+
from dataclasses import dataclass, field, fields, replace
|
9
9
|
from pathlib import Path
|
10
|
-
from typing import Dict, List, Optional, Set, Tuple
|
10
|
+
from typing import Dict, FrozenSet, List, Optional, Set, Tuple, Union
|
11
11
|
|
12
12
|
import tornado
|
13
|
+
from jupyterlab_server.translation_utils import translator
|
14
|
+
from traitlets import Enum
|
13
15
|
from traitlets.config import Configurable, LoggingConfigurable
|
14
16
|
|
15
17
|
from jupyterlab.commands import (
|
@@ -92,7 +94,7 @@ class ExtensionPackage:
|
|
92
94
|
latest_version: str = ""
|
93
95
|
status: str = "ok"
|
94
96
|
author: Optional[str] = None
|
95
|
-
license: Optional[str] = None
|
97
|
+
license: Optional[str] = None
|
96
98
|
bug_tracker_url: Optional[str] = None
|
97
99
|
documentation_url: Optional[str] = None
|
98
100
|
package_manager_url: Optional[str] = None
|
@@ -116,8 +118,23 @@ class ActionResult:
|
|
116
118
|
needs_restart: List[str] = field(default_factory=list)
|
117
119
|
|
118
120
|
|
119
|
-
@dataclass
|
120
|
-
class
|
121
|
+
@dataclass(frozen=True)
|
122
|
+
class PluginManagerOptions:
|
123
|
+
"""Plugin manager options.
|
124
|
+
|
125
|
+
Attributes:
|
126
|
+
lock_all: Whether to lock (prevent enabling/disabling) all plugins.
|
127
|
+
lock_rules: A list of plugins or extensions that cannot be toggled.
|
128
|
+
If extension name is provided, all its plugins will be disabled.
|
129
|
+
The plugin names need to follow colon-separated format of `extension:plugin`.
|
130
|
+
"""
|
131
|
+
|
132
|
+
lock_rules: FrozenSet[str] = field(default_factory=frozenset)
|
133
|
+
lock_all: bool = False
|
134
|
+
|
135
|
+
|
136
|
+
@dataclass(frozen=True)
|
137
|
+
class ExtensionManagerOptions(PluginManagerOptions):
|
121
138
|
"""Extension manager options.
|
122
139
|
|
123
140
|
Attributes:
|
@@ -161,7 +178,126 @@ class ExtensionsCache:
|
|
161
178
|
last_page: int = 1
|
162
179
|
|
163
180
|
|
164
|
-
class
|
181
|
+
class PluginManager(LoggingConfigurable):
|
182
|
+
"""Plugin manager enables or disables plugins unless locked.
|
183
|
+
|
184
|
+
It can also disable/enable all plugins in an extension.
|
185
|
+
|
186
|
+
Args:
|
187
|
+
app_options: Application options
|
188
|
+
ext_options: Plugin manager (subset of extension manager) options
|
189
|
+
parent: Configurable parent
|
190
|
+
|
191
|
+
Attributes:
|
192
|
+
app_options: Application options
|
193
|
+
options: Plugin manager options
|
194
|
+
"""
|
195
|
+
|
196
|
+
level = Enum(
|
197
|
+
values=["sys_prefix", "user", "system"],
|
198
|
+
default_value="sys_prefix",
|
199
|
+
help="Level at which to manage plugins: sys_prefix, user, system",
|
200
|
+
).tag(config=True)
|
201
|
+
|
202
|
+
def __init__(
|
203
|
+
self,
|
204
|
+
app_options: Optional[dict] = None,
|
205
|
+
ext_options: Optional[dict] = None,
|
206
|
+
parent: Optional[Configurable] = None,
|
207
|
+
) -> None:
|
208
|
+
super().__init__(parent=parent)
|
209
|
+
self.log.debug(
|
210
|
+
"Plugins in %s will managed on the %s level", self.__class__.__name__, self.level
|
211
|
+
)
|
212
|
+
self.app_options = _ensure_options(app_options)
|
213
|
+
plugin_options_field = {f.name for f in fields(PluginManagerOptions)}
|
214
|
+
plugin_options = {
|
215
|
+
option: value
|
216
|
+
for option, value in (ext_options or {}).items()
|
217
|
+
if option in plugin_options_field
|
218
|
+
}
|
219
|
+
self.options = PluginManagerOptions(**plugin_options)
|
220
|
+
|
221
|
+
async def plugin_locks(self) -> dict:
|
222
|
+
"""Get information about locks on plugin enabling/disabling"""
|
223
|
+
return {
|
224
|
+
"lockRules": list(self.options.lock_rules),
|
225
|
+
"allLocked": self.options.lock_all,
|
226
|
+
}
|
227
|
+
|
228
|
+
def _find_locked(self, plugins_or_extensions: List[str]) -> FrozenSet[str]:
|
229
|
+
"""Find a subset of plugins (or extensions) which are locked"""
|
230
|
+
if self.options.lock_all:
|
231
|
+
return set(plugins_or_extensions)
|
232
|
+
locked_subset = set()
|
233
|
+
extensions_with_locked_plugins = {
|
234
|
+
plugin.split(":")[0] for plugin in self.options.lock_rules
|
235
|
+
}
|
236
|
+
for plugin in plugins_or_extensions:
|
237
|
+
if ":" in plugin:
|
238
|
+
# check directly if this is a plugin identifier (has colon)
|
239
|
+
if plugin in self.options.lock_rules:
|
240
|
+
locked_subset.add(plugin)
|
241
|
+
elif plugin in extensions_with_locked_plugins:
|
242
|
+
# this is an extension - we need to check for >any< plugin
|
243
|
+
# belonging to said extension
|
244
|
+
locked_subset.add(plugin)
|
245
|
+
return locked_subset
|
246
|
+
|
247
|
+
async def disable(self, plugins: Union[str, List[str]]) -> ActionResult:
|
248
|
+
"""Disable a set of plugins (or an extension).
|
249
|
+
|
250
|
+
Args:
|
251
|
+
plugins: The list of plugins to disable
|
252
|
+
Returns:
|
253
|
+
The action result
|
254
|
+
"""
|
255
|
+
plugins = plugins if isinstance(plugins, list) else [plugins]
|
256
|
+
locked = self._find_locked(plugins)
|
257
|
+
trans = translator.load("jupyterlab")
|
258
|
+
if locked:
|
259
|
+
return ActionResult(
|
260
|
+
status="error",
|
261
|
+
message=trans.gettext(
|
262
|
+
"The following plugins cannot be disabled as they are locked: "
|
263
|
+
)
|
264
|
+
+ ", ".join(locked),
|
265
|
+
)
|
266
|
+
try:
|
267
|
+
for plugin in plugins:
|
268
|
+
disable_extension(plugin, app_options=self.app_options, level=self.level)
|
269
|
+
return ActionResult(status="ok", needs_restart=["frontend"])
|
270
|
+
except Exception as err:
|
271
|
+
return ActionResult(status="error", message=repr(err))
|
272
|
+
|
273
|
+
async def enable(self, plugins: Union[str, List[str]]) -> ActionResult:
|
274
|
+
"""Enable a set of plugins (or an extension).
|
275
|
+
|
276
|
+
Args:
|
277
|
+
plugins: The list of plugins to enable
|
278
|
+
Returns:
|
279
|
+
The action result
|
280
|
+
"""
|
281
|
+
plugins = plugins if isinstance(plugins, list) else [plugins]
|
282
|
+
locked = self._find_locked(plugins)
|
283
|
+
trans = translator.load("jupyterlab")
|
284
|
+
if locked:
|
285
|
+
return ActionResult(
|
286
|
+
status="error",
|
287
|
+
message=trans.gettext(
|
288
|
+
"The following plugins cannot be enabled as they are locked: "
|
289
|
+
)
|
290
|
+
+ ", ".join(locked),
|
291
|
+
)
|
292
|
+
try:
|
293
|
+
for plugin in plugins:
|
294
|
+
enable_extension(plugin, app_options=self.app_options, level=self.level)
|
295
|
+
return ActionResult(status="ok", needs_restart=["frontend"])
|
296
|
+
except Exception as err:
|
297
|
+
return ActionResult(status="error", message=repr(err))
|
298
|
+
|
299
|
+
|
300
|
+
class ExtensionManager(PluginManager):
|
165
301
|
"""Base abstract extension manager.
|
166
302
|
|
167
303
|
Note:
|
@@ -195,12 +331,10 @@ class ExtensionManager(LoggingConfigurable):
|
|
195
331
|
ext_options: Optional[dict] = None,
|
196
332
|
parent: Optional[Configurable] = None,
|
197
333
|
) -> None:
|
198
|
-
super().__init__(parent=parent)
|
199
|
-
|
200
|
-
self.
|
201
|
-
self.
|
202
|
-
self.core_config = app_options.core_config
|
203
|
-
self.app_options = app_options
|
334
|
+
super().__init__(app_options=app_options, ext_options=ext_options, parent=parent)
|
335
|
+
self.log = self.app_options.logger
|
336
|
+
self.app_dir = Path(self.app_options.app_dir)
|
337
|
+
self.core_config = self.app_options.core_config
|
204
338
|
self.options = ExtensionManagerOptions(**(ext_options or {}))
|
205
339
|
self._extensions_cache: Dict[Optional[str], ExtensionsCache] = {}
|
206
340
|
self._listings_cache: Optional[dict] = None
|
@@ -286,34 +420,6 @@ class ExtensionManager(LoggingConfigurable):
|
|
286
420
|
"""
|
287
421
|
raise NotImplementedError()
|
288
422
|
|
289
|
-
async def disable(self, extension: str) -> ActionResult:
|
290
|
-
"""Disable an extension.
|
291
|
-
|
292
|
-
Args:
|
293
|
-
extension: The extension name
|
294
|
-
Returns:
|
295
|
-
The action result
|
296
|
-
"""
|
297
|
-
try:
|
298
|
-
disable_extension(extension, app_options=self.app_options)
|
299
|
-
return ActionResult(status="ok", needs_restart=["frontend"])
|
300
|
-
except Exception as err:
|
301
|
-
return ActionResult(status="error", message=repr(err))
|
302
|
-
|
303
|
-
async def enable(self, extension: str) -> ActionResult:
|
304
|
-
"""Enable an extension.
|
305
|
-
|
306
|
-
Args:
|
307
|
-
extension: The extension name
|
308
|
-
Returns:
|
309
|
-
The action result
|
310
|
-
"""
|
311
|
-
try:
|
312
|
-
enable_extension(extension, app_options=self.app_options)
|
313
|
-
return ActionResult(status="ok", needs_restart=["frontend"])
|
314
|
-
except Exception as err:
|
315
|
-
return ActionResult(status="error", message=repr(err))
|
316
|
-
|
317
423
|
@staticmethod
|
318
424
|
def get_semver_version(version: str) -> str:
|
319
425
|
"""Convert a Python version to Semver version.
|