From 461b51a3bbc5aea13ac9c60b987e6dd6a4544ed2 Mon Sep 17 00:00:00 2001 From: afisher1 <4552674+afisher1@users.noreply.github.com> Date: Tue, 9 Apr 2024 17:09:58 -0700 Subject: [PATCH 1/3] fix for issue#145 --- gridappsd-python-lib/gridappsd/simulation.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gridappsd-python-lib/gridappsd/simulation.py b/gridappsd-python-lib/gridappsd/simulation.py index 8ff94b0..2c074ad 100644 --- a/gridappsd-python-lib/gridappsd/simulation.py +++ b/gridappsd-python-lib/gridappsd/simulation.py @@ -122,8 +122,12 @@ class Simulation: def __init__(self, gapps: 'GridAPPSD', run_config: Union[Dict, SimulationConfig]): assert type(gapps).__name__ == 'GridAPPSD', "Must be an instance of GridAPPSD" - - self._run_config = run_config + if isinstance(run_config, SimulationConfig): + self._run_config = run_config.asdict() + elif isinstance(run_config, dict): + self._run_config = run_config + else: + raise TypeError("run_config must be a dictionary or a SimulationConfig") # if isinstance(run_config, SimulationConfig): # self._run_config = run_config # else: From 1cc3bb45d29b5327613ed91487ea506027daf465 Mon Sep 17 00:00:00 2001 From: afisher1 <4552674+afisher1@users.noreply.github.com> Date: Mon, 22 Apr 2024 09:45:36 -0700 Subject: [PATCH 2/3] exposing full json package functionality in json_extension.py --- .../gridappsd/json_extension.py | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/gridappsd-python-lib/gridappsd/json_extension.py b/gridappsd-python-lib/gridappsd/json_extension.py index 81d7343..76bb2eb 100644 --- a/gridappsd-python-lib/gridappsd/json_extension.py +++ b/gridappsd-python-lib/gridappsd/json_extension.py @@ -34,20 +34,28 @@ def default(self, obj: Any) -> Any: return rv -def dump(data: Any, fo: TextIO): - rv = _json.dump(data, fo, cls=JsonEncoderExtension) - - -def dumps(data: Any) -> str: - rv = _json.dumps(data, cls=JsonEncoderExtension) +def dump(data: Any, fo: TextIO, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, + separators=None, default=None, sort_keys=False, **kw): + rv = _json.dump(data, fo, skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular, + allow_nan=allow_nan, cls=JsonEncoderExtension, indent=indent, separators=separators, + default=default, sort_keys=sort_keys, **kw) + + +def dumps(data: Any, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, + separators=None, default=None, sort_keys=False, **kw) -> str: + rv = _json.dumps(data, skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular, + allow_nan=allow_nan, cls=JsonEncoderExtension, indent=indent, separators=separators, + default=default, sort_keys=sort_keys, **kw) return rv -def load(fo: TextIO) -> Any: - rv = _json.load(fo, object_hook=jsonDecoderExtension) +def load(fo: TextIO, *, cls=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) -> Any: + rv = _json.load(fo, cls=cls, object_hook=jsonDecoderExtension, parse_float=parse_float, parse_int=parse_int, + parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) return rv -def loads(data: str) -> Any: - rv = _json.loads(data, object_hook=jsonDecoderExtension) +def loads(data: str, *, cls=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) -> Any: + rv = _json.loads(data, cls=cls, object_hook=jsonDecoderExtension, parse_float=parse_float, parse_int=parse_int, + parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) return rv From 70a59112e15499a777a661ddb0d1822234b55da2 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Mon, 22 Apr 2024 16:48:54 +0000 Subject: [PATCH 3/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- .../gridappsd/json_extension.py | 98 +++++++++++++++---- 1 file changed, 80 insertions(+), 18 deletions(-) diff --git a/gridappsd-python-lib/gridappsd/json_extension.py b/gridappsd-python-lib/gridappsd/json_extension.py index 76bb2eb..692d0c6 100644 --- a/gridappsd-python-lib/gridappsd/json_extension.py +++ b/gridappsd-python-lib/gridappsd/json_extension.py @@ -34,28 +34,90 @@ def default(self, obj: Any) -> Any: return rv -def dump(data: Any, fo: TextIO, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, - separators=None, default=None, sort_keys=False, **kw): - rv = _json.dump(data, fo, skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular, - allow_nan=allow_nan, cls=JsonEncoderExtension, indent=indent, separators=separators, - default=default, sort_keys=sort_keys, **kw) - - -def dumps(data: Any, *, skipkeys=False, ensure_ascii=True, check_circular=True, allow_nan=True, indent=None, - separators=None, default=None, sort_keys=False, **kw) -> str: - rv = _json.dumps(data, skipkeys=skipkeys, ensure_ascii=ensure_ascii, check_circular=check_circular, - allow_nan=allow_nan, cls=JsonEncoderExtension, indent=indent, separators=separators, - default=default, sort_keys=sort_keys, **kw) +def dump(data: Any, + fo: TextIO, + *, + skipkeys=False, + ensure_ascii=True, + check_circular=True, + allow_nan=True, + indent=None, + separators=None, + default=None, + sort_keys=False, + **kw): + rv = _json.dump(data, + fo, + skipkeys=skipkeys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + cls=JsonEncoderExtension, + indent=indent, + separators=separators, + default=default, + sort_keys=sort_keys, + **kw) + + +def dumps(data: Any, + *, + skipkeys=False, + ensure_ascii=True, + check_circular=True, + allow_nan=True, + indent=None, + separators=None, + default=None, + sort_keys=False, + **kw) -> str: + rv = _json.dumps(data, + skipkeys=skipkeys, + ensure_ascii=ensure_ascii, + check_circular=check_circular, + allow_nan=allow_nan, + cls=JsonEncoderExtension, + indent=indent, + separators=separators, + default=default, + sort_keys=sort_keys, + **kw) return rv -def load(fo: TextIO, *, cls=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) -> Any: - rv = _json.load(fo, cls=cls, object_hook=jsonDecoderExtension, parse_float=parse_float, parse_int=parse_int, - parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) +def load(fo: TextIO, + *, + cls=None, + parse_float=None, + parse_int=None, + parse_constant=None, + object_pairs_hook=None, + **kw) -> Any: + rv = _json.load(fo, + cls=cls, + object_hook=jsonDecoderExtension, + parse_float=parse_float, + parse_int=parse_int, + parse_constant=parse_constant, + object_pairs_hook=object_pairs_hook, + **kw) return rv -def loads(data: str, *, cls=None, parse_float=None, parse_int=None, parse_constant=None, object_pairs_hook=None, **kw) -> Any: - rv = _json.loads(data, cls=cls, object_hook=jsonDecoderExtension, parse_float=parse_float, parse_int=parse_int, - parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw) +def loads(data: str, + *, + cls=None, + parse_float=None, + parse_int=None, + parse_constant=None, + object_pairs_hook=None, + **kw) -> Any: + rv = _json.loads(data, + cls=cls, + object_hook=jsonDecoderExtension, + parse_float=parse_float, + parse_int=parse_int, + parse_constant=parse_constant, + object_pairs_hook=object_pairs_hook, + **kw) return rv