MCPcopy Create free account
hub / github.com/bab2min/tomotopy / loads

Method loads

src/python/handler/py_LDA.cpp:586–611  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

584}
585
586std::pair<py::UniquePObj<LDAModelObject>, std::vector<uint8_t>> LDAModelObject::loads(PyObject* cls, const std::vector<uint8_t>& data)
587{
588 tomoto::serializer::imstream str{ (const char*)data.data(), (std::ptrdiff_t)data.size() };
589 for (size_t i = 0; i < (size_t)tomoto::TermWeight::size; ++i)
590 {
591 str.seekg(0);
592 py::UniqueObj args{ py::buildPyTuple(i) };
593 py::UniqueObj newInst{ PyObject_CallObject(cls, args.get()) };
594 if (!newInst) throw py::ExcPropagation{};
595 auto p = py::checkType<py::PObject<LDAModelObject>>(std::move(newInst));
596 auto inst = p->getInst<tomoto::ILDAModel>();
597 vector<uint8_t> extraData;
598 try
599 {
600 extraData.clear();
601 inst->loadModel(str, &extraData);
602 }
603 catch (const tomoto::serializer::UnfitException&)
604 {
605 continue;
606 }
607 p->isPrepared = true;
608 return make_pair(std::move(p), std::move(extraData));
609 }
610 throw runtime_error{ "`data` is not valid model file" };
611}
612
613py::UniqueObj DocumentObject::getZFromLDA() const
614{

Callers

nothing calls this directly

Calls 6

buildPyTupleFunction · 0.85
clearMethod · 0.80
loadModelMethod · 0.80
dataMethod · 0.45
sizeMethod · 0.45
getMethod · 0.45

Tested by

no test coverage detected