CHANGELOG

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

0.2.1 - 2020-01-13

Added

  • Add support for other command line flags for CLIInstance.flatten() through the use of **kwargs.
  • Add initial Checker class to allow the usage of MiniZinc solution checkers.

Changed

  • The string method for Result will now refer to the string method of its Solution attribute.

Fixed

  • Ensure the event loop selection on Windows to always selects ProactorEventLoop. This ensures the usage on Windows when the python version <= 3.8.0.

0.2.0 - 2019-12-13

Added

  • Support and testing for Python 3.8
  • Logging of started processes and attributes of generated output items
  • Export Pygments Lexer for MiniZinc

Changed

  • Driver.check_version now raises an ConfigurationError exception when an incompatible function is detected; otherwise, the method not return a value.
  • Output classes generated by CLIIinstance.analyse() no longer contain the _output_item str attribute when MiniZinc does not find a output item. (New in MiniZinc 2.3.3)
  • Improved parsing of non-standard (numerical) statistical information provided by the solver.

Fixed

  • CLIInstance.solutions(): The separator detection is now OS independent. The separator previously included a \n literal instead of \r\n on Windows.
  • Solve an issue in CLIInstance.solution() where a solution with a size bigger than the buffer size would result in a LimitOverrunError exception.
  • Correctly catch the asyncio.TimeoutError and kill the process when reaching a hard timeout. (i.e., the solver and minizinc do not stop in time)
  • Check if file exists before opening file when an error occurs. (File might have been part of a compiled solver)
  • Ensure the objective attribute is only added to the generated solution type once
  • Remove ‘r’ characters from input when parsing statistics (Windows Specific).

0.1.0 - 2019-10-11

Initial release of MiniZinc Python. This release contains an initial functionality to use MiniZinc directly from Python using an interface to the minizinc command line application. The exact functionality available in this release is best described in the documentation.