natural-pdf 0.1.4__py3-none-any.whl → 0.1.6__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.
Files changed (141) hide show
  1. docs/api/index.md +386 -0
  2. docs/assets/favicon.png +3 -0
  3. docs/assets/favicon.svg +3 -0
  4. docs/assets/javascripts/custom.js +17 -0
  5. docs/assets/logo.svg +3 -0
  6. docs/assets/sample-screen.png +0 -0
  7. docs/assets/social-preview.png +17 -0
  8. docs/assets/social-preview.svg +17 -0
  9. docs/assets/stylesheets/custom.css +65 -0
  10. docs/document-qa/index.ipynb +435 -0
  11. docs/document-qa/index.md +79 -0
  12. docs/element-selection/index.ipynb +915 -0
  13. docs/element-selection/index.md +229 -0
  14. docs/index.md +170 -0
  15. docs/installation/index.md +69 -0
  16. docs/interactive-widget/index.ipynb +962 -0
  17. docs/interactive-widget/index.md +12 -0
  18. docs/layout-analysis/index.ipynb +818 -0
  19. docs/layout-analysis/index.md +185 -0
  20. docs/ocr/index.md +209 -0
  21. docs/pdf-navigation/index.ipynb +314 -0
  22. docs/pdf-navigation/index.md +97 -0
  23. docs/regions/index.ipynb +816 -0
  24. docs/regions/index.md +294 -0
  25. docs/tables/index.ipynb +658 -0
  26. docs/tables/index.md +144 -0
  27. docs/text-analysis/index.ipynb +370 -0
  28. docs/text-analysis/index.md +105 -0
  29. docs/text-extraction/index.ipynb +1478 -0
  30. docs/text-extraction/index.md +292 -0
  31. docs/tutorials/01-loading-and-extraction.ipynb +1710 -0
  32. docs/tutorials/01-loading-and-extraction.md +95 -0
  33. docs/tutorials/02-finding-elements.ipynb +340 -0
  34. docs/tutorials/02-finding-elements.md +149 -0
  35. docs/tutorials/03-extracting-blocks.ipynb +147 -0
  36. docs/tutorials/03-extracting-blocks.md +48 -0
  37. docs/tutorials/04-table-extraction.ipynb +114 -0
  38. docs/tutorials/04-table-extraction.md +50 -0
  39. docs/tutorials/05-excluding-content.ipynb +270 -0
  40. docs/tutorials/05-excluding-content.md +109 -0
  41. docs/tutorials/06-document-qa.ipynb +332 -0
  42. docs/tutorials/06-document-qa.md +91 -0
  43. docs/tutorials/07-layout-analysis.ipynb +288 -0
  44. docs/tutorials/07-layout-analysis.md +66 -0
  45. docs/tutorials/07-working-with-regions.ipynb +413 -0
  46. docs/tutorials/07-working-with-regions.md +151 -0
  47. docs/tutorials/08-spatial-navigation.ipynb +508 -0
  48. docs/tutorials/08-spatial-navigation.md +190 -0
  49. docs/tutorials/09-section-extraction.ipynb +2434 -0
  50. docs/tutorials/09-section-extraction.md +256 -0
  51. docs/tutorials/10-form-field-extraction.ipynb +512 -0
  52. docs/tutorials/10-form-field-extraction.md +201 -0
  53. docs/tutorials/11-enhanced-table-processing.ipynb +54 -0
  54. docs/tutorials/11-enhanced-table-processing.md +9 -0
  55. docs/tutorials/12-ocr-integration.ipynb +604 -0
  56. docs/tutorials/12-ocr-integration.md +175 -0
  57. docs/tutorials/13-semantic-search.ipynb +1328 -0
  58. docs/tutorials/13-semantic-search.md +77 -0
  59. docs/visual-debugging/index.ipynb +2970 -0
  60. docs/visual-debugging/index.md +157 -0
  61. docs/visual-debugging/region.png +0 -0
  62. natural_pdf/__init__.py +50 -33
  63. natural_pdf/analyzers/__init__.py +2 -1
  64. natural_pdf/analyzers/layout/base.py +32 -24
  65. natural_pdf/analyzers/layout/docling.py +131 -72
  66. natural_pdf/analyzers/layout/gemini.py +264 -0
  67. natural_pdf/analyzers/layout/layout_analyzer.py +156 -113
  68. natural_pdf/analyzers/layout/layout_manager.py +125 -58
  69. natural_pdf/analyzers/layout/layout_options.py +43 -17
  70. natural_pdf/analyzers/layout/paddle.py +152 -95
  71. natural_pdf/analyzers/layout/surya.py +164 -92
  72. natural_pdf/analyzers/layout/tatr.py +149 -84
  73. natural_pdf/analyzers/layout/yolo.py +89 -45
  74. natural_pdf/analyzers/text_options.py +22 -15
  75. natural_pdf/analyzers/text_structure.py +131 -85
  76. natural_pdf/analyzers/utils.py +30 -23
  77. natural_pdf/collections/pdf_collection.py +146 -97
  78. natural_pdf/core/__init__.py +1 -1
  79. natural_pdf/core/element_manager.py +419 -337
  80. natural_pdf/core/highlighting_service.py +268 -196
  81. natural_pdf/core/page.py +1044 -521
  82. natural_pdf/core/pdf.py +516 -313
  83. natural_pdf/elements/__init__.py +1 -1
  84. natural_pdf/elements/base.py +307 -225
  85. natural_pdf/elements/collections.py +805 -543
  86. natural_pdf/elements/line.py +39 -36
  87. natural_pdf/elements/rect.py +32 -30
  88. natural_pdf/elements/region.py +889 -879
  89. natural_pdf/elements/text.py +127 -99
  90. natural_pdf/exporters/__init__.py +0 -1
  91. natural_pdf/exporters/searchable_pdf.py +261 -102
  92. natural_pdf/ocr/__init__.py +57 -35
  93. natural_pdf/ocr/engine.py +150 -46
  94. natural_pdf/ocr/engine_easyocr.py +146 -150
  95. natural_pdf/ocr/engine_paddle.py +118 -175
  96. natural_pdf/ocr/engine_surya.py +78 -141
  97. natural_pdf/ocr/ocr_factory.py +114 -0
  98. natural_pdf/ocr/ocr_manager.py +122 -124
  99. natural_pdf/ocr/ocr_options.py +16 -20
  100. natural_pdf/ocr/utils.py +98 -0
  101. natural_pdf/qa/__init__.py +1 -1
  102. natural_pdf/qa/document_qa.py +119 -111
  103. natural_pdf/search/__init__.py +37 -31
  104. natural_pdf/search/haystack_search_service.py +312 -189
  105. natural_pdf/search/haystack_utils.py +186 -122
  106. natural_pdf/search/search_options.py +25 -14
  107. natural_pdf/search/search_service_protocol.py +12 -6
  108. natural_pdf/search/searchable_mixin.py +261 -176
  109. natural_pdf/selectors/__init__.py +2 -1
  110. natural_pdf/selectors/parser.py +159 -316
  111. natural_pdf/templates/__init__.py +1 -1
  112. natural_pdf/templates/spa/css/style.css +334 -0
  113. natural_pdf/templates/spa/index.html +31 -0
  114. natural_pdf/templates/spa/js/app.js +472 -0
  115. natural_pdf/templates/spa/words.txt +235976 -0
  116. natural_pdf/utils/debug.py +32 -0
  117. natural_pdf/utils/highlighting.py +8 -2
  118. natural_pdf/utils/identifiers.py +29 -0
  119. natural_pdf/utils/packaging.py +418 -0
  120. natural_pdf/utils/reading_order.py +65 -63
  121. natural_pdf/utils/text_extraction.py +195 -0
  122. natural_pdf/utils/visualization.py +70 -61
  123. natural_pdf/widgets/__init__.py +2 -3
  124. natural_pdf/widgets/viewer.py +749 -718
  125. {natural_pdf-0.1.4.dist-info → natural_pdf-0.1.6.dist-info}/METADATA +53 -17
  126. natural_pdf-0.1.6.dist-info/RECORD +141 -0
  127. {natural_pdf-0.1.4.dist-info → natural_pdf-0.1.6.dist-info}/WHEEL +1 -1
  128. natural_pdf-0.1.6.dist-info/top_level.txt +4 -0
  129. notebooks/Examples.ipynb +1293 -0
  130. pdfs/.gitkeep +0 -0
  131. pdfs/01-practice.pdf +543 -0
  132. pdfs/0500000US42001.pdf +0 -0
  133. pdfs/0500000US42007.pdf +0 -0
  134. pdfs/2014 Statistics.pdf +0 -0
  135. pdfs/2019 Statistics.pdf +0 -0
  136. pdfs/Atlanta_Public_Schools_GA_sample.pdf +0 -0
  137. pdfs/needs-ocr.pdf +0 -0
  138. natural_pdf/templates/ocr_debug.html +0 -517
  139. natural_pdf-0.1.4.dist-info/RECORD +0 -61
  140. natural_pdf-0.1.4.dist-info/top_level.txt +0 -1
  141. {natural_pdf-0.1.4.dist-info → natural_pdf-0.1.6.dist-info}/licenses/LICENSE +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: natural-pdf
