numind 0.3.2__tar.gz → 0.4.1__tar.gz

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 (362) hide show
  1. {numind-0.3.2 → numind-0.4.1}/.github/workflows/tests.yml +1 -1
  2. {numind-0.3.2 → numind-0.4.1}/PKG-INFO +73 -100
  3. {numind-0.3.2 → numind-0.4.1}/README.md +59 -86
  4. {numind-0.3.2 → numind-0.4.1}/docs/ContentExtractionApi.md +26 -17
  5. {numind-0.3.2 → numind-0.4.1}/docs/ContentExtractionProjectManagementApi.md +19 -15
  6. {numind-0.3.2 → numind-0.4.1}/docs/ContentProjectSettingsResponse.md +5 -3
  7. numind-0.4.1/docs/ContentProjectSettingsResponseRasterizationDPI.md +39 -0
  8. numind-0.4.1/docs/ContentSettingsPatch.md +37 -0
  9. {numind-0.3.2 → numind-0.4.1}/docs/ConvertRequest.md +2 -1
  10. {numind-0.3.2 → numind-0.4.1}/docs/DefaultApi.md +3 -3
  11. {numind-0.3.2 → numind-0.4.1}/docs/DocumentsApi.md +11 -4
  12. {numind-0.3.2 → numind-0.4.1}/docs/FilesApi.md +7 -0
  13. numind-0.4.1/docs/InferenceApi.md +381 -0
  14. numind-0.4.1/docs/InferenceStatusResponse.md +31 -0
  15. numind-0.4.1/docs/JobReportResponse.md +35 -0
  16. {numind-0.3.2 → numind-0.4.1}/docs/JobsApi.md +93 -0
  17. numind-0.4.1/docs/PostProcessingErrorResponse.md +36 -0
  18. numind-0.4.1/docs/PostProcessingRepairResponse.md +39 -0
  19. numind-0.4.1/docs/PostProcessingReportResponse.md +36 -0
  20. numind-0.4.1/docs/ReferenceProjectResponse.md +33 -0
  21. numind-0.4.1/docs/StructuredDataExtractionApi.md +550 -0
  22. {numind-0.3.2 → numind-0.4.1}/docs/StructuredExtractionExamplesApi.md +1 -4
  23. {numind-0.3.2 → numind-0.4.1}/docs/StructuredExtractionProjectManagementApi.md +115 -39
  24. {numind-0.3.2 → numind-0.4.1}/docs/StructuredInferenceExample.md +1 -1
  25. {numind-0.3.2 → numind-0.4.1}/docs/StructuredProjectSettingsResponse.md +8 -6
  26. numind-0.4.1/docs/StructuredSettingsPatch.md +40 -0
  27. numind-0.4.1/docs/TemplateGenerationApi.md +339 -0
  28. {numind-0.3.2 → numind-0.4.1}/pyproject.toml +7 -6
  29. {numind-0.3.2 → numind-0.4.1}/sdk_generation/pyproject_base.toml +15 -25
  30. {numind-0.3.2 → numind-0.4.1}/src/numind/models/__init__.py +11 -6
  31. {numind-0.3.2 → numind-0.4.1}/src/numind/models/content_project_settings_response.py +30 -6
  32. numind-0.4.1/src/numind/models/content_project_settings_response_rasterization_dpi.py +164 -0
  33. numind-0.3.2/src/numind/models/update_content_project_settings_request.py → numind-0.4.1/src/numind/models/content_settings_patch.py +38 -16
  34. numind-0.4.1/src/numind/models/convert_request.py +104 -0
  35. {numind-0.3.2 → numind-0.4.1}/src/numind/models/health_response.py +3 -2
  36. {numind-0.3.2 → numind-0.4.1}/src/numind/models/image_info.py +1 -1
  37. numind-0.4.1/src/numind/models/inference_status_response.py +93 -0
  38. numind-0.4.1/src/numind/models/job_report_response.py +125 -0
  39. {numind-0.3.2 → numind-0.4.1}/src/numind/models/paginated_response_t.py +3 -2
  40. numind-0.4.1/src/numind/models/post_processing_error_response.py +98 -0
  41. numind-0.4.1/src/numind/models/post_processing_repair_response.py +114 -0
  42. numind-0.4.1/src/numind/models/post_processing_report_response.py +115 -0
  43. numind-0.4.1/src/numind/models/reference_project_response.py +90 -0
  44. {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_extraction_response.py +5 -2
  45. {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_inference_example.py +4 -2
  46. {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_project_settings_response.py +33 -9
  47. numind-0.3.2/src/numind/models/update_structured_project_settings_request.py → numind-0.4.1/src/numind/models/structured_settings_patch.py +41 -26
  48. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/data_correction.py +13 -2
  49. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/bic.py +12 -4
  50. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/email_address.py +19 -8
  51. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/iban.py +12 -4
  52. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/integer.py +9 -6
  53. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/language_tag.py +2 -3
  54. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/number.py +11 -6
  55. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/phone_number.py +26 -5
  56. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/rfc3987.py +14 -3
  57. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/unit_code.py +2 -3
  58. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/verbatim_string.py +89 -38
  59. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/json_schema.py +12 -0
  60. numind-0.4.1/src/numind/numind.py +685 -0
  61. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/__init__.py +34 -8
  62. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/content_extraction_api.py +89 -42
  63. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/content_extraction_project_management_api.py +25 -27
  64. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/default_api.py +6 -6
  65. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/documents_api.py +3 -3
  66. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/files_api.py +3 -3
  67. numind-0.4.1/src/numind/openapi_client/api/inference_api.py +1395 -0
  68. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/jobs_api.py +276 -0
  69. numind-0.3.2/src/numind/openapi_client/api/inference_api.py → numind-0.4.1/src/numind/openapi_client/api/structured_data_extraction_api.py +688 -824
  70. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/structured_extraction_examples_api.py +3 -3
  71. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/structured_extraction_project_management_api.py +270 -69
  72. numind-0.4.1/src/numind/openapi_client/api/template_generation_api.py +1160 -0
  73. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api_client.py +65 -11
  74. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/configuration.py +36 -5
  75. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/rest.py +32 -11
  76. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/__init__.py +34 -8
  77. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/content_extraction_api.py +89 -42
  78. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/content_extraction_project_management_api.py +25 -27
  79. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/default_api.py +6 -6
  80. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/documents_api.py +3 -3
  81. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/files_api.py +3 -3
  82. numind-0.4.1/src/numind/openapi_client_async/api/inference_api.py +1395 -0
  83. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/jobs_api.py +276 -0
  84. numind-0.3.2/src/numind/openapi_client_async/api/inference_api.py → numind-0.4.1/src/numind/openapi_client_async/api/structured_data_extraction_api.py +688 -824
  85. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/structured_extraction_examples_api.py +3 -3
  86. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/structured_extraction_project_management_api.py +270 -69
  87. numind-0.4.1/src/numind/openapi_client_async/api/template_generation_api.py +1160 -0
  88. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api_client.py +65 -11
  89. {numind-0.3.2 → numind-0.4.1}/tests/conftest.py +17 -0
  90. numind-0.4.1/tests/nuextract_utils/test_optional_dependencies.py +131 -0
  91. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content.py +6 -2
  92. {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_content_project_response.py +6 -2
  93. {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_content_project_settings_response.py +6 -2
  94. numind-0.4.1/tests/openapi_client/test_content_project_settings_response_rasterization_dpi.py +55 -0
  95. numind-0.3.2/tests/openapi_client/test_update_content_project_settings_request.py → numind-0.4.1/tests/openapi_client/test_content_settings_patch.py +14 -14
  96. {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_convert_request.py +4 -2
  97. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_import_project_response.py +6 -2
  98. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_inference_api.py +0 -6
  99. numind-0.4.1/tests/openapi_client/test_inference_status_response.py +57 -0
  100. numind-0.4.1/tests/openapi_client/test_job_report_response.py +98 -0
  101. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_jobs_api.py +3 -0
  102. numind-0.4.1/tests/openapi_client/test_post_processing_error_response.py +63 -0
  103. numind-0.4.1/tests/openapi_client/test_post_processing_repair_response.py +66 -0
  104. numind-0.4.1/tests/openapi_client/test_post_processing_report_response.py +69 -0
  105. numind-0.4.1/tests/openapi_client/test_reference_project_response.py +57 -0
  106. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured.py +6 -2
  107. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_data_extraction_api.py +6 -0
  108. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_extraction_project_management_api.py +3 -0
  109. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_inference_example.py +0 -1
  110. {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_structured_project_response.py +6 -2
  111. {numind-0.3.2/tests/openapi_client_async → numind-0.4.1/tests/openapi_client}/test_structured_project_settings_response.py +6 -2
  112. numind-0.3.2/tests/openapi_client/test_update_structured_project_settings_request.py → numind-0.4.1/tests/openapi_client/test_structured_settings_patch.py +14 -15
  113. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_template_generation_api.py +3 -0
  114. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content.py +6 -2
  115. {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_content_project_response.py +6 -2
  116. {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_content_project_settings_response.py +6 -2
  117. numind-0.4.1/tests/openapi_client_async/test_content_project_settings_response_rasterization_dpi.py +55 -0
  118. numind-0.3.2/tests/openapi_client_async/test_update_content_project_settings_request.py → numind-0.4.1/tests/openapi_client_async/test_content_settings_patch.py +14 -14
  119. {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_convert_request.py +4 -2
  120. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_import_project_response.py +6 -2
  121. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_inference_api.py +0 -8
  122. numind-0.4.1/tests/openapi_client_async/test_inference_status_response.py +57 -0
  123. numind-0.4.1/tests/openapi_client_async/test_job_report_response.py +98 -0
  124. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_jobs_api.py +3 -0
  125. numind-0.4.1/tests/openapi_client_async/test_post_processing_error_response.py +63 -0
  126. numind-0.4.1/tests/openapi_client_async/test_post_processing_repair_response.py +66 -0
  127. numind-0.4.1/tests/openapi_client_async/test_post_processing_report_response.py +69 -0
  128. numind-0.4.1/tests/openapi_client_async/test_reference_project_response.py +57 -0
  129. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured.py +6 -2
  130. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_data_extraction_api.py +8 -0
  131. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_extraction_project_management_api.py +3 -0
  132. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_inference_example.py +0 -1
  133. {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_structured_project_response.py +6 -2
  134. {numind-0.3.2/tests/openapi_client → numind-0.4.1/tests/openapi_client_async}/test_structured_project_settings_response.py +6 -2
  135. numind-0.3.2/tests/openapi_client_async/test_update_structured_project_settings_request.py → numind-0.4.1/tests/openapi_client_async/test_structured_settings_patch.py +14 -15
  136. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_template_generation_api.py +3 -0
  137. {numind-0.3.2 → numind-0.4.1}/tests/test_conversion_json_schema.py +33 -0
  138. numind-0.4.1/tests/test_extract_structured_data.py +188 -0
  139. numind-0.4.1/tests/test_numarkdown.py +150 -0
  140. numind-0.4.1/tests/test_project.py +237 -0
  141. numind-0.3.2/docs/InferenceApi.md +0 -562
  142. numind-0.3.2/docs/StructuredDataExtractionApi.md +0 -236
  143. numind-0.3.2/docs/TemplateGenerationApi.md +0 -203
  144. numind-0.3.2/docs/UpdateContentProjectSettingsRequest.md +0 -43
  145. numind-0.3.2/docs/UpdateStructuredProjectSettingsRequest.md +0 -47
  146. numind-0.3.2/src/numind/models/convert_request.py +0 -85
  147. numind-0.3.2/src/numind/numind.py +0 -558
  148. numind-0.3.2/src/numind/openapi_client/api/structured_data_extraction_api.py +0 -958
  149. numind-0.3.2/src/numind/openapi_client/api/template_generation_api.py +0 -680
  150. numind-0.3.2/src/numind/openapi_client_async/api/structured_data_extraction_api.py +0 -958
  151. numind-0.3.2/src/numind/openapi_client_async/api/template_generation_api.py +0 -680
  152. numind-0.3.2/tests/test_numarkdown.py +0 -27
  153. numind-0.3.2/tests/test_project.py +0 -135
  154. {numind-0.3.2 → numind-0.4.1}/.github/codecov.yml +0 -0
  155. {numind-0.3.2 → numind-0.4.1}/.github/dependabot.yml +0 -0
  156. {numind-0.3.2 → numind-0.4.1}/.github/workflows/lint.yml +0 -0
  157. {numind-0.3.2 → numind-0.4.1}/.github/workflows/publish-pypi.yml +0 -0
  158. {numind-0.3.2 → numind-0.4.1}/.github/workflows/sdk-auto-update.yml +0 -0
  159. {numind-0.3.2 → numind-0.4.1}/.github/workflows/update-api-build-version-repo-var.yml +0 -0
  160. {numind-0.3.2 → numind-0.4.1}/.gitignore +0 -0
  161. {numind-0.3.2 → numind-0.4.1}/LICENSE +0 -0
  162. {numind-0.3.2 → numind-0.4.1}/docs/Content.md +0 -0
  163. {numind-0.3.2 → numind-0.4.1}/docs/ContentExtractionResponse.md +0 -0
  164. {numind-0.3.2 → numind-0.4.1}/docs/ContentProjectResponse.md +0 -0
  165. {numind-0.3.2 → numind-0.4.1}/docs/CreateContentProjectRequest.md +0 -0
  166. {numind-0.3.2 → numind-0.4.1}/docs/CreateOrUpdateStructuredExampleRequest.md +0 -0
  167. {numind-0.3.2 → numind-0.4.1}/docs/CreateStructuredProjectRequest.md +0 -0
  168. {numind-0.3.2 → numind-0.4.1}/docs/DocumentInfo.md +0 -0
  169. {numind-0.3.2 → numind-0.4.1}/docs/DocumentResponse.md +0 -0
  170. {numind-0.3.2 → numind-0.4.1}/docs/Error.md +0 -0
  171. {numind-0.3.2 → numind-0.4.1}/docs/FileResponse.md +0 -0
  172. {numind-0.3.2 → numind-0.4.1}/docs/HealthResponse.md +0 -0
  173. {numind-0.3.2 → numind-0.4.1}/docs/ImageInfo.md +0 -0
  174. {numind-0.3.2 → numind-0.4.1}/docs/ImportProjectResponse.md +0 -0
  175. {numind-0.3.2 → numind-0.4.1}/docs/InferenceStatus.md +0 -0
  176. {numind-0.3.2 → numind-0.4.1}/docs/InferenceValidationError.md +0 -0
  177. {numind-0.3.2 → numind-0.4.1}/docs/InformationResponse.md +0 -0
  178. {numind-0.3.2 → numind-0.4.1}/docs/InvalidInformation.md +0 -0
  179. {numind-0.3.2 → numind-0.4.1}/docs/JobIdResponse.md +0 -0
  180. {numind-0.3.2 → numind-0.4.1}/docs/JobStatusResponse.md +0 -0
  181. {numind-0.3.2 → numind-0.4.1}/docs/PaginatedResponseT.md +0 -0
  182. {numind-0.3.2 → numind-0.4.1}/docs/ProjectImportExportApi.md +0 -0
  183. {numind-0.3.2 → numind-0.4.1}/docs/ServiceStatus.md +0 -0
  184. {numind-0.3.2 → numind-0.4.1}/docs/Structured.md +0 -0
  185. {numind-0.3.2 → numind-0.4.1}/docs/StructuredExampleResponse.md +0 -0
  186. {numind-0.3.2 → numind-0.4.1}/docs/StructuredExtractionResponse.md +0 -0
  187. {numind-0.3.2 → numind-0.4.1}/docs/StructuredProjectResponse.md +0 -0
  188. {numind-0.3.2 → numind-0.4.1}/docs/TemplateRequest.md +0 -0
  189. {numind-0.3.2 → numind-0.4.1}/docs/TemplateResponse.md +0 -0
  190. {numind-0.3.2 → numind-0.4.1}/docs/TextInfo.md +0 -0
  191. {numind-0.3.2 → numind-0.4.1}/docs/TextRequest.md +0 -0
  192. {numind-0.3.2 → numind-0.4.1}/docs/UpdateContentProjectRequest.md +0 -0
  193. {numind-0.3.2 → numind-0.4.1}/docs/UpdateStructuredProjectRequest.md +0 -0
  194. {numind-0.3.2 → numind-0.4.1}/docs/ValidInformation.md +0 -0
  195. {numind-0.3.2 → numind-0.4.1}/docs/VersionResponse.md +0 -0
  196. {numind-0.3.2 → numind-0.4.1}/sdk_generation/.openapi-generator-ignore +0 -0
  197. {numind-0.3.2 → numind-0.4.1}/sdk_generation/adapt_openapi_client_init.py +0 -0
  198. {numind-0.3.2 → numind-0.4.1}/sdk_generation/adapt_pyproject.py +0 -0
  199. {numind-0.3.2 → numind-0.4.1}/sdk_generation/collate_documentation_readme.py +0 -0
  200. {numind-0.3.2 → numind-0.4.1}/sdk_generation/config.json +0 -0
  201. {numind-0.3.2 → numind-0.4.1}/sdk_generation/gen_sdk.sh +0 -0
  202. {numind-0.3.2 → numind-0.4.1}/sdk_generation/remove_unused_models_from_openapi_spec_file.py +0 -0
  203. {numind-0.3.2 → numind-0.4.1}/src/numind/__init__.py +0 -0
  204. {numind-0.3.2 → numind-0.4.1}/src/numind/api_response.py +0 -0
  205. {numind-0.3.2 → numind-0.4.1}/src/numind/constants.py +0 -0
  206. {numind-0.3.2 → numind-0.4.1}/src/numind/exceptions.py +0 -0
  207. {numind-0.3.2 → numind-0.4.1}/src/numind/models/content.py +0 -0
  208. {numind-0.3.2 → numind-0.4.1}/src/numind/models/content_extraction_response.py +0 -0
  209. {numind-0.3.2 → numind-0.4.1}/src/numind/models/content_project_response.py +0 -0
  210. {numind-0.3.2 → numind-0.4.1}/src/numind/models/create_content_project_request.py +0 -0
  211. {numind-0.3.2 → numind-0.4.1}/src/numind/models/create_or_update_structured_example_request.py +0 -0
  212. {numind-0.3.2 → numind-0.4.1}/src/numind/models/create_structured_project_request.py +0 -0
  213. {numind-0.3.2 → numind-0.4.1}/src/numind/models/document_info.py +0 -0
  214. {numind-0.3.2 → numind-0.4.1}/src/numind/models/document_response.py +0 -0
  215. {numind-0.3.2 → numind-0.4.1}/src/numind/models/error.py +0 -0
  216. {numind-0.3.2 → numind-0.4.1}/src/numind/models/file_response.py +0 -0
  217. {numind-0.3.2 → numind-0.4.1}/src/numind/models/import_project_response.py +0 -0
  218. {numind-0.3.2 → numind-0.4.1}/src/numind/models/inference_status.py +0 -0
  219. {numind-0.3.2 → numind-0.4.1}/src/numind/models/inference_validation_error.py +0 -0
  220. {numind-0.3.2 → numind-0.4.1}/src/numind/models/information_response.py +0 -0
  221. {numind-0.3.2 → numind-0.4.1}/src/numind/models/invalid_information.py +0 -0
  222. {numind-0.3.2 → numind-0.4.1}/src/numind/models/job_id_response.py +0 -0
  223. {numind-0.3.2 → numind-0.4.1}/src/numind/models/job_status_response.py +0 -0
  224. {numind-0.3.2 → numind-0.4.1}/src/numind/models/service_status.py +0 -0
  225. {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured.py +0 -0
  226. {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_example_response.py +0 -0
  227. {numind-0.3.2 → numind-0.4.1}/src/numind/models/structured_project_response.py +0 -0
  228. {numind-0.3.2 → numind-0.4.1}/src/numind/models/template_request.py +0 -0
  229. {numind-0.3.2 → numind-0.4.1}/src/numind/models/template_response.py +0 -0
  230. {numind-0.3.2 → numind-0.4.1}/src/numind/models/text_info.py +0 -0
  231. {numind-0.3.2 → numind-0.4.1}/src/numind/models/text_request.py +0 -0
  232. {numind-0.3.2 → numind-0.4.1}/src/numind/models/update_content_project_request.py +0 -0
  233. {numind-0.3.2 → numind-0.4.1}/src/numind/models/update_structured_project_request.py +0 -0
  234. {numind-0.3.2 → numind-0.4.1}/src/numind/models/valid_information.py +0 -0
  235. {numind-0.3.2 → numind-0.4.1}/src/numind/models/version_response.py +0 -0
  236. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/__init__.py +0 -0
  237. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/CLDR likelySubtags.xml +0 -0
  238. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/CLDR supplementalData.xml +0 -0
  239. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/IANA language subtag registry.txt +0 -0
  240. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/IANA tlds.txt +0 -0
  241. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 15924.csv +0 -0
  242. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 3166-1.csv +0 -0
  243. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 3166-2.csv +0 -0
  244. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-one.csv +0 -0
  245. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-three.csv +0 -0
  246. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/__init__.py +0 -0
  247. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/iso-639-3.tab +0 -0
  248. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/iso-639-3_Retirements.tab +0 -0
  249. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/_iso_data/ucum-essence.xml +0 -0
  250. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/__init__.py +0 -0
  251. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/constants.py +0 -0
  252. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/data_validation.py +0 -0
  253. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/models.py +0 -0
  254. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/__init__.py +0 -0
  255. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/_utils.py +0 -0
  256. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/base.py +0 -0
  257. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/country.py +0 -0
  258. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/currency.py +0 -0
  259. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/date_time.py +0 -0
  260. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/duration.py +0 -0
  261. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/geolocation.py +0 -0
  262. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/language.py +0 -0
  263. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/region.py +0 -0
  264. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/script.py +0 -0
  265. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/string_.py +0 -0
  266. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/types/url.py +0 -0
  267. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/data_validation/utils.py +0 -0
  268. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/__init__.py +0 -0
  269. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/constants.py +0 -0
  270. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/pydantic.py +0 -0
  271. {numind-0.3.2 → numind-0.4.1}/src/numind/nuextract_utils/template_conversion/validation.py +0 -0
  272. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/__init__.py +0 -0
  273. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/api/project_import_export_api.py +0 -0
  274. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client/py.typed +0 -0
  275. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/__init__.py +0 -0
  276. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/api/project_import_export_api.py +0 -0
  277. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/configuration.py +0 -0
  278. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/py.typed +0 -0
  279. {numind-0.3.2 → numind-0.4.1}/src/numind/openapi_client_async/rest.py +0 -0
  280. {numind-0.3.2 → numind-0.4.1}/tests/__init__.py +0 -0
  281. {numind-0.3.2 → numind-0.4.1}/tests/json_schema_test_cases/1.json +0 -0
  282. {numind-0.3.2 → numind-0.4.1}/tests/nuextract_utils/__init__.py +0 -0
  283. {numind-0.3.2 → numind-0.4.1}/tests/nuextract_utils/test_error_detection.py +0 -0
  284. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/__init__.py +0 -0
  285. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content_extraction_api.py +0 -0
  286. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content_extraction_project_management_api.py +0 -0
  287. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_content_extraction_response.py +0 -0
  288. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_create_content_project_request.py +0 -0
  289. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_create_or_update_structured_example_request.py +0 -0
  290. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_create_structured_project_request.py +0 -0
  291. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_default_api.py +0 -0
  292. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_document_info.py +0 -0
  293. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_document_response.py +0 -0
  294. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_documents_api.py +0 -0
  295. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_error.py +0 -0
  296. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_file_response.py +0 -0
  297. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_files_api.py +0 -0
  298. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_health_response.py +0 -0
  299. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_image_info.py +0 -0
  300. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_inference_status.py +0 -0
  301. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_inference_validation_error.py +0 -0
  302. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_information_response.py +0 -0
  303. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_invalid_information.py +0 -0
  304. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_job_id_response.py +0 -0
  305. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_job_status_response.py +0 -0
  306. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_paginated_response_t.py +0 -0
  307. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_project_import_export_api.py +0 -0
  308. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_service_status.py +0 -0
  309. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_example_response.py +0 -0
  310. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_extraction_examples_api.py +0 -0
  311. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_structured_extraction_response.py +0 -0
  312. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_template_request.py +0 -0
  313. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_template_response.py +0 -0
  314. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_text_info.py +0 -0
  315. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_text_request.py +0 -0
  316. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_update_content_project_request.py +0 -0
  317. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_update_structured_project_request.py +0 -0
  318. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_valid_information.py +0 -0
  319. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client/test_version_response.py +0 -0
  320. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/__init__.py +0 -0
  321. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content_extraction_api.py +0 -0
  322. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content_extraction_project_management_api.py +0 -0
  323. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_content_extraction_response.py +0 -0
  324. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_create_content_project_request.py +0 -0
  325. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_create_or_update_structured_example_request.py +0 -0
  326. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_create_structured_project_request.py +0 -0
  327. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_default_api.py +0 -0
  328. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_document_info.py +0 -0
  329. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_document_response.py +0 -0
  330. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_documents_api.py +0 -0
  331. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_error.py +0 -0
  332. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_file_response.py +0 -0
  333. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_files_api.py +0 -0
  334. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_health_response.py +0 -0
  335. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_image_info.py +0 -0
  336. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_inference_status.py +0 -0
  337. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_inference_validation_error.py +0 -0
  338. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_information_response.py +0 -0
  339. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_invalid_information.py +0 -0
  340. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_job_id_response.py +0 -0
  341. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_job_status_response.py +0 -0
  342. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_paginated_response_t.py +0 -0
  343. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_project_import_export_api.py +0 -0
  344. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_service_status.py +0 -0
  345. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_example_response.py +0 -0
  346. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_extraction_examples_api.py +0 -0
  347. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_structured_extraction_response.py +0 -0
  348. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_template_request.py +0 -0
  349. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_template_response.py +0 -0
  350. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_text_info.py +0 -0
  351. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_text_request.py +0 -0
  352. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_update_content_project_request.py +0 -0
  353. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_update_structured_project_request.py +0 -0
  354. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_valid_information.py +0 -0
  355. {numind-0.3.2 → numind-0.4.1}/tests/openapi_client_async/test_version_response.py +0 -0
  356. {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/examples.csv +0 -0
  357. {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/files/tahiti.docx +0 -0
  358. {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/files_examples/kyoto.docx +0 -0
  359. {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/schema.json +0 -0
  360. {numind-0.3.2 → numind-0.4.1}/tests/test_cases/vacation/texts.csv +0 -0
  361. {numind-0.3.2 → numind-0.4.1}/tests/test_conversion_pydantic.py +0 -0
  362. {numind-0.3.2 → numind-0.4.1}/tests/test_json_schema_descriptions.py +0 -0
@@ -26,7 +26,7 @@ jobs:
26
26
  python-version: ${{ matrix.python-version }}
27
27
 
28
28
  - name: Install the project
29
- run: uv sync --extra tests
29
+ run: uv sync --extra tests --extra data-validation
30
30
 
31
31
  - name: Run tests
32
32
  env:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: numind
3
- Version: 0.3.2
3
+ Version: 0.4.1
4
4
  Summary: SDK to interact with the NuMind models API.
5
5
  Project-URL: Homepage, https://github.com/numindai/nuextract-platform-sdk
6
6
  Project-URL: Repository, https://github.com/numindai/nuextract-platform-sdk.git
@@ -36,30 +36,21 @@ Classifier: License :: OSI Approved :: MIT License
36
36
  Classifier: Operating System :: OS Independent
37
37
  Classifier: Programming Language :: Python
38
38
  Classifier: Programming Language :: Python :: 3 :: Only
39
- Classifier: Programming Language :: Python :: 3.9
40
39
  Classifier: Programming Language :: Python :: 3.10
41
40
  Classifier: Programming Language :: Python :: 3.11
42
41
  Classifier: Programming Language :: Python :: 3.12
43
42
  Classifier: Programming Language :: Python :: 3.13
43
+ Classifier: Programming Language :: Python :: 3.14
44
+ Classifier: Programming Language :: Python :: 3.15
44
45
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
45
- Requires-Python: >=3.9
46
+ Requires-Python: >=3.10
46
47
  Requires-Dist: aiohttp-retry>=2.8.3
47
- Requires-Dist: aiohttp>=3.13.5
48
- Requires-Dist: cdifflib>=1.2.9
49
- Requires-Dist: defusedxml>=0.7.1
50
- Requires-Dist: emval>=0.1.3
51
- Requires-Dist: eval-type-backport>=0.2.2; python_version < '3.10'
48
+ Requires-Dist: aiohttp>=3.14.1
52
49
  Requires-Dist: json-repair>=0.44.1
53
50
  Requires-Dist: jsonschema
54
51
  Requires-Dist: orjson
55
- Requires-Dist: phonenumbers>=9.0.24
56
52
  Requires-Dist: pydantic>=2.11
57
53
  Requires-Dist: python-dateutil>=2.8.2
58
- Requires-Dist: rapidfuzz>=3.13.0
59
- Requires-Dist: regex>=2026.1.15
60
- Requires-Dist: schwifty>=2025.9.0
61
- Requires-Dist: stringzilla>=4.6.1
62
- Requires-Dist: sympy>=1.14.0
63
54
  Requires-Dist: typing-extensions>=4.7.1
64
55
  Requires-Dist: urllib3
65
56
  Provides-Extra: build
@@ -67,6 +58,15 @@ Requires-Dist: openapi-generator-cli; extra == 'build'
67
58
  Requires-Dist: pyyaml; extra == 'build'
68
59
  Requires-Dist: toml; extra == 'build'
69
60
  Requires-Dist: uv; extra == 'build'
61
+ Provides-Extra: data-validation
62
+ Requires-Dist: cdifflib>=1.2.9; extra == 'data-validation'
63
+ Requires-Dist: emval>=0.1.3; extra == 'data-validation'
64
+ Requires-Dist: phonenumbers>=9.0.24; extra == 'data-validation'
65
+ Requires-Dist: rapidfuzz>=3.13.0; extra == 'data-validation'
66
+ Requires-Dist: regex>=2026.1.15; extra == 'data-validation'
67
+ Requires-Dist: schwifty>=2025.9.0; extra == 'data-validation'
68
+ Requires-Dist: stringzilla>=4.6.1; extra == 'data-validation'
69
+ Requires-Dist: sympy>=1.14.0; extra == 'data-validation'
70
70
  Provides-Extra: tests
71
71
  Requires-Dist: pytest-asyncio; extra == 'tests'
72
72
  Requires-Dist: pytest-cov; extra == 'tests'
@@ -92,7 +92,6 @@ You must first get an API key on the [NuExtract platform](https://nuextract.ai/a
92
92
 
93
93
  ```python
94
94
  import os
95
-
96
95
  from numind import NuMind
97
96
 
98
97
  # Create a client object to interact with the API
@@ -101,60 +100,30 @@ from numind import NuMind
101
100
  client = NuMind(api_key=os.environ["NUMIND_API_KEY"])
102
101
  ```
103
102
 
104
- ### Create an async client
105
-
106
- You can create an **async** client by using the `NuMindAsync` class:
107
-
108
- ```python
109
- import asyncio
110
- from numind import NuMindAsync
111
-
112
- client = NuMindAsync(api_key="API_KEY")
113
- requests = [{}]
114
-
115
-
116
- async def main():
117
- return [
118
- await client.extract_structured_data(project_id, **request_kwargs)
119
- for request_kwargs in requests
120
- ]
121
-
122
-
123
- responses = asyncio.run(main())
124
- ```
125
-
126
- The methods and their usages are the same as for the sync `NuMind` client except that API methods are coroutines that must be awaited.
103
+ You can create an **async** client by using the `NuMindAsync` class.
104
+ The methods and their usages are the same as for the sync `NuMind` client.
127
105
 
128
- ### NuExtract: Extract structured information "on the fly"
106
+ ### Extract structured data
129
107
 
130
- If you want to extract structured information from data without projects but just by providing the input template, you can use the `extract` method which provides a more user-friendly way to interact with the API:
108
+ If you want to extract structured information without a project, provide the template directly to `extract_structured_data`:
131
109
 
132
110
  ```python
133
111
  template = {
134
112
  "destination": {
135
113
  "name": "verbatim-string",
136
114
  "zip_code": "string",
137
- "country": "string",
115
+ "country": "country",
138
116
  },
139
117
  "accommodation": "verbatim-string",
140
118
  "activities": ["verbatim-string"],
141
- "duration": {
142
- "time_unit": ["day", "week", "month", "year"],
143
- "time_quantity": "integer",
144
- },
119
+ "duration": "duration",
145
120
  }
146
- input_text = """My dream vacation would be a month-long escape to the stunning islands of Tahiti.
147
- I’d stay in an overwater bungalow in Bora Bora, waking up to crystal-clear turquoise waters and breathtaking sunrises.
148
- Days would be spent snorkeling with vibrant marine life, paddleboarding over coral gardens, and basking on pristine white-sand beaches.
149
- I’d explore lush rainforests, hidden waterfalls, and the rich Polynesian culture through traditional dance, music, and cuisine.
150
- Evenings would be filled with romantic beachside dinners under the stars, with the soothing sound of waves as the perfect backdrop."""
151
-
152
- output = client.extract_structured_data(template=template, input_text=input_text)
153
- print(output)
154
-
155
- # Can also work with files, replace the path with your own
156
- # from pathlib import Path
157
- # output = client.extract(template=template, input_file="file.ppt")
121
+ input_file_path = Path("to", "file.pdf")
122
+ response = client.extract_structured_data(
123
+ template=template,
124
+ input_file=input_file_path,
125
+ )
126
+ print(response.result)
158
127
  ```
159
128
 
160
129
  ```json
@@ -162,7 +131,7 @@ print(output)
162
131
  "destination": {
163
132
  "name": "Tahiti",
164
133
  "zip_code": "98730",
165
- "country": "France"
134
+ "country": "FR"
166
135
  },
167
136
  "accommodation": "overwater bungalow in Bora Bora",
168
137
  "activities": [
@@ -171,16 +140,13 @@ print(output)
171
140
  "basking",
172
141
  "explore lush rainforests, hidden waterfalls, and the rich Polynesian culture"
173
142
  ],
174
- "duration": {
175
- "time_unit": null,
176
- "time_quantity": null
177
- }
143
+ "duration": null
178
144
  }
179
145
  ```
180
146
 
181
147
  ### Create a good template
182
148
 
183
- NuExtract uses JSON extraction templates which specify the information to retrieve and their types, which are:
149
+ NuExtract uses JSON extraction templates which specify the information to retrieve and their types:
184
150
 
185
151
  * **string**: a text, whose value can be abstract, i.e. totally free and can be deduced from calculations, reasoning, external knowledge;
186
152
  * **verbatim-string**: a purely extractive text whose value must be present in the document. Some flexibility might be allowed on the formatting, e.g. new lines and escaped characters (e.g. `\n`) in a documents might be represented with a space;
@@ -231,16 +197,26 @@ otherwise it is `None`, and `incompatibilities` identifies the affected location
231
197
 
232
198
  ### Inferring a template
233
199
 
234
- The "infer_template" method allows to quickly create a template that you can start to work with from a text description.
200
+ Template generation is asynchronous. Submit a natural-language description, poll the job status, and retrieve the generated template once complete.
235
201
 
236
202
  ```python
237
- from numind.openapi_client import TemplateRequest
238
- from pydantic import StrictStr
203
+ import time
204
+
205
+ from numind.models import TemplateRequest
239
206
 
240
207
  description = "Create a template that extracts key information from an order confirmation email. The template should be able to pull details like the order ID, customer ID, date and time of the order, status, total amount, currency, item details (product ID, quantity, and unit price), shipping address, any customer requests or delivery preferences, and the estimated delivery date."
241
- input_schema = client.post_api_infer_template(
242
- template_request=TemplateRequest(description=StrictStr(description))
243
- )
208
+ job_id = client.post_api_template_generation_jobs_text(
209
+ TemplateRequest(description=description)
210
+ ).job_id
211
+
212
+ job_status = client.get_api_jobs_jobid_status(job_id)
213
+ while job_status.completed_at is None:
214
+ time.sleep(4)
215
+ job_status = client.get_api_jobs_jobid_status(job_id)
216
+ if job_status.status != "completed":
217
+ raise RuntimeError(f"Template generation failed with status {job_status.status}")
218
+
219
+ template = client.get_api_template_generation_jobs_templatejobid(job_id).result
244
220
  ```
245
221
 
246
222
  ### Create a project
@@ -248,15 +224,16 @@ input_schema = client.post_api_infer_template(
248
224
  A project allows to define an information extraction task from a template and examples.
249
225
 
250
226
  ```python
251
- from numind.openapi_client import CreateProjectRequest
227
+ from numind.models import CreateStructuredProjectRequest
252
228
 
253
229
  project_id = client.post_api_structured_extraction(
254
- CreateProjectRequest(
230
+ CreateStructuredProjectRequest(
255
231
  name="vacation",
256
232
  description="Extraction of locations and activities",
257
233
  template=template,
234
+ instructions="",
258
235
  )
259
- )
236
+ ).id
260
237
  ```
261
238
 
262
239
  The `project_id` can also be found in the "API" tab of a project on the NuExtract website.
@@ -271,8 +248,7 @@ example_1_input = "This is a text example"
271
248
  example_1_expected_output = {
272
249
  "destination": {"name": None, "zip_code": None, "country": None}
273
250
  }
274
- with Path("example_2.odt").open("rb") as file: # read bytes
275
- example_2_input = file.read()
251
+ example_2_input = Path("example_2.odt")
276
252
  example_2_expected_output = {
277
253
  "destination": {"name": None, "zip_code": None, "country": None}
278
254
  }
@@ -285,34 +261,21 @@ examples = [
285
261
  client.add_examples_to_structured_extraction_project(project_id, examples)
286
262
  ```
287
263
 
288
- ### Extract structured information from text
289
-
290
- ```python
291
- output_schema = client.extract_structured_data(project_id, input_text=input_text)
292
- ```
293
-
294
- ### Extract structured information from a file
295
-
296
- ```python
297
- from pathlib import Path
298
-
299
- file_path = Path("document.odt")
300
- with file_path.open("rb") as file:
301
- input_file = file.read()
302
- output_schema = client.extract(project_id, input_file=input_file)
303
- ```
304
-
305
- ### NuMarkdown: Convert a document to a RAG-ready Markdown
264
+ ### Convert a document to a RAG-ready Markdown
306
265
 
307
266
  ```python
308
267
  from pathlib import Path
309
268
 
310
269
  file_path = Path("document.pdf")
311
- with file_path.open("rb") as file:
312
- input_file = file.read()
313
- markdown = client.extract_content(input_file)
270
+ response = client.extract_content(file_path, job_status_polling_delay=2.0)
271
+ print(response.result)
314
272
  ```
315
273
 
274
+ `extract_structured_data` and `extract_content` poll job status every four seconds by
275
+ default. Use `job_status_polling_delay` to select a different interval in seconds.
276
+ Failed jobs raise `RuntimeError` by default. Set `raise_on_job_fail=False` to return a
277
+ `FailedJobStatusResponse` containing the complete job status and its failure reason.
278
+
316
279
  # Documentation
317
280
 
318
281
  ### Extracting Information from Documents
@@ -404,7 +367,7 @@ This Python package is automatically generated by the [OpenAPI Generator](https:
404
367
 
405
368
  - API version:
406
369
  - Package version: 1.0.0
407
- - Generator version: 7.24.0
370
+ - Generator version: 7.26.0
408
371
  - Build package: org.openapitools.codegen.languages.PythonClientCodegen
409
372
 
410
373
  ### Documentation for API Endpoints
@@ -436,17 +399,18 @@ Class | Method | HTTP request | Description
436
399
  *FilesApi* | [**post_api_files_fileid_convert_to_document**](docs/FilesApi.md#post_api_files_fileid_convert_to_document) | **POST** /api/files/{fileId}/convert-to-document |
437
400
  *InferenceApi* | [**post_api_content_extraction_contentprojectid_jobs_document_documentid**](docs/InferenceApi.md#post_api_content_extraction_contentprojectid_jobs_document_documentid) | **POST** /api/content-extraction/{contentProjectId}/jobs/document/{documentId} |
438
401
  *InferenceApi* | [**post_api_structured_extraction_structuredprojectid_jobs_document_documentid**](docs/InferenceApi.md#post_api_structured_extraction_structuredprojectid_jobs_document_documentid) | **POST** /api/structured-extraction/{structuredProjectId}/jobs/document/{documentId} |
439
- *InferenceApi* | [**post_api_structured_extraction_structuredprojectid_jobs_text**](docs/InferenceApi.md#post_api_structured_extraction_structuredprojectid_jobs_text) | **POST** /api/structured-extraction/{structuredProjectId}/jobs/text |
440
402
  *InferenceApi* | [**post_api_template_generation_jobs_document_documentid**](docs/InferenceApi.md#post_api_template_generation_jobs_document_documentid) | **POST** /api/template-generation/jobs/document/{documentId} |
441
- *InferenceApi* | [**post_api_template_generation_jobs_text**](docs/InferenceApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
442
403
  *JobsApi* | [**get_api_jobs**](docs/JobsApi.md#get_api_jobs) | **GET** /api/jobs |
404
+ *JobsApi* | [**get_api_jobs_jobid_reports**](docs/JobsApi.md#get_api_jobs_jobid_reports) | **GET** /api/jobs/{jobId}/reports |
443
405
  *JobsApi* | [**get_api_jobs_jobid_status**](docs/JobsApi.md#get_api_jobs_jobid_status) | **GET** /api/jobs/{jobId}/status |
444
406
  *JobsApi* | [**get_api_jobs_jobid_stream**](docs/JobsApi.md#get_api_jobs_jobid_stream) | **GET** /api/jobs/{jobId}/stream |
445
407
  *JobsApi* | [**post_api_jobs_jobid_cancel**](docs/JobsApi.md#post_api_jobs_jobid_cancel) | **POST** /api/jobs/{jobId}/cancel |
446
408
  *ProjectImportExportApi* | [**get_api_extraction_projectkind_projectid_export**](docs/ProjectImportExportApi.md#get_api_extraction_projectkind_projectid_export) | **GET** /api/extraction/{projectKind}/{projectId}/export |
447
409
  *ProjectImportExportApi* | [**post_api_extraction_import**](docs/ProjectImportExportApi.md#post_api_extraction_import) | **POST** /api/extraction/import |
448
410
  *StructuredDataExtractionApi* | [**get_api_structured_extraction_jobs_structuredextractionjobid**](docs/StructuredDataExtractionApi.md#get_api_structured_extraction_jobs_structuredextractionjobid) | **GET** /api/structured-extraction/jobs/{structuredExtractionJobId} |
411
+ *StructuredDataExtractionApi* | [**post_api_structured_extraction_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_jobs) | **POST** /api/structured-extraction/jobs |
449
412
  *StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs) | **POST** /api/structured-extraction/{structuredProjectId}/jobs |
413
+ *StructuredDataExtractionApi* | [**post_api_structured_extraction_structuredprojectid_jobs_text**](docs/StructuredDataExtractionApi.md#post_api_structured_extraction_structuredprojectid_jobs_text) | **POST** /api/structured-extraction/{structuredProjectId}/jobs/text |
450
414
  *StructuredExtractionExamplesApi* | [**delete_api_structured_extraction_structuredprojectid_examples_structuredexampleid**](docs/StructuredExtractionExamplesApi.md#delete_api_structured_extraction_structuredprojectid_examples_structuredexampleid) | **DELETE** /api/structured-extraction/{structuredProjectId}/examples/{structuredExampleId} |
451
415
  *StructuredExtractionExamplesApi* | [**get_api_structured_extraction_structuredprojectid_examples**](docs/StructuredExtractionExamplesApi.md#get_api_structured_extraction_structuredprojectid_examples) | **GET** /api/structured-extraction/{structuredProjectId}/examples |
452
416
  *StructuredExtractionExamplesApi* | [**get_api_structured_extraction_structuredprojectid_examples_structuredexampleid**](docs/StructuredExtractionExamplesApi.md#get_api_structured_extraction_structuredprojectid_examples_structuredexampleid) | **GET** /api/structured-extraction/{structuredProjectId}/examples/{structuredExampleId} |
@@ -454,6 +418,7 @@ Class | Method | HTTP request | Description
454
418
  *StructuredExtractionExamplesApi* | [**put_api_structured_extraction_structuredprojectid_examples_structuredexampleid**](docs/StructuredExtractionExamplesApi.md#put_api_structured_extraction_structuredprojectid_examples_structuredexampleid) | **PUT** /api/structured-extraction/{structuredProjectId}/examples/{structuredExampleId} |
455
419
  *StructuredExtractionProjectManagementApi* | [**delete_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#delete_api_structured_extraction_structuredprojectid) | **DELETE** /api/structured-extraction/{structuredProjectId} |
456
420
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction) | **GET** /api/structured-extraction |
421
+ *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_reference_projects**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_reference_projects) | **GET** /api/structured-extraction/reference-projects |
457
422
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid) | **GET** /api/structured-extraction/{structuredProjectId} |
458
423
  *StructuredExtractionProjectManagementApi* | [**get_api_structured_extraction_structuredprojectid_thumbnail**](docs/StructuredExtractionProjectManagementApi.md#get_api_structured_extraction_structuredprojectid_thumbnail) | **GET** /api/structured-extraction/{structuredProjectId}/thumbnail |
459
424
  *StructuredExtractionProjectManagementApi* | [**patch_api_structured_extraction_structuredprojectid**](docs/StructuredExtractionProjectManagementApi.md#patch_api_structured_extraction_structuredprojectid) | **PATCH** /api/structured-extraction/{structuredProjectId} |
@@ -467,6 +432,7 @@ Class | Method | HTTP request | Description
467
432
  *StructuredExtractionProjectManagementApi* | [**post_api_structured_extraction_structuredprojectid_unshare**](docs/StructuredExtractionProjectManagementApi.md#post_api_structured_extraction_structuredprojectid_unshare) | **POST** /api/structured-extraction/{structuredProjectId}/unshare |
468
433
  *TemplateGenerationApi* | [**get_api_template_generation_jobs_templatejobid**](docs/TemplateGenerationApi.md#get_api_template_generation_jobs_templatejobid) | **GET** /api/template-generation/jobs/{templateJobId} |
469
434
  *TemplateGenerationApi* | [**post_api_template_generation_jobs**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs) | **POST** /api/template-generation/jobs |
435
+ *TemplateGenerationApi* | [**post_api_template_generation_jobs_text**](docs/TemplateGenerationApi.md#post_api_template_generation_jobs_text) | **POST** /api/template-generation/jobs/text |
470
436
 
471
437
 
472
438
  ### Documentation For Models
@@ -475,6 +441,8 @@ Class | Method | HTTP request | Description
475
441
  - [ContentExtractionResponse](docs/ContentExtractionResponse.md)
476
442
  - [ContentProjectResponse](docs/ContentProjectResponse.md)
477
443
  - [ContentProjectSettingsResponse](docs/ContentProjectSettingsResponse.md)
444
+ - [ContentProjectSettingsResponseRasterizationDPI](docs/ContentProjectSettingsResponseRasterizationDPI.md)
445
+ - [ContentSettingsPatch](docs/ContentSettingsPatch.md)
478
446
  - [ConvertRequest](docs/ConvertRequest.md)
479
447
  - [CreateContentProjectRequest](docs/CreateContentProjectRequest.md)
480
448
  - [CreateOrUpdateStructuredExampleRequest](docs/CreateOrUpdateStructuredExampleRequest.md)
@@ -487,12 +455,18 @@ Class | Method | HTTP request | Description
487
455
  - [ImageInfo](docs/ImageInfo.md)
488
456
  - [ImportProjectResponse](docs/ImportProjectResponse.md)
489
457
  - [InferenceStatus](docs/InferenceStatus.md)
458
+ - [InferenceStatusResponse](docs/InferenceStatusResponse.md)
490
459
  - [InferenceValidationError](docs/InferenceValidationError.md)
491
460
  - [InformationResponse](docs/InformationResponse.md)
492
461
  - [InvalidInformation](docs/InvalidInformation.md)
493
462
  - [JobIdResponse](docs/JobIdResponse.md)
463
+ - [JobReportResponse](docs/JobReportResponse.md)
494
464
  - [JobStatusResponse](docs/JobStatusResponse.md)
495
465
  - [PaginatedResponseT](docs/PaginatedResponseT.md)
466
+ - [PostProcessingErrorResponse](docs/PostProcessingErrorResponse.md)
467
+ - [PostProcessingRepairResponse](docs/PostProcessingRepairResponse.md)
468
+ - [PostProcessingReportResponse](docs/PostProcessingReportResponse.md)
469
+ - [ReferenceProjectResponse](docs/ReferenceProjectResponse.md)
496
470
  - [ServiceStatus](docs/ServiceStatus.md)
497
471
  - [Structured](docs/Structured.md)
498
472
  - [StructuredExampleResponse](docs/StructuredExampleResponse.md)
@@ -500,14 +474,13 @@ Class | Method | HTTP request | Description
500
474
  - [StructuredInferenceExample](docs/StructuredInferenceExample.md)
501
475
  - [StructuredProjectResponse](docs/StructuredProjectResponse.md)
502
476
  - [StructuredProjectSettingsResponse](docs/StructuredProjectSettingsResponse.md)
477
+ - [StructuredSettingsPatch](docs/StructuredSettingsPatch.md)
503
478
  - [TemplateRequest](docs/TemplateRequest.md)
504
479
  - [TemplateResponse](docs/TemplateResponse.md)
505
480
  - [TextInfo](docs/TextInfo.md)
506
481
  - [TextRequest](docs/TextRequest.md)
507
482
  - [UpdateContentProjectRequest](docs/UpdateContentProjectRequest.md)
508
- - [UpdateContentProjectSettingsRequest](docs/UpdateContentProjectSettingsRequest.md)
509
483
  - [UpdateStructuredProjectRequest](docs/UpdateStructuredProjectRequest.md)
510
- - [UpdateStructuredProjectSettingsRequest](docs/UpdateStructuredProjectSettingsRequest.md)
511
484
  - [ValidInformation](docs/ValidInformation.md)
512
485
  - [VersionResponse](docs/VersionResponse.md)
513
486