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

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 

8 

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 

31 

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) 

35 

36def parse_reaction_package( flowsheet_manager: FlowsheetManager) -> ReactionParameterBlock: 

37 # return a reaction package 

38 return flowsheet_manager.model.fs.reaction_params 

39 

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 

43 

44def parse_power_property_package(flowsheet_manager: FlowsheetManager) -> PhysicalParameterBlock: 

45 # return a power property package 

46 return flowsheet_manager.model.fs.power_pp 

47 

48def parse_ac_property_package(flowsheet_manager: FlowsheetManager) -> PhysicalParameterBlock: 

49 # return an ac property package 

50 return flowsheet_manager.model.fs.ac_pp