Traceback (most recent call last):
File "C:\repositories\demo\run_impact_model.py", line 3, in <module>
model = ImpactModel.from_yaml("data/impact_model.yaml")
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\repositories\demo\.venv\Lib\site-packages\apparun\impact_model.py", line 176, in from_yaml
return ImpactModel.from_dict(impact_model)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\repositories\demo\.venv\Lib\site-packages\apparun\impact_model.py", line 148, in from_dict
tree=ImpactTreeNode.from_dict(impact_model["tree"]),
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\repositories\demo\.venv\Lib\site-packages\apparun\impact_tree.py", line 138, in from_dict
node = ImpactTreeNode(
^^^^^^^^^^^^^^^
File "C:\repositories\demo\.venv\Lib\site-packages\pydantic\main.py", line 250, in __init__
validated_self = self.__pydantic_validator__.validate_python(data, self_instance=self)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.ValidationError: 1 validation error for ImpactTreeNode
models
[type=invalid_expr, input_value={'EFV3_CLIMATE_CHANGE': '... 21.707425626610416)))'}, input_type=dict]
When the symbolic expressions are serialized,
-1*paramis stored as-paramin the impact models, which sometimes cannot be deserialized back into a symbolic expression.This can lead to an
invalid_exprwhen loading the model.A workaround is to manually replace each occurrence of
-paramby-1*paramin the impact model.