|
1 | 1 | """Utilities for installing extensions""" |
2 | 2 | # Copyright (c) Jupyter Development Team. |
3 | 3 | # Distributed under the terms of the Modified BSD License. |
| 4 | +import logging |
4 | 5 | import os |
5 | 6 | import sys |
6 | 7 |
|
@@ -323,20 +324,29 @@ def list_server_extensions(self): |
323 | 324 | ) |
324 | 325 |
|
325 | 326 | for option in configurations: |
326 | | - config_dir, ext_manager = _get_extmanager_for_context(**option) |
| 327 | + config_dir = _get_config_dir(**option) |
327 | 328 | 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(): |
330 | 336 | # Attempt to get extension metadata |
331 | 337 | self.log.info(f" {name} {GREEN_ENABLED if enabled else RED_DISABLED}") |
332 | 338 | try: |
333 | 339 | self.log.info(f" - Validating {name}...") |
| 340 | + extension = ExtensionPackage(name=name, enabled=enabled) |
334 | 341 | if not extension.validate(): |
335 | 342 | raise ValueError("validation failed") |
336 | 343 | version = extension.version |
337 | 344 | self.log.info(f" {name} {version} {GREEN_OK}") |
338 | 345 | 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) |
340 | 350 | # Add a blank line between paths. |
341 | 351 | self.log.info("") |
342 | 352 |
|
|
0 commit comments