natural-pdf 0.1.13__py3-none-any.whl → 0.1.14__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.
natural_pdf/core/page.py CHANGED
@@ -2198,7 +2198,7 @@ class Page(ClassificationMixin, ExtractionMixin, ShapeDetectionMixin):
2198
2198
  def viewer(
2199
2199
  self,
2200
2200
  # elements_to_render: Optional[List['Element']] = None, # No longer needed, from_page handles it
2201
- # include_element_types: List[str] = ['word', 'line', 'rect', 'region'] # No longer needed
2201
+ # include_source_types: List[str] = ['word', 'line', 'rect', 'region'] # No longer needed
2202
2202
  ) -> Optional["SimpleInteractiveViewerWidget"]: # Return type hint updated
2203
2203
  """
2204
2204
  Creates and returns an interactive ipywidget for exploring elements on this page.
@@ -59,7 +59,7 @@ class DirectionalMixin:
59
59
  direction: str,
60
60
  size: Optional[float] = None,
61
61
  cross_size: str = "full",
62
- include_element: bool = False,
62
+ include_source: bool = False,
63
63
  until: Optional[str] = None,
64
64
  include_endpoint: bool = True,
65
65
  **kwargs,
@@ -71,7 +71,7 @@ class DirectionalMixin:
71
71
  direction: 'left', 'right', 'above', or 'below'
72
72
  size: Size in the primary direction (width for horizontal, height for vertical)
73
73
  cross_size: Size in the cross direction ('full' or 'element')
74
- include_element: Whether to include this element/region's area in the result
74
+ include_source: Whether to include this element/region's area in the result
75
75
  until: Optional selector string to specify a boundary element
76
76
  include_endpoint: Whether to include the boundary element found by 'until'
77
77
  **kwargs: Additional parameters for the 'until' selector search
@@ -85,7 +85,7 @@ class DirectionalMixin:
85
85
  is_positive = direction in ("right", "below") # right/below are positive directions
86
86
  pixel_offset = 1 # Offset for excluding elements/endpoints
87
87
 
88
- # 1. Determine initial boundaries based on direction and include_element
88
+ # 1. Determine initial boundaries based on direction and include_source
89
89
  if is_horizontal:
90
90
  # Initial cross-boundaries (vertical)
91
91
  y0 = 0 if cross_size == "full" else self.top
@@ -93,11 +93,11 @@ class DirectionalMixin:
93
93
 
94
94
  # Initial primary boundaries (horizontal)
95
95
  if is_positive: # right
96
- x0_initial = self.x0 if include_element else self.x1 + pixel_offset
96
+ x0_initial = self.x0 if include_source else self.x1 + pixel_offset
97
97
  x1_initial = self.x1 # This edge moves
98
98
  else: # left
99
99
  x0_initial = self.x0 # This edge moves
100
- x1_initial = self.x1 if include_element else self.x0 - pixel_offset
100
+ x1_initial = self.x1 if include_source else self.x0 - pixel_offset
101
101
  else: # Vertical
102
102
  # Initial cross-boundaries (horizontal)
103
103
  x0 = 0 if cross_size == "full" else self.x0
@@ -105,11 +105,11 @@ class DirectionalMixin:
105
105
 
106
106
  # Initial primary boundaries (vertical)
107
107
  if is_positive: # below
108
- y0_initial = self.top if include_element else self.bottom + pixel_offset
108
+ y0_initial = self.top if include_source else self.bottom + pixel_offset
109
109
  y1_initial = self.bottom # This edge moves
110
110
  else: # above
111
111
  y0_initial = self.top # This edge moves
112
- y1_initial = self.bottom if include_element else self.top - pixel_offset
112
+ y1_initial = self.bottom if include_source else self.top - pixel_offset
113
113
 
114
114
  # 2. Calculate the final primary boundary, considering 'size' or page limits
115
115
  if is_horizontal:
@@ -195,7 +195,7 @@ class DirectionalMixin:
195
195
 
196
196
  result = Region(self.page, final_bbox)
197
197
  result.source_element = self
198
- result.includes_source = include_element
198
+ result.includes_source = include_source
199
199
  # Optionally store the boundary element if found
200
200
  if target:
201
201
  result.boundary_element = target
@@ -206,7 +206,7 @@ class DirectionalMixin:
206
206
  self,
207
207
  height: Optional[float] = None,
208
208
  width: str = "full",
209
- include_element: bool = False,
209
+ include_source: bool = False,
210
210
  until: Optional[str] = None,
211
211
  include_endpoint: bool = True,
212
212
  **kwargs,
@@ -217,7 +217,7 @@ class DirectionalMixin:
217
217
  Args:
218
218
  height: Height of the region above, in points
219
219
  width: Width mode - "full" for full page width or "element" for element width
220
- include_element: Whether to include this element/region in the result (default: False)
220
+ include_source: Whether to include this element/region in the result (default: False)
221
221
  until: Optional selector string to specify an upper boundary element
222
222
  include_endpoint: Whether to include the boundary element in the region (default: True)
223
223
  **kwargs: Additional parameters
@@ -229,7 +229,7 @@ class DirectionalMixin:
229
229
  direction="above",
230
230
  size=height,
231
231
  cross_size=width,
232
- include_element=include_element,
232
+ include_source=include_source,
233
233
  until=until,
234
234
  include_endpoint=include_endpoint,
235
235
  **kwargs,
@@ -239,7 +239,7 @@ class DirectionalMixin:
239
239
  self,
240
240
  height: Optional[float] = None,
241
241
  width: str = "full",
242
- include_element: bool = False,
242
+ include_source: bool = False,
243
243
  until: Optional[str] = None,
244
244
  include_endpoint: bool = True,
245
245
  **kwargs,
@@ -250,7 +250,7 @@ class DirectionalMixin:
250
250
  Args:
251
251
  height: Height of the region below, in points
252
252
  width: Width mode - "full" for full page width or "element" for element width
253
- include_element: Whether to include this element/region in the result (default: False)
253
+ include_source: Whether to include this element/region in the result (default: False)
254
254
  until: Optional selector string to specify a lower boundary element
255
255
  include_endpoint: Whether to include the boundary element in the region (default: True)
256
256
  **kwargs: Additional parameters
@@ -262,7 +262,7 @@ class DirectionalMixin:
262
262
  direction="below",
263
263
  size=height,
264
264
  cross_size=width,
265
- include_element=include_element,
265
+ include_source=include_source,
266
266
  until=until,
267
267
  include_endpoint=include_endpoint,
268
268
  **kwargs,
@@ -272,7 +272,7 @@ class DirectionalMixin:
272
272
  self,
273
273
  width: Optional[float] = None,
274
274
  height: str = "full",
275
- include_element: bool = False,
275
+ include_source: bool = False,
276
276
  until: Optional[str] = None,
277
277
  include_endpoint: bool = True,
278
278
  **kwargs,
@@ -283,7 +283,7 @@ class DirectionalMixin:
283
283
  Args:
284
284
  width: Width of the region to the left, in points
285
285
  height: Height mode - "full" for full page height or "element" for element height
286
- include_element: Whether to include this element/region in the result (default: False)
286
+ include_source: Whether to include this element/region in the result (default: False)
287
287
  until: Optional selector string to specify a left boundary element
288
288
  include_endpoint: Whether to include the boundary element in the region (default: True)
289
289
  **kwargs: Additional parameters
@@ -295,7 +295,7 @@ class DirectionalMixin:
295
295
  direction="left",
296
296
  size=width,
297
297
  cross_size=height,
298
- include_element=include_element,
298
+ include_source=include_source,
299
299
  until=until,
300
300
  include_endpoint=include_endpoint,
301
301
  **kwargs,
@@ -305,7 +305,7 @@ class DirectionalMixin:
305
305
  self,
306
306
  width: Optional[float] = None,
307
307
  height: str = "full",
308
- include_element: bool = False,
308
+ include_source: bool = False,
309
309
  until: Optional[str] = None,
310
310
  include_endpoint: bool = True,
311
311
  **kwargs,
@@ -316,7 +316,7 @@ class DirectionalMixin:
316
316
  Args:
317
317
  width: Width of the region to the right, in points
318
318
  height: Height mode - "full" for full page height or "element" for element height
319
- include_element: Whether to include this element/region in the result (default: False)
319
+ include_source: Whether to include this element/region in the result (default: False)
320
320
  until: Optional selector string to specify a right boundary element
321
321
  include_endpoint: Whether to include the boundary element in the region (default: True)
322
322
  **kwargs: Additional parameters
@@ -328,7 +328,7 @@ class DirectionalMixin:
328
328
  direction="right",
329
329
  size=width,
330
330
  cross_size=height,
331
- include_element=include_element,
331
+ include_source=include_source,
332
332
  until=until,
333
333
  include_endpoint=include_endpoint,
334
334
  **kwargs,
@@ -106,7 +106,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
106
106
  direction: str,
107
107
  size: Optional[float] = None,
108
108
  cross_size: str = "full",
109
- include_element: bool = False,
109
+ include_source: bool = False,
110
110
  until: Optional[str] = None,
111
111
  include_endpoint: bool = True,
112
112
  **kwargs,
@@ -118,7 +118,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
118
118
  direction: 'left', 'right', 'above', or 'below'
119
119
  size: Size in the primary direction (width for horizontal, height for vertical)
120
120
  cross_size: Size in the cross direction ('full' or 'element')
121
- include_element: Whether to include this region's area in the result
121
+ include_source: Whether to include this region's area in the result
122
122
  until: Optional selector string to specify a boundary element
123
123
  include_endpoint: Whether to include the boundary element found by 'until'
124
124
  **kwargs: Additional parameters for the 'until' selector search
@@ -132,7 +132,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
132
132
  is_positive = direction in ("right", "below") # right/below are positive directions
133
133
  pixel_offset = 1 # Offset for excluding elements/endpoints
134
134
 
135
- # 1. Determine initial boundaries based on direction and include_element
135
+ # 1. Determine initial boundaries based on direction and include_source
136
136
  if is_horizontal:
137
137
  # Initial cross-boundaries (vertical)
138
138
  y0 = 0 if cross_size == "full" else self.top
@@ -140,11 +140,11 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
140
140
 
141
141
  # Initial primary boundaries (horizontal)
142
142
  if is_positive: # right
143
- x0_initial = self.x0 if include_element else self.x1 + pixel_offset
143
+ x0_initial = self.x0 if include_source else self.x1 + pixel_offset
144
144
  x1_initial = self.x1 # This edge moves
145
145
  else: # left
146
146
  x0_initial = self.x0 # This edge moves
147
- x1_initial = self.x1 if include_element else self.x0 - pixel_offset
147
+ x1_initial = self.x1 if include_source else self.x0 - pixel_offset
148
148
  else: # Vertical
149
149
  # Initial cross-boundaries (horizontal)
150
150
  x0 = 0 if cross_size == "full" else self.x0
@@ -152,11 +152,11 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
152
152
 
153
153
  # Initial primary boundaries (vertical)
154
154
  if is_positive: # below
155
- y0_initial = self.top if include_element else self.bottom + pixel_offset
155
+ y0_initial = self.top if include_source else self.bottom + pixel_offset
156
156
  y1_initial = self.bottom # This edge moves
157
157
  else: # above
158
158
  y0_initial = self.top # This edge moves
159
- y1_initial = self.bottom if include_element else self.top - pixel_offset
159
+ y1_initial = self.bottom if include_source else self.top - pixel_offset
160
160
 
161
161
  # 2. Calculate the final primary boundary, considering 'size' or page limits
162
162
  if is_horizontal:
@@ -248,7 +248,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
248
248
  # 5. Create and return Region
249
249
  region = Region(self.page, final_bbox)
250
250
  region.source_element = self
251
- region.includes_source = include_element
251
+ region.includes_source = include_source
252
252
  # Optionally store the boundary element if found
253
253
  if target:
254
254
  region.boundary_element = target
@@ -259,7 +259,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
259
259
  self,
260
260
  height: Optional[float] = None,
261
261
  width: str = "full",
262
- include_element: bool = False,
262
+ include_source: bool = False,
263
263
  until: Optional[str] = None,
264
264
  include_endpoint: bool = True,
265
265
  **kwargs,
@@ -270,7 +270,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
270
270
  Args:
271
271
  height: Height of the region above, in points
272
272
  width: Width mode - "full" for full page width or "element" for element width
273
- include_element: Whether to include this region in the result (default: False)
273
+ include_source: Whether to include this region in the result (default: False)
274
274
  until: Optional selector string to specify an upper boundary element
275
275
  include_endpoint: Whether to include the boundary element in the region (default: True)
276
276
  **kwargs: Additional parameters
@@ -282,7 +282,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
282
282
  direction="above",
283
283
  size=height,
284
284
  cross_size=width,
285
- include_element=include_element,
285
+ include_source=include_source,
286
286
  until=until,
287
287
  include_endpoint=include_endpoint,
288
288
  **kwargs,
@@ -292,7 +292,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
292
292
  self,
293
293
  height: Optional[float] = None,
294
294
  width: str = "full",
295
- include_element: bool = False,
295
+ include_source: bool = False,
296
296
  until: Optional[str] = None,
297
297
  include_endpoint: bool = True,
298
298
  **kwargs,
@@ -303,7 +303,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
303
303
  Args:
304
304
  height: Height of the region below, in points
305
305
  width: Width mode - "full" for full page width or "element" for element width
306
- include_element: Whether to include this region in the result (default: False)
306
+ include_source: Whether to include this region in the result (default: False)
307
307
  until: Optional selector string to specify a lower boundary element
308
308
  include_endpoint: Whether to include the boundary element in the region (default: True)
309
309
  **kwargs: Additional parameters
@@ -315,7 +315,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
315
315
  direction="below",
316
316
  size=height,
317
317
  cross_size=width,
318
- include_element=include_element,
318
+ include_source=include_source,
319
319
  until=until,
320
320
  include_endpoint=include_endpoint,
321
321
  **kwargs,
@@ -325,7 +325,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
325
325
  self,
326
326
  width: Optional[float] = None,
327
327
  height: str = "full",
328
- include_element: bool = False,
328
+ include_source: bool = False,
329
329
  until: Optional[str] = None,
330
330
  include_endpoint: bool = True,
331
331
  **kwargs,
@@ -336,7 +336,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
336
336
  Args:
337
337
  width: Width of the region to the left, in points
338
338
  height: Height mode - "full" for full page height or "element" for element height
339
- include_element: Whether to include this region in the result (default: False)
339
+ include_source: Whether to include this region in the result (default: False)
340
340
  until: Optional selector string to specify a left boundary element
341
341
  include_endpoint: Whether to include the boundary element in the region (default: True)
342
342
  **kwargs: Additional parameters
@@ -348,7 +348,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
348
348
  direction="left",
349
349
  size=width,
350
350
  cross_size=height,
351
- include_element=include_element,
351
+ include_source=include_source,
352
352
  until=until,
353
353
  include_endpoint=include_endpoint,
354
354
  **kwargs,
@@ -358,7 +358,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
358
358
  self,
359
359
  width: Optional[float] = None,
360
360
  height: str = "full",
361
- include_element: bool = False,
361
+ include_source: bool = False,
362
362
  until: Optional[str] = None,
363
363
  include_endpoint: bool = True,
364
364
  **kwargs,
@@ -369,7 +369,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
369
369
  Args:
370
370
  width: Width of the region to the right, in points
371
371
  height: Height mode - "full" for full page height or "element" for element height
372
- include_element: Whether to include this region in the result (default: False)
372
+ include_source: Whether to include this region in the result (default: False)
373
373
  until: Optional selector string to specify a right boundary element
374
374
  include_endpoint: Whether to include the boundary element in the region (default: True)
375
375
  **kwargs: Additional parameters
@@ -381,7 +381,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
381
381
  direction="right",
382
382
  size=width,
383
383
  cross_size=height,
384
- include_element=include_element,
384
+ include_source=include_source,
385
385
  until=until,
386
386
  include_endpoint=include_endpoint,
387
387
  **kwargs,
@@ -1274,7 +1274,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
1274
1274
  if hasattr(self, "model") and self.model == "tatr" and self.region_type == "table":
1275
1275
  effective_method = "tatr"
1276
1276
  else:
1277
- effective_method = "text"
1277
+ effective_method = "plumber"
1278
1278
 
1279
1279
  logger.debug(f"Region {self.bbox}: Extracting table using method '{effective_method}'")
1280
1280
 
@@ -1297,6 +1297,7 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
1297
1297
  def _extract_table_plumber(self, table_settings: dict) -> List[List[str]]:
1298
1298
  """
