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
« 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
6from .property_info_adapter import ValueAdapter
7from ..queryset_lookup import get_all_ports
10class PortCountAdapter(ValueAdapter):
11 """Serialise the number of active ports for a given port key."""
13 def __init__(self, port_key: str):
14 self.port_key = port_key
16 def serialise(self, ctx, unit_model):
17 return ValueArgSchema(
18 value=len(get_all_ports(unit_model, self.port_key))
19 )
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")
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")