MCPcopy Create free account
hub / github.com/docling-project/docling-parse / load_document

Method load_document

src/pybind/docling_threaded_base.h:195–248  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

193
194 template<typename Derived, typename ResultType>
195 bool docling_threaded_base<Derived, ResultType>::load_document(
196 std::string key,
197 std::string filename,
198 std::optional<std::string> password,
199 std::optional<std::vector<int>> page_numbers)
200 {
201 if(started.load())
202 {
203 LOG_S(ERROR) << "Cannot load documents after processing has started";
204 return false;
205 }
206
207#ifdef _WIN32
208 std::wstring_convert<std::codecvt_utf8_utf16<wchar_t>> converter;
209 std::wstring wide_filename = converter.from_bytes(filename);
210 std::filesystem::path path_filename(wide_filename);
211#else
212 std::filesystem::path path_filename(filename);
213#endif
214
215 if(std::filesystem::exists(path_filename))
216 {
217 try
218 {
219 key2doc[key] = std::make_shared<doc_decoder_type>();
220 key2doc.at(key)->process_document_from_file(filename,
221 password,
222 config.keep_qpdf_warnings);
223 }
224 catch(const std::exception& exc)
225 {
226 key2doc.erase(key);
227 LOG_S(ERROR) << "could not decode file object for key=" << key;
228 return false;
229 }
230
231 try
232 {
233 key2scheduled_pages[key] = normalise_page_numbers(key,
234 key2doc.at(key)->get_number_of_pages(),
235 page_numbers);
236 }
237 catch(const std::exception& exc)
238 {
239 key2doc.erase(key);
240 key2scheduled_pages.erase(key);
241 throw;
242 }
243 return true;
244 }
245
246 LOG_S(ERROR) << "File not found: " << filename;
247 return false;
248 }
249
250 template<typename Derived, typename ResultType>
251 bool docling_threaded_base<Derived, ResultType>::load_document_from_bytesio(

Callers

nothing calls this directly

Calls 5

atMethod · 0.80
get_number_of_pagesMethod · 0.80
loadMethod · 0.45
eraseMethod · 0.45

Tested by

no test coverage detected