Skip to content

Commit 7ff6e52

Browse files
Zsailerblink1073
andauthored
Raise errors on individual problematic extensions when listing extension (#1139)
* Raise errors on individual problematic extensions when listing extension * show full trace only in debug mode * lint Co-authored-by: Steven Silvester <[email protected]>
1 parent 2dd116f commit 7ff6e52

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

jupyter_server/extension/serverextension.py

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
"""Utilities for installing extensions"""
22
# Copyright (c) Jupyter Development Team.
33
# Distributed under the terms of the Modified BSD License.
4+
import logging
45
import os
56
import sys
67

@@ -323,20 +324,29 @@ def list_server_extensions(self):
323324
)
324325

325326
for option in configurations:
326-
config_dir, ext_manager = _get_extmanager_for_context(**option)
327+
config_dir = _get_config_dir(**option)
327328
self.log.info(f"Config dir: {config_dir}")
328-
for name, extension in ext_manager.extensions.items():
329-
enabled = extension.enabled
329+
write_dir = "jupyter_server_config.d"
330+
config_manager = ExtensionConfigManager(
331+
read_config_path=[config_dir],
332+
write_config_dir=os.path.join(config_dir, write_dir),
333+
)
334+
jpserver_extensions = config_manager.get_jpserver_extensions()
335+
for name, enabled in jpserver_extensions.items():
330336
# Attempt to get extension metadata
331337
self.log.info(f" {name} {GREEN_ENABLED if enabled else RED_DISABLED}")
332338
try:
333339
self.log.info(f" - Validating {name}...")
340+
extension = ExtensionPackage(name=name, enabled=enabled)
334341
if not extension.validate():
335342
raise ValueError("validation failed")
336343
version = extension.version
337344
self.log.info(f" {name} {version} {GREEN_OK}")
338345
except Exception as err:
339-
self.log.warning(f" {RED_X} {err}")
346+
exc_info = False
347+
if int(self.log_level) <= logging.DEBUG:
348+
exc_info = True
349+
self.log.warning(f" {RED_X} {err}", exc_info=exc_info)
340350
# Add a blank line between paths.
341351
self.log.info("")
342352

0 commit comments

Comments
 (0)