1299
1299
  Extract table using pdfplumber's table extraction.
1300
+ This method extracts the largest table within the region.
1300
1301
 
1301
1302
  Args:
1302
1303
  table_settings: Settings for pdfplumber table extraction
@@ -1307,12 +1308,12 @@ class Region(DirectionalMixin, ClassificationMixin, ExtractionMixin, ShapeDetect
1307
1308
  # Create a crop of the page for this region
1308
1309
  cropped = self.page._page.crop(self.bbox)
1309
1310
 
1310
- # Extract table from the cropped area
1311
- tables = cropped.extract_tables(table_settings)
1311
+ # Extract the single largest table from the cropped area
1312
+ table = cropped.extract_table(table_settings)
1312
1313
 
1313
- # Return the first table or an empty list if none found
1314
- if tables:
1315
- return tables[0]
1314
+ # Return the table or an empty list if none found
1315
+ if table:
1316
+ return table
1316
1317
  return []
1317
1318
 
1318
1319
  def _extract_table_tatr(self, use_ocr=False, ocr_config=None) -> List[List[str]]:
@@ -175,7 +175,7 @@ class FlowElement:
175
175
  if current_segment_idx == start_segment_index:
176
176
  op_source = self.physical_object
177
177
  op_direction_params["size"] = remaining_size if size is not None else None
178
- op_direction_params["include_element"] = False
178
+ op_direction_params["include_source"] = False
179
179
 
180
180
  source_for_op_call = op_source
181
181
  if not isinstance(source_for_op_call, PhysicalRegion_Class):
@@ -191,7 +191,7 @@ class FlowElement:
191
191
  "size": remaining_size if size is not None else None,
192
192
  "cross_size": cross_size_for_op,
193
193
  "cross_alignment": cross_alignment, # Pass alignment
194
- "include_element": False,
194
+ "include_source": False,
195
195
  # Pass other relevant kwargs if Region._direction uses them (e.g. strict_type)
196
196
  **{k: v for k, v in kwargs.items() if k in ['strict_type', 'first_match_only']}
197
197
  }
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: natural-pdf
3
- Version: 0.1.13
3
+ Version: 0.1.14
4
4
  Summary: A more intuitive interface for working with PDFs