3
- Version: 0.1.4
3
+ Version: 0.1.6
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
@@ -16,38 +16,70 @@ Requires-Dist: Pillow
16
16
  Requires-Dist: colour
17
17
  Requires-Dist: numpy
18
18
  Requires-Dist: urllib3
19
- Requires-Dist: torch
20
- Requires-Dist: torchvision
21
- Requires-Dist: transformers
22
- Requires-Dist: huggingface_hub
23
- Requires-Dist: ocrmypdf
24
- Requires-Dist: pikepdf
19
+ Requires-Dist: tqdm
25
20
  Provides-Extra: interactive
26
21
  Requires-Dist: ipywidgets<9.0.0,>=7.0.0; extra == "interactive"
27
22
  Provides-Extra: haystack
28
23
  Requires-Dist: haystack-ai; extra == "haystack"
29
24
  Requires-Dist: chroma-haystack; extra == "haystack"
30
25
  Requires-Dist: sentence-transformers; extra == "haystack"
26
+ Requires-Dist: protobuf<4; extra == "haystack"
27
+ Requires-Dist: natural-pdf[core-ml]; extra == "haystack"
31
28
  Provides-Extra: easyocr
32
29
  Requires-Dist: easyocr; extra == "easyocr"
30
+ Requires-Dist: natural-pdf[core-ml]; extra == "easyocr"
33
31
  Provides-Extra: paddle
