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.
@@ -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
- _, tesserocr_languages = tesserocr.get_languages()
51
- if not tesserocr_languages:
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 tesserocr_languages]):
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
- # Retrieve text snippets with their bounding boxes
121
- self.reader.SetImage(high_res_image)
121
+ local_reader = self.reader
122
+ if "auto" in self.options.lang:
123
+ assert self.osd_reader is not None
122
124
 
123
- if self.options.lang == ["auto"]:
124
- osd = self.reader.DetectOrientationScript()
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
- if script == "Katakana" or script == "Hiragana":
133
- script = "Japanese"
134
- elif script == "Han":
135
- script = "HanS"
136
- elif script == "Korean":
137
- script = "Hangul"
138
-
139
- _log.debug(
140
- f'Using model for the detected script "{script}"'
141
- )
142
-
143
- if script not in self.script_readers:
144
- self.script_readers[script] = tesserocr.PyTessBaseAPI(
145
- path=self.reader.GetDatapath(),
146
- lang=f"{self.script_prefix}{script}",
147
- psm=tesserocr.PSM.AUTO,
148
- init=True,
149
- oem=tesserocr.OEM.DEFAULT,
150
- )
151
-
152
- local_reader = self.script_readers[script]
153
- local_reader.SetImage(high_res_image)
154
- else:
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.pages.append(Page(page_no=i))
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
@@ -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
 
@@ -0,0 +1,9 @@
1
+ def map_tesseract_script(script: str) -> str:
2
+ r""" """
3
+ if script == "Katakana" or script == "Hiragana":
4
+ script = "Japanese"
5
+ elif script == "Han":
6
+ script = "HanS"
7
+ elif script == "Korean":
8
+ script = "Hangul"
9
+ return script
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: docling
3
- Version: 2.16.0
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.15.1,<3.0.0)
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,<2.0.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
  [![License MIT](https://img.shields.io/github/license/DS4SD/docling)](https://opensource.org/licenses/MIT)
79
81
  [![PyPI Downloads](https://static.pepy.tech/badge/docling/month)](https://pepy.tech/projects/docling)
80
82
 
81
- Docling parses documents and exports them to the desired format with ease and speed.
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
- * 🗂️ Reads popular document formats (PDF, DOCX, PPTX, XLSX, Images, HTML, AsciiDoc & Markdown) and exports to HTML, Markdown and JSON (with embedded and referenced images)
86
- * 📑 Advanced PDF document understanding including page layout, reading order & table structures
87
- * 🧩 Unified, expressive [DoclingDocument](https://ds4sd.github.io/docling/concepts/docling_document/) representation format
88
- * 🤖 Plug-and-play [integrations](https://ds4sd.github.io/docling/integrations/) incl. LangChain, LlamaIndex, Crew AI & Haystack for agentic AI
89
- * 🔍 OCR support for scanned PDFs
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=vUEfx0h24gEaHO2taQyWNs8zCkDox7kopEeMbWBXss0,15560
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=ajEooDWNnWPHnPQMgUDh-K44Ch1X-sTBHqa1xBp7yJs,14645
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=kOGawhcn0BFq4M_C6kW0mY8vMIB24_6R6q6GaszbSt0,15957
13
- docling/backend/msword_backend.py,sha256=WcQmRYmpH8o2snGoWGxNRkCtUI3mf2JL3-9CxAfDAJg,19232
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=2YsnB-WRARIAaHPL6gxHePP24GQGi-Up2_K8ZapD3k4,70974
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=NR7NEt8Sf3FE9D7sHpEmABM9mFMTMO5w0VPwYIIvVsk,15481
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=R748mLCFai4MeiE8ougQrQVJF_16t3f4CUrrEes5AV0,13202
25
- docling/datamodel/pipeline_options.py,sha256=GA5LwywfOkcBDvG2LhDHikqDQYlFlUPJa93tPSx-vFw,7820
26
- docling/datamodel/settings.py,sha256=Sw0rN_f8rdLV1eNvVeKiyET2Oe6oz9jtW3lJzniW9Do,1302
27
- docling/document_converter.py,sha256=qtYPEkWuMUUGmFko2in38iSHdYrjAFf_GHNoXRRvEVs,12631
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=LOIvczJs3_db2o8mtrKk-pIXgC-xqWqRLu2cjA3wvy4,4980
41
- docling/models/table_structure_model.py,sha256=fUpCHthO4Uk3BhA99a85BHBm51fmdE9kfqhAk3WjuBw,9392
42
- docling/models/tesseract_ocr_cli_model.py,sha256=FP9cnSkSyj6-EETHtabV720Fr3x9K_oBP2UuJi4VUwE,6621
43
- docling/models/tesseract_ocr_model.py,sha256=N27xjo8aPb5x276wKHkf_6VFwJObfosdHLo5_hCuf94,8055
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=J0ZjtincsJr-BbRgqoQozxIhDWxWFlWaS9CTPwypJFk,8621
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=Nfxdx0W-sl1owYncTeJmZdiPcn-jpTqK8f8TeQlDOMY,11683
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.16.0.dist-info/LICENSE,sha256=mBb7ErEcM8VS9OhiGHnQ2kk75HwPhr54W1Oiz3965MY,1088
58
- docling-2.16.0.dist-info/METADATA,sha256=wJgRO2R9Szl69jFE8gj-VGIBpkwwMWPfgytz9nDsT_E,7780
59
- docling-2.16.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
60
- docling-2.16.0.dist-info/entry_points.txt,sha256=VOSzV77znM52dz5ysaDuJ0ijl1cnfrh1ZPg8od5OcTs,48
61
- docling-2.16.0.dist-info/RECORD,,
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,,
@@ -1,4 +1,4 @@
1
1
  Wheel-Version: 1.0
2
- Generator: poetry-core 1.9.0
2
+ Generator: poetry-core 1.9.1
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any