5
5
  Author-email: Jonathan Soma <jonathan.soma@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  natural_pdf/__init__.py,sha256=0sCYgb9BAV5OnpD_1AswMuOLuXNmpe3OLJpv_6p3tgw,2449
2
2
  natural_pdf/analyzers/__init__.py,sha256=dIXjsMqoxKmd9OOnSBzn12wvdIz7D7YNQRAnXslpJSM,142
3
- natural_pdf/analyzers/shape_detection_mixin.py,sha256=BweC9i8Z4xByUKXyd0Aapk_EMJmjMvSv4x_CAD3_-Zc,61466
3
+ natural_pdf/analyzers/shape_detection_mixin.py,sha256=6IXKuifC2QDurW8_gMakZCetTHSdOUK5Ye_B-P4EQMA,75381
4
4
  natural_pdf/analyzers/text_options.py,sha256=qEkDaYWla0rIM_gszEOsu52q7C_dAfV81P2HLJZM2sw,3333
5
5
  natural_pdf/analyzers/text_structure.py,sha256=VfKTsTFrK877sC0grsis9jK3rrgp0Mbp13VWEbukTcs,28437
6
6
  natural_pdf/analyzers/utils.py,sha256=PYbzJzSAHZ7JsMes84WIrSbA0zkjJGs0CLvIeINsf_k,2100
