Coverage for /home/fedora/jumpstarter/packages/jumpstarter-driver-composite/jumpstarter_driver_composite/client.py: 63%
19 statements
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-05 20:29 +0000
« prev ^ index » next coverage.py v7.8.0, created at 2025-05-05 20:29 +0000
1from dataclasses import dataclass
3import asyncclick as click
5from jumpstarter.client import DriverClient
8@dataclass(kw_only=True)
9class CompositeClient(DriverClient):
10 def __getattr__(self, name):
11 return self.children[name]
13 def close(self):
14 for _, v in self.children.items():
15 if hasattr(v, "close"):
16 v.close()
18 def cli(self):
19 @click.group
20 def base():
21 """Generic composite device"""
22 pass
24 for k, v in self.children.items():
25 if hasattr(v, "cli"):
26 base.add_command(v.cli(), k)
28 return base