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

1# SPDX-License-Identifier: Apache-2.0 

2from typing import cast 

3 

4import asyncclick as click 

5 

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 

13 

14 

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 

20 

21 load_dotenv(find_dotenv(usecwd=True)) 

22 

23 

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)) 

31 

32 

33def root(): 

34 cli(_anyio_backend="asyncio") 

35 

36 

37if __name__ == "__main__": 

38 root()