@@ -24,14 +24,14 @@ natural_pdf/collections/pdf_collection.py,sha256=nsbrzcsXAD2qVLLXhDYpljAb_WnjMNa
24
24
  natural_pdf/core/__init__.py,sha256=QC8H4M3KbXwMFiQORZ0pdPlzx1Ix6oKKQSS7Ib2KEaA,38
25
25
  natural_pdf/core/element_manager.py,sha256=_UdXu51sLi6STzc8Pj4k8R721G3yJixXDLuRHn3hmr8,25731
26
26
  natural_pdf/core/highlighting_service.py,sha256=tjMJpdJj2oaMGpdqiNHPcTJqID4nd-uBZ5v7KtPmoc0,36762
27
- natural_pdf/core/page.py,sha256=uPSkGB9dXxtp4_uE1ELyPznDQ3CwWsnMCRGhEg2ny0o,111120
27
+ natural_pdf/core/page.py,sha256=hg7EoYMbvgo9dXivBl6xb6dENobhSHt0Wuu36O5J900,111119
28
28
  natural_pdf/core/pdf.py,sha256=395aBTg4Le4vABvQWgBhPm669nGJ8JdMToTs1UtQ2Vg,69575
29
29
  natural_pdf/elements/__init__.py,sha256=S8XeiNWJ1WcgnyYKdYV1yxQlAxCCO3FfITT8MQwNbyk,41
