Ver código fonte

Simplify prebuilt extension app example

The LabServerApp already has code to find prebuilt extensions. All we need to do is set the right search path.
Jason Grout 4 anos atrás
pai
commit
ea5e6b3fea
1 arquivos alterados com 32 adições e 29 exclusões
  1. 32 29
      examples/federated/main.py

+ 32 - 29
examples/federated/main.py

@@ -24,10 +24,10 @@ def _jupyter_server_extension_points():
         }
     ]
 
-class ExampleApp(LabServerApp):
+class ExamplePrebuiltApp(LabServerApp):
     name = 'lab'
     load_other_extensions = False
-    app_name = 'JupyterLab Example Federated App'
+    app_name = 'JupyterLab Example App with Prebuilt Extensions'
     app_settings_dir = os.path.join(HERE, 'build', 'application_settings')
     app_version = version
     schemas_dir = os.path.join(HERE, 'core_package', 'build', 'schemas')
@@ -36,38 +36,41 @@ class ExampleApp(LabServerApp):
     themes_dir = os.path.join(HERE, 'core_package', 'build', 'themes')
     user_settings_dir = os.path.join(HERE, 'core_package', 'build', 'user_settings')
     workspaces_dir = os.path.join(HERE, 'core_package', 'build', 'workspaces')
-    labextensions_path =  [os.path.join(HERE, "labextensions")]
 
-    def initialize_handlers(self):
-        # Handle labextension assets
-        web_app = self.serverapp.web_app
-        page_config = web_app.settings.get('page_config_data', {})
-        web_app.settings['page_config_data'] = page_config
+    # Set the location for prebuilt extensions, overriding the default
+    # of looking in each of the Jupyter data paths.
+    labextensions_path = [os.path.join(HERE, "labextensions")]
 
-        # By default, make terminals available.
-        web_app.settings.setdefault('terminals_available', True)
+    # def initialize_handlers(self):
+    #     # Handle labextension assets
+    #     web_app = self.serverapp.web_app
+    #     page_config = web_app.settings.get('page_config_data', {})
+    #     web_app.settings['page_config_data'] = page_config
 
-        # Extract the federated extension data from lab_extensions
-        federated_exts = []
-        for ext_path in [path for path in glob('./labextensions/**/package.json', recursive=True)]:
-            with open(ext_path) as fid:
-                data = json.load(fid)
-            extbuild = data['jupyterlab']['_build']
-            ext = {
-                'name': data['name'],
-                'load': extbuild['load'],
-            }
-            if 'extension' in extbuild:
-                ext['extension'] = extbuild['extension']
-            if 'mimeExtension' in extbuild:
-                ext['mimeExtension'] = extbuild['mimeExtension']
-            if 'style' in extbuild:
-                ext['style'] = extbuild['style']
-            federated_exts.append(ext)
+    #     # By default, make terminals available.
+    #     web_app.settings.setdefault('terminals_available', True)
 
-        page_config['federated_extensions'] = federated_exts
+    #     # Extract the federated extension data from lab_extensions
+    #     federated_exts = []
+    #     for ext_path in [path for path in glob('./labextensions/**/package.json', recursive=True)]:
+    #         with open(ext_path) as fid:
+    #             data = json.load(fid)
+    #         extbuild = data['jupyterlab']['_build']
+    #         ext = {
+    #             'name': data['name'],
+    #             'load': extbuild['load'],
+    #         }
+    #         if 'extension' in extbuild:
+    #             ext['extension'] = extbuild['extension']
+    #         if 'mimeExtension' in extbuild:
+    #             ext['mimeExtension'] = extbuild['mimeExtension']
+    #         if 'style' in extbuild:
+    #             ext['style'] = extbuild['style']
+    #         federated_exts.append(ext)
 
-        super().initialize_handlers()
+    #     page_config['federated_extensions'] = federated_exts
+
+    #     super().initialize_handlers()
 
 if __name__ == '__main__':
     ExampleApp.launch_instance()