diff --git a/src/dynamic-graph-py.cc b/src/dynamic-graph-py.cc index bed4c2644fbeff10f9cc15e53b48ca2a5c7d800f..bed9a046fae96390801aba005cc307e6c1ea3ccc 100644 --- a/src/dynamic-graph-py.cc +++ b/src/dynamic-graph-py.cc @@ -170,7 +170,7 @@ static PyMethodDef dynamicGraphMethods[] = { {"signal_base_display_dependencies", dynamicgraph::python::signalBase::displayDependencies, METH_VARARGS, "Print the signal dependencies in a string"}, {"signal_base_get_value", dynamicgraph::python::signalBase::getValue, - METH_VARARGS, "Read the value of a signal"}, + METH_VARARGS, "Read the value of a signal"}, {"signal_base_set_value", dynamicgraph::python::signalBase::setValue, METH_VARARGS, "Set the value of a signal"}, {"signal_base_recompute", dynamicgraph::python::signalBase::recompute, @@ -236,7 +236,7 @@ static PyMethodDef dynamicGraphMethods[] = { {"entity_get_logger_verbosity", dynamicgraph::python::entity::getLoggerVerbosityLevel, METH_VARARGS, - "get the verbosity level of the entity"}, + "get the verbosity level of the entity"}, {NULL, NULL, 0, NULL} /* Sentinel */ }; diff --git a/src/dynamic_graph/entity.py b/src/dynamic_graph/entity.py index 9872488b446545541279844877a16e9630c2334e..e28e18d3a8d2d3e5d3b6193680a1a99a0c6aa6af 100644 --- a/src/dynamic_graph/entity.py +++ b/src/dynamic_graph/entity.py @@ -256,12 +256,11 @@ class Entity (object) : for cmd in cmdList: self.boundNewCommand( cmd ) - def setLoggerVerbosityLevel(self, verbosity): + def setLoggerVerbosityLevel(self,verbosity): """ Specify for the entity the verbosity level """ - #return - wrap.entity_set_logger_verbosity(self.obj,verbosity) + return wrap.entity_set_logger_verbosity(self.obj, verbosity) def getLoggerVerbosityLevel(self): """ diff --git a/src/entity-py.cc b/src/entity-py.cc index ca890c7040ab16fa76fa6937b21de53571e3b07c..63fb344d6deda7d198888a99a0b4181083ca3b46 100644 --- a/src/entity-py.cc +++ b/src/entity-py.cc @@ -1,4 +1,3 @@ - // Copyright 2010, Florent Lamiraux, Thomas Moulard, LAAS-CNRS. // // This file is part of dynamic-graph-python. @@ -415,60 +414,31 @@ namespace dynamicgraph { return Py_BuildValue("s", oss.str().c_str()); } - /** - \brief Get verbosity Level - */ - PyObject* getLoggerVerbosityLevel(PyObject* /*self*/, PyObject* args) - { - PyObject* object = NULL; - if (!PyArg_ParseTuple(args, "O", &object)) - return NULL; - - // Retrieve the entity instance - if (!PyCObject_Check(object)) { - PyErr_SetString(PyExc_TypeError, - "first argument is not an object"); - return NULL; - } - - void *pointer = PyCObject_AsVoidPtr(object); - Entity* entity = (Entity*)pointer; - - LoggerVerbosity alv ; - try { - alv = entity->getLoggerVerbosityLevel(); - } CATCH_ALL_EXCEPTIONS(); - - int ares= (int)alv; - return Py_BuildValue("i",ares); - } - - /** \brief Set verbosity Level */ - PyObject* setLoggerVerbosityLevel(PyObject* /*self*/, PyObject* /* args */) + PyObject* setLoggerVerbosityLevel(PyObject* /*self*/, PyObject* args ) { -#if 0 + PyObject* object = NULL; PyObject* objectVerbosityLevel = NULL; if (!PyArg_ParseTuple(args, "OO", &object,&objectVerbosityLevel)) return NULL; - + // Retrieve the entity instance if (!PyCObject_Check(object)) { PyErr_SetString(PyExc_TypeError, "First argument should be an object"); return NULL; } - + void *pointer = PyCObject_AsVoidPtr(object); Entity* entity = (Entity*)pointer; - + // Retrieve object verbosity level PyObject* valueOfVerbosityLevel = PyObject_GetAttrString(objectVerbosityLevel, "value"); long verbosityLevel = PyLong_AsLong(valueOfVerbosityLevel);//*((int*) lpointer); - + try { switch(verbosityLevel) { @@ -482,21 +452,50 @@ namespace dynamicgraph { break; default: entity->setLoggerVerbosityLevel(VERBOSITY_NONE); break; - } - } catch (const std::exception& exc) { - PyErr_SetString(dgpyError, exc.what()); - return NULL; - } catch (const char* s) { - PyErr_SetString(dgpyError, s); - return NULL; - } catch (...) { - PyErr_SetString(dgpyError, "Unknown exception"); - return NULL; + } + } catch (const std::exception& exc) { + PyErr_SetString(dgpyError, exc.what()); + return NULL; + } catch (const char* s) { + PyErr_SetString(dgpyError, s); + return NULL; + } catch (...) { + PyErr_SetString(dgpyError, "Unknown exception"); + return NULL; } -#endif - return NULL; + + return Py_BuildValue(""); + } + + /** + \brief Get verbosity Level + */ + PyObject* getLoggerVerbosityLevel(PyObject* /*self*/, PyObject* args) + { + PyObject* object = NULL; + if (!PyArg_ParseTuple(args, "O", &object)) + return NULL; + + // Retrieve the entity instance + if (!PyCObject_Check(object)) { + PyErr_SetString(PyExc_TypeError, + "first argument is not an object"); + return NULL; + } + + void *pointer = PyCObject_AsVoidPtr(object); + Entity* entity = (Entity*)pointer; + + LoggerVerbosity alv ; + try { + alv = entity->getLoggerVerbosityLevel(); + } CATCH_ALL_EXCEPTIONS(); + + int ares= (int)alv; + return Py_BuildValue("i",ares); } + } } } diff --git a/unitTesting/test_custom_entity.py b/unitTesting/test_custom_entity.py index 9c8e1f69a374629d3138f4da3238b1116f170866..92903c0231674fed34f97b79d4cc1850f15f47bf 100644 --- a/unitTesting/test_custom_entity.py +++ b/unitTesting/test_custom_entity.py @@ -1,3 +1,6 @@ +# Olivier Stasse +# 2019 CNRS +# import sys, os # Put local python module at first priority sys.path.insert(0,os.getcwd()+'/../src') @@ -8,11 +11,16 @@ from dynamic_graph_tests.custom_entity import * from dynamic_graph.entity import VerbosityLevel aCustomEntity = CustomEntity("a_custom_entity") - +print(dir(aCustomEntity)) +aCustomEntity.signals() +aCustomEntity.setLoggerVerbosityLevel(VerbosityLevel.VERBOSITY_INFO_WARNING_ERROR) +print(aCustomEntity.getLoggerVerbosityLevel()) aCustomEntity.setLoggerVerbosityLevel(VerbosityLevel.VERBOSITY_WARNING_ERROR) - - - print(aCustomEntity.getLoggerVerbosityLevel()) - +aCustomEntity.setLoggerVerbosityLevel(VerbosityLevel.VERBOSITY_ERROR) +print(aCustomEntity.getLoggerVerbosityLevel()) +aCustomEntity.setLoggerVerbosityLevel(VerbosityLevel.VERBOSITY_NONE) +print(aCustomEntity.getLoggerVerbosityLevel()) +aCustomEntity.setLoggerVerbosityLevel(VerbosityLevel.VERBOSITY_ALL) +print(aCustomEntity.getLoggerVerbosityLevel())