diff --git a/binarycpython/utils/ensemble.py b/binarycpython/utils/ensemble.py index 72a0ced7d9879a9398135c70adb028e729b447d5..590907d4fb287a3c926d5d996b11be4414bf9259 100644 --- a/binarycpython/utils/ensemble.py +++ b/binarycpython/utils/ensemble.py @@ -282,8 +282,14 @@ def binaryc_json_serializer(obj: Any) -> Any: if inspect.isfunction(obj) or isinstance(obj, py_rinterpolate.Rinterpolate): return str(obj) - return obj - + else: + try: + string_version = str(obj) + return string_version + except: + raise TypeError( + "Unserializable object {} of type {}. Attempted to convert to string but that failed.".format(obj, type(obj)) + ) class binarycDecoder(json.JSONDecoder): """ diff --git a/binarycpython/utils/grid.py b/binarycpython/utils/grid.py index d4f2f830f2da13bbffeb8e777a9ef9e158999fed..7ec47378d7f0e9c3793f83b2de1296c0038ad806 100644 --- a/binarycpython/utils/grid.py +++ b/binarycpython/utils/grid.py @@ -1364,9 +1364,10 @@ class Population: include_binary_c_version_info=True, include_binary_c_help_all=True, ) - self.grid_ensemble_results["metadata"]["settings"] = json.loads( - json.dumps(all_info, default=binaryc_json_serializer) - ) + # self.grid_ensemble_results["metadata"]["settings"] = json.loads( + # json.dumps(all_info, default=binaryc_json_serializer) + # ) + self.grid_ensemble_results['metadata']['settings'] = all_info ############################## # Update grid options