Skip to content

Commit 2b5ba96

Browse files
committed
chore: fix recursion problem compressor model
1 parent abaee05 commit 2b5ba96

1 file changed

Lines changed: 11 additions & 5 deletions

File tree

  • src/libecalc/domain/process/compressor/core

src/libecalc/domain/process/compressor/core/factory.py

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
from typing import Any
1+
from typing import Any, get_args
22

33
from libecalc.common.energy_model_type import EnergyModelType
44
from libecalc.common.logger import logger
@@ -22,10 +22,10 @@
2222
CompressorTrainSimplifiedWithKnownStages,
2323
CompressorTrainSimplifiedWithUnknownStages,
2424
CompressorWithTurbine,
25-
SingleSpeedCompressorTrain,
2625
VariableSpeedCompressorTrain,
2726
VariableSpeedCompressorTrainMultipleStreamsAndPressures,
2827
)
28+
from libecalc.domain.process.compressor.dto.model_types import CompressorModelTypes
2929
from libecalc.domain.process.compressor.dto.model_types import CompressorModelTypes as CompressorModelDTO
3030
from libecalc.domain.process.value_objects.fluid_stream.fluid_factory import FluidFactoryInterface
3131
from libecalc.domain.process.value_objects.fluid_stream.fluid_model import FluidModel
@@ -88,10 +88,16 @@ def _create_turbine(turbine_dto: Turbine) -> Turbine:
8888
def _create_compressor_with_turbine(
8989
compressor_model_dto: CompressorWithTurbine,
9090
) -> CompressorWithTurbineModel:
91-
if isinstance(compressor_model_dto, SingleSpeedCompressorTrain):
92-
compressor_model = compressor_model_dto
91+
compressor_train = compressor_model_dto.compressor_train
92+
if isinstance(compressor_model_dto.compressor_train, CompressorModel):
93+
compressor_model = compressor_train
94+
elif isinstance(compressor_train, get_args(CompressorModelTypes)):
95+
compressor_model = create_compressor_model(compressor_train)
9396
else:
94-
compressor_model = create_compressor_model(compressor_model_dto)
97+
raise TypeError(f"Invalid type for compressor_train: {type(compressor_train)}")
98+
99+
assert isinstance(compressor_model, CompressorModel)
100+
95101
return CompressorWithTurbineModel(
96102
energy_usage_adjustment_constant=compressor_model_dto.energy_usage_adjustment_constant,
97103
energy_usage_adjustment_factor=compressor_model_dto.energy_usage_adjustment_factor,

0 commit comments

Comments
 (0)