30
- natural_pdf/elements/base.py,sha256=d2K_uVRXLHapFFVaBuVqKxUzjGBzRERMAAjEkQNBkj4,39655
30
+ natural_pdf/elements/base.py,sha256=NNF-iUzkip0UgfKTuqLE1jVJsq2yD7LUTvOQWMi_Jpc,39631
31
31
  natural_pdf/elements/collections.py,sha256=qd58tD3f-eojz90ICytlqu4Ej0OQoWgsxV4umQDhUvA,120809
32
32
  natural_pdf/elements/line.py,sha256=300kSFBDUBIudfeQtH_tzW9gTYRgRKUDPiTABw6J-BE,4782
33
33
  natural_pdf/elements/rect.py,sha256=kiVa3e377ZnqIOXc89d9ZSY4EcmDxtccdtUw-HOQzpw,3796
34
- natural_pdf/elements/region.py,sha256=6A5RIDuVbrHLhBcJn2lSXjVPtx5sERC3YZsz0dEmLaQ,115747
34
+ natural_pdf/elements/region.py,sha256=wBBAcuudRqL1b9ojLdrXiwUIcQbTWEWTky_RbBuCgnU,115798
35
35
  natural_pdf/elements/text.py,sha256=13HvVZGinj2Vm_fFCAnqi7hohtoKvnpCp3VCfkpeAbc,11146
