|
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