Coverage for backend/django/idaes_factory/adapters/arg_adapter.py: 100%
20 statements
« prev ^ index » next coverage.py v7.10.7, created at 2026-05-13 02:47 +0000
« prev ^ index » next coverage.py v7.10.7, created at 2026-05-13 02:47 +0000
1from ahuora_builder_types.unit_model_schema import ArgSchema, DictArgSchema, ValueArgSchema
3from .property_info_adapter import ValueAdapter
7class ArgAdapter(ValueAdapter):
8 """
9 Represents the methods used to get the arguments of a unit model.
10 Only serialisation is supported because arguments aren't returned.
11 """
12 def __init__(self, schema: dict[str, ValueAdapter]) -> None:
13 self.schema = schema
15 def serialise(self, ctx, unit_model):
16 return {
17 key: adapter.serialise(ctx, unit_model)
18 for key, adapter in self.schema.items()
19 }
22class DictArgAdapter(ArgAdapter):
23 """
24 Serialise a nested constructor kwarg as a typed dict arg schema.
25 """
27 def serialise(self, ctx, unit_model):
28 return DictArgSchema(
29 value={
30 key: adapter.serialise(ctx, unit_model)
31 for key, adapter in self.schema.items()
32 }
33 )
36class ConstantArg(ValueAdapter):
37 def __init__(self, value):
38 self.value = value
40 def serialise(self, ctx, unit_model):
41 return ValueArgSchema(value=self.value)
43class ConstantSchemaAdapter(ValueAdapter):
44 def __init__(self, schema: ArgSchema):
45 self.schema = schema
47 def serialise(self, ctx, unit_model):
48 return self.schema