Coverage for / home / runner / work / bijux-cli / bijux-cli / src / bijux_cli / plugins / services.py: 93%
12 statements
« prev ^ index » next coverage.py v7.13.2, created at 2026-01-26 17:59 +0000
« prev ^ index » next coverage.py v7.13.2, created at 2026-01-26 17:59 +0000
1# SPDX-License-Identifier: Apache-2.0
2# Copyright © 2025 Bijan Mousavi
4"""Plugin service registration."""
6from __future__ import annotations
8from typing import TYPE_CHECKING
10from bijux_cli.plugins.contracts import PluginConfig, RegistryProtocol
11from bijux_cli.services.contracts import TelemetryProtocol
13if TYPE_CHECKING:
14 from bijux_cli.core.di import DIContainer
17def register_plugin_services(
18 di: DIContainer, *, plugin_config: PluginConfig | None = None
19) -> None:
20 """Register plugin configuration and registry services."""
21 import bijux_cli.plugins.registry
23 if plugin_config is None: 23 ↛ 26line 23 didn't jump to line 26 because the condition on line 23 was always true
24 plugin_config = PluginConfig(enabled=True, allow_entrypoints=True)
26 di.register(PluginConfig, lambda: plugin_config)
27 di.register(
28 bijux_cli.plugins.registry.Registry,
29 lambda: bijux_cli.plugins.registry.Registry(di.resolve(TelemetryProtocol)),
30 )
31 di.register(
32 RegistryProtocol,
33 lambda: di.resolve(bijux_cli.plugins.registry.Registry),
34 )
37__all__ = ["register_plugin_services"]