Source code for macop.callbacks.base

"""Abstract Checkpoint classes for callback process
"""
# main imports
import os
import logging
from abc import abstractmethod


[docs]class Callback(): """ Callback abstract class in order to compute some instruction every evaluation Attributes: algo: {Algorithm} -- main algorithm instance reference every: {int} -- checkpoint frequency used (based on number of evaluations) filepath: {str} -- file path where checkpoints will be saved """ def __init__(self, every, filepath): self._algo = None self._every = every self._filepath = filepath # build path if not already exists head, _ = os.path.split(self._filepath) if not os.path.exists(head): os.makedirs(head)
[docs] def setAlgo(self, algo): """Specify the main algorithm instance reference Args: algo: {Algorithm} -- main algorithm instance reference """ self._algo = algo
[docs] @abstractmethod def run(self): """ Check if necessary to do backup based on `every` variable """ pass
[docs] @abstractmethod def load(self): """ Load last backup line of solution and set algorithm state at this backup """ pass