Coverage for backend/django/idaes_factory/adapters/generic_adapters.py: 100%

14 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-06-23 21:51 +0000

1""" 

2Generic adapters that may be useful across a few different unit model types. 

3""" 

4from ahuora_builder_types.unit_model_schema import ValueArgSchema 

5 

6from .property_info_adapter import ValueAdapter 

7from ..queryset_lookup import get_all_ports 

8 

9 

10class PortCountAdapter(ValueAdapter): 

11 """Serialise the number of active ports for a given port key.""" 

12 

13 def __init__(self, port_key: str): 

14 self.port_key = port_key 

15 

16 def serialise(self, ctx, unit_model): 

17 return ValueArgSchema( 

18 value=len(get_all_ports(unit_model, self.port_key)) 

19 ) 

20 

21 

22class NumInletsAdapter(PortCountAdapter): 

23 """ 

24 Can be used when the number of inlets has to be set as an argument on a unit model. 

25 E.g a mixer https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/generic/unit_models/mixer.html?highlight=num_inlets#idaes.models.unit_models.mixer.Mixer 

26 """ 

27 def __init__(self): 

28 super().__init__("inlet") 

29 

30 

31class NumOutletsAdapter(PortCountAdapter): 

32 """ 

33 Can be used when the number of outlets has to be set as an argument on a unit model. 

34 E.g a splitter https://idaes-pse.readthedocs.io/en/stable/reference_guides/model_libraries/generic/unit_models/splitter.html?highlight=num_outlets#idaes.models.unit_models.splitter.Splitter 

35 """ 

36 def __init__(self): 

37 super().__init__("outlet")