Source code for pmrf.fitting.results._scipy

import numpy as np
from typing import Any
import jsonpickle
import h5py

from pmrf.fitting._frequentist import FrequentistFitter, FrequentistResults

[docs] class ScipyMinimizeResults(FrequentistResults):
[docs] def encode_solver_results(self, grp: h5py.Group): for key, val in self.solver_results.items(): if isinstance(val, (int, float, str, np.number)): grp.attrs[key] = val elif isinstance(val, np.ndarray): grp.create_dataset(key, data=val) elif val is None: grp.attrs[key] = "None" else: grp.attrs[key] = str(val) # fallback for e.g. status messages
[docs] @classmethod def decode_solver_results(cls, grp: h5py.Group) -> Any: result_dict = dict(grp.attrs) for key in grp: result_dict[key] = grp[key][()] from scipy.optimize import OptimizeResult return OptimizeResult(result_dict)