MCPcopy Create free account
hub / github.com/MTG/essentia / parseParameters

Function parseParameters

src/python/parsing.cpp:63–95  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

61}
62
63void parseParameters(ParameterMap* pm, PyObject* args, PyObject* keywds) {
64 Py_ssize_t pos = 0;
65 PyObject* pyname;
66 PyObject* obj;
67
68 while (PyDict_Next(keywds, &pos, &pyname, &obj)) {
69 string name = PyString_AsString(pyname);
70 Edt tp = paramTypeToEdt((*pm)[name].type());
71
72 switch (tp) {
73 case BOOL: pm->add(name, Boolean::toParameter(obj)); break;
74 case INTEGER: pm->add(name, Integer::toParameter(obj)); break;
75 case REAL: pm->add(name, PyReal::toParameter(obj)); break;
76 case STRING: pm->add(name, String::toParameter(obj)); break;
77 case VECTOR_STRING: pm->add(name, VectorString::toParameter(obj)); break;
78 case MAP_VECTOR_STRING:
79 case MAP_VECTOR_REAL:
80 {
81 Parameter* p = PythonDictToParameter(obj, tp);
82 pm->add(name, *p);
83 delete p;
84 break;
85 }
86 case VECTOR_REAL: pm->add(name, VectorReal::toParameter(obj)); break;
87 case VECTOR_INTEGER: pm->add(name, VectorInteger::toParameter(obj)); break;
88
89 default:
90 ostringstream msg;
91 msg << "Parsing unsupported parameter type: " << edtToString(tp) << " for '" << name << "'";
92 throw EssentiaException(msg.str());
93 }
94 }
95}
96
97
98/**

Callers 2

configureMethod · 0.85
configureMethod · 0.85

Calls 6

paramTypeToEdtFunction · 0.85
PythonDictToParameterFunction · 0.85
edtToStringFunction · 0.85
EssentiaExceptionClass · 0.85
strMethod · 0.80
addMethod · 0.45

Tested by

no test coverage detected