diff --git a/CHANGELOG.md b/CHANGELOG.md index 1aa5a27b0..bd8a96b57 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,7 +20,8 @@ Legenda for the issue kind: - [#622](https://github.com/ariadne-cps/ariadne/issues/622) (A) Implement GradedTaylorPicardIterator that avoids initial use of Bounder - [#626](https://github.com/ariadne-cps/ariadne/issues/626) (A) Allow 'none' graphics backend or drawer from CLI, to temporarily switch off graphics when desired - [#628](https://github.com/ariadne-cps/ariadne/issues/628) (A) Implement some methods for Polynomial, in particular for vectors thereof -- [#636](https://github.com/ariadne-cps/ariadne/issues/636) (A) Add Python bindings for hybrid automaton target method +- [#636](https://github.com/ariadne-cps/ariadne/issues/636) (A) Add Python bindings for hybrid automaton target method +- [#642](https://github.com/ariadne-cps/ariadne/issues/642) (A) Add Python bindings for hybrid automaton name and symbolic expressions in dynamics/guards/invariants/resets - [#612](https://github.com/ariadne-cps/ariadne/issues/612) (C) Remove unused legend from Gnuplot output - [#639](https://github.com/ariadne-cps/ariadne/issues/639) (C) Use a finer (3/4) refinement strategy for the step size when computing a flow step based on an accuracy threshold - [#616](https://github.com/ariadne-cps/ariadne/issues/616) (F) Fix behavior of unary symbolic expression predicates diff --git a/python/source/hybrid_submodule.cpp b/python/source/hybrid_submodule.cpp index a318a6796..de834a5c9 100644 --- a/python/source/hybrid_submodule.cpp +++ b/python/source/hybrid_submodule.cpp @@ -315,13 +315,19 @@ Void export_hybrid_automaton(pybind11::module& module) pybind11::class_> hybrid_automaton_class(module,"HybridAutomaton"); hybrid_automaton_class.def(pybind11::init<>()); hybrid_automaton_class.def(pybind11::init()); + hybrid_automaton_class.def("name", &HybridAutomaton::name); hybrid_automaton_class.def("locations", &HybridAutomaton::locations); hybrid_automaton_class.def("events", &HybridAutomaton::events); hybrid_automaton_class.def("event_kind", &HybridAutomaton::event_kind); + hybrid_automaton_class.def("target", &HybridAutomaton::target); hybrid_automaton_class.def("dynamic_function", &HybridAutomaton::dynamic_function); hybrid_automaton_class.def("guard_function", &HybridAutomaton::guard_function); hybrid_automaton_class.def("reset_function", &HybridAutomaton::reset_function); - hybrid_automaton_class.def("target", &HybridAutomaton::target); + hybrid_automaton_class.def("guard_predicate", &HybridAutomaton::guard_predicate); + hybrid_automaton_class.def("invariant_predicate", &HybridAutomaton::invariant_predicate); + hybrid_automaton_class.def("dynamic_assignments", &HybridAutomaton::dynamic_assignments); + hybrid_automaton_class.def("auxiliary_assignments", &HybridAutomaton::auxiliary_assignments); + hybrid_automaton_class.def("reset_assignments", &HybridAutomaton::reset_assignments); hybrid_automaton_class.def("new_mode",overload_castconst&>(&HybridAutomaton::new_mode),reference_internal); hybrid_automaton_class.def("new_mode",overload_castconst&>( &HybridAutomaton::new_mode),reference_internal); hybrid_automaton_class.def("new_mode",overload_castconst&,Listconst&>(&HybridAutomaton::new_mode),reference_internal);