@@ -0,0 +1,1560 @@
+%22%22%22%0AUtilities for creating a report.%0A%22%22%22%0Aimport threading%0A%0Afrom optinum import data%0Afrom optinum import factory%0A%0A%0Aclass Task(object):%0A%0A    def __init__(self, start, stop, precision, objective, variables):%0A        self._stop = stop%0A        self._start = start%0A        self._precision = precision%0A        self._objective = objective%0A        self._variables = variables%0A%0A        self._objective_function = factory.objective_function(objective)%0A        if not self._objective_function:%0A            raise ValueError('Invalid name for the objective function.')%0A%0A        self._space = data.Space(start, stop, precision)%0A        if not self._space:%0A            raise ValueError('Invalid information provided for the space.')%0A%0A    @property%0A    def objective(self):%0A        return self._objective%0A%0A    @property%0A    def objective_function(self):%0A        return self._objective_function%0A%0A    @property%0A    def variables(self):%0A        return self._variables%0A%0A    @property%0A    def precision(self):%0A        return self._precision%0A%0A    @property%0A    def space(self):%0A        return self._space%0A%0A    @property%0A    def start(self):%0A        return self._start%0A%0A    @property%0A    def stop(self):%0A        return self._stop%0A%0A%0Aclass Job(object):%0A%0A    def __init__(self, algorithm, task, **conf):%0A        algorithm = factory.get_algorithm(algorithm)%0A        if not algorithm:%0A            raise ValueError('Unsupported algorithm.')%0A%0A        self._algorithm(**conf)%0A        self._task = task%0A        self._lock = threading.Lock()%0A%0A    def start(self):%0A        self._algorithm.run()%0A

Add task representation