- The abstract classes for each task type and the corresponding attributes for `OptimizationModule`s have been renamed for consistency.
- Instead of overwriting the `.execute` method for all task types, they now provide their own abstract method which indicates the intent of the task.
- The `.mip_construction` (fromerly `.build_mip`) attribute of the `OptimizationModule` is now also optional, just like the others. This is useful if the module can be implemented entirely with pre-processing tasks.
Breaking Changes
- Renamed the task classes for each step:
- `ValidateTask` -> `ValidationTask`
- `BuildMipTask` -> `MipConstructionTask`
- `ExtractSolutionTask` -> `SolutionExtractionTask`
- Instead of overwriting the `.execute()` method for each task type, the task classes now provide dedicated methods that indicate the intent to the task and provide additional documentation:
- `ValidationTask`: `.validate()`
- `PreProcessingTask`: `.pre_process()`
- `MipConstructionTask`: `.construct_mip()`
- `SolutionExtractionTask`: `.extract_solution()`
- Renamed the attributes of the `OptimizationModule` for consistency:
- `.validate` -> `.validation`
- `.build_mip` -> `.mip_construction`
- `.extract_solution` -> `.solution_extraction`
- `Task` is not exported from the `optiframe` root anymore. Instead, use `optiframe.workflow_engine`.