|
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 |
|
@@ -320,20 +321,29 @@ def list_server_extensions(self):
|
320 | 321 | )
|
321 | 322 |
|
322 | 323 | for option in configurations:
|
323 |
| - config_dir, ext_manager = _get_extmanager_for_context(**option) |
| 324 | + config_dir = _get_config_dir(**option) |
324 | 325 | self.log.info(f"Config dir: {config_dir}")
|
325 |
| - for name, extension in ext_manager.extensions.items(): |
326 |
| - enabled = extension.enabled |
| 326 | + write_dir = "jupyter_server_config.d" |
| 327 | + config_manager = ExtensionConfigManager( |
| 328 | + read_config_path=[config_dir], |
| 329 | + write_config_dir=os.path.join(config_dir, write_dir), |
| 330 | + ) |
| 331 | + jpserver_extensions = config_manager.get_jpserver_extensions() |
| 332 | + for name, enabled in jpserver_extensions.items(): |
327 | 333 | # Attempt to get extension metadata
|
328 | 334 | self.log.info(f" {name} {GREEN_ENABLED if enabled else RED_DISABLED}")
|
329 | 335 | try:
|
330 | 336 | self.log.info(f" - Validating {name}...")
|
| 337 | + extension = ExtensionPackage(name=name, enabled=enabled) |
331 | 338 | if not extension.validate():
|
332 | 339 | raise ValueError("validation failed")
|
333 | 340 | version = extension.version
|
334 | 341 | self.log.info(f" {name} {version} {GREEN_OK}")
|
335 | 342 | except Exception as err:
|
336 |
| - self.log.warning(f" {RED_X} {err}") |
| 343 | + exc_info = False |
| 344 | + if int(self.log_level) <= logging.DEBUG: |
| 345 | + exc_info = True |
| 346 | + self.log.warning(f" {RED_X} {err}", exc_info=exc_info) |
337 | 347 | # Add a blank line between paths.
|
338 | 348 | self.log.info("")
|
339 | 349 |
|
|
0 commit comments