34
32
  Requires-Dist: paddlepaddle; extra == "paddle"
35
33
  Requires-Dist: paddleocr; extra == "paddle"
36
34
  Provides-Extra: layout-yolo
37
35
  Requires-Dist: doclayout_yolo; extra == "layout-yolo"
36
+ Requires-Dist: natural-pdf[core-ml]; extra == "layout-yolo"
38
37
  Provides-Extra: surya
39
38
  Requires-Dist: surya-ocr; extra == "surya"
39
+ Requires-Dist: natural-pdf[core-ml]; extra == "surya"
40
40
  Provides-Extra: qa
41
+ Requires-Dist: natural-pdf[core-ml]; extra == "qa"
42
+ Provides-Extra: docling
43
+ Requires-Dist: docling; extra == "docling"
44
+ Requires-Dist: natural-pdf[core-ml]; extra == "docling"
45
+ Provides-Extra: llm
46
+ Requires-Dist: openai>=1.0; extra == "llm"
47
+ Requires-Dist: pydantic; extra == "llm"
48
+ Provides-Extra: test
49
+ Requires-Dist: pytest; extra == "test"
50
+ Provides-Extra: dev
51
+ Requires-Dist: black; extra == "dev"
52
+ Requires-Dist: isort; extra == "dev"
53
+ Requires-Dist: mypy; extra == "dev"
54
+ Requires-Dist: pytest; extra == "dev"
55
+ Requires-Dist: nox; extra == "dev"
56
+ Requires-Dist: nox-uv; extra == "dev"
57
+ Requires-Dist: build; extra == "dev"
58
+ Requires-Dist: uv; extra == "dev"
59
+ Requires-Dist: pipdeptree; extra == "dev"
60
+ Requires-Dist: nbformat; extra == "dev"
61
+ Requires-Dist: jupytext; extra == "dev"
62
+ Requires-Dist: nbclient; extra == "dev"
41
63
  Provides-Extra: all
42
- Requires-Dist: ipywidgets<9.0.0,>=7.0.0; extra == "all"
43
- Requires-Dist: easyocr; extra == "all"
44
- Requires-Dist: paddlepaddle; extra == "all"
45
- Requires-Dist: paddleocr; extra == "all"
46
- Requires-Dist: doclayout_yolo; extra == "all"
47
- Requires-Dist: surya-ocr; extra == "all"
48
- Requires-Dist: haystack-ai; extra == "all"
49
- Requires-Dist: chroma-haystack; extra == "all"
50
- Requires-Dist: sentence-transformers; extra == "all"
64
+ Requires-Dist: natural-pdf[interactive]; extra == "all"
65
+ Requires-Dist: natural-pdf[haystack]; extra == "all"
66
+ Requires-Dist: natural-pdf[easyocr]; extra == "all"
67
+ Requires-Dist: natural-pdf[paddle]; extra == "all"
68
+ Requires-Dist: natural-pdf[layout_yolo]; extra == "all"
69
+ Requires-Dist: natural-pdf[surya]; extra == "all"
70
+ Requires-Dist: natural-pdf[qa]; extra == "all"
71
+ Requires-Dist: natural-pdf[ocr-export]; extra == "all"
72
+ Requires-Dist: natural-pdf[docling]; extra == "all"
73
+ Requires-Dist: natural-pdf[llm]; extra == "all"
74
+ Requires-Dist: natural-pdf[test]; extra == "all"
75
+ Provides-Extra: core-ml
76
+ Requires-Dist: torch; extra == "core-ml"
77
+ Requires-Dist: torchvision; extra == "core-ml"
78
+ Requires-Dist: transformers; extra == "core-ml"
79
+ Requires-Dist: huggingface_hub; extra == "core-ml"
80
+ Provides-Extra: ocr-export
81
+ Requires-Dist: ocrmypdf; extra == "ocr-export"
82
+ Requires-Dist: pikepdf; extra == "ocr-export"
51
83
  Dynamic: license-file
52
84
 
53
85
  # Natural PDF
@@ -75,6 +107,10 @@ pip install natural-pdf[easyocr]
75
107
  pip install natural-pdf[surya]
76
108
  pip install natural-pdf[paddle]
77
109
 
110
+ # Example: Install support for features using Large Language Models (e.g., via OpenAI-compatible APIs)
111
+ pip install natural-pdf[llm]
112
+ # (May require setting API key environment variables, e.g., GOOGLE_API_KEY for Gemini)
113
+
78
114
  # Example: Install with interactive viewer support
79
115
  pip install natural-pdf[interactive]
80
116
 
