Coverage for core / src / sensorkit / cli / __main__.py: 0%
24 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-09-02 00:03 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-09-02 00:03 +0000
1# SPDX-License-Identifier: Apache-2.0
2from typing import cast
4import asyncclick as click
6from sensorkit.cli.agent import agent_group
7from sensorkit.cli.config import config_group
8from sensorkit.cli.controller import controller_group
9from sensorkit.cli.device import device_group
10from sensorkit.cli.go import go_command
11from sensorkit.cli.kv import kv_group
12from sensorkit.cli.service import service_group
15@click.group()
16async def cli():
17 # Load .env before any command resolves config/backend/imports from the
18 # environment (notably with_kit's connect()), so process env > .env > defaults.
19 from dotenv import find_dotenv, load_dotenv
21 load_dotenv(find_dotenv(usecwd=True))
24cli.add_command(cast(click.Command, config_group))
25cli.add_command(cast(click.Command, kv_group))
26cli.add_command(cast(click.Command, service_group))
27cli.add_command(cast(click.Command, go_command))
28cli.add_command(cast(click.Command, controller_group))
29cli.add_command(cast(click.Command, device_group))
30cli.add_command(cast(click.Command, agent_group))
33def root():
34 cli(_anyio_backend="asyncio")
37if __name__ == "__main__":
38 root()