From 660ef483bff59711d7c6467be4fd33f3a65de17a Mon Sep 17 00:00:00 2001 From: jaapschoutenalliander Date: Tue, 27 May 2025 11:38:29 +0200 Subject: [PATCH 1/2] feat: make input data private Signed-off-by: jaapschoutenalliander --- src/power_grid_model_ds/_core/load_flow.py | 25 ++++++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/src/power_grid_model_ds/_core/load_flow.py b/src/power_grid_model_ds/_core/load_flow.py index 1d018ba..d75a83d 100644 --- a/src/power_grid_model_ds/_core/load_flow.py +++ b/src/power_grid_model_ds/_core/load_flow.py @@ -4,6 +4,7 @@ """Power flow functions and classes""" +import warnings from typing import Dict, Optional import numpy as np @@ -50,18 +51,28 @@ def __init__( self.grid = grid or Grid.empty() self.system_frequency = system_frequency - self.input_data = input_data or {} + self._input_data = input_data or {} self.output_data: dict[str, NDArray] = {} self.model: Optional[PowerGridModel] = None + @property + def input_data(self) -> Dict[str, NDArray]: + """Get the input data for the PowerGridModel.""" + warnings.warn( + "Input data has been made private and will be removed as public properety in a future version.", + DeprecationWarning, + stacklevel=2, + ) + return self._input_data + def create_input_from_grid(self): """ Create input for the PowerGridModel """ for array_name in PGM_ARRAYS: pgm_array = self._create_power_grid_array(array_name=array_name) - self.input_data[array_name] = pgm_array - return self.input_data + self._input_data[array_name] = pgm_array + return self._input_data def create_grid_from_input_data(self, check_ids: bool = True) -> Grid: """ @@ -75,9 +86,9 @@ def create_grid_from_input_data(self, check_ids: bool = True) -> Grid: Returns a Grid object with the arrays filled with the PowerGridModel input. """ for pgm_name in PGM_ARRAYS: - if pgm_name in self.input_data: + if pgm_name in self._input_data: pgm_ds_array_class = getattr(self.grid, pgm_name).__class__ - pgm_ds_array = pgm_ds_array_class(self.input_data[pgm_name]) + pgm_ds_array = pgm_ds_array_class(self._input_data[pgm_name]) self.grid.append(pgm_ds_array, check_max_id=False) if check_ids: self.grid.check_ids() @@ -155,6 +166,6 @@ def _match_dtypes(first_dtype: np.dtype, second_dtype: np.dtype): return list(set(first_dtype.names).intersection(set(second_dtype.names))) # type: ignore[arg-type] def _setup_model(self): - self.input_data = self.input_data or self.create_input_from_grid() - self.model = PowerGridModel(self.input_data, system_frequency=self.system_frequency) + self._input_data = self._input_data or self.create_input_from_grid() + self.model = PowerGridModel(self._input_data, system_frequency=self.system_frequency) return self.model From 5df48539f711bb80719b79cd23c7390c0cbe0269 Mon Sep 17 00:00:00 2001 From: jaapschoutenalliander Date: Tue, 27 May 2025 11:41:51 +0200 Subject: [PATCH 2/2] feat: make input data private Signed-off-by: jaapschoutenalliander --- src/power_grid_model_ds/_core/load_flow.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/power_grid_model_ds/_core/load_flow.py b/src/power_grid_model_ds/_core/load_flow.py index d75a83d..97b3cc3 100644 --- a/src/power_grid_model_ds/_core/load_flow.py +++ b/src/power_grid_model_ds/_core/load_flow.py @@ -59,7 +59,8 @@ def __init__( def input_data(self) -> Dict[str, NDArray]: """Get the input data for the PowerGridModel.""" warnings.warn( - "Input data has been made private and will be removed as public properety in a future version.", + "Input data has been made private and will be removed as public properety in a future version. " + "Do not use it directly.", DeprecationWarning, stacklevel=2, )