docling 2.16.0__py3-none-any.whl → 2.18.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 +21 -20
- docling/backend/md_backend.py +92 -43
- docling/backend/mspowerpoint_backend.py +39 -27
- docling/backend/msword_backend.py +172 -130
- docling/backend/xml/uspto_backend.py +25 -25
- docling/cli/main.py +18 -3
- docling/datamodel/document.py +4 -0
- docling/datamodel/pipeline_options.py +1 -0
- docling/datamodel/settings.py +16 -1
- docling/document_converter.py +12 -2
- docling/models/rapid_ocr_model.py +1 -0
- docling/models/table_structure_model.py +9 -5
- docling/models/tesseract_ocr_cli_model.py +72 -4
- docling/models/tesseract_ocr_model.py +37 -37
- docling/pipeline/base_pipeline.py +3 -1
- docling/utils/glm_utils.py +4 -0
- docling/utils/ocr_utils.py +9 -0
- {docling-2.16.0.dist-info → docling-2.18.0.dist-info}/METADATA +20 -12
- {docling-2.16.0.dist-info → docling-2.18.0.dist-info}/RECORD +22 -21
- {docling-2.16.0.dist-info → docling-2.18.0.dist-info}/WHEEL +1 -1
- {docling-2.16.0.dist-info → docling-2.18.0.dist-info}/LICENSE +0 -0
- {docling-2.16.0.dist-info → docling-2.18.0.dist-info}/entry_points.txt +0 -0
@@ -8,6 +8,7 @@ from docling.datamodel.document import ConversionResult
|
|
8
8
|
from docling.datamodel.pipeline_options import TesseractOcrOptions
|
9
9
|
from docling.datamodel.settings import settings
|
10
10
|
from docling.models.base_ocr_model import BaseOcrModel
|
11
|
+
from docling.utils.ocr_utils import map_tesseract_script
|
11
12
|
from docling.utils.profiling import TimeRecorder
|
12
13
|
|
13
14
|
_log = logging.getLogger(__name__)
|
@@ -20,6 +21,7 @@ class TesseractOcrModel(BaseOcrModel):
|
|
20
21
|
|
21
22
|
self.scale = 3 # multiplier for 72 dpi == 216 dpi.
|
22
23
|
self.reader = None
|
24
|
+
self.osd_reader = None
|
23
25
|
|
24
26
|
if self.enabled:
|
25
27
|
install_errmsg = (
|
@@ -47,8 +49,8 @@ class TesseractOcrModel(BaseOcrModel):
|
|
47
49
|
except:
|
48
50
|
raise ImportError(install_errmsg)
|
49
51
|
|
50
|
-
_,
|
51
|
-
if not
|
52
|
+
_, self._tesserocr_languages = tesserocr.get_languages()
|
53
|
+
if not self._tesserocr_languages:
|
52
54
|
raise ImportError(missing_langs_errmsg)
|
53
55
|
|
54
56
|
# Initialize the tesseractAPI
|
@@ -57,7 +59,7 @@ class TesseractOcrModel(BaseOcrModel):
|
|
57
59
|
|
58
60
|
self.script_readers: dict[str, tesserocr.PyTessBaseAPI] = {}
|
59
61
|
|
60
|
-
if any([l.startswith("script/") for l in
|
62
|
+
if any([l.startswith("script/") for l in self._tesserocr_languages]):
|
61
63
|
self.script_prefix = "script/"
|
62
64
|
else:
|
63
65
|
self.script_prefix = ""
|
@@ -72,14 +74,14 @@ class TesseractOcrModel(BaseOcrModel):
|
|
72
74
|
tesserocr_kwargs["path"] = self.options.path
|
73
75
|
|
74
76
|
if lang == "auto":
|
75
|
-
self.reader = tesserocr.PyTessBaseAPI(
|
77
|
+
self.reader = tesserocr.PyTessBaseAPI(**tesserocr_kwargs)
|
78
|
+
self.osd_reader = tesserocr.PyTessBaseAPI(
|
76
79
|
**{"lang": "osd", "psm": tesserocr.PSM.OSD_ONLY} | tesserocr_kwargs
|
77
80
|
)
|
78
81
|
else:
|
79
82
|
self.reader = tesserocr.PyTessBaseAPI(
|
80
83
|
**{"lang": lang} | tesserocr_kwargs,
|
81
84
|
)
|
82
|
-
|
83
85
|
self.reader_RIL = tesserocr.RIL
|
84
86
|
|
85
87
|
def __del__(self):
|
@@ -96,8 +98,6 @@ class TesseractOcrModel(BaseOcrModel):
|
|
96
98
|
yield from page_batch
|
97
99
|
return
|
98
100
|
|
99
|
-
import tesserocr
|
100
|
-
|
101
101
|
for page in page_batch:
|
102
102
|
assert page._backend is not None
|
103
103
|
if not page._backend.is_valid():
|
@@ -105,6 +105,7 @@ class TesseractOcrModel(BaseOcrModel):
|
|
105
105
|
else:
|
106
106
|
with TimeRecorder(conv_res, "ocr"):
|
107
107
|
assert self.reader is not None
|
108
|
+
assert self._tesserocr_languages is not None
|
108
109
|
|
109
110
|
ocr_rects = self.get_ocr_rects(page)
|
110
111
|
|
@@ -117,43 +118,42 @@ class TesseractOcrModel(BaseOcrModel):
|
|
117
118
|
scale=self.scale, cropbox=ocr_rect
|
118
119
|
)
|
119
120
|
|
120
|
-
|
121
|
-
self.
|
121
|
+
local_reader = self.reader
|
122
|
+
if "auto" in self.options.lang:
|
123
|
+
assert self.osd_reader is not None
|
122
124
|
|
123
|
-
|
124
|
-
osd = self.
|
125
|
+
self.osd_reader.SetImage(high_res_image)
|
126
|
+
osd = self.osd_reader.DetectOrientationScript()
|
125
127
|
|
126
128
|
# No text, probably
|
127
129
|
if osd is None:
|
128
130
|
continue
|
129
131
|
|
130
132
|
script = osd["script_name"]
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
local_reader = self.reader
|
156
|
-
|
133
|
+
script = map_tesseract_script(script)
|
134
|
+
lang = f"{self.script_prefix}{script}"
|
135
|
+
|
136
|
+
# Check if the detected languge is present in the system
|
137
|
+
if lang not in self._tesserocr_languages:
|
138
|
+
msg = f"Tesseract detected the script '{script}' and language '{lang}'."
|
139
|
+
msg += " However this language is not installed in your system and will be ignored."
|
140
|
+
_log.warning(msg)
|
141
|
+
else:
|
142
|
+
if script not in self.script_readers:
|
143
|
+
import tesserocr
|
144
|
+
|
145
|
+
self.script_readers[script] = (
|
146
|
+
tesserocr.PyTessBaseAPI(
|
147
|
+
path=self.reader.GetDatapath(),
|
148
|
+
lang=lang,
|
149
|
+
psm=tesserocr.PSM.AUTO,
|
150
|
+
init=True,
|
151
|
+
oem=tesserocr.OEM.DEFAULT,
|
152
|
+
)
|
153
|
+
)
|
154
|
+
local_reader = self.script_readers[script]
|
155
|
+
|
156
|
+
local_reader.SetImage(high_res_image)
|
157
157
|
boxes = local_reader.GetComponentImages(
|
158
158
|
self.reader_RIL.TEXTLINE, True
|
159
159
|
)
|
@@ -141,7 +141,9 @@ class PaginatedPipeline(BasePipeline): # TODO this is a bad name.
|
|
141
141
|
with TimeRecorder(conv_res, "doc_build", scope=ProfilingScope.DOCUMENT):
|
142
142
|
|
143
143
|
for i in range(0, conv_res.input.page_count):
|
144
|
-
conv_res.
|
144
|
+
start_page, end_page = conv_res.input.limits.page_range
|
145
|
+
if (start_page - 1) <= i <= (end_page - 1):
|
146
|
+
conv_res.pages.append(Page(page_no=i))
|
145
147
|
|
146
148
|
try:
|
147
149
|
# Iterate batches of pages (page_batch_size) in the doc
|
docling/utils/glm_utils.py
CHANGED
@@ -307,6 +307,10 @@ def to_docling_document(doc_glm, update_name_label=False) -> DoclingDocument:
|
|
307
307
|
current_list = None
|
308
308
|
|
309
309
|
doc.add_code(text=text, prov=prov)
|
310
|
+
elif label == DocItemLabel.FORMULA:
|
311
|
+
current_list = None
|
312
|
+
|
313
|
+
doc.add_text(label=DocItemLabel.FORMULA, text="", orig=text, prov=prov)
|
310
314
|
else:
|
311
315
|
current_list = None
|
312
316
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: docling
|
3
|
-
Version: 2.
|
3
|
+
Version: 2.18.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
|
Home-page: https://github.com/DS4SD/docling
|
6
6
|
License: MIT
|
@@ -19,6 +19,7 @@ Classifier: Programming Language :: Python :: 3.9
|
|
19
19
|
Classifier: Programming Language :: Python :: 3.10
|
20
20
|
Classifier: Programming Language :: Python :: 3.11
|
21
21
|
Classifier: Programming Language :: Python :: 3.12
|
22
|
+
Classifier: Programming Language :: Python :: 3.13
|
22
23
|
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
23
24
|
Provides-Extra: ocrmac
|
24
25
|
Provides-Extra: rapidocr
|
@@ -26,7 +27,7 @@ Provides-Extra: tesserocr
|
|
26
27
|
Requires-Dist: beautifulsoup4 (>=4.12.3,<5.0.0)
|
27
28
|
Requires-Dist: certifi (>=2024.7.4)
|
28
29
|
Requires-Dist: deepsearch-glm (>=1.0.0,<2.0.0)
|
29
|
-
Requires-Dist: docling-core[chunking] (>=2.
|
30
|
+
Requires-Dist: docling-core[chunking] (>=2.17.0,<3.0.0)
|
30
31
|
Requires-Dist: docling-ibm-models (>=3.3.0,<4.0.0)
|
31
32
|
Requires-Dist: docling-parse (>=3.1.0,<4.0.0)
|
32
33
|
Requires-Dist: easyocr (>=1.7,<2.0)
|
@@ -48,7 +49,8 @@ Requires-Dist: python-pptx (>=1.0.2,<2.0.0)
|
|
48
49
|
Requires-Dist: rapidocr-onnxruntime (>=1.4.0,<2.0.0) ; (python_version < "3.13") and (extra == "rapidocr")
|
49
50
|
Requires-Dist: requests (>=2.32.2,<3.0.0)
|
50
51
|
Requires-Dist: rtree (>=1.3.0,<2.0.0)
|
51
|
-
Requires-Dist: scipy (>=1.6.0,<
|
52
|
+
Requires-Dist: scipy (>=1.6.0,<1.14.0) ; python_version < "3.10"
|
53
|
+
Requires-Dist: scipy (>=1.6.0,<2.0.0) ; python_version >= "3.10"
|
52
54
|
Requires-Dist: tesserocr (>=2.7.1,<3.0.0) ; extra == "tesserocr"
|
53
55
|
Requires-Dist: typer (>=0.12.5,<0.13.0)
|
54
56
|
Project-URL: Repository, https://github.com/DS4SD/docling
|
@@ -78,23 +80,25 @@ Description-Content-Type: text/markdown
|
|
78
80
|
[](https://opensource.org/licenses/MIT)
|
79
81
|
[](https://pepy.tech/projects/docling)
|
80
82
|
|
81
|
-
Docling
|
83
|
+
Docling simplifies document processing, parsing diverse formats — including advanced PDF understanding — and providing seamless integrations with the gen AI ecosystem.
|
82
84
|
|
83
85
|
## Features
|
84
86
|
|
85
|
-
* 🗂️
|
86
|
-
* 📑 Advanced PDF
|
87
|
-
*
|
88
|
-
*
|
89
|
-
*
|
87
|
+
* 🗂️ Parsing of [multiple document formats][supported_formats] incl. PDF, DOCX, XLSX, HTML, images, and more
|
88
|
+
* 📑 Advanced PDF understanding incl. page layout, reading order, table structure, code, formulas, image classification, and more
|
89
|
+
* 🧬 Unified, expressive [DoclingDocument][docling_document] representation format
|
90
|
+
* ↪️ Various [export formats][supported_formats] and options, including Markdown, HTML, and lossless JSON
|
91
|
+
* 🔒 Local execution capabilities for sensitive data and air-gapped environments
|
92
|
+
* 🤖 Plug-and-play [integrations][integrations] incl. LangChain, LlamaIndex, Crew AI & Haystack for agentic AI
|
93
|
+
* 🔍 Extensive OCR support for scanned PDFs and images
|
90
94
|
* 💻 Simple and convenient CLI
|
91
95
|
|
92
|
-
Explore the [documentation](https://ds4sd.github.io/docling/) to discover plenty examples and unlock the full power of Docling!
|
93
|
-
|
94
96
|
### Coming soon
|
95
97
|
|
96
|
-
* ♾️ Equation & code extraction
|
97
98
|
* 📝 Metadata extraction, including title, authors, references & language
|
99
|
+
* 📝 Inclusion of Visual Language Models ([SmolDocling](https://huggingface.co/blog/smolervlm#smoldocling))
|
100
|
+
* 📝 Chart understanding (Barchart, Piechart, LinePlot, etc)
|
101
|
+
* 📝 Complex chemistry understanding (Molecular structures)
|
98
102
|
|
99
103
|
## Installation
|
100
104
|
|
@@ -177,3 +181,7 @@ For individual model usage, please refer to the model licenses found in the orig
|
|
177
181
|
|
178
182
|
Docling has been brought to you by IBM.
|
179
183
|
|
184
|
+
[supported_formats]: https://ds4sd.github.io/docling/supported_formats/
|
185
|
+
[docling_document]: https://ds4sd.github.io/docling/concepts/docling_document/
|
186
|
+
[integrations]: https://ds4sd.github.io/docling/integrations/
|
187
|
+
|
@@ -4,27 +4,27 @@ docling/backend/abstract_backend.py,sha256=1lNxzwDTn303aXduPDVmTyXn-5ZIoWMLYqNxA
|
|
4
4
|
docling/backend/asciidoc_backend.py,sha256=zyHxlG_BvlLwvpdNca3P6aopxOJZw8wbDFkJQQknNXk,14050
|
5
5
|
docling/backend/docling_parse_backend.py,sha256=hEEJibI1oJS0LAnFoIs6gMshS3bCqGtVxHnDNvBGZuA,7649
|
6
6
|
docling/backend/docling_parse_v2_backend.py,sha256=IpwrBrtLGwNRl5AYO-o3NjEfNRsAkuMhzvDt2HXb9Ko,8655
|
7
|
-
docling/backend/html_backend.py,sha256=
|
7
|
+
docling/backend/html_backend.py,sha256=YTPLZiEEEuGaP6G62skK3wXJ0KftuqBCl8erNXeJyoE,15893
|
8
8
|
docling/backend/json/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
9
9
|
docling/backend/json/docling_json_backend.py,sha256=LlFMVoZrrCfVwbDuRbNN4Xg96Lujh4xxrTBt9jGhY9I,1984
|
10
|
-
docling/backend/md_backend.py,sha256=
|
10
|
+
docling/backend/md_backend.py,sha256=d7XAFHzFO9qhrCJA3raWEmZ8WXSYyy3KOE57oMeqKGc,16502
|
11
11
|
docling/backend/msexcel_backend.py,sha256=lyJc4ShJGAN2ZfNTTuhdYTF-44cZsGyn_8Djstp3IEU,12700
|
12
|
-
docling/backend/mspowerpoint_backend.py,sha256=
|
13
|
-
docling/backend/msword_backend.py,sha256=
|
12
|
+
docling/backend/mspowerpoint_backend.py,sha256=esAyaaQe17BQFweGAGJHvImKETefY0BpvfpUSECC49w,16424
|
13
|
+
docling/backend/msword_backend.py,sha256=0iR1l3eLplPv3CPT7iGwQb50LIVf3C32KZFzwAkARrc,20573
|
14
14
|
docling/backend/pdf_backend.py,sha256=17Pr8dWsD1C4FYUprrwMM9trDGW-JYLjrcScx1Ul4io,2048
|
15
15
|
docling/backend/pypdfium2_backend.py,sha256=QSPfp903ZtSpoNqPmcIek0HmvETrJ1kkwrdxnF5pjS0,9014
|
16
16
|
docling/backend/xml/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
17
17
|
docling/backend/xml/pubmed_backend.py,sha256=LMnpowjnxa5SydfNC00Ll840BYraL8dCJu-FfC9iSKk,20447
|
18
|
-
docling/backend/xml/uspto_backend.py,sha256=
|
18
|
+
docling/backend/xml/uspto_backend.py,sha256=a5GxWLj2SUR5Of8TWJinhef1gKyaQSjHPVXvGiN8yG8,70324
|
19
19
|
docling/chunking/__init__.py,sha256=h83TDs0AuOV6oEPLAPrn9dpGKiU-2Vg6IRNo4cv6GDA,346
|
20
20
|
docling/cli/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
21
|
-
docling/cli/main.py,sha256=
|
21
|
+
docling/cli/main.py,sha256=K5C2yQIoM40_W3YU8a7SmneY-hWbNp_JOFPLk0NPcDI,16098
|
22
22
|
docling/datamodel/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
docling/datamodel/base_models.py,sha256=vewP1X99qfAwiUsiC2m8CBDGiQPsGyp_WkKJHYPoYn4,7026
|
24
|
-
docling/datamodel/document.py,sha256=
|
25
|
-
docling/datamodel/pipeline_options.py,sha256=
|
26
|
-
docling/datamodel/settings.py,sha256=
|
27
|
-
docling/document_converter.py,sha256=
|
24
|
+
docling/datamodel/document.py,sha256=HkmvQKW3QSx3tAqPTnXiJbD_y1EVwR-WE3n6Gq8g1NY,13428
|
25
|
+
docling/datamodel/pipeline_options.py,sha256=f9-VQFgOdahyclGQgH_T8ZYBopkWsF_fbWbxo39ux3g,7888
|
26
|
+
docling/datamodel/settings.py,sha256=uN9jeXMwx--tJb-DFU7nr77g0Iou13YAVDzsymTvbHg,1759
|
27
|
+
docling/document_converter.py,sha256=qaldb7Thqk59RdE-RTGtj1M7l5UzaBdnxIvGoQ7lTeo,12876
|
28
28
|
docling/exceptions.py,sha256=-FoP46rFJgz_jn5uDv2V052udEEg8gckk6uhoItchXc,85
|
29
29
|
docling/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
30
30
|
docling/models/base_model.py,sha256=H5X-exVaAN-XMTzxpgUc-rwH-D8Uk7-VuZtq2soNGXI,2567
|
@@ -37,25 +37,26 @@ docling/models/layout_model.py,sha256=3Fw7OM6g0j7NgItKsQOgFOCd1q6lp1DacN_db7f6QC
|
|
37
37
|
docling/models/ocr_mac_model.py,sha256=bLP14UUmZcSzjDe-HLj-mtksTuBmsCTg2C1wCxUpan0,4502
|
38
38
|
docling/models/page_assemble_model.py,sha256=c5KLKwkUIdW0JcDHizWsqrpb5x_3DK28x82Q8o-3VJM,5968
|
39
39
|
docling/models/page_preprocessing_model.py,sha256=1gVrZjObKxAvXkkKvXnIFApPOggzgiTFPtt1CGbMbSs,2763
|
40
|
-
docling/models/rapid_ocr_model.py,sha256=
|
41
|
-
docling/models/table_structure_model.py,sha256=
|
42
|
-
docling/models/tesseract_ocr_cli_model.py,sha256=
|
43
|
-
docling/models/tesseract_ocr_model.py,sha256=
|
40
|
+
docling/models/rapid_ocr_model.py,sha256=2HXmurNRPP6qyqn7U5h9NQIs8zi0TMHf56CpcKQk0fU,5038
|
41
|
+
docling/models/table_structure_model.py,sha256=qZgoBrBh7H-RJGCTtaRGcj79g2WzZiUBTPnHqJZ-bLA,9557
|
42
|
+
docling/models/tesseract_ocr_cli_model.py,sha256=b2Is5x2gZLS6mQWnKe0y7p6UU6hRTHDfoH4D2RQ5mx0,9310
|
43
|
+
docling/models/tesseract_ocr_model.py,sha256=BN85u-4a-xzUY7Iw21Ib8L8kx4mgbDGiUtxBelLiJm8,8513
|
44
44
|
docling/pipeline/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
45
|
-
docling/pipeline/base_pipeline.py,sha256=
|
45
|
+
docling/pipeline/base_pipeline.py,sha256=lK8PQiydWJ9M16kIVL7U1A2iryTRFrN5WSucVo2ohFQ,8757
|
46
46
|
docling/pipeline/simple_pipeline.py,sha256=mZqANqUtAOFAyqQEShErQnAUz6tJFOl6zVoazEDJ_wE,2254
|
47
47
|
docling/pipeline/standard_pdf_pipeline.py,sha256=Qefg1JSiFwipypi8TZPJ50WgXTLjwkC0wvYAl02RM2o,10480
|
48
48
|
docling/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
49
49
|
docling/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
50
|
docling/utils/accelerator_utils.py,sha256=ZjULCn-qhxqx3frF-rJmAlWdzqgUMxH5utLHbSPev80,1367
|
51
51
|
docling/utils/export.py,sha256=KyGF1BVDHPFfHVXZc8vegsWlFfOgGPP2YckWpTadyI8,4694
|
52
|
-
docling/utils/glm_utils.py,sha256=
|
52
|
+
docling/utils/glm_utils.py,sha256=uyCoFTX9FbS1Ke0aSlkdzGLUt08dZfkgriWadkyLiiA,11856
|
53
53
|
docling/utils/layout_postprocessor.py,sha256=urRzeF9PrKiMBvA6DdHHwyLxG06CMhelgJeV5B1l6l0,24258
|
54
|
+
docling/utils/ocr_utils.py,sha256=F7iOOjqolUcImUzir4qjDQd4QWSO3s6JC4WRn3U7uY4,263
|
54
55
|
docling/utils/profiling.py,sha256=YaMGoB9MMZpagF9mb5ndoHj8Lpb9aIdb7El-Pl7IcFs,1753
|
55
56
|
docling/utils/utils.py,sha256=llhXSbIDNZ1MHOwBEfLHBAoJIAYI7QlPIonlI1jLUJ0,1208
|
56
57
|
docling/utils/visualization.py,sha256=4pn-80fVuE04ken7hUg5Ar47ndRSL9MWBgdHM-1g1zU,2735
|
57
|
-
docling-2.
|
58
|
-
docling-2.
|
59
|
-
docling-2.
|
60
|
-
docling-2.
|
61
|
-
docling-2.
|
58
|
+
docling-2.18.0.dist-info/LICENSE,sha256=mBb7ErEcM8VS9OhiGHnQ2kk75HwPhr54W1Oiz3965MY,1088
|
59
|
+
docling-2.18.0.dist-info/METADATA,sha256=rBP1Z7m0HMpC-HjR360i2JNuIA9lqknRPjUab1mtVic,8403
|
60
|
+
docling-2.18.0.dist-info/WHEEL,sha256=Nq82e9rUAnEjt98J6MlVmMCZb-t9cYE2Ir1kpBmnWfs,88
|
61
|
+
docling-2.18.0.dist-info/entry_points.txt,sha256=VOSzV77znM52dz5ysaDuJ0ijl1cnfrh1ZPg8od5OcTs,48
|
62
|
+
docling-2.18.0.dist-info/RECORD,,
|
File without changes
|
File without changes
|