Erdnaxela3/bioptim_gui

View on GitHub
api/bioptim_gui_api/generic_ocp/misc/generic_ocp_utils.py

Summary

Maintainability
A
0 mins
Test Coverage
import json

from bioptim_gui_api.generic_ocp.misc.generic_ocp_data import GenericOCPData


def add_phase_info(n: int = 1) -> None:
    if n < 1:
        raise ValueError("n must be positive")

    data = GenericOCPData.read_data()
    phases_info = data["phases_info"]
    before = len(phases_info)

    for _ in range(before, before + n):
        phases_info.append(GenericOCPData.default_phase_info)

    data["phases_info"] = phases_info
    with open(GenericOCPData.datafile, "w") as f:
        json.dump(data, f)


def remove_phase_info(n: int = 0) -> None:
    if n < 0:
        raise ValueError("n must be positive")
    data = GenericOCPData.read_data()
    phases_info = data["phases_info"]

    for _ in range(n):
        phases_info.pop()
    data["phases_info"] = phases_info
    with open(GenericOCPData.datafile, "w") as f:
        json.dump(data, f)