36
36
  natural_pdf/export/mixin.py,sha256=L1q3MIEFWuvie4j4_EmW7GT3NerbZ1as0XMUoqTS7gM,5083
37
37
  natural_pdf/exporters/__init__.py,sha256=7MnvRLLQdwtg-ULu-8uK8C84GsKiJamyhRw_GgWhw7k,151
@@ -49,7 +49,7 @@ natural_pdf/extraction/mixin.py,sha256=eKbr70VibpbtfjvCE80lTFuYHzq_BoVtOHjznL_GM
49
49
  natural_pdf/extraction/result.py,sha256=c1vLguCR6l95cvg-BJJmZvL_MPg2McJaczge55bKZMg,934
50
50
  natural_pdf/flows/__init__.py,sha256=82ibI0eNJfVergEsTyom9Nxe_T6pnWQsr4-CISGQlz0,277
51
51
  natural_pdf/flows/collections.py,sha256=iOmRqM5K74kqioh7-UAbNgkpXMr9nkZZ5oW4_sQ1Alo,26433
52
- natural_pdf/flows/element.py,sha256=NmNWvrvihsO8OpUDNqW7rwcDZSGMjmJzAy4d-iaxgDc,20566
52
+ natural_pdf/flows/element.py,sha256=HMlSBjnQH3CF89wDwc0qBpAfmMmHHK_5LeY1TYeqtTs,20564
53
53
  natural_pdf/flows/flow.py,sha256=ft07Ou0uRodF_gTgumVlU9YUquE3LTZz5LEAoQGErEs,10375
