__init__.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. """Extension manager for JupyterLab."""
  2. # Copyright (c) Jupyter Development Team.
  3. # Distributed under the terms of the Modified BSD License.
  4. import sys
  5. from typing import Optional
  6. from traitlets.config import Configurable
  7. from .manager import ActionResult, ExtensionManager, ExtensionPackage # noqa: F401
  8. from .pypi import PyPIExtensionManager
  9. from .readonly import ReadOnlyExtensionManager
  10. # See compatibility note on `group` keyword in https://docs.python.org/3/library/importlib.metadata.html#entry-points
  11. if sys.version_info < (3, 10):
  12. from importlib_metadata import entry_points
  13. else:
  14. from importlib.metadata import entry_points
  15. # Supported third-party services
  16. MANAGERS = {}
  17. for entry in entry_points(group="jupyterlab.extension_manager_v1"):
  18. MANAGERS[entry.name] = entry
  19. # Entry points
  20. def get_readonly_manager(
  21. app_options: Optional[dict] = None,
  22. ext_options: Optional[dict] = None,
  23. parent: Optional[Configurable] = None,
  24. ) -> ExtensionManager:
  25. """Read-Only Extension Manager factory"""
  26. return ReadOnlyExtensionManager(app_options, ext_options, parent)
  27. def get_pypi_manager(
  28. app_options: Optional[dict] = None,
  29. ext_options: Optional[dict] = None,
  30. parent: Optional[Configurable] = None,
  31. ) -> ExtensionManager:
  32. """PyPi Extension Manager factory"""
  33. return PyPIExtensionManager(app_options, ext_options, parent)