Coverage for  / home / runner / work / bijux-cli / bijux-cli / src / bijux_cli / services / diagnostics / telemetry.py: 100%

12 statements  

« 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 

3 

4"""Telemetry configuration helpers.""" 

5 

6from __future__ import annotations 

7 

8import os 

9 

10from bijux_cli.core.di import DIContainer 

11from bijux_cli.infra.telemetry import LoggingTelemetry, NoopTelemetry 

12from bijux_cli.services.contracts import TelemetryProtocol 

13 

14 

15def resolve_telemetry( 

16 di: DIContainer, enabled: bool | None = None 

17) -> TelemetryProtocol: 

18 """Resolve telemetry based on an opt-in flag or environment variable.""" 

19 if enabled is None: 

20 enabled = os.getenv("BIJUXCLI_TELEMETRY", "").lower() in {"1", "true", "yes"} 

21 if enabled: 

22 return di.resolve(LoggingTelemetry) 

23 return di.resolve(NoopTelemetry) 

24 

25 

26__all__ = ["resolve_telemetry"]