54
54
  natural_pdf/flows/region.py,sha256=5xAnePZjs292oKrGG5El3pwhpxaHQYLzse35ilswhqI,21298
55
55
  natural_pdf/ocr/__init__.py,sha256=VY8hhvDPf7Gh2lB-d2QRmghLLyTy6ydxlgo1cS4dOSk,2482
@@ -84,8 +84,8 @@ natural_pdf/utils/text_extraction.py,sha256=z6Jhy11pakYCsEpkvh8ldw6DkUFsYF1hCL9Y
84
84
  natural_pdf/utils/visualization.py,sha256=30pRWQdsRJh2pSObh-brKVsFgC1n8tHmSrta_UDnVPw,8989
85
85
  natural_pdf/widgets/__init__.py,sha256=O2fSDo604wDAP6UwUkmBq3eT91RSqHwBpAOQXq92S8s,214
86
86
  natural_pdf/widgets/viewer.py,sha256=ekgXTEfA48GrR-JjpCpgyBCXdf4IubV0pAXDJozcU7A,39196
87
- natural_pdf-0.1.13.dist-info/licenses/LICENSE,sha256=9zfwINwJlarbDmdh6iJV4QUG54QSJlSAUcnC1YiC_Ns,1074
88
- natural_pdf-0.1.13.dist-info/METADATA,sha256=xihj7-PKPM86F2ztQeHOGrkF2OgS20l5GxI5UlheIjw,7674
89
- natural_pdf-0.1.13.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
90
- natural_pdf-0.1.13.dist-info/top_level.txt,sha256=Cyw1zmNDlUZfb5moU-WUWGprrwH7ln_8LDGdmMHF1xI,17
91
- natural_pdf-0.1.13.dist-info/RECORD,,
87
+ natural_pdf-0.1.14.dist-info/licenses/LICENSE,sha256=9zfwINwJlarbDmdh6iJV4QUG54QSJlSAUcnC1YiC_Ns,1074
88
+ natural_pdf-0.1.14.dist-info/METADATA,sha256=NzaR_hcSyFH22knKZ-NMCct_XOo2nPUk83XHspTncyE,7674
89
+ natural_pdf-0.1.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
90
+ natural_pdf-0.1.14.dist-info/top_level.txt,sha256=Cyw1zmNDlUZfb5moU-WUWGprrwH7ln_8LDGdmMHF1xI,17
91
+ natural_pdf-0.1.14.dist-info/RECORD,,