From e02fb37baf22f38dcfe2cbd3d0ef0d09b5b035e4 Mon Sep 17 00:00:00 2001 From: Andrew R Fisher Date: Fri, 20 Jun 2025 16:01:01 -0700 Subject: [PATCH 1/3] Fixing simulation.py dataclass defaults to use field --- gridappsd-python-lib/gridappsd/simulation.py | 62 +++++++++----------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/gridappsd-python-lib/gridappsd/simulation.py b/gridappsd-python-lib/gridappsd/simulation.py index 90c8b4d..7662e99 100644 --- a/gridappsd-python-lib/gridappsd/simulation.py +++ b/gridappsd-python-lib/gridappsd/simulation.py @@ -1,9 +1,5 @@ -from dataclasses import dataclass, field, fields -from pathlib import Path -import sys +from dataclasses import dataclass, field, import time -from copy import deepcopy -#import json import logging from typing import Dict, List, Union @@ -36,33 +32,33 @@ def asdict(self): @dataclass class ModelCreationConfig(ConfigBase): - load_scaling_factor: str = "1" - schedule_name: str = "ieeezipload" - z_fraction: str = "0" - i_fraction: str = "1" - p_fraction: str = "0" - randomize_zipload_fractions: bool = False - use_houses: bool = False + load_scaling_factor: str = field(default = "1") + schedule_name: str = field(default = "ieeezipload") + z_fraction: str = field(default = "0") + i_fraction: str = field(default = "1") + p_fraction: str = field(default = "0") + randomize_zipload_fractions: bool = field(default = False) + use_houses: bool = field(default = False) -__default_model_creation_config__ = ModelCreationConfig() +# __default_model_creation_config__ = ModelCreationConfig() @dataclass class SimulationArgs(ConfigBase): - start_time: str = "1655321830" - duration: str = "300" - simulator: str = "GridLAB-D" - timestep_frequency: str = "1000" - timestep_increment: str = "1000" - run_realtime: bool = True - pause_after_measurements: bool = False - simulation_name: str = "ieee13nodeckt" - power_flow_solver_method: str = "NR" - model_creation_config: ModelCreationConfig = __default_model_creation_config__ + start_time: str = field(default = "1655321830") + duration: str = field(default = "300") + simulator: str = field(default = "GridLAB-D") + timestep_frequency: str = field(default = "1000") + timestep_increment: str = field(default = "1000") + run_realtime: bool = field(default = True) + pause_after_measurements: bool = field(default = False) + simulation_name: str = field(default = "ieee13nodeckt") + power_flow_solver_method: str = field(default = "NR") + model_creation_config: ModelCreationConfig = field(default_factory = ModelCreationConfig) -__default_simulation_args__ = SimulationArgs() +# __default_simulation_args__ = SimulationArgs() @dataclass @@ -75,16 +71,16 @@ class ApplicationConfig(ConfigBase): applications: List[Application] = field(default_factory=list) -__default_application_config__ = ApplicationConfig() +# __default_application_config__ = ApplicationConfig() @dataclass class TestConfig(ConfigBase): events: List[Dict] = field(default_factory=list) - appId: str = "" + appId: str = field(default = "") -__default_test_config__ = TestConfig() +# __default_test_config__ = TestConfig() @dataclass @@ -95,18 +91,18 @@ class ServiceConfig(ConfigBase): @dataclass class PowerSystemConfig(ConfigBase): Line_name: str - GeographicalRegion_name: str = None - SubGeographicalRegion_name: str = None + GeographicalRegion_name: str = field(default = None) + SubGeographicalRegion_name: str = field(default = None) @dataclass class SimulationConfig(ConfigBase): power_system_config: PowerSystemConfig - application_config: List[ApplicationConfig] = field(default_factory=list) - simulation_config: SimulationArgs = __default_simulation_args__ + application_configs: List[ApplicationConfig] = field(default_factory=list) + simulation_config: SimulationArgs = field(default_factory=SimulationArgs) service_configs: List[ServiceConfig] = field(default_factory=list) - application_config: ApplicationConfig = __default_application_config__ - test_config: TestConfig = __default_test_config__ + application_config: ApplicationConfig = field(default_factory=ApplicationConfig) + test_config: TestConfig = field(default_factory=TestConfig) class Simulation: From 971d46383ecbc5d01439a67913a29b9621a9e388 Mon Sep 17 00:00:00 2001 From: Andrew R Fisher Date: Wed, 25 Jun 2025 12:06:44 -0700 Subject: [PATCH 2/3] fixing syntax errors and missing import. --- gridappsd-python-lib/gridappsd/simulation.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/gridappsd-python-lib/gridappsd/simulation.py b/gridappsd-python-lib/gridappsd/simulation.py index 7662e99..6775ef3 100644 --- a/gridappsd-python-lib/gridappsd/simulation.py +++ b/gridappsd-python-lib/gridappsd/simulation.py @@ -1,9 +1,10 @@ -from dataclasses import dataclass, field, +from dataclasses import dataclass, field import time import logging from typing import Dict, List, Union import gridappsd.topics as t +from gridappsd import GridAPPSD from . import json_extension as json _log = logging.getLogger(__name__) @@ -117,8 +118,8 @@ class Simulation: add_onmeasurement_callback, add_oncomplete_callback or add_onstart_callback method respectively. """ - def __init__(self, gapps: 'GridAPPSD', run_config: Union[Dict, SimulationConfig]): - assert type(gapps).__name__ == 'GridAPPSD', "Must be an instance of GridAPPSD" + def __init__(self, gapps: GridAPPSD, run_config: Union[Dict, SimulationConfig]): + assert isinstance(gapps, GridAPPSD), "Must be an instance of GridAPPSD" if isinstance(run_config, SimulationConfig): self._run_config = run_config.asdict() elif isinstance(run_config, dict): From db3b9628486d5252f486d2d93938fed22c48fc78 Mon Sep 17 00:00:00 2001 From: Craig <3979063+craig8@users.noreply.github.com> Date: Wed, 25 Jun 2025 15:41:45 -0700 Subject: [PATCH 3/3] Update simulation.py Remove trailing comma --- gridappsd-python-lib/gridappsd/simulation.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/gridappsd-python-lib/gridappsd/simulation.py b/gridappsd-python-lib/gridappsd/simulation.py index 6448ed0..8f21815 100644 --- a/gridappsd-python-lib/gridappsd/simulation.py +++ b/gridappsd-python-lib/gridappsd/simulation.py @@ -1,8 +1,5 @@ -<<<<<<< bugfix/152 from dataclasses import dataclass, field -======= -from dataclasses import dataclass, field, ->>>>>>> develop + import time import logging from typing import Dict, List, Union