diff --git a/bob/learn/em/MAP_gmm_trainer.cpp b/bob/learn/em/MAP_gmm_trainer.cpp index cecfea9b7b37cc8033edbc238c2162757970d7c3..986857743375de06997ba717a231e4c8f2e0bcc0 100644 --- a/bob/learn/em/MAP_gmm_trainer.cpp +++ b/bob/learn/em/MAP_gmm_trainer.cpp @@ -130,8 +130,18 @@ static int PyBobLearnEMMAPGMMTrainer_init(PyBobLearnEMMAPGMMTrainerObject* self, return -1; } + //Reading the input argument + PyObject* arg = 0; + if (PyTuple_Size(args)) + arg = PyTuple_GET_ITEM(args, 0); + else { + PyObject* tmp = PyDict_Values(kwargs); + auto tmp_ = make_safe(tmp); + arg = PyList_GET_ITEM(tmp, 0); + } + // If the constructor input is GMMBaseTrainer object - if(PyBobLearnEMMAPGMMTrainer_Check(args)) + if(PyBobLearnEMMAPGMMTrainer_Check(arg)) return PyBobLearnEMMAPGMMTrainer_init_copy(self, args, kwargs); else{ return PyBobLearnEMMAPGMMTrainer_init_base_trainer(self, args, kwargs);