def parse_save_config_dict()

in smdebug/core/json_config.py [0:0]


def parse_save_config_dict(params, mode=None) -> Dict:
    """Grab the relevant keys for a SaveConfig and return a dictionary."""
    if not isinstance(params, dict):
        raise ValueError("parameter must be dict")

    if mode is None:
        prefix = ""
    elif mode == ModeKeys.TRAIN:
        prefix = "train."
    elif mode == ModeKeys.EVAL:
        prefix = "eval."
    elif mode == ModeKeys.PREDICT:
        prefix = "predict."
    elif mode == ModeKeys.GLOBAL:
        prefix = "global."
    else:
        raise ValueError(f"Invalid mode={mode}.")

    # Only look at keys starting with prefix
    params = {key[len(prefix) :]: value for key, value in params.items() if key.startswith(prefix)}

    # Parse relevant key-value pairs and place them in a new `ret` dictionary
    ret = {}
    if "save_interval" in params:
        ret["save_interval"] = params["save_interval"]
    if "save_steps" in params:
        ret["save_steps"] = [int(x) for x in split(params["save_steps"])]
    if "start_step" in params:
        ret["start_step"] = params["start_step"]
    if "end_step" in params:
        ret["end_step"] = params["end_step"]
    return ret