docling 2.38.1__py3-none-any.whl → 2.39.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- docling/backend/html_backend.py +31 -42
- docling/backend/md_backend.py +25 -12
- docling/backend/mspowerpoint_backend.py +4 -5
- docling/backend/msword_backend.py +31 -36
- {docling-2.38.1.dist-info → docling-2.39.0.dist-info}/METADATA +2 -2
- {docling-2.38.1.dist-info → docling-2.39.0.dist-info}/RECORD +10 -10
- {docling-2.38.1.dist-info → docling-2.39.0.dist-info}/WHEEL +0 -0
- {docling-2.38.1.dist-info → docling-2.39.0.dist-info}/entry_points.txt +0 -0
- {docling-2.38.1.dist-info → docling-2.39.0.dist-info}/licenses/LICENSE +0 -0
- {docling-2.38.1.dist-info → docling-2.39.0.dist-info}/top_level.txt +0 -0
docling/backend/html_backend.py
CHANGED
@@ -17,6 +17,7 @@ from docling_core.types.doc import (
|
|
17
17
|
TableData,
|
18
18
|
)
|
19
19
|
from docling_core.types.doc.document import ContentLayer
|
20
|
+
from pydantic import BaseModel
|
20
21
|
from typing_extensions import override
|
21
22
|
|
22
23
|
from docling.backend.abstract_backend import DeclarativeDocumentBackend
|
@@ -48,6 +49,11 @@ TAGS_FOR_NODE_ITEMS: Final = [
|
|
48
49
|
]
|
49
50
|
|
50
51
|
|
52
|
+
class _Context(BaseModel):
|
53
|
+
list_ordered_flag_by_ref: dict[str, bool] = {}
|
54
|
+
list_start_by_ref: dict[str, int] = {}
|
55
|
+
|
56
|
+
|
51
57
|
class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
52
58
|
@override
|
53
59
|
def __init__(self, in_doc: "InputDocument", path_or_stream: Union[BytesIO, Path]):
|
@@ -59,6 +65,7 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
59
65
|
self.max_levels = 10
|
60
66
|
self.level = 0
|
61
67
|
self.parents: dict[int, Optional[Union[DocItem, GroupItem]]] = {}
|
68
|
+
self.ctx = _Context()
|
62
69
|
for i in range(self.max_levels):
|
63
70
|
self.parents[i] = None
|
64
71
|
|
@@ -121,6 +128,7 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
121
128
|
self.content_layer = (
|
122
129
|
ContentLayer.BODY if headers is None else ContentLayer.FURNITURE
|
123
130
|
)
|
131
|
+
self.ctx = _Context() # reset context
|
124
132
|
self.walk(content, doc)
|
125
133
|
else:
|
126
134
|
raise RuntimeError(
|
@@ -294,28 +302,25 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
294
302
|
def handle_list(self, element: Tag, doc: DoclingDocument) -> None:
|
295
303
|
"""Handles list tags (ul, ol) and their list items."""
|
296
304
|
|
297
|
-
|
298
|
-
|
299
|
-
self.parents[self.level + 1] = doc.add_group(
|
300
|
-
parent=self.parents[self.level],
|
301
|
-
name="list",
|
302
|
-
label=GroupLabel.LIST,
|
303
|
-
content_layer=self.content_layer,
|
304
|
-
)
|
305
|
-
elif element.name == "ol":
|
305
|
+
start: Optional[int] = None
|
306
|
+
if is_ordered := element.name == "ol":
|
306
307
|
start_attr = element.get("start")
|
307
|
-
|
308
|
-
int(start_attr)
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
308
|
+
if isinstance(start_attr, str) and start_attr.isnumeric():
|
309
|
+
start = int(start_attr)
|
310
|
+
name = "ordered list" + (f" start {start}" if start is not None else "")
|
311
|
+
else:
|
312
|
+
name = "list"
|
313
|
+
# create a list group
|
314
|
+
list_group = doc.add_list_group(
|
315
|
+
name=name,
|
316
|
+
parent=self.parents[self.level],
|
317
|
+
content_layer=self.content_layer,
|
318
|
+
)
|
319
|
+
self.parents[self.level + 1] = list_group
|
320
|
+
self.ctx.list_ordered_flag_by_ref[list_group.self_ref] = is_ordered
|
321
|
+
if is_ordered and start is not None:
|
322
|
+
self.ctx.list_start_by_ref[list_group.self_ref] = start
|
323
|
+
|
319
324
|
self.level += 1
|
320
325
|
|
321
326
|
self.walk(element, doc)
|
@@ -331,16 +336,11 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
331
336
|
if parent is None:
|
332
337
|
_log.debug(f"list-item has no parent in DoclingDocument: {element}")
|
333
338
|
return
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
and parent.name
|
340
|
-
):
|
341
|
-
start_in_list: str = parent.name.split(" ")[-1]
|
342
|
-
start: int = int(start_in_list) if start_in_list.isnumeric() else 1
|
343
|
-
index_in_list += start - 1
|
339
|
+
enumerated = self.ctx.list_ordered_flag_by_ref.get(parent.self_ref, False)
|
340
|
+
if enumerated and (start := self.ctx.list_start_by_ref.get(parent.self_ref)):
|
341
|
+
marker = f"{start + len(parent.children)}."
|
342
|
+
else:
|
343
|
+
marker = ""
|
344
344
|
|
345
345
|
if nested_list:
|
346
346
|
# Text in list item can be hidden within hierarchy, hence
|
@@ -350,12 +350,6 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
350
350
|
text = text.replace("\n", "").replace("\r", "")
|
351
351
|
text = " ".join(text.split()).strip()
|
352
352
|
|
353
|
-
marker = ""
|
354
|
-
enumerated = False
|
355
|
-
if parent_label == GroupLabel.ORDERED_LIST:
|
356
|
-
marker = str(index_in_list)
|
357
|
-
enumerated = True
|
358
|
-
|
359
353
|
if len(text) > 0:
|
360
354
|
# create a list-item
|
361
355
|
self.parents[self.level + 1] = doc.add_list_item(
|
@@ -375,11 +369,6 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
375
369
|
elif element.text.strip():
|
376
370
|
text = element.text.strip()
|
377
371
|
|
378
|
-
marker = ""
|
379
|
-
enumerated = False
|
380
|
-
if parent_label == GroupLabel.ORDERED_LIST:
|
381
|
-
marker = f"{index_in_list!s}."
|
382
|
-
enumerated = True
|
383
372
|
doc.add_list_item(
|
384
373
|
text=text,
|
385
374
|
enumerated=enumerated,
|
docling/backend/md_backend.py
CHANGED
@@ -14,13 +14,12 @@ from docling_core.types.doc import (
|
|
14
14
|
DocItemLabel,
|
15
15
|
DoclingDocument,
|
16
16
|
DocumentOrigin,
|
17
|
-
GroupLabel,
|
18
17
|
NodeItem,
|
19
18
|
TableCell,
|
20
19
|
TableData,
|
21
20
|
TextItem,
|
22
21
|
)
|
23
|
-
from docling_core.types.doc.document import Formatting
|
22
|
+
from docling_core.types.doc.document import Formatting
|
24
23
|
from marko import Markdown
|
25
24
|
from pydantic import AnyUrl, BaseModel, Field, TypeAdapter
|
26
25
|
from typing_extensions import Annotated
|
@@ -51,6 +50,7 @@ class _HeadingCreationPayload(BaseModel):
|
|
51
50
|
|
52
51
|
class _ListItemCreationPayload(BaseModel):
|
53
52
|
kind: Literal["list_item"] = "list_item"
|
53
|
+
enumerated: bool
|
54
54
|
|
55
55
|
|
56
56
|
_CreationPayload = Annotated[
|
@@ -187,15 +187,13 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
187
187
|
doc: DoclingDocument,
|
188
188
|
parent_item: Optional[NodeItem],
|
189
189
|
text: str,
|
190
|
+
enumerated: bool,
|
190
191
|
formatting: Optional[Formatting] = None,
|
191
192
|
hyperlink: Optional[Union[AnyUrl, Path]] = None,
|
192
193
|
):
|
193
|
-
if not isinstance(parent_item, (OrderedList, UnorderedList)):
|
194
|
-
_log.warning("ListItem would have not had a list parent, adding one.")
|
195
|
-
parent_item = doc.add_unordered_list(parent=parent_item)
|
196
194
|
item = doc.add_list_item(
|
197
195
|
text=text,
|
198
|
-
enumerated=
|
196
|
+
enumerated=enumerated,
|
199
197
|
parent=parent_item,
|
200
198
|
formatting=formatting,
|
201
199
|
hyperlink=hyperlink,
|
@@ -238,6 +236,7 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
238
236
|
creation_stack: list[
|
239
237
|
_CreationPayload
|
240
238
|
], # stack for lazy item creation triggered deep in marko's AST (on RawText)
|
239
|
+
list_ordered_flag_by_ref: dict[str, bool],
|
241
240
|
parent_item: Optional[NodeItem] = None,
|
242
241
|
formatting: Optional[Formatting] = None,
|
243
242
|
hyperlink: Optional[Union[AnyUrl, Path]] = None,
|
@@ -275,10 +274,8 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
275
274
|
self._close_table(doc)
|
276
275
|
_log.debug(f" - List {'ordered' if element.ordered else 'unordered'}")
|
277
276
|
if has_non_empty_list_items:
|
278
|
-
|
279
|
-
parent_item =
|
280
|
-
label=label, name="list", parent=parent_item
|
281
|
-
)
|
277
|
+
parent_item = doc.add_list_group(name="list", parent=parent_item)
|
278
|
+
list_ordered_flag_by_ref[parent_item.self_ref] = element.ordered
|
282
279
|
|
283
280
|
elif (
|
284
281
|
isinstance(element, marko.block.ListItem)
|
@@ -289,16 +286,22 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
289
286
|
self._close_table(doc)
|
290
287
|
_log.debug(" - List item")
|
291
288
|
|
289
|
+
enumerated = (
|
290
|
+
list_ordered_flag_by_ref.get(parent_item.self_ref, False)
|
291
|
+
if parent_item
|
292
|
+
else False
|
293
|
+
)
|
292
294
|
if len(child.children) > 1: # inline group will be created further down
|
293
295
|
parent_item = self._create_list_item(
|
294
296
|
doc=doc,
|
295
297
|
parent_item=parent_item,
|
296
298
|
text="",
|
299
|
+
enumerated=enumerated,
|
297
300
|
formatting=formatting,
|
298
301
|
hyperlink=hyperlink,
|
299
302
|
)
|
300
303
|
else:
|
301
|
-
creation_stack.append(_ListItemCreationPayload())
|
304
|
+
creation_stack.append(_ListItemCreationPayload(enumerated=enumerated))
|
302
305
|
|
303
306
|
elif isinstance(element, marko.inline.Image):
|
304
307
|
self._close_table(doc)
|
@@ -335,7 +338,7 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
335
338
|
_log.debug(f" - Paragraph (raw text): {element.children}")
|
336
339
|
snippet_text = element.children.strip()
|
337
340
|
# Detect start of the table:
|
338
|
-
if "|" in snippet_text:
|
341
|
+
if "|" in snippet_text or self.in_table:
|
339
342
|
# most likely part of the markdown table
|
340
343
|
self.in_table = True
|
341
344
|
if len(self.md_table_buffer) > 0:
|
@@ -349,10 +352,18 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
349
352
|
while len(creation_stack) > 0:
|
350
353
|
to_create = creation_stack.pop()
|
351
354
|
if isinstance(to_create, _ListItemCreationPayload):
|
355
|
+
enumerated = (
|
356
|
+
list_ordered_flag_by_ref.get(
|
357
|
+
parent_item.self_ref, False
|
358
|
+
)
|
359
|
+
if parent_item
|
360
|
+
else False
|
361
|
+
)
|
352
362
|
parent_item = self._create_list_item(
|
353
363
|
doc=doc,
|
354
364
|
parent_item=parent_item,
|
355
365
|
text=snippet_text,
|
366
|
+
enumerated=enumerated,
|
356
367
|
formatting=formatting,
|
357
368
|
hyperlink=hyperlink,
|
358
369
|
)
|
@@ -453,6 +464,7 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
453
464
|
doc=doc,
|
454
465
|
visited=visited,
|
455
466
|
creation_stack=creation_stack,
|
467
|
+
list_ordered_flag_by_ref=list_ordered_flag_by_ref,
|
456
468
|
parent_item=parent_item,
|
457
469
|
formatting=formatting,
|
458
470
|
hyperlink=hyperlink,
|
@@ -497,6 +509,7 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
497
509
|
parent_item=None,
|
498
510
|
visited=set(),
|
499
511
|
creation_stack=[],
|
512
|
+
list_ordered_flag_by_ref={},
|
500
513
|
)
|
501
514
|
self._close_table(doc=doc) # handle any last hanging table
|
502
515
|
|
@@ -121,7 +121,9 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB
|
|
121
121
|
|
122
122
|
return prov
|
123
123
|
|
124
|
-
def handle_text_elements(
|
124
|
+
def handle_text_elements(
|
125
|
+
self, shape, parent_slide, slide_ind, doc: DoclingDocument, slide_size
|
126
|
+
):
|
125
127
|
is_list_group_created = False
|
126
128
|
enum_list_item_value = 0
|
127
129
|
new_list = None
|
@@ -165,10 +167,7 @@ class MsPowerpointDocumentBackend(DeclarativeDocumentBackend, PaginatedDocumentB
|
|
165
167
|
enumerated = bullet_type == "Numbered"
|
166
168
|
|
167
169
|
if not is_list_group_created:
|
168
|
-
new_list = doc.
|
169
|
-
label=GroupLabel.ORDERED_LIST
|
170
|
-
if enumerated
|
171
|
-
else GroupLabel.LIST,
|
170
|
+
new_list = doc.add_list_group(
|
172
171
|
name="list",
|
173
172
|
parent=parent_slide,
|
174
173
|
)
|
@@ -10,11 +10,12 @@ from docling_core.types.doc import (
|
|
10
10
|
DocumentOrigin,
|
11
11
|
GroupLabel,
|
12
12
|
ImageRef,
|
13
|
+
ListGroup,
|
13
14
|
NodeItem,
|
14
15
|
TableCell,
|
15
16
|
TableData,
|
16
17
|
)
|
17
|
-
from docling_core.types.doc.document import Formatting
|
18
|
+
from docling_core.types.doc.document import Formatting
|
18
19
|
from docx import Document
|
19
20
|
from docx.document import Document as DocxDocument
|
20
21
|
from docx.oxml.table import CT_Tc
|
@@ -688,7 +689,7 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
|
|
688
689
|
paragraph_elements: list,
|
689
690
|
) -> Optional[NodeItem]:
|
690
691
|
return (
|
691
|
-
doc.
|
692
|
+
doc.add_inline_group(parent=prev_parent)
|
692
693
|
if len(paragraph_elements) > 1
|
693
694
|
else prev_parent
|
694
695
|
)
|
@@ -781,9 +782,7 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
|
|
781
782
|
else:
|
782
783
|
# Inline equation
|
783
784
|
level = self._get_level()
|
784
|
-
inline_equation = doc.
|
785
|
-
label=GroupLabel.INLINE, parent=self.parents[level - 1]
|
786
|
-
)
|
785
|
+
inline_equation = doc.add_inline_group(parent=self.parents[level - 1])
|
787
786
|
text_tmp = text
|
788
787
|
for eq in equations:
|
789
788
|
if len(text_tmp) == 0:
|
@@ -931,18 +930,22 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
|
|
931
930
|
level: int,
|
932
931
|
) -> None:
|
933
932
|
# This should not happen by construction
|
934
|
-
if not isinstance(self.parents[level],
|
933
|
+
if not isinstance(self.parents[level], ListGroup):
|
934
|
+
return
|
935
|
+
if not elements:
|
935
936
|
return
|
937
|
+
|
936
938
|
if len(elements) == 1:
|
937
939
|
text, format, hyperlink = elements[0]
|
938
|
-
|
939
|
-
|
940
|
-
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
|
945
|
-
|
940
|
+
if text:
|
941
|
+
doc.add_list_item(
|
942
|
+
marker=marker,
|
943
|
+
enumerated=enumerated,
|
944
|
+
parent=self.parents[level],
|
945
|
+
text=text,
|
946
|
+
formatting=format,
|
947
|
+
hyperlink=hyperlink,
|
948
|
+
)
|
946
949
|
else:
|
947
950
|
new_item = doc.add_list_item(
|
948
951
|
marker=marker,
|
@@ -950,15 +953,16 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
|
|
950
953
|
parent=self.parents[level],
|
951
954
|
text="",
|
952
955
|
)
|
953
|
-
new_parent = doc.
|
956
|
+
new_parent = doc.add_inline_group(parent=new_item)
|
954
957
|
for text, format, hyperlink in elements:
|
955
|
-
|
956
|
-
|
957
|
-
|
958
|
-
|
959
|
-
|
960
|
-
|
961
|
-
|
958
|
+
if text:
|
959
|
+
doc.add_text(
|
960
|
+
label=DocItemLabel.TEXT,
|
961
|
+
parent=new_parent,
|
962
|
+
text=text,
|
963
|
+
formatting=format,
|
964
|
+
hyperlink=hyperlink,
|
965
|
+
)
|
962
966
|
|
963
967
|
def _add_list_item(
|
964
968
|
self,
|
@@ -979,8 +983,8 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
|
|
979
983
|
if self._prev_numid() is None: # Open new list
|
980
984
|
self.level_at_new_list = level
|
981
985
|
|
982
|
-
self.parents[level] = doc.
|
983
|
-
|
986
|
+
self.parents[level] = doc.add_list_group(
|
987
|
+
name="list", parent=self.parents[level - 1]
|
984
988
|
)
|
985
989
|
|
986
990
|
# Set marker and enumerated arguments if this is an enumeration element.
|
@@ -1001,19 +1005,10 @@ class MsWordDocumentBackend(DeclarativeDocumentBackend):
|
|
1001
1005
|
self.level_at_new_list + prev_indent + 1,
|
1002
1006
|
self.level_at_new_list + ilevel + 1,
|
1003
1007
|
):
|
1004
|
-
# Determine if this is an unordered list or an ordered list.
|
1005
|
-
# Set GroupLabel.ORDERED_LIST when it fits.
|
1006
1008
|
self.listIter = 0
|
1007
|
-
|
1008
|
-
self.parents[i
|
1009
|
-
|
1010
|
-
name="list",
|
1011
|
-
parent=self.parents[i - 1],
|
1012
|
-
)
|
1013
|
-
else:
|
1014
|
-
self.parents[i] = doc.add_group(
|
1015
|
-
label=GroupLabel.LIST, name="list", parent=self.parents[i - 1]
|
1016
|
-
)
|
1009
|
+
self.parents[i] = doc.add_list_group(
|
1010
|
+
name="list", parent=self.parents[i - 1]
|
1011
|
+
)
|
1017
1012
|
|
1018
1013
|
# TODO: Set marker and enumerated arguments if this is an enumeration element.
|
1019
1014
|
self.listIter += 1
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: docling
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.39.0
|
4
4
|
Summary: SDK and CLI for parsing PDF, DOCX, HTML, and more, to a unified document representation for powering downstream workflows such as gen AI applications.
|
5
5
|
Author-email: Christoph Auer <cau@zurich.ibm.com>, Michele Dolfi <dol@zurich.ibm.com>, Maxim Lysak <mly@zurich.ibm.com>, Nikos Livathinos <nli@zurich.ibm.com>, Ahmed Nassar <ahn@zurich.ibm.com>, Panos Vagenas <pva@zurich.ibm.com>, Peter Staar <taa@zurich.ibm.com>
|
6
6
|
License-Expression: MIT
|
@@ -26,7 +26,7 @@ Requires-Python: <4.0,>=3.9
|
|
26
26
|
Description-Content-Type: text/markdown
|
27
27
|
License-File: LICENSE
|
28
28
|
Requires-Dist: pydantic<3.0.0,>=2.0.0
|
29
|
-
Requires-Dist: docling-core[chunking]<3.0.0,>=2.
|
29
|
+
Requires-Dist: docling-core[chunking]<3.0.0,>=2.39.0
|
30
30
|
Requires-Dist: docling-ibm-models<4.0.0,>=3.4.4
|
31
31
|
Requires-Dist: docling-parse<5.0.0,>=4.0.0
|
32
32
|
Requires-Dist: filetype<2.0.0,>=1.2.0
|
@@ -9,11 +9,11 @@ docling/backend/csv_backend.py,sha256=2g9famYG2W-ID9jEdZPxc6O8QGv1vWQfjN8pL-QMBE
|
|
9
9
|
docling/backend/docling_parse_backend.py,sha256=9rUo1vPxX6QLzGqF-2B2iEYglZg6YQ3Uea00XrLluTg,7918
|
10
10
|
docling/backend/docling_parse_v2_backend.py,sha256=3ckTfke8IICjaImlIzc3TRhG7KDuxDDba0AuCEcjA-M,9500
|
11
11
|
docling/backend/docling_parse_v4_backend.py,sha256=7tQvpCwpYoq98PNszDkrXaFhy5eWmQqMP4RjWWPLPgw,6197
|
12
|
-
docling/backend/html_backend.py,sha256=
|
13
|
-
docling/backend/md_backend.py,sha256=
|
12
|
+
docling/backend/html_backend.py,sha256=Z959dzqYQO2pPE4xgPRxC5MR9j3nFGtiD6_F_osQ2iI,20670
|
13
|
+
docling/backend/md_backend.py,sha256=mfwGj8g2hGC-Q_HREtl_Web65uMVXD-Ie1nRqWTXzF0,21013
|
14
14
|
docling/backend/msexcel_backend.py,sha256=3j0WQfqDpgPXdPMCguefdv7arcNVDedPD6gl54cmLn8,18110
|
15
|
-
docling/backend/mspowerpoint_backend.py,sha256=
|
16
|
-
docling/backend/msword_backend.py,sha256=
|
15
|
+
docling/backend/mspowerpoint_backend.py,sha256=wJgB2JStEPfD7MPpWQlpPN7bffPxaHFUnKD4wj8SLxU,15114
|
16
|
+
docling/backend/msword_backend.py,sha256=7mzPCF4bGWZPst5ntoV3aSxH5WUu2nBP-l8lgQT3tdw,44544
|
17
17
|
docling/backend/noop_backend.py,sha256=EOPbD86FzZPX-K_DpNrJh0_lC0bZz--4DpG-OagDNGY,1688
|
18
18
|
docling/backend/pdf_backend.py,sha256=KE9TMuFO5WX-o5A_DAd4tEaLi4HMZ4XjKdpllItVkWM,2238
|
19
19
|
docling/backend/pypdfium2_backend.py,sha256=8dVniLHgiTdJuDbYr66kPp6Ccv5ZDlqDMEbA2xIfS7U,13370
|
@@ -90,9 +90,9 @@ docling/utils/orientation.py,sha256=xXlOfowL54FKwjsTFrM7y3ogk1wChLNn_-u74tYIf1s,
|
|
90
90
|
docling/utils/profiling.py,sha256=YaMGoB9MMZpagF9mb5ndoHj8Lpb9aIdb7El-Pl7IcFs,1753
|
91
91
|
docling/utils/utils.py,sha256=kJtIYuzXeOyJHYlxmLAo7dGM5rEsDa1i84qEsUj1nio,1908
|
92
92
|
docling/utils/visualization.py,sha256=tY2ylE2aiQKkmzlSLnFW-HTfFyqUUMguW18ldd1PLfo,2868
|
93
|
-
docling-2.
|
94
|
-
docling-2.
|
95
|
-
docling-2.
|
96
|
-
docling-2.
|
97
|
-
docling-2.
|
98
|
-
docling-2.
|
93
|
+
docling-2.39.0.dist-info/licenses/LICENSE,sha256=mBb7ErEcM8VS9OhiGHnQ2kk75HwPhr54W1Oiz3965MY,1088
|
94
|
+
docling-2.39.0.dist-info/METADATA,sha256=RhW8SMq3CPy0AIX67Fvkuk8CaF1slhq22Z-J78qGhHI,10273
|
95
|
+
docling-2.39.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
96
|
+
docling-2.39.0.dist-info/entry_points.txt,sha256=hzVlbeE0aMSTQ9S0-NTYN0Hmgsn6qL_EA2qX4UbkAuY,149
|
97
|
+
docling-2.39.0.dist-info/top_level.txt,sha256=vkIywP-USjFyYo1AIRQbWQQaL3xB5jf8vkCYdTIfNic,8
|
98
|
+
docling-2.39.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|