docling 2.28.1__py3-none-any.whl → 2.28.3__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 +3 -3
- docling/backend/md_backend.py +15 -5
- docling/models/table_structure_model.py +16 -4
- {docling-2.28.1.dist-info → docling-2.28.3.dist-info}/METADATA +2 -2
- {docling-2.28.1.dist-info → docling-2.28.3.dist-info}/RECORD +8 -8
- {docling-2.28.1.dist-info → docling-2.28.3.dist-info}/LICENSE +0 -0
- {docling-2.28.1.dist-info → docling-2.28.3.dist-info}/WHEEL +0 -0
- {docling-2.28.1.dist-info → docling-2.28.3.dist-info}/entry_points.txt +0 -0
docling/backend/html_backend.py
CHANGED
@@ -206,9 +206,9 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
206
206
|
hlevel = int(element.name.replace("h", ""))
|
207
207
|
text = element.text.strip()
|
208
208
|
|
209
|
-
|
210
|
-
self.content_layer = ContentLayer.BODY
|
209
|
+
self.content_layer = ContentLayer.BODY
|
211
210
|
|
211
|
+
if hlevel == 1:
|
212
212
|
for key in self.parents.keys():
|
213
213
|
self.parents[key] = None
|
214
214
|
|
@@ -243,7 +243,7 @@ class HTMLDocumentBackend(DeclarativeDocumentBackend):
|
|
243
243
|
self.parents[hlevel] = doc.add_heading(
|
244
244
|
parent=self.parents[hlevel - 1],
|
245
245
|
text=text,
|
246
|
-
level=hlevel,
|
246
|
+
level=hlevel - 1,
|
247
247
|
content_layer=self.content_layer,
|
248
248
|
)
|
249
249
|
|
docling/backend/md_backend.py
CHANGED
@@ -212,9 +212,16 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
212
212
|
traverse(element)
|
213
213
|
snippet_text = "".join(strings)
|
214
214
|
if len(snippet_text) > 0:
|
215
|
-
|
216
|
-
|
217
|
-
|
215
|
+
if doc_label == DocItemLabel.SECTION_HEADER:
|
216
|
+
parent_item = doc.add_heading(
|
217
|
+
text=snippet_text,
|
218
|
+
level=element.level - 1,
|
219
|
+
parent=parent_item,
|
220
|
+
)
|
221
|
+
else:
|
222
|
+
parent_item = doc.add_text(
|
223
|
+
label=doc_label, parent=parent_item, text=snippet_text
|
224
|
+
)
|
218
225
|
|
219
226
|
elif isinstance(element, marko.block.List):
|
220
227
|
has_non_empty_list_items = False
|
@@ -232,12 +239,15 @@ class MarkdownDocumentBackend(DeclarativeDocumentBackend):
|
|
232
239
|
label=label, name=f"list", parent=parent_item
|
233
240
|
)
|
234
241
|
|
235
|
-
elif
|
242
|
+
elif (
|
243
|
+
isinstance(element, marko.block.ListItem)
|
244
|
+
and len(element.children) > 0
|
245
|
+
and isinstance((first_child := element.children[0]), marko.block.Paragraph)
|
246
|
+
):
|
236
247
|
self._close_table(doc)
|
237
248
|
self._process_inline_text(parent_item, doc)
|
238
249
|
_log.debug(" - List item")
|
239
250
|
|
240
|
-
first_child = element.children[0]
|
241
251
|
snippet_text = str(first_child.children[0].children) # type: ignore
|
242
252
|
is_numbered = False
|
243
253
|
if (
|
@@ -5,7 +5,11 @@ from typing import Iterable, Optional, Union
|
|
5
5
|
|
6
6
|
import numpy
|
7
7
|
from docling_core.types.doc import BoundingBox, DocItemLabel, TableCell
|
8
|
-
from docling_core.types.doc.page import
|
8
|
+
from docling_core.types.doc.page import (
|
9
|
+
BoundingRectangle,
|
10
|
+
SegmentedPdfPage,
|
11
|
+
TextCellUnit,
|
12
|
+
)
|
9
13
|
from docling_ibm_models.tableformer.data_management.tf_predictor import TFPredictor
|
10
14
|
from PIL import ImageDraw
|
11
15
|
|
@@ -218,9 +222,18 @@ class TableStructureModel(BasePageModel):
|
|
218
222
|
|
219
223
|
if len(table_bboxes):
|
220
224
|
for table_cluster, tbl_box in in_tables:
|
221
|
-
|
225
|
+
# Check if word-level cells are available from backend:
|
226
|
+
sp = page._backend.get_segmented_page()
|
227
|
+
if sp is not None:
|
228
|
+
tcells = sp.get_cells_in_bbox(
|
229
|
+
cell_unit=TextCellUnit.WORD,
|
230
|
+
bbox=table_cluster.bbox,
|
231
|
+
)
|
232
|
+
else:
|
233
|
+
# Otherwise - we use normal (line/phrase) cells
|
234
|
+
tcells = table_cluster.cells
|
222
235
|
tokens = []
|
223
|
-
for c in
|
236
|
+
for c in tcells:
|
224
237
|
# Only allow non empty stings (spaces) into the cells of a table
|
225
238
|
if len(c.text.strip()) > 0:
|
226
239
|
new_cell = copy.deepcopy(c)
|
@@ -229,7 +242,6 @@ class TableStructureModel(BasePageModel):
|
|
229
242
|
scale=self.scale
|
230
243
|
)
|
231
244
|
)
|
232
|
-
|
233
245
|
tokens.append(
|
234
246
|
{
|
235
247
|
"id": new_cell.index,
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: docling
|
3
|
-
Version: 2.28.
|
3
|
+
Version: 2.28.3
|
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
|
Home-page: https://github.com/docling-project/docling
|
6
6
|
License: MIT
|
@@ -28,7 +28,7 @@ Provides-Extra: vlm
|
|
28
28
|
Requires-Dist: accelerate (>=1.2.1,<2.0.0) ; (sys_platform != "darwin" or platform_machine != "x86_64") and (extra == "vlm")
|
29
29
|
Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
|
30
30
|
Requires-Dist: certifi (>=2024.7.4)
|
31
|
-
Requires-Dist: docling-core[chunking] (>=2.
|
31
|
+
Requires-Dist: docling-core[chunking] (>=2.24.1,<3.0.0)
|
32
32
|
Requires-Dist: docling-ibm-models (>=3.4.0,<4.0.0)
|
33
33
|
Requires-Dist: docling-parse (>=4.0.0,<5.0.0)
|
34
34
|
Requires-Dist: easyocr (>=1.7,<2.0)
|
@@ -10,10 +10,10 @@ docling/backend/docx/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
|
|
10
10
|
docling/backend/docx/latex/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
11
11
|
docling/backend/docx/latex/latex_dict.py,sha256=a0UC3VLmG1BLN-hGmEaQamzKbDB10fCz0U8qRU--aBw,6613
|
12
12
|
docling/backend/docx/latex/omml.py,sha256=U-mQXNCI9ObUyHDxv6ItvaHlObIEu77PiXS1Vaaah6U,12012
|
13
|
-
docling/backend/html_backend.py,sha256=
|
13
|
+
docling/backend/html_backend.py,sha256=FRtzsXjlvHISLa2jZ8_zpGqBN6uAaXpuPpLcLLNY_k4,19448
|
14
14
|
docling/backend/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
15
15
|
docling/backend/json/docling_json_backend.py,sha256=LlFMVoZrrCfVwbDuRbNN4Xg96Lujh4xxrTBt9jGhY9I,1984
|
16
|
-
docling/backend/md_backend.py,sha256=
|
16
|
+
docling/backend/md_backend.py,sha256=lqDiKIBHGsA0u-H1n9oVpPlrcpVT4gYRuNXXcyGlftM,17219
|
17
17
|
docling/backend/msexcel_backend.py,sha256=_ZVZFKRRijpg-Xz10xNxu2m-NpDaYvoiBqEZP6GbrgE,11095
|
18
18
|
docling/backend/mspowerpoint_backend.py,sha256=zXdXr8nGJJbPGTgR5_dqq5WmNL1wDCaK0RqFqtuHPqs,17213
|
19
19
|
docling/backend/msword_backend.py,sha256=Eyv-owZrudGFpD6QCgr3wBBAbhUaH6QSb2ifaLsoAzY,24752
|
@@ -57,7 +57,7 @@ docling/models/plugins/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3
|
|
57
57
|
docling/models/plugins/defaults.py,sha256=qslXGnRX07Z3GGttNriqaox0v0vXp4zs4KLurHCZjp4,858
|
58
58
|
docling/models/rapid_ocr_model.py,sha256=C_I0Ek9mAPIyTFRHuNbqtXg1c15rLNDE1tJ6_hPIi4c,5869
|
59
59
|
docling/models/readingorder_model.py,sha256=hNWbBX3uZv1FxMwKNKn2JFQuQqTspBLsJBVEidXr6Wk,14869
|
60
|
-
docling/models/table_structure_model.py,sha256=
|
60
|
+
docling/models/table_structure_model.py,sha256=deldmIsB_lEdK7icWI-Sc8lLevFqozUbkUkmxK37Ho8,12404
|
61
61
|
docling/models/tesseract_ocr_cli_model.py,sha256=S-rCisPrVa3ASvOWycqQoria0PtmNqgdg8YxrLbG1ww,10067
|
62
62
|
docling/models/tesseract_ocr_model.py,sha256=UpLAgKgJtBgbKtJELmKBNMcejJJKBCyFK0q-WgZN1Eg,9256
|
63
63
|
docling/pipeline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -77,8 +77,8 @@ docling/utils/ocr_utils.py,sha256=F7iOOjqolUcImUzir4qjDQd4QWSO3s6JC4WRn3U7uY4,26
|
|
77
77
|
docling/utils/profiling.py,sha256=YaMGoB9MMZpagF9mb5ndoHj8Lpb9aIdb7El-Pl7IcFs,1753
|
78
78
|
docling/utils/utils.py,sha256=0ozCk7zUkYzxRVmYoIB2zA1lqjQOuaQzxfGuf1wmKW4,1866
|
79
79
|
docling/utils/visualization.py,sha256=tY2ylE2aiQKkmzlSLnFW-HTfFyqUUMguW18ldd1PLfo,2868
|
80
|
-
docling-2.28.
|
81
|
-
docling-2.28.
|
82
|
-
docling-2.28.
|
83
|
-
docling-2.28.
|
84
|
-
docling-2.28.
|
80
|
+
docling-2.28.3.dist-info/LICENSE,sha256=mBb7ErEcM8VS9OhiGHnQ2kk75HwPhr54W1Oiz3965MY,1088
|
81
|
+
docling-2.28.3.dist-info/METADATA,sha256=5VxpVkODl6Ixv2nrDWpcO7XLO65jhp4cgoqcrW_P9hQ,9982
|
82
|
+
docling-2.28.3.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
83
|
+
docling-2.28.3.dist-info/entry_points.txt,sha256=pIxel-UeVo1S7FhoNG5xgEfPjLZfBLi_N9TsGPtJSLo,144
|
84
|
+
docling-2.28.3.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|