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

1from ahuora_builder_types.unit_model_schema import ArgSchema, DictArgSchema, ValueArgSchema 

2 

3from .property_info_adapter import ValueAdapter 

4 

5 

6 

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 

14 

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 } 

20 

21 

22class DictArgAdapter(ArgAdapter): 

23 """ 

24 Serialise a nested constructor kwarg as a typed dict arg schema. 

25 """ 

26 

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 ) 

34 

35 

36class ConstantArg(ValueAdapter): 

37 def __init__(self, value): 

38 self.value = value 

39 

40 def serialise(self, ctx, unit_model): 

41 return ValueArgSchema(value=self.value) 

42 

43class ConstantSchemaAdapter(ValueAdapter): 

44 def __init__(self, schema: ArgSchema): 

45 self.schema = schema 

46 

47 def serialise(self, ctx, unit_model): 

48 return self.schema