Coverage for /Users/ajo/work/jumpstarter/jumpstarter/packages/jumpstarter-driver-composite/jumpstarter_driver_composite/client.py: 63%
19 statements
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-26 17:10 +0200
« prev ^ index » next coverage.py v7.9.1, created at 2025-06-26 17:10 +0200
1from dataclasses import dataclass
3import 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