diff --git a/pypesto/problem/base.py b/pypesto/problem/base.py index a97a3a5fb..15548b023 100644 --- a/pypesto/problem/base.py +++ b/pypesto/problem/base.py @@ -1,5 +1,6 @@ import copy import logging +import sys from collections.abc import Iterable from typing import ( Callable, @@ -15,6 +16,7 @@ from ..objective import ObjectiveBase from ..objective.priors import NegLogParameterPriors from ..startpoint import StartpointMethod, to_startpoint_method, uniform +from ..version import __version__ SupportsFloatIterableOrValue = Union[Iterable[SupportsFloat], SupportsFloat] SupportsIntIterableOrValue = Union[Iterable[SupportsInt], SupportsInt] @@ -164,6 +166,9 @@ def __init__( startpoint_method = uniform # convert startpoint method to class instance self.startpoint_method = to_startpoint_method(startpoint_method) + # save python and pypesto version + self.python_version = ".".join(map(str, sys.version_info[:3])) + self.pypesto_version = __version__ @property def lb(self) -> np.ndarray: diff --git a/pypesto/store/save_to_hdf5.py b/pypesto/store/save_to_hdf5.py index 71d58d950..3804bfbbb 100644 --- a/pypesto/store/save_to_hdf5.py +++ b/pypesto/store/save_to_hdf5.py @@ -92,7 +92,7 @@ def write(self, problem, overwrite: bool = False): value = np.asarray(value) if value.size: write_array(problem_grp, problem_attr, value) - elif isinstance(value, Integral): + elif isinstance(value, (Integral, str)): problem_grp.attrs[problem_attr] = value