@@ -127,7 +163,7 @@ Natural PDF offers a range of features for working with PDFs:
127
163
  * **Spatial Navigation:** Select content relative to other elements (`heading.below()`, `element.select_until(...)`).
128
164
  * **Text & Table Extraction:** Get clean text or structured table data, automatically handling exclusions.
129
165
  * **OCR Integration:** Extract text from scanned documents using engines like EasyOCR, PaddleOCR, or Surya.
130
- * **Layout Analysis:** Detect document structures (titles, paragraphs, tables) using AI models.
166
+ * **Layout Analysis:** Detect document structures (titles, paragraphs, tables) using various engines (e.g., YOLO, Paddle, LLM via API).
131
167
  * **Document QA:** Ask natural language questions about your document's content.
132
168
  * **Semantic Search:** Index PDFs and find relevant pages or documents based on semantic meaning using Haystack.
133
169
  * **Visual Debugging:** Highlight elements and use an interactive viewer or save images to understand your selections.
@@ -0,0 +1,141 @@
1
+ docs/index.md,sha256=P1kXZc8aefnxH0bBjvBgj1o3puRiezjUiBLqS4bcUhM,4889
2
+ docs/api/index.md,sha256=4bn8nYklWJuNDrnY-Kt7sf7IejeAEDhcnqYmjH9GJTA,22405
3
+ docs/assets/favicon.png,sha256=nxca8jM2Y4GxZKzkmagUHO1GpUREK-GRA5LEFue9OOU,284
4
+ docs/assets/favicon.svg,sha256=nxca8jM2Y4GxZKzkmagUHO1GpUREK-GRA5LEFue9OOU,284
5
+ docs/assets/logo.svg,sha256=DdSmjHISSLt20mhf7YDXztigE6w_Reja_ATUYNAPL0M,286
6
+ docs/assets/sample-screen.png,sha256=qfsrThVoPOksn1ACVbLGe_gdPQmY1EsespXPs1Ocm2Y,182330
7
+ docs/assets/social-preview.png,sha256=AvyzzM8dC0j5SPFF63bvQrxU4GE1f9j-GUNUv0oA9ts,1085
8
+ docs/assets/social-preview.svg,sha256=AvyzzM8dC0j5SPFF63bvQrxU4GE1f9j-GUNUv0oA9ts,1085
9
+ docs/assets/javascripts/custom.js,sha256=0NVHGprwiLPFYdYunJcHjOphzk_EhBSNuOUz5Uzdv_k,594
10
+ docs/assets/stylesheets/custom.css,sha256=PbTp3k77gzUBUQQ01pDXzpNwo4wUv3aJD-SMBQvQItY,1156
11
+ docs/document-qa/index.ipynb,sha256=MXJoFhi8TUKK6ZnRFiUBglLGpMbzwdb7LJYfzw8Gp48,528713
12
+ docs/document-qa/index.md,sha256=mwuO4tothg0OzBXewnj73QEJu46Udq7f1pQBYrKOHwM,2131
13
+ docs/element-selection/index.ipynb,sha256=-7PwKw1RbPlZ4stzN1Rd1GJ8mwjOD4ySsLcpqVX7chc,1193628
14
+ docs/element-selection/index.md,sha256=_1P8vI64Y0aSVwUzdRJD4ayb80BJWBLED9TvVpveFx8,6979
15
+ docs/installation/index.md,sha256=nd4RZrQFR8_vv7Xm3xAzp7z-CQQr9ffAcGa7yuEYn2U,1594
16
+ docs/interactive-widget/index.ipynb,sha256=zY1rz5N34OUW-OtgcbI6iiOjlIJqXjVcx9OoNWMjuyU,293111
17
+ docs/interactive-widget/index.md,sha256=tZbq0uYI7Zwo9mLbhXpqeBriuAjazkIyEJeP-jasJ-Q,259
18
+ docs/layout-analysis/index.ipynb,sha256=dkS_-cu-KGir5G2LGRcxBThKnW0dfA5nPPnwpoYGFtU,1869093
19
+ docs/layout-analysis/index.md,sha256=ZnH5yd7B_eOLgGxW_4rNlzQs4Tn3Xx1cK3jX43CSpSM,5390
20
+ docs/ocr/index.md,sha256=uuzTqcAgUmMN7jZVq8VkVcbRDHn8Yg2nJVvHJ-bDK-Y,8177
21
+ docs/pdf-navigation/index.ipynb,sha256=h6yew0HePXK1_c5FmETqzjBQceUBT0MU-vnXx_y91mo,8018
22
+ docs/pdf-navigation/index.md,sha256=P3b3tsmOcmRtnfRxpsMeTgwm7vApnH_4le_QIwJd51M,2391
23
+ docs/regions/index.ipynb,sha256=5A-N5A4v4lcXNptOAeI4i7i9Gx66To-Yus8B816dHBk,1303347
24
+ docs/regions/index.md,sha256=e4aS_vV2FUFHPc5-Up60Ip8PYBIwT9qkjZcNwaS3JbY,8197
25
+ docs/tables/index.ipynb,sha256=61I9GwJlOM02Mx5aUtzJpRMh0OkpVlqMuEsO1J2s4go,763784
26
+ docs/tables/index.md,sha256=MVQpkhcWiFJwhMjfPouRVV0nZIUG-PNwFdspc-E8Xow,4428
27
+ docs/text-analysis/index.ipynb,sha256=iaup8pcQXGp0ZK3IWi-HHssQLdIzWYGYfvZK5i8yjjg,538024
28
+ docs/text-analysis/index.md,sha256=02pfZemOgV37izV7H-XzKmHu7AedDKLidQ-sKhYaMVw,3527
29
+ docs/text-extraction/index.ipynb,sha256=809y9ZamXT3bc3GhwwFyoDnlyEpO-kUZ3tIsZZWyrj8,2537087
30
+ docs/text-extraction/index.md,sha256=b1KfQpvIEelc8cPbFETUnK92az7iB4b7-LqK2DRH8vw,6985
31
+ docs/tutorials/01-loading-and-extraction.ipynb,sha256=-9hFAVQtHmuXsR9Ge3A80wKr-t9wxouAAlW4_Iotdwo,544610
32
+ docs/tutorials/01-loading-and-extraction.md,sha256=g40J8GhKz-ikM2URj5MqIatKKj4l5kTFozHeVjxDJQA,2191
33
+ docs/tutorials/02-finding-elements.ipynb,sha256=k1CSz47_atA9D6DXfQzVS64t5-L-KjssU2VuFvdy7oU,524374
34
+ docs/tutorials/02-finding-elements.md,sha256=qOkjcWUzem05of54aKzKvy-MMzRX_S4CyZisVV-73QM,4162
35
+ docs/tutorials/03-extracting-blocks.ipynb,sha256=1UjdP0j3kPCE3aU8p1jBCBqflG-xRLli2Ltx80DhOVk,260729
36
+ docs/tutorials/03-extracting-blocks.md,sha256=_kqvhk6rSL7cGp2MSwTJk8LYlJGbK_r_umnCSBdR8XU,1665
37
+ docs/tutorials/04-table-extraction.ipynb,sha256=u92Wppw1qHG__Mx3ZKtETm4AWuGF8X-Ln3kvmF8zCSo,3973
38
+ docs/tutorials/04-table-extraction.md,sha256=4q4v17VX8K-ZBtWYy0nbWPccyqB_ybd5Vl_IROmxz6Q,2130
39
+ docs/tutorials/05-excluding-content.ipynb,sha256=oSg8ll_nuWOfQHGLp0fNKVeyYyn_L8a-F7HJADjjdq8,336857
40
+ docs/tutorials/05-excluding-content.md,sha256=U52SPlc5knqxiyhRokmxrj06T54r2ENyTfP7BMGykhY,3907
41
+ docs/tutorials/06-document-qa.ipynb,sha256=Facyqns8jw2bTvsOSbNnsLskFH8kg1JTz4kmJ16dpcE,10303
42
+ docs/tutorials/06-document-qa.md,sha256=PzPPgw0Rkkfe6sfz3XyKD9S9JbQ40qf4bDzCBvwH1P0,3026
43
+ docs/tutorials/07-layout-analysis.ipynb,sha256=tdNnMro1V66YPx0h96HZnujSm-zDpy7o78euQix4lyU,559517
44
+ docs/tutorials/07-layout-analysis.md,sha256=NAYVzJTecDnXjo_isbPCSUBSn3c-xM1tELct1Zn5GmI,2533
45
+ docs/tutorials/07-working-with-regions.ipynb,sha256=s4BFKKbKUemmURCpg6j91rNI8eFFOJUgxY4QN4alK4I,69584
46
+ docs/tutorials/07-working-with-regions.md,sha256=oanbTFSQ-topAVd9kjfkaPiMjHcx6Y8cqyxVbmxLhgs,4365
47
+ docs/tutorials/08-spatial-navigation.ipynb,sha256=jfwF6OHLvrMvaaknp-9AfUvr-pPXjPljUyGnFKF9wsw,194523
48
+ docs/tutorials/08-spatial-navigation.md,sha256=IMbOYBjayXKE7pHfBjApTxOoKRD8WYj7opf8fsJCtzA,4855
49
+ docs/tutorials/09-section-extraction.ipynb,sha256=Aqcy08oXTJ1pkJCmVVumndje-4WXnbkl_QfJPhps7f8,1100736
50
+ docs/tutorials/09-section-extraction.md,sha256=Jy_be8ftAl_VPBWl5nEv7_5sKSZPx22DLUcBVHMD3Nc,7832
51
+ docs/tutorials/10-form-field-extraction.ipynb,sha256=yyopvBoS5vkKKtUQ6rZ4Kyo5E0Olp2WYnmunhfzSQkQ,281491
52
+ docs/tutorials/10-form-field-extraction.md,sha256=t9tPlW36vJEhDrKIsHGg_f3P_MK62DT4-ZK1thKFs4Y,5494
53
+ docs/tutorials/11-enhanced-table-processing.ipynb,sha256=BWpVUhtjaAX7r4OOdiy5gQgrSqREaoB0L5TuHqoHEn8,1278
54
+ docs/tutorials/11-enhanced-table-processing.md,sha256=2HK-r1UwU7FLn7zWr_pMG7iLk-i0L4U4-t6ubOEeduc,282
55
+ docs/tutorials/12-ocr-integration.ipynb,sha256=xurkoPwgk2p6mhmPdCehy9ccuYHrAhBCb1zGnjRbZ7Y,26724
56
+ docs/tutorials/12-ocr-integration.md,sha256=wU90sfnm1R6BoMFq-orbGpl8OUVcm-wEBTlK0bLgJC4,4572
57
+ docs/tutorials/13-semantic-search.ipynb,sha256=5h806AIal3EwXPVuXJESbXwdUImCx7fo0mo5-f3Dj44,42817
58
+ docs/tutorials/13-semantic-search.md,sha256=nsNjv0ipYUC3YPSqT5d6dga9ZjObEc04Mc8c0-gsRnU,2914
59
+ docs/visual-debugging/index.ipynb,sha256=MJ92u3Q9sfRCyDAQM4KWmCrs4QhKwIagbn6ytPF83L4,2175800
60
+ docs/visual-debugging/index.md,sha256=ueGD2kNFhEAgIHt7qxCfrLRLjHcR7NTD3AU9okBhX9k,4176
61
+ docs/visual-debugging/region.png,sha256=ULAJs3ZTxMjpD9F4w1DKaZXmhxga3KRq3NrUsXgw28s,67835
62
+ natural_pdf/__init__.py,sha256=IjeAfnDU9fpkVc9YvU2DltNtBtIsZm8_DUyXGuyHGB8,2669
63
+ natural_pdf/analyzers/__init__.py,sha256=dIXjsMqoxKmd9OOnSBzn12wvdIz7D7YNQRAnXslpJSM,142
64
+ natural_pdf/analyzers/text_options.py,sha256=nE2E1pp4psDPpxmtarvNtEQsgozPkyFRjv0TVP2HTyU,2865
65
+ natural_pdf/analyzers/text_structure.py,sha256=9h8hKRz0JWnr13xQr3b4FFr_-hDIjue07WvG7LmT8nc,12827
66
+ natural_pdf/analyzers/utils.py,sha256=Lgub1kYSTOnNxeLO1klStHLwH-GIuT4vpdqyVRF-Mcg,2084
67
+ natural_pdf/analyzers/layout/__init__.py,sha256=oq1uJ5UkGGMbBKGirV1aRKK3hxAUyjTLywYkPCQH1f0,33
68
+ natural_pdf/analyzers/layout/base.py,sha256=9dCR758mAuz7ExlHJ-gwnPnETaM4GZV3W1IRei_t13s,6815
69
+ natural_pdf/analyzers/layout/docling.py,sha256=4BJYyNVR6VegZGxyisvNIBBRvVk6YKPyDVs7ZdVfzEU,12676
70
+ natural_pdf/analyzers/layout/gemini.py,sha256=Dslt6rOar9S-QSahyjjXN7Z0KEp7CoVStAA4tvB06X8,10894
71
+ natural_pdf/analyzers/layout/layout_analyzer.py,sha256=6aed1qz5jpndOiakXCBRZAcnyG_waeXi3WPuP5fRvh4,14046
72
+ natural_pdf/analyzers/layout/layout_manager.py,sha256=Vh8EKiszKqjELofxQ1eiVLKVjibyjBsZpLFzTf0_21E,11179
73
+ natural_pdf/analyzers/layout/layout_options.py,sha256=s7xr4brE3OutE6aYNAi2PniRy1p2w8a342C2xGpvX2s,3777
74
+ natural_pdf/analyzers/layout/paddle.py,sha256=gTI9ZqNd5-t4H5IByGfL32WgcE6JrdchW6jRiGI6ulM,13375
75
+ natural_pdf/analyzers/layout/surya.py,sha256=vhji6ynHPMyQLHuYRPQcplNi7m_lG4P4NYtWv6MzcME,13556
76
+ natural_pdf/analyzers/layout/tatr.py,sha256=-GJhMy4d0yx6egkO9-ULAIdQkkQRyAKExoIta-b256U,12971
77
+ natural_pdf/analyzers/layout/yolo.py,sha256=ANo2U4EZgeN2eYKM1bZIuysiuJLgwl4JeQchrRxOKwA,8388
78
+ natural_pdf/collections/pdf_collection.py,sha256=Qfauo7fskmw3MSzG0C_OjIGLskyFSQxWQkbHrPDYpno,13240
79
+ natural_pdf/core/__init__.py,sha256=QC8H4M3KbXwMFiQORZ0pdPlzx1Ix6oKKQSS7Ib2KEaA,38
80
+ natural_pdf/core/element_manager.py,sha256=rPTkppvU5nQ6Q1_ZtTbcY-KpcRBZV_uBKuNwllHBks0,22100
81
+ natural_pdf/core/highlighting_service.py,sha256=CTVd7y-fpIreFSe70cTpMu1Pwl6HKMtTHp0bh2U7VXk,32609
82
+ natural_pdf/core/page.py,sha256=Fw01hvK7ekj3iGpj9YbbsVygCmOtTC3qLNvzGBHS4iQ,84784
83
+ natural_pdf/core/pdf.py,sha256=dq2bcxbrbY0zS8t3NKkvqi63Oj2nNzaCHUyHz81OoBI,46383
84
+ natural_pdf/elements/__init__.py,sha256=S8XeiNWJ1WcgnyYKdYV1yxQlAxCCO3FfITT8MQwNbyk,41
85
+ natural_pdf/elements/base.py,sha256=hgXpcftlvyUOMGZ8EHEu0WhJz2weqcLrCOFgMEhfm-w,35171
86
+ natural_pdf/elements/collections.py,sha256=Fy5l1Rso-LMunZ6D6Y0n90Uk89h8dzJ2Js7r-8r8NSY,68885
87
+ natural_pdf/elements/line.py,sha256=7cow3xMUKhAj7zoQz7OaB1eIH2_a8B__LB7iGJ4Mb0o,4612
88
+ natural_pdf/elements/rect.py,sha256=kiVa3e377ZnqIOXc89d9ZSY4EcmDxtccdtUw-HOQzpw,3796
89
+ natural_pdf/elements/region.py,sha256=-mBZnWoYMB7cLm5RZhHWCnJkJjsfcgH-f2ESktl-lNk,69656
90
+ natural_pdf/elements/text.py,sha256=8PNKSLUgXUhEu9IFfbNbSSpuu0Slm11T6UH8jn4O6hQ,11078
91
+ natural_pdf/exporters/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
92
+ natural_pdf/exporters/searchable_pdf.py,sha256=qsaPsnbOOaZHA_aplfZbwQnBoK9KghWm-wzbyRRomeY,16859
93
+ natural_pdf/ocr/__init__.py,sha256=8EvoA2poYbtkS8Jmbkgn4hFEwOHbN5fIXdJc9tT4NzI,2477
94
+ natural_pdf/ocr/engine.py,sha256=oTABzt20pEvKadTv1U7zOIv_jSTwv5dty2Q_6vf6HQs,8767
95
+ natural_pdf/ocr/engine_easyocr.py,sha256=zki3-fd-u01E9VPdaBD0Rkel18Nk9xYBg477MXY0C8w,8487
96
+ natural_pdf/ocr/engine_paddle.py,sha256=8OYbcYrjIaYop7h7W4R7bXWHKOCYhJQpqT2cVccNb5E,6209
97
+ natural_pdf/ocr/engine_surya.py,sha256=PtzvDOqxNzhAEeh0rIhTwPXDAbTHMR2IRs0tXb-4pag,4693
98
+ natural_pdf/ocr/ocr_factory.py,sha256=3fxIpgGi6NzxhfYpl5Kblufyx_-RRoT7dlRGktYjB_Y,4425
99
+ natural_pdf/ocr/ocr_manager.py,sha256=sMQrpvAaA4PbjhZOf7G_KGW3KBhXhx1l26ig_Xqf_0g,9190
100
+ natural_pdf/ocr/ocr_options.py,sha256=3njghlnnkcxOL4Td7l6mt-mTEFmL8Z-ryf_BX-EM3i4,3289
101
+ natural_pdf/ocr/utils.py,sha256=AIBkGQExetjl2wyuQLpWJSy0HSxaOBmuCo2QsKmY7Rc,3404
102
+ natural_pdf/qa/__init__.py,sha256=Pjo62JTnUNEjGNsC437mvsS5KQ5m7X_BibGvavR9AW0,108
103
+ natural_pdf/qa/document_qa.py,sha256=W4E4vS_Eox_IBsYpVb0ifQbJb0FP-PYEIG93CU3rUkE,15246
104
+ natural_pdf/search/__init__.py,sha256=EB_HRwlktJn5WGPVtSaRbOQNjLAZTxujeYf_eN-zd2U,4191
105
+ natural_pdf/search/haystack_search_service.py,sha256=6RjTFWbTo3gaO-90IF6PEuo_9WRwOdj232eWn3OT0BQ,29270
106
+ natural_pdf/search/haystack_utils.py,sha256=UI4eu3SVieGR_QnBtLhP8Fjtt2AJgeLgxrpa_dBmD6k,19289
107
+ natural_pdf/search/search_options.py,sha256=sq_e8_jSROicD94b_xtDtLnjEr_Zsy4icjzPkK0a8QA,3566
108
+ natural_pdf/search/search_service_protocol.py,sha256=ybNcF_NoLZuIx0rb4XB1dsDl3o_LAaWR1fVVKld2TxI,6818
109
+ natural_pdf/search/searchable_mixin.py,sha256=M2a6FaFVM0vcfh7FgjDH6BLhS-7ggeVpcfft4OOBDxY,26390
110
+ natural_pdf/selectors/__init__.py,sha256=oZGeqSv53EqmIZOhcnawuaGGlRg1h79vArXuZCWKm4A,123
111
+ natural_pdf/selectors/parser.py,sha256=59_GSsTApM6MFvtqhrrmbKaBfODPbGXMluvvQJcrqhE,15754
112
+ natural_pdf/templates/__init__.py,sha256=jYBxzfi73vew0f6yhIh1MlRxw4F_TVN2hKQR0YXOFe0,20
113
+ natural_pdf/templates/spa/index.html,sha256=6hLTp07OeV5Q4jUMp5Sgl-dwfBs3oPzBxqphG4kEs24,787
114
+ natural_pdf/templates/spa/words.txt,sha256=vkGtl5Y7-Nq-3Vhx1daRWWF1Jp1UCVaw-ZZaiFwrurk,2493885
115
+ natural_pdf/templates/spa/css/style.css,sha256=Qdl0U3L5HMyhBDNzyRPklfb3OxW6rMxCfQbzO8i8IW4,7643
116
+ natural_pdf/templates/spa/js/app.js,sha256=Efb7NmcTN9RLdLwKpDcU6CG5Ix0laHtzRHmfUlDMJXw,19679
117
+ natural_pdf/utils/__init__.py,sha256=s3M8FggaK1P3EBYn6R_-HgSDjNc9C73gyKe1hihtNWg,43
118
+ natural_pdf/utils/debug.py,sha256=56dk0OcDUwjRbYU2g1k0_G_3hfHkAF9Z6vnMVt3myMU,992
119
+ natural_pdf/utils/highlighting.py,sha256=EIY6ihVGtUTS_DjWyxpnr_UXpcR4btC1KhSGQ9VUfKg,698
120
+ natural_pdf/utils/identifiers.py,sha256=IvXj2q-NW1cmivWAedDOZBFPTRbVl0_J8BP4phREt9U,1092
121
+ natural_pdf/utils/packaging.py,sha256=mNPEqCtc0CVWjKg1RcSldYTgspUWQOLAR_ZEllyKxs4,20175
122
+ natural_pdf/utils/reading_order.py,sha256=s3DsYq_3g_1YA07qhd4BGEjeIRTeyGtnwc_hNtSzwBY,7290
123
+ natural_pdf/utils/text_extraction.py,sha256=VlbkXg14GlvwYTjRJWa8FVUigETY3Hq0v8NlIRnzYkM,8619
124
+ natural_pdf/utils/visualization.py,sha256=ir5PgpptRuVuVeRT9IcdTsNeEpdOYD_69rByjHQ7JhI,8592
125
+ natural_pdf/widgets/__init__.py,sha256=O2fSDo604wDAP6UwUkmBq3eT91RSqHwBpAOQXq92S8s,214
126
+ natural_pdf/widgets/viewer.py,sha256=Aiw6kuBc0WkhcZrPNKyLNzzWbmtmU6rvOmHV0IuXCBk,40862
127
+ natural_pdf/widgets/frontend/viewer.js,sha256=w8ywfz_IOAAv2nP_qaf2VBUkF1KhjT3zorhJxM1-CfU,4371
128
+ natural_pdf-0.1.6.dist-info/licenses/LICENSE,sha256=9zfwINwJlarbDmdh6iJV4QUG54QSJlSAUcnC1YiC_Ns,1074
129
+ notebooks/Examples.ipynb,sha256=l4YMtMEx_DWBzWIjl9CmBkWTo0g_nK8l_XWOyzYooQM,4275170
130
+ pdfs/.gitkeep,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
131
+ pdfs/01-practice.pdf,sha256=dxWyJIa2cm7bALE3BWDJ2dg3inyFlo1n8ntVyy0hkTo,7906
132
+ pdfs/0500000US42001.pdf,sha256=VHn5gxlysgD6oJUCndeWXe_RwOrOraO1uIRt_fu8YNY,315883
133
+ pdfs/0500000US42007.pdf,sha256=pTfu_IVKvHpv9WUyN3QSiGevAOpPZmnr4QL1z-rYQ4E,1168633
134
+ pdfs/2014 Statistics.pdf,sha256=B-30OQVjqj_3718-G9cGUefNddnz-MosPdHAzfGfkcc,9559
135
+ pdfs/2019 Statistics.pdf,sha256=reuSJxvAlx9_P-pW7IPqzox0jFCxSPbK1i1-WFu-uGA,511439
136
+ pdfs/Atlanta_Public_Schools_GA_sample.pdf,sha256=PLBh_uWJQH0MnBaSm5ng5Ima63_m6Mi11CjdravB_S8,137689
137
+ pdfs/needs-ocr.pdf,sha256=vusKiLxSOlELUTetfZfaotNU54RtMj9PCzGfLc2cuNs,139305
138
+ natural_pdf-0.1.6.dist-info/METADATA,sha256=Yd92-6FRKc6KdEuTpCOWyxBcewnhAoYTAhtbq6qIB0Q,6668
139
+ natural_pdf-0.1.6.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
140
+ natural_pdf-0.1.6.dist-info/top_level.txt,sha256=7nDKUnpkN7B8cBI7DEpW5JM8S7OcOgHw3jXH-1iCX2o,32
141
+ natural_pdf-0.1.6.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (78.1.0)
2
+ Generator: setuptools (79.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -0,0 +1,4 @@
1
+ docs
2
+ natural_pdf
3
+ notebooks
4
+ pdfs