Skip to content

Releases: cpslab-asu/banquo-python

Release list

v0.1.1

Choose a tag to compare

@qthibeault qthibeault released this 17 Jul 21:37

PyBanquo 0.1.1

Major Features

STL formula parsing

STL formula parsing is handled using the functionality provided by the banquo-parser library. We introduce the banquo.stl submodule to contain the parsing functionality and the type of the parsed formula.

Error Handling

The error handling for custom metric types has been overhauled to avoid depending on the pyo3::exceptions::PanicError. The PyMetric data type has been refactored to contain a Result<Py<PyAny>> which is used to contain any errors that might be generated during operator application if the Python value does not support the required operation. After the trace is evaluated, each metrics value is inspected to determine if there are any errors, and the metrics internal Result value is reset to Ok. This implementation is slightly less efficient because it does not terminate execution the first time an operator generates an exception and it requires a second iteration of the trace, but it does ensure that the python bindings do not panic.

Minor features

none

Fixes

  • Fix the Next operator not correctly wrapping its internal formula implementation.

v0.1.0

Choose a tag to compare

@qthibeault qthibeault released this 09 Oct 18:08

Initial Release

This is the first release of the Python bindings for the Banquo offline temporal logic monitor. This release is an intentionally restricted subset of the full functionality of the library while we test different ways to improve performance and integrate ergonomically with Python.

The major design thrust of these bindings is to provide the same kind of metric flexibility that is supported in the Rust version. As a result, users are free to implement their own operators and expressions, and the library-provided implementations will be able to evaluate them as long as the metrics implement the required methods. These requirements are encoded in the type hints for the operators, and we strongly recommend using a type checker like Pyright, Mypy, or others to ensure proper usage. Error handling is on a best effort basis, and the 0.x versions of the library may still leak PanicException errors.

Provided expressions:

  • Predicate

Provided operators:

  • Not
  • And
  • Or
  • Implies
  • Next
  • Always
  • Eventually