1 |
|
|
/////////////////////////////////////////////////////////////////////////////// |
2 |
|
|
// BSD 3-Clause License |
3 |
|
|
// |
4 |
|
|
// Copyright (C) 2019-2023, LAAS-CNRS, University of Edinburgh, |
5 |
|
|
// University of Oxford, Heriot-Watt University |
6 |
|
|
// Copyright note valid unless otherwise stated in individual files. |
7 |
|
|
// All rights reserved. |
8 |
|
|
/////////////////////////////////////////////////////////////////////////////// |
9 |
|
|
|
10 |
|
|
#include "crocoddyl/core/utils/callbacks.hpp" |
11 |
|
|
|
12 |
|
|
#include "python/crocoddyl/core/core.hpp" |
13 |
|
|
#include "python/crocoddyl/utils/copyable.hpp" |
14 |
|
|
|
15 |
|
|
namespace crocoddyl { |
16 |
|
|
namespace python { |
17 |
|
|
|
18 |
|
10 |
void exposeCallbacks() { |
19 |
|
10 |
bp::register_ptr_to_python<boost::shared_ptr<CallbackAbstract> >(); |
20 |
|
|
|
21 |
|
20 |
bp::enum_<VerboseLevel>("VerboseLevel") |
22 |
✓✗ |
10 |
.value("_0", _0) |
23 |
✓✗ |
10 |
.value("_1", _1) |
24 |
✓✗ |
10 |
.value("_2", _2) |
25 |
✓✗ |
10 |
.value("_3", _3) |
26 |
✓✗ |
10 |
.value("_4", _4); |
27 |
|
|
|
28 |
✓✗ |
10 |
bp::class_<CallbackVerbose, bp::bases<CallbackAbstract> >( |
29 |
|
|
"CallbackVerbose", "Callback function for printing the solver values.", |
30 |
✓✗ |
10 |
bp::init<bp::optional<VerboseLevel, int> >( |
31 |
|
20 |
bp::args("self", "level", "precision"), |
32 |
|
|
"Initialize the differential verbose callback.\n\n" |
33 |
|
|
":param level: verbose level (default _4)\n" |
34 |
|
|
":param precision: precision of floating point output (default 5)")) |
35 |
✓✗ |
20 |
.def("__call__", &CallbackVerbose::operator(), bp::args("self", "solver"), |
36 |
|
|
"Run the callback function given a solver.\n\n" |
37 |
✓✗ |
10 |
":param solver: solver to be diagnostic") |
38 |
|
|
.add_property("level", &CallbackVerbose::get_level, |
39 |
✓✗ |
10 |
&CallbackVerbose::set_level, "verbose level") |
40 |
|
|
.add_property("precision", &CallbackVerbose::get_precision, |
41 |
✓✗ |
10 |
&CallbackVerbose::set_precision, "precision") |
42 |
✓✗ |
10 |
.def(CopyableVisitor<CallbackVerbose>()); |
43 |
|
10 |
} |
44 |
|
|
|
45 |
|
|
} // namespace python |
46 |
|
|
} // namespace crocoddyl |