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
« 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"""Telemetry configuration helpers."""
6from __future__ import annotations
8import os
10from bijux_cli.core.di import DIContainer
11from bijux_cli.infra.telemetry import LoggingTelemetry, NoopTelemetry
12from bijux_cli.services.contracts import TelemetryProtocol
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)
26__all__ = ["resolve_telemetry"]