Coverage for backend/ahuora-builder/src/ahuora_builder/methods/adapter_methods.py: 69%
36 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 typing import Any, Callable
2from abc import ABC, abstractmethod
3from ahuora_builder_types.unit_model_schema import ArgSchema, ValueArgSchema, DictArgSchema, PropertyPackageArgSchema, PowerPPArgSchema, ACPPArgSchema, ReactionPPArgSchema, ReactorPPArgSchema
4from idaes.core.base.property_base import PhysicalParameterBlock
5from idaes.core.base.reaction_base import ReactionParameterBlock
6from ..flowsheet_manager_type import FlowsheetManager
7from ahuora_builder_types import PropertyPackageId
9def parse_args_dictionary(dictionary: dict[str,ArgSchema], flowsheet_manager: FlowsheetManager) -> dict[str, Any]:
10 """
11 This returns the kwargs for the unit model constructor
12 """
13 result : dict[str, Any] = {}
14 for key, value in dictionary.items():
15 match value.type:
16 case "dict":
17 result[key] = parse_args_dictionary(value.value, flowsheet_manager)
18 case "value":
19 result[key] = value.value
20 case "property_package":
21 result[key] = parse_property_package(value.id, flowsheet_manager)
22 case "power": 22 ↛ 24line 22 didn't jump to line 24 because the pattern on line 22 always matched
23 result[key] = parse_power_property_package(flowsheet_manager)
24 case "AC":
25 result[key] = parse_ac_property_package(flowsheet_manager)
26 case "reaction":
27 result[key] = parse_reaction_package(flowsheet_manager)
28 case "reactor":
29 result[key] = parse_reactor_property_package(flowsheet_manager)
30 return result
32def parse_property_package(id: PropertyPackageId, flowsheet_manager: FlowsheetManager) -> PhysicalParameterBlock:
33 # return a property package by id
34 return flowsheet_manager.property_packages.get(id)
36def parse_reaction_package( flowsheet_manager: FlowsheetManager) -> ReactionParameterBlock:
37 # return a reaction package
38 return flowsheet_manager.model.fs.reaction_params
40def parse_reactor_property_package( flowsheet_manager: FlowsheetManager) -> PhysicalParameterBlock:
41 # return a reactor property package by id
42 return flowsheet_manager.model.fs.peng_robinson
44def parse_power_property_package(flowsheet_manager: FlowsheetManager) -> PhysicalParameterBlock:
45 # return a power property package
46 return flowsheet_manager.model.fs.power_pp
48def parse_ac_property_package(flowsheet_manager: FlowsheetManager) -> PhysicalParameterBlock:
49 # return an ac property package
50 return flowsheet_manager.model.fs.ac_pp