From 9581c69bdf919f8f3b1127620103463a7a551aef Mon Sep 17 00:00:00 2001
From: "christoph.von.oy" <christoph.von.oy@rwth-aachen.de>
Date: Fri, 3 May 2024 11:43:15 +0200
Subject: [PATCH] EntityResult returns Profiles

---
 component/adapter.py  |  8 +++-----
 optimization_model.py | 11 ++++++++++-
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/component/adapter.py b/component/adapter.py
index b629746..9567dcc 100644
--- a/component/adapter.py
+++ b/component/adapter.py
@@ -28,7 +28,7 @@ from Model_Library.component.core import (
     ComponentCommodity,
     ComponentKind,
 )
-from Model_Library.dynamics import Profile, resample, resample_variable
+from Model_Library.dynamics import resample, resample_variable
 from Model_Library.optimization_model import VariableKind
 
 import pyomo.environ as pyo
@@ -142,13 +142,11 @@ class MemberAdapter(AbstractComponent):
         member_result = self.member._results[self.member._last_result_key]
 
         into_member = resample(
-            Profile(member_result[self.grid.name + ".output_1"], member_result.dynamic),
-            o_block.dynamic,
+            member_result[self.grid.name + ".output_1"], o_block.dynamic
         ).values
 
         from_member = resample(
-            Profile(member_result[self.grid.name + ".input_1"], member_result.dynamic),
-            o_block.dynamic,
+            member_result[self.grid.name + ".input_1"], o_block.dynamic
         ).values
 
         def rule(m, t):
diff --git a/optimization_model.py b/optimization_model.py
index c999fa8..2df8cd6 100644
--- a/optimization_model.py
+++ b/optimization_model.py
@@ -22,6 +22,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
 THE SOFTWARE.
 """
 
+from Model_Library.dynamics import Profile
+
 from enum import Enum
 import numpy as np
 import pandas as pd
@@ -177,7 +179,14 @@ class EntityResult:
     def __getitem__(self, var_name):
         if var_name in self.var_kinds:
             res_name, index = self.var_kinds[var_name]
-            return getattr(self, res_name)[index]
+            if res_name == 'i_result':
+                return Profile(self.i_result[index], self.dynamic)
+            elif res_name == 'u_result':
+                return self.u_result[index]
+            elif res_name == 'i_prime_result':
+                return Profile(self.i_prime_result[index][1:], self.dynamic)
+            else:
+                return None
         else:
             return None
 
-- 
GitLab