numind 0.4.3__tar.gz → 0.4.4__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 (376) hide show
  1. {numind-0.4.3 → numind-0.4.4}/PKG-INFO +2 -2
  2. {numind-0.4.3 → numind-0.4.4}/README.md +1 -1
  3. numind-0.4.3/docs/DiscardedLocalization.md → numind-0.4.4/docs/DiscardedLocalizationItem.md +9 -9
  4. {numind-0.4.3 → numind-0.4.4}/docs/LocalizationApi.md +1 -1
  5. {numind-0.4.3 → numind-0.4.4}/docs/LocalizationResponse.md +2 -2
  6. {numind-0.4.3 → numind-0.4.4}/docs/StructuredDataExtractionApi.md +1 -1
  7. {numind-0.4.3 → numind-0.4.4}/pyproject.toml +1 -1
  8. {numind-0.4.3 → numind-0.4.4}/sdk_generation/pyproject_base.toml +1 -1
  9. {numind-0.4.3 → numind-0.4.4}/src/numind/models/__init__.py +1 -1
  10. numind-0.4.3/src/numind/models/discarded_localization.py → numind-0.4.4/src/numind/models/discarded_localization_item.py +4 -4
  11. {numind-0.4.3 → numind-0.4.4}/src/numind/models/localization_response.py +20 -18
  12. numind-0.4.4/src/numind/nuextract_utils/_iso_data/ISO 3166-3.csv +32 -0
  13. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/country.py +26 -4
  14. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/phone_number.py +11 -3
  15. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/verbatim_string.py +14 -9
  16. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/template_conversion/constants.py +1 -1
  17. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/__init__.py +3 -3
  18. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/localization_api.py +3 -3
  19. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/structured_data_extraction_api.py +3 -3
  20. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/__init__.py +3 -3
  21. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/localization_api.py +3 -3
  22. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/structured_data_extraction_api.py +3 -3
  23. {numind-0.4.3 → numind-0.4.4}/tests/nuextract_utils/test_error_detection.py +151 -0
  24. numind-0.4.3/tests/openapi_client_async/test_discarded_localization.py → numind-0.4.4/tests/openapi_client/test_discarded_localization_item.py +11 -11
  25. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_localization_response.py +4 -4
  26. numind-0.4.3/tests/openapi_client/test_discarded_localization.py → numind-0.4.4/tests/openapi_client_async/test_discarded_localization_item.py +11 -11
  27. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_localization_response.py +4 -4
  28. {numind-0.4.3 → numind-0.4.4}/tests/test_conversion_json_schema.py +1 -1
  29. {numind-0.4.3 → numind-0.4.4}/.github/codecov.yml +0 -0
  30. {numind-0.4.3 → numind-0.4.4}/.github/dependabot.yml +0 -0
  31. {numind-0.4.3 → numind-0.4.4}/.github/workflows/lint.yml +0 -0
  32. {numind-0.4.3 → numind-0.4.4}/.github/workflows/publish-pypi.yml +0 -0
  33. {numind-0.4.3 → numind-0.4.4}/.github/workflows/sdk-auto-update.yml +0 -0
  34. {numind-0.4.3 → numind-0.4.4}/.github/workflows/tests.yml +0 -0
  35. {numind-0.4.3 → numind-0.4.4}/.github/workflows/update-api-build-version-repo-var.yml +0 -0
  36. {numind-0.4.3 → numind-0.4.4}/.gitignore +0 -0
  37. {numind-0.4.3 → numind-0.4.4}/LICENSE +0 -0
  38. {numind-0.4.3 → numind-0.4.4}/docs/BoundingBox.md +0 -0
  39. {numind-0.4.3 → numind-0.4.4}/docs/Content.md +0 -0
  40. {numind-0.4.3 → numind-0.4.4}/docs/ContentExtractionApi.md +0 -0
  41. {numind-0.4.3 → numind-0.4.4}/docs/ContentExtractionProjectManagementApi.md +0 -0
  42. {numind-0.4.3 → numind-0.4.4}/docs/ContentExtractionResponse.md +0 -0
  43. {numind-0.4.3 → numind-0.4.4}/docs/ContentProjectResponse.md +0 -0
  44. {numind-0.4.3 → numind-0.4.4}/docs/ContentProjectSettingsResponse.md +0 -0
  45. {numind-0.4.3 → numind-0.4.4}/docs/ContentProjectSettingsResponseImageWidth.md +0 -0
  46. {numind-0.4.3 → numind-0.4.4}/docs/ContentProjectSettingsResponseRasterizationDPI.md +0 -0
  47. {numind-0.4.3 → numind-0.4.4}/docs/ContentSettingsPatch.md +0 -0
  48. {numind-0.4.3 → numind-0.4.4}/docs/ConvertRequest.md +0 -0
  49. {numind-0.4.3 → numind-0.4.4}/docs/CreateContentProjectRequest.md +0 -0
  50. {numind-0.4.3 → numind-0.4.4}/docs/CreateOrUpdateStructuredExampleRequest.md +0 -0
  51. {numind-0.4.3 → numind-0.4.4}/docs/CreateStructuredProjectRequest.md +0 -0
  52. {numind-0.4.3 → numind-0.4.4}/docs/DefaultApi.md +0 -0
  53. {numind-0.4.3 → numind-0.4.4}/docs/DocumentInfo.md +0 -0
  54. {numind-0.4.3 → numind-0.4.4}/docs/DocumentResponse.md +0 -0
  55. {numind-0.4.3 → numind-0.4.4}/docs/DocumentsApi.md +0 -0
  56. {numind-0.4.3 → numind-0.4.4}/docs/Error.md +0 -0
  57. {numind-0.4.3 → numind-0.4.4}/docs/FileResponse.md +0 -0
  58. {numind-0.4.3 → numind-0.4.4}/docs/FilesApi.md +0 -0
  59. {numind-0.4.3 → numind-0.4.4}/docs/HealthResponse.md +0 -0
  60. {numind-0.4.3 → numind-0.4.4}/docs/ImageInfo.md +0 -0
  61. {numind-0.4.3 → numind-0.4.4}/docs/ImportProjectResponse.md +0 -0
  62. {numind-0.4.3 → numind-0.4.4}/docs/InferenceApi.md +0 -0
  63. {numind-0.4.3 → numind-0.4.4}/docs/InferenceStatus.md +0 -0
  64. {numind-0.4.3 → numind-0.4.4}/docs/InferenceStatusResponse.md +0 -0
  65. {numind-0.4.3 → numind-0.4.4}/docs/InferenceValidationError.md +0 -0
  66. {numind-0.4.3 → numind-0.4.4}/docs/InformationResponse.md +0 -0
  67. {numind-0.4.3 → numind-0.4.4}/docs/InvalidInformation.md +0 -0
  68. {numind-0.4.3 → numind-0.4.4}/docs/JobIdResponse.md +0 -0
  69. {numind-0.4.3 → numind-0.4.4}/docs/JobReportResponse.md +0 -0
  70. {numind-0.4.3 → numind-0.4.4}/docs/JobStatusResponse.md +0 -0
  71. {numind-0.4.3 → numind-0.4.4}/docs/JobsApi.md +0 -0
  72. {numind-0.4.3 → numind-0.4.4}/docs/LocalizationValue.md +0 -0
  73. {numind-0.4.3 → numind-0.4.4}/docs/PaginatedResponseT.md +0 -0
  74. {numind-0.4.3 → numind-0.4.4}/docs/PostProcessingErrorResponse.md +0 -0
  75. {numind-0.4.3 → numind-0.4.4}/docs/PostProcessingRepairResponse.md +0 -0
  76. {numind-0.4.3 → numind-0.4.4}/docs/PostProcessingReportResponse.md +0 -0
  77. {numind-0.4.3 → numind-0.4.4}/docs/ProjectImportExportApi.md +0 -0
  78. {numind-0.4.3 → numind-0.4.4}/docs/ReferenceProjectResponse.md +0 -0
  79. {numind-0.4.3 → numind-0.4.4}/docs/ServiceStatus.md +0 -0
  80. {numind-0.4.3 → numind-0.4.4}/docs/Structured.md +0 -0
  81. {numind-0.4.3 → numind-0.4.4}/docs/StructuredExampleResponse.md +0 -0
  82. {numind-0.4.3 → numind-0.4.4}/docs/StructuredExtractionExamplesApi.md +0 -0
  83. {numind-0.4.3 → numind-0.4.4}/docs/StructuredExtractionProjectManagementApi.md +0 -0
  84. {numind-0.4.3 → numind-0.4.4}/docs/StructuredExtractionResponse.md +0 -0
  85. {numind-0.4.3 → numind-0.4.4}/docs/StructuredInferenceExample.md +0 -0
  86. {numind-0.4.3 → numind-0.4.4}/docs/StructuredProjectResponse.md +0 -0
  87. {numind-0.4.3 → numind-0.4.4}/docs/StructuredProjectSettingsResponse.md +0 -0
  88. {numind-0.4.3 → numind-0.4.4}/docs/StructuredSettingsPatch.md +0 -0
  89. {numind-0.4.3 → numind-0.4.4}/docs/TemplateGenerationApi.md +0 -0
  90. {numind-0.4.3 → numind-0.4.4}/docs/TemplateRequest.md +0 -0
  91. {numind-0.4.3 → numind-0.4.4}/docs/TemplateResponse.md +0 -0
  92. {numind-0.4.3 → numind-0.4.4}/docs/TextInfo.md +0 -0
  93. {numind-0.4.3 → numind-0.4.4}/docs/TextRequest.md +0 -0
  94. {numind-0.4.3 → numind-0.4.4}/docs/UpdateContentProjectRequest.md +0 -0
  95. {numind-0.4.3 → numind-0.4.4}/docs/UpdateStructuredProjectRequest.md +0 -0
  96. {numind-0.4.3 → numind-0.4.4}/docs/ValidInformation.md +0 -0
  97. {numind-0.4.3 → numind-0.4.4}/docs/VersionResponse.md +0 -0
  98. {numind-0.4.3 → numind-0.4.4}/sdk_generation/.openapi-generator-ignore +0 -0
  99. {numind-0.4.3 → numind-0.4.4}/sdk_generation/adapt_openapi_client_init.py +0 -0
  100. {numind-0.4.3 → numind-0.4.4}/sdk_generation/adapt_pyproject.py +0 -0
  101. {numind-0.4.3 → numind-0.4.4}/sdk_generation/collate_documentation_readme.py +0 -0
  102. {numind-0.4.3 → numind-0.4.4}/sdk_generation/config.json +0 -0
  103. {numind-0.4.3 → numind-0.4.4}/sdk_generation/gen_sdk.sh +0 -0
  104. {numind-0.4.3 → numind-0.4.4}/sdk_generation/remove_unused_models_from_openapi_spec_file.py +0 -0
  105. {numind-0.4.3 → numind-0.4.4}/src/numind/__init__.py +0 -0
  106. {numind-0.4.3 → numind-0.4.4}/src/numind/api_response.py +0 -0
  107. {numind-0.4.3 → numind-0.4.4}/src/numind/constants.py +0 -0
  108. {numind-0.4.3 → numind-0.4.4}/src/numind/exceptions.py +0 -0
  109. {numind-0.4.3 → numind-0.4.4}/src/numind/models/bounding_box.py +0 -0
  110. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content.py +0 -0
  111. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content_extraction_response.py +0 -0
  112. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content_project_response.py +0 -0
  113. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content_project_settings_response.py +0 -0
  114. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content_project_settings_response_image_width.py +0 -0
  115. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content_project_settings_response_rasterization_dpi.py +0 -0
  116. {numind-0.4.3 → numind-0.4.4}/src/numind/models/content_settings_patch.py +0 -0
  117. {numind-0.4.3 → numind-0.4.4}/src/numind/models/convert_request.py +0 -0
  118. {numind-0.4.3 → numind-0.4.4}/src/numind/models/create_content_project_request.py +0 -0
  119. {numind-0.4.3 → numind-0.4.4}/src/numind/models/create_or_update_structured_example_request.py +0 -0
  120. {numind-0.4.3 → numind-0.4.4}/src/numind/models/create_structured_project_request.py +0 -0
  121. {numind-0.4.3 → numind-0.4.4}/src/numind/models/document_info.py +0 -0
  122. {numind-0.4.3 → numind-0.4.4}/src/numind/models/document_response.py +0 -0
  123. {numind-0.4.3 → numind-0.4.4}/src/numind/models/error.py +0 -0
  124. {numind-0.4.3 → numind-0.4.4}/src/numind/models/file_response.py +0 -0
  125. {numind-0.4.3 → numind-0.4.4}/src/numind/models/health_response.py +0 -0
  126. {numind-0.4.3 → numind-0.4.4}/src/numind/models/image_info.py +0 -0
  127. {numind-0.4.3 → numind-0.4.4}/src/numind/models/import_project_response.py +0 -0
  128. {numind-0.4.3 → numind-0.4.4}/src/numind/models/inference_status.py +0 -0
  129. {numind-0.4.3 → numind-0.4.4}/src/numind/models/inference_status_response.py +0 -0
  130. {numind-0.4.3 → numind-0.4.4}/src/numind/models/inference_validation_error.py +0 -0
  131. {numind-0.4.3 → numind-0.4.4}/src/numind/models/information_response.py +0 -0
  132. {numind-0.4.3 → numind-0.4.4}/src/numind/models/invalid_information.py +0 -0
  133. {numind-0.4.3 → numind-0.4.4}/src/numind/models/job_id_response.py +0 -0
  134. {numind-0.4.3 → numind-0.4.4}/src/numind/models/job_report_response.py +0 -0
  135. {numind-0.4.3 → numind-0.4.4}/src/numind/models/job_status_response.py +0 -0
  136. {numind-0.4.3 → numind-0.4.4}/src/numind/models/localization_value.py +0 -0
  137. {numind-0.4.3 → numind-0.4.4}/src/numind/models/paginated_response_t.py +0 -0
  138. {numind-0.4.3 → numind-0.4.4}/src/numind/models/post_processing_error_response.py +0 -0
  139. {numind-0.4.3 → numind-0.4.4}/src/numind/models/post_processing_repair_response.py +0 -0
  140. {numind-0.4.3 → numind-0.4.4}/src/numind/models/post_processing_report_response.py +0 -0
  141. {numind-0.4.3 → numind-0.4.4}/src/numind/models/reference_project_response.py +0 -0
  142. {numind-0.4.3 → numind-0.4.4}/src/numind/models/service_status.py +0 -0
  143. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured.py +0 -0
  144. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured_example_response.py +0 -0
  145. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured_extraction_response.py +0 -0
  146. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured_inference_example.py +0 -0
  147. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured_project_response.py +0 -0
  148. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured_project_settings_response.py +0 -0
  149. {numind-0.4.3 → numind-0.4.4}/src/numind/models/structured_settings_patch.py +0 -0
  150. {numind-0.4.3 → numind-0.4.4}/src/numind/models/template_request.py +0 -0
  151. {numind-0.4.3 → numind-0.4.4}/src/numind/models/template_response.py +0 -0
  152. {numind-0.4.3 → numind-0.4.4}/src/numind/models/text_info.py +0 -0
  153. {numind-0.4.3 → numind-0.4.4}/src/numind/models/text_request.py +0 -0
  154. {numind-0.4.3 → numind-0.4.4}/src/numind/models/update_content_project_request.py +0 -0
  155. {numind-0.4.3 → numind-0.4.4}/src/numind/models/update_structured_project_request.py +0 -0
  156. {numind-0.4.3 → numind-0.4.4}/src/numind/models/valid_information.py +0 -0
  157. {numind-0.4.3 → numind-0.4.4}/src/numind/models/version_response.py +0 -0
  158. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/__init__.py +0 -0
  159. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/CLDR likelySubtags.xml +0 -0
  160. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/CLDR supplementalData.xml +0 -0
  161. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/IANA language subtag registry.txt +0 -0
  162. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/IANA tlds.txt +0 -0
  163. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/ISO 15924.csv +0 -0
  164. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/ISO 3166-1.csv +0 -0
  165. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/ISO 3166-2.csv +0 -0
  166. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-one.csv +0 -0
  167. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/ISO 4217 list-three.csv +0 -0
  168. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/__init__.py +0 -0
  169. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/iso-639-3.tab +0 -0
  170. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/iso-639-3_Retirements.tab +0 -0
  171. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/_iso_data/ucum-essence.xml +0 -0
  172. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/__init__.py +0 -0
  173. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/constants.py +0 -0
  174. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/data_correction.py +0 -0
  175. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/data_validation.py +0 -0
  176. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/models.py +0 -0
  177. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/__init__.py +0 -0
  178. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/_utils.py +0 -0
  179. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/base.py +0 -0
  180. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/bbox.py +0 -0
  181. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/bic.py +0 -0
  182. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/currency.py +0 -0
  183. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/date_time.py +0 -0
  184. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/duration.py +0 -0
  185. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/email_address.py +0 -0
  186. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/geolocation.py +0 -0
  187. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/iban.py +0 -0
  188. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/integer.py +0 -0
  189. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/language.py +0 -0
  190. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/language_tag.py +0 -0
  191. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/number.py +0 -0
  192. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/region.py +0 -0
  193. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/rfc3987.py +0 -0
  194. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/script.py +0 -0
  195. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/string_.py +0 -0
  196. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/unit_code.py +0 -0
  197. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/types/url.py +0 -0
  198. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/data_validation/utils.py +0 -0
  199. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/template_conversion/__init__.py +0 -0
  200. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/template_conversion/json_schema.py +0 -0
  201. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/template_conversion/pydantic.py +0 -0
  202. {numind-0.4.3 → numind-0.4.4}/src/numind/nuextract_utils/template_conversion/validation.py +0 -0
  203. {numind-0.4.3 → numind-0.4.4}/src/numind/numind.py +0 -0
  204. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/__init__.py +0 -0
  205. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/content_extraction_api.py +0 -0
  206. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/content_extraction_project_management_api.py +0 -0
  207. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/default_api.py +0 -0
  208. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/documents_api.py +0 -0
  209. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/files_api.py +0 -0
  210. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/inference_api.py +0 -0
  211. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/jobs_api.py +0 -0
  212. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/project_import_export_api.py +0 -0
  213. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/structured_extraction_examples_api.py +0 -0
  214. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/structured_extraction_project_management_api.py +0 -0
  215. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api/template_generation_api.py +0 -0
  216. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/api_client.py +0 -0
  217. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/configuration.py +0 -0
  218. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/py.typed +0 -0
  219. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client/rest.py +0 -0
  220. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/__init__.py +0 -0
  221. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/content_extraction_api.py +0 -0
  222. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/content_extraction_project_management_api.py +0 -0
  223. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/default_api.py +0 -0
  224. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/documents_api.py +0 -0
  225. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/files_api.py +0 -0
  226. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/inference_api.py +0 -0
  227. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/jobs_api.py +0 -0
  228. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/project_import_export_api.py +0 -0
  229. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/structured_extraction_examples_api.py +0 -0
  230. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/structured_extraction_project_management_api.py +0 -0
  231. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api/template_generation_api.py +0 -0
  232. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/api_client.py +0 -0
  233. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/configuration.py +0 -0
  234. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/py.typed +0 -0
  235. {numind-0.4.3 → numind-0.4.4}/src/numind/openapi_client_async/rest.py +0 -0
  236. {numind-0.4.3 → numind-0.4.4}/tests/__init__.py +0 -0
  237. {numind-0.4.3 → numind-0.4.4}/tests/conftest.py +0 -0
  238. {numind-0.4.3 → numind-0.4.4}/tests/json_schema_test_cases/1.json +0 -0
  239. {numind-0.4.3 → numind-0.4.4}/tests/nuextract_utils/__init__.py +0 -0
  240. {numind-0.4.3 → numind-0.4.4}/tests/nuextract_utils/test_optional_dependencies.py +0 -0
  241. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/__init__.py +0 -0
  242. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_bounding_box.py +0 -0
  243. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content.py +0 -0
  244. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_extraction_api.py +0 -0
  245. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_extraction_project_management_api.py +0 -0
  246. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_extraction_response.py +0 -0
  247. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_project_response.py +0 -0
  248. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_project_settings_response.py +0 -0
  249. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_project_settings_response_image_width.py +0 -0
  250. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_project_settings_response_rasterization_dpi.py +0 -0
  251. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_content_settings_patch.py +0 -0
  252. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_convert_request.py +0 -0
  253. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_create_content_project_request.py +0 -0
  254. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_create_or_update_structured_example_request.py +0 -0
  255. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_create_structured_project_request.py +0 -0
  256. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_default_api.py +0 -0
  257. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_document_info.py +0 -0
  258. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_document_response.py +0 -0
  259. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_documents_api.py +0 -0
  260. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_error.py +0 -0
  261. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_file_response.py +0 -0
  262. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_files_api.py +0 -0
  263. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_health_response.py +0 -0
  264. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_image_info.py +0 -0
  265. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_import_project_response.py +0 -0
  266. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_inference_api.py +0 -0
  267. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_inference_status.py +0 -0
  268. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_inference_status_response.py +0 -0
  269. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_inference_validation_error.py +0 -0
  270. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_information_response.py +0 -0
  271. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_invalid_information.py +0 -0
  272. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_job_id_response.py +0 -0
  273. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_job_report_response.py +0 -0
  274. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_job_status_response.py +0 -0
  275. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_jobs_api.py +0 -0
  276. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_localization_api.py +0 -0
  277. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_localization_value.py +0 -0
  278. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_paginated_response_t.py +0 -0
  279. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_post_processing_error_response.py +0 -0
  280. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_post_processing_repair_response.py +0 -0
  281. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_post_processing_report_response.py +0 -0
  282. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_project_import_export_api.py +0 -0
  283. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_reference_project_response.py +0 -0
  284. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_service_status.py +0 -0
  285. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured.py +0 -0
  286. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_data_extraction_api.py +0 -0
  287. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_example_response.py +0 -0
  288. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_extraction_examples_api.py +0 -0
  289. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_extraction_project_management_api.py +0 -0
  290. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_extraction_response.py +0 -0
  291. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_inference_example.py +0 -0
  292. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_project_response.py +0 -0
  293. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_project_settings_response.py +0 -0
  294. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_structured_settings_patch.py +0 -0
  295. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_template_generation_api.py +0 -0
  296. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_template_request.py +0 -0
  297. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_template_response.py +0 -0
  298. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_text_info.py +0 -0
  299. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_text_request.py +0 -0
  300. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_update_content_project_request.py +0 -0
  301. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_update_structured_project_request.py +0 -0
  302. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_valid_information.py +0 -0
  303. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client/test_version_response.py +0 -0
  304. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/__init__.py +0 -0
  305. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_bounding_box.py +0 -0
  306. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content.py +0 -0
  307. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_extraction_api.py +0 -0
  308. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_extraction_project_management_api.py +0 -0
  309. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_extraction_response.py +0 -0
  310. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_project_response.py +0 -0
  311. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_project_settings_response.py +0 -0
  312. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_project_settings_response_image_width.py +0 -0
  313. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_project_settings_response_rasterization_dpi.py +0 -0
  314. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_content_settings_patch.py +0 -0
  315. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_convert_request.py +0 -0
  316. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_create_content_project_request.py +0 -0
  317. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_create_or_update_structured_example_request.py +0 -0
  318. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_create_structured_project_request.py +0 -0
  319. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_default_api.py +0 -0
  320. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_document_info.py +0 -0
  321. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_document_response.py +0 -0
  322. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_documents_api.py +0 -0
  323. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_error.py +0 -0
  324. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_file_response.py +0 -0
  325. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_files_api.py +0 -0
  326. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_health_response.py +0 -0
  327. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_image_info.py +0 -0
  328. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_import_project_response.py +0 -0
  329. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_inference_api.py +0 -0
  330. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_inference_status.py +0 -0
  331. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_inference_status_response.py +0 -0
  332. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_inference_validation_error.py +0 -0
  333. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_information_response.py +0 -0
  334. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_invalid_information.py +0 -0
  335. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_job_id_response.py +0 -0
  336. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_job_report_response.py +0 -0
  337. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_job_status_response.py +0 -0
  338. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_jobs_api.py +0 -0
  339. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_localization_api.py +0 -0
  340. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_localization_value.py +0 -0
  341. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_paginated_response_t.py +0 -0
  342. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_post_processing_error_response.py +0 -0
  343. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_post_processing_repair_response.py +0 -0
  344. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_post_processing_report_response.py +0 -0
  345. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_project_import_export_api.py +0 -0
  346. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_reference_project_response.py +0 -0
  347. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_service_status.py +0 -0
  348. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured.py +0 -0
  349. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_data_extraction_api.py +0 -0
  350. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_example_response.py +0 -0
  351. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_extraction_examples_api.py +0 -0
  352. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_extraction_project_management_api.py +0 -0
  353. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_extraction_response.py +0 -0
  354. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_inference_example.py +0 -0
  355. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_project_response.py +0 -0
  356. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_project_settings_response.py +0 -0
  357. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_structured_settings_patch.py +0 -0
  358. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_template_generation_api.py +0 -0
  359. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_template_request.py +0 -0
  360. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_template_response.py +0 -0
  361. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_text_info.py +0 -0
  362. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_text_request.py +0 -0
  363. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_update_content_project_request.py +0 -0
  364. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_update_structured_project_request.py +0 -0
  365. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_valid_information.py +0 -0
  366. {numind-0.4.3 → numind-0.4.4}/tests/openapi_client_async/test_version_response.py +0 -0
  367. {numind-0.4.3 → numind-0.4.4}/tests/test_cases/vacation/examples.csv +0 -0
  368. {numind-0.4.3 → numind-0.4.4}/tests/test_cases/vacation/files/tahiti.docx +0 -0
  369. {numind-0.4.3 → numind-0.4.4}/tests/test_cases/vacation/files_examples/kyoto.docx +0 -0
  370. {numind-0.4.3 → numind-0.4.4}/tests/test_cases/vacation/schema.json +0 -0
  371. {numind-0.4.3 → numind-0.4.4}/tests/test_cases/vacation/texts.csv +0 -0
  372. {numind-0.4.3 → numind-0.4.4}/tests/test_conversion_pydantic.py +0 -0
  373. {numind-0.4.3 → numind-0.4.4}/tests/test_extract_structured_data.py +0 -0
  374. {numind-0.4.3 → numind-0.4.4}/tests/test_json_schema_descriptions.py +0 -0
  375. {numind-0.4.3 → numind-0.4.4}/tests/test_numarkdown.py +0 -0
  376. {numind-0.4.3 → numind-0.4.4}/tests/test_project.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: numind
3
- Version: 0.4.3
3
+ Version: 0.4.4
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
@@ -458,7 +458,7 @@ Class | Method | HTTP request | Description
458
458
  - [CreateContentProjectRequest](docs/CreateContentProjectRequest.md)
459
459
  - [CreateOrUpdateStructuredExampleRequest](docs/CreateOrUpdateStructuredExampleRequest.md)
460
460
  - [CreateStructuredProjectRequest](docs/CreateStructuredProjectRequest.md)
461
- - [DiscardedLocalization](docs/DiscardedLocalization.md)
461
+ - [DiscardedLocalizationItem](docs/DiscardedLocalizationItem.md)
462
462
  - [DocumentInfo](docs/DocumentInfo.md)
463
463
  - [DocumentResponse](docs/DocumentResponse.md)
464
464
  - [Error](docs/Error.md)
@@ -382,7 +382,7 @@ Class | Method | HTTP request | Description
382
382
  - [CreateContentProjectRequest](docs/CreateContentProjectRequest.md)
383
383
  - [CreateOrUpdateStructuredExampleRequest](docs/CreateOrUpdateStructuredExampleRequest.md)
384
384
  - [CreateStructuredProjectRequest](docs/CreateStructuredProjectRequest.md)
385
- - [DiscardedLocalization](docs/DiscardedLocalization.md)
385
+ - [DiscardedLocalizationItem](docs/DiscardedLocalizationItem.md)
386
386
  - [DocumentInfo](docs/DocumentInfo.md)
387
387
  - [DocumentResponse](docs/DocumentResponse.md)
388
388
  - [Error](docs/Error.md)
@@ -1,4 +1,4 @@
1
- # DiscardedLocalization
1
+ # DiscardedLocalizationItem
2
2
 
3
3
 
4
4
  ## Properties
@@ -12,20 +12,20 @@ Name | Type | Description | Notes
12
12
  ## Example
13
13
 
14
14
  ```python
15
- from numind.models.discarded_localization import DiscardedLocalization
15
+ from numind.models.discarded_localization_item import DiscardedLocalizationItem
16
16
 
17
17
  # TODO update the JSON string below
18
18
  json = "{}"
19
- # create an instance of DiscardedLocalization from a JSON string
20
- discarded_localization_instance = DiscardedLocalization.from_json(json)
19
+ # create an instance of DiscardedLocalizationItem from a JSON string
20
+ discarded_localization_item_instance = DiscardedLocalizationItem.from_json(json)
21
21
  # print the JSON string representation of the object
22
- print(DiscardedLocalization.to_json())
22
+ print(DiscardedLocalizationItem.to_json())
23
23
 
24
24
  # convert the object into a dict
25
- discarded_localization_dict = discarded_localization_instance.to_dict()
26
- # create an instance of DiscardedLocalization from a dict
27
- discarded_localization_from_dict = DiscardedLocalization.from_dict(
28
- discarded_localization_dict
25
+ discarded_localization_item_dict = discarded_localization_item_instance.to_dict()
26
+ # create an instance of DiscardedLocalizationItem from a dict
27
+ discarded_localization_item_from_dict = DiscardedLocalizationItem.from_dict(
28
+ discarded_localization_item_dict
29
29
  )
30
30
  ```
31
31
  [[Back to Model list]](../README.md#documentation-for-models) [[Back to API list]](../README.md#documentation-for-api-endpoints) [[Back to README]](../README.md)
@@ -19,7 +19,7 @@ The result follows the extraction's structure, with lists of `{page, bbox}` obje
19
19
  `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1).
20
20
 
21
21
  Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes,
22
- `discardedLocalizations` and `diagnostics` explaining any partial result.
22
+ `discardedLocalizationItems` and `diagnostics` explaining any partial result.
23
23
  `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
24
24
 
25
25
 
@@ -6,8 +6,8 @@
6
6
  Name | Type | Description | Notes
7
7
  ------------ | ------------- | ------------- | -------------
8
8
  **localization** | [**Dict[str, Optional[LocalizationValue]]**](LocalizationValue.md) | Localization groups. Each field contains a list of boxes with a one-based document page number and a bbox array of normalized [x1, y1, x2, y2] coordinates (0–1). |
9
- **discarded_localization_count** | **int** | Number of localization validation errors. |
10
- **discarded_localizations** | [**List[DiscardedLocalization]**](DiscardedLocalization.md) | Localization validation errors, including invalid boxes and missing or unexpected fields. | [optional]
9
+ **discarded_localization_items_count** | **int** | Number of localization validation errors. |
10
+ **discarded_localization_items** | [**List[DiscardedLocalizationItem]**](DiscardedLocalizationItem.md) | Localization validation errors, including invalid boxes and missing or unexpected fields. | [optional]
11
11
  **diagnostics** | **List[str]** | Diagnostics explaining why results are partial. | [optional]
12
12
  **input_tokens** | **int** | Input tokens used for localization inference, when available. | [optional]
13
13
  **output_tokens** | **int** | Output tokens used for localization inference, when available. | [optional]
@@ -23,7 +23,7 @@ The result follows the extraction's structure, with lists of `{page, bbox}` obje
23
23
  `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1).
24
24
 
25
25
  Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes,
26
- `discardedLocalizations` and `diagnostics` explaining any partial result.
26
+ `discardedLocalizationItems` and `diagnostics` explaining any partial result.
27
27
  `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
28
28
 
29
29
 
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "numind"
7
- version = "0.4.3"
7
+ version = "0.4.4"
8
8
  description = "SDK to interact with the NuMind models API."
9
9
  requires-python = ">=3.10"
10
10
  keywords = [ "artificial intelligence", "deep learning", "structured",]
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "numind"
7
- version = "0.4.3"
7
+ version = "0.4.4"
8
8
  description = "SDK to interact with the NuMind models API."
9
9
  readme = {file = "README.md", content-type = "text/markdown"}
10
10
  license = {file = "LICENSE"}
@@ -35,7 +35,7 @@ from numind.models.create_or_update_structured_example_request import (
35
35
  from numind.models.create_structured_project_request import (
36
36
  CreateStructuredProjectRequest,
37
37
  )
38
- from numind.models.discarded_localization import DiscardedLocalization
38
+ from numind.models.discarded_localization_item import DiscardedLocalizationItem
39
39
  from numind.models.document_info import DocumentInfo
40
40
  from numind.models.document_response import DocumentResponse
41
41
  from numind.models.error import Error
@@ -21,9 +21,9 @@ from pydantic_core import to_jsonable_python
21
21
  from typing_extensions import Self
22
22
 
23
23
 
24
- class DiscardedLocalization(BaseModel):
24
+ class DiscardedLocalizationItem(BaseModel):
25
25
  """
26
- DiscardedLocalization
26
+ DiscardedLocalizationItem
27
27
  """
28
28
 
29
29
  path: StrictStr
@@ -51,7 +51,7 @@ class DiscardedLocalization(BaseModel):
51
51
 
52
52
  @classmethod
53
53
  def from_json(cls, json_str: str) -> Optional[Self]:
54
- """Create an instance of DiscardedLocalization from a JSON string"""
54
+ """Create an instance of DiscardedLocalizationItem from a JSON string"""
55
55
  return cls.from_dict(json.loads(json_str))
56
56
 
57
57
  def to_dict(self) -> Dict[str, Any]:
@@ -76,7 +76,7 @@ class DiscardedLocalization(BaseModel):
76
76
 
77
77
  @classmethod
78
78
  def from_dict(cls, obj: Optional[Dict[str, Any]]) -> Optional[Self]:
79
- """Create an instance of DiscardedLocalization from a dict"""
79
+ """Create an instance of DiscardedLocalizationItem from a dict"""
80
80
  if obj is None:
81
81
  return None
82
82
 
@@ -20,7 +20,7 @@ from pydantic import BaseModel, ConfigDict, Field, StrictInt, StrictStr
20
20
  from pydantic_core import to_jsonable_python
21
21
  from typing_extensions import Self
22
22
 
23
- from numind.models.discarded_localization import DiscardedLocalization
23
+ from numind.models.discarded_localization_item import DiscardedLocalizationItem
24
24
  from numind.models.localization_value import LocalizationValue
25
25
 
26
26
 
@@ -32,14 +32,14 @@ class LocalizationResponse(BaseModel):
32
32
  localization: Dict[str, Optional[LocalizationValue]] = Field(
33
33
  description="Localization groups. Each field contains a list of boxes with a one-based document page number and a bbox array of normalized [x1, y1, x2, y2] coordinates (0–1)."
34
34
  )
35
- discarded_localization_count: StrictInt = Field(
35
+ discarded_localization_items_count: StrictInt = Field(
36
36
  description="Number of localization validation errors.",
37
- alias="discardedLocalizationCount",
37
+ alias="discardedLocalizationItemsCount",
38
38
  )
39
- discarded_localizations: Optional[List[DiscardedLocalization]] = Field(
39
+ discarded_localization_items: Optional[List[DiscardedLocalizationItem]] = Field(
40
40
  default=None,
41
41
  description="Localization validation errors, including invalid boxes and missing or unexpected fields.",
42
- alias="discardedLocalizations",
42
+ alias="discardedLocalizationItems",
43
43
  )
44
44
  diagnostics: Optional[List[StrictStr]] = Field(
45
45
  default=None, description="Diagnostics explaining why results are partial."
@@ -60,8 +60,8 @@ class LocalizationResponse(BaseModel):
60
60
  )
61
61
  __properties: ClassVar[List[str]] = [
62
62
  "localization",
63
- "discardedLocalizationCount",
64
- "discardedLocalizations",
63
+ "discardedLocalizationItemsCount",
64
+ "discardedLocalizationItems",
65
65
  "diagnostics",
66
66
  "inputTokens",
67
67
  "outputTokens",
@@ -116,16 +116,16 @@ class LocalizationResponse(BaseModel):
116
116
  else None
117
117
  )
118
118
  _dict["localization"] = _field_dict
119
- # override the default output from pydantic by calling `to_dict()` of each item in discarded_localizations (list)
119
+ # override the default output from pydantic by calling `to_dict()` of each item in discarded_localization_items (list)
120
120
  _items = []
121
- if self.discarded_localizations:
122
- for _item_discarded_localizations in self.discarded_localizations:
121
+ if self.discarded_localization_items:
122
+ for _item_discarded_localization_items in self.discarded_localization_items:
123
123
  _items.append(
124
- _item_discarded_localizations.to_dict()
125
- if _item_discarded_localizations is not None
124
+ _item_discarded_localization_items.to_dict()
125
+ if _item_discarded_localization_items is not None
126
126
  else None
127
127
  )
128
- _dict["discardedLocalizations"] = _items
128
+ _dict["discardedLocalizationItems"] = _items
129
129
  return _dict
130
130
 
131
131
  @classmethod
@@ -145,12 +145,14 @@ class LocalizationResponse(BaseModel):
145
145
  )
146
146
  if obj.get("localization") is not None
147
147
  else None,
148
- "discardedLocalizationCount": obj.get("discardedLocalizationCount"),
149
- "discardedLocalizations": [
150
- DiscardedLocalization.from_dict(_item)
151
- for _item in obj["discardedLocalizations"]
148
+ "discardedLocalizationItemsCount": obj.get(
149
+ "discardedLocalizationItemsCount"
150
+ ),
151
+ "discardedLocalizationItems": [
152
+ DiscardedLocalizationItem.from_dict(_item)
153
+ for _item in obj["discardedLocalizationItems"]
152
154
  ]
153
- if obj.get("discardedLocalizations") is not None
155
+ if obj.get("discardedLocalizationItems") is not None
154
156
  else None,
155
157
  "diagnostics": obj.get("diagnostics"),
156
158
  "inputTokens": obj.get("inputTokens"),
@@ -0,0 +1,32 @@
1
+ name,alpha-2,alpha-3,alpha-4,country-code,withdrawal-date
2
+ French Afars and Issas,AI,AFI,AIDJ,262,1977
3
+ Netherlands Antilles,AN,ANT,ANHH,530,2010-12-15
4
+ British Antarctic Territory,BQ,ATB,BQAQ,,1979
5
+ "Burma, Socialist Republic of the Union of",BU,BUR,BUMM,104,1989-12-05
6
+ Byelorussian SSR Soviet Socialist Republic,BY,BYS,BYAA,112,1992-06-15
7
+ "Czechoslovakia, Czechoslovak Socialist Republic",CS,CSK,CSHH,200,1993-06-15
8
+ Serbia and Montenegro,CS,SCG,CSXX,891,2006-09-26
9
+ Canton and Enderbury Islands,CT,CTE,CTKI,128,1984
10
+ German Democratic Republic,DD,DDR,DDDE,278,1990-10-30
11
+ Dahomey,DY,DHY,DYBJ,204,1977
12
+ French Southern and Antarctic Territories,FQ,ATF,FQHH,,1979
13
+ "France, Metropolitan",FX,FXX,FXFR,249,1997-07-14
14
+ Gilbert and Ellice Islands,GE,GEL,GEHH,296,1979
15
+ "Upper Volta, Republic of",HV,HVO,HVBF,854,1984
16
+ Johnston Island,JT,JTN,JTUM,396,1986
17
+ Midway Islands,MI,MID,MIUM,488,1986
18
+ New Hebrides,NH,NHB,NHVU,548,1980
19
+ Dronning Maud Land,NQ,ATN,NQAQ,216,1983
20
+ Neutral Zone,NT,NTZ,NTHH,536,1993-07-12
21
+ Pacific Islands (trust territory),PC,PCI,PCHH,582,1986
22
+ US Miscellaneous Pacific Islands,PU,PUS,PUUM,849,1986
23
+ Panama Canal Zone,PZ,PCZ,PZPA,,1980
24
+ Southern Rhodesia,RH,RHO,RHZW,716,1980
25
+ Sikkim,SK,SKM,SKIN,,1975
26
+ "USSR, Union of Soviet Socialist Republics",SU,SUN,SUHH,810,1992-08-30
27
+ East Timor,TP,TMP,TPTL,626,2002-05-20
28
+ "Viet-Nam, Democratic Republic of",VD,VDR,VDVN,,1977
29
+ Wake Island,WK,WAK,WKUM,872,1986
30
+ "Yemen, Democratic, People's Democratic Republic of",YD,YMD,YDYE,720,1990-08-14
31
+ "Yugoslavia, (Socialist) Federal Republic of",YU,YUG,YUCS,891,2003-07-23
32
+ "Zaire, Republic of",ZR,ZAR,ZRCD,180,1997-07-14
@@ -32,6 +32,16 @@ with (
32
32
  COUNTRY_CODES2[row[1]] = None
33
33
  COUNTRY_CODES3[row[2]] = None
34
34
 
35
+ HISTORICAL_COUNTRY_NAMES, COUNTRY_CODES4 = {}, {}
36
+ with (
37
+ importlib.resources.files("numind.nuextract_utils._iso_data")
38
+ .joinpath("ISO 3166-3.csv")
39
+ .open(encoding="utf8") as _file
40
+ ):
41
+ for row in csv.DictReader(_file):
42
+ HISTORICAL_COUNTRY_NAMES[row["name"]] = None
43
+ COUNTRY_CODES4[row["alpha-4"]] = None
44
+
35
45
 
36
46
  class Country(SemanticType):
37
47
  """
@@ -43,12 +53,14 @@ class Country(SemanticType):
43
53
  :examples: `FR` (France), `SG` (Singapore), `CSHH` (Czechoslovakia)
44
54
  """
45
55
 
46
- json_schema_format = ("country-code-ISO_3166-1_2chars", "country-code")
56
+ json_schema_format = ("country-code", "country-code-ISO_3166-1_2chars")
47
57
  iso_subset_type: Literal["names", "codes_alpha2", "codes_alpha3"] = "codes_alpha2"
48
58
  # dictionaries to be used as ordered sets to build `country_data`
49
59
  names: dict[str, None] = COUNTRY_NAMES # Title case
50
60
  codes_alpha2: dict[str, None] = COUNTRY_CODES2 # uppercase
51
61
  codes_alpha3: dict[str, None] = COUNTRY_CODES3 # uppercase
62
+ historical_names: dict[str, None] = HISTORICAL_COUNTRY_NAMES
63
+ codes_alpha4: dict[str, None] = COUNTRY_CODES4 # uppercase
52
64
 
53
65
  # Class-level cached properties that auto-invalidate when source changes
54
66
  names_lower = ClassCachedProperty(
@@ -60,7 +72,11 @@ class Country(SemanticType):
60
72
  codes_alpha3_lower = ClassCachedProperty(
61
73
  "codes_alpha3", lambda s: {code.lower(): code for code in s}
62
74
  )
75
+ codes_alpha4_lower = ClassCachedProperty(
76
+ "codes_alpha4", lambda s: {code.lower(): code for code in s}
77
+ )
63
78
  country_data = AssociativeMapping("names", "codes_alpha2", "codes_alpha3")
79
+ historical_country_data = AssociativeMapping("historical_names", "codes_alpha4")
64
80
 
65
81
  @classmethod
66
82
  def coerce(
@@ -83,7 +99,8 @@ class Country(SemanticType):
83
99
 
84
100
  # Correct case unsensitive errors
85
101
  if (
86
- error.error_message
102
+ error is not None
103
+ and error.error_message
87
104
  == ERR_LABEL_COUNTRY_ISO_3166_COMPLIANT_BUT_CASE_INSENSITIVE
88
105
  ):
89
106
  return cls._get_valid_set_lowercase()[value.lower()]
@@ -94,6 +111,11 @@ class Country(SemanticType):
94
111
  idx_to_get = cls.country_data.group_names[cls.iso_subset_type]
95
112
  return group[idx_to_get]
96
113
 
114
+ if cls.iso_subset_type == "codes_alpha2":
115
+ group = cls.historical_country_data.get_group(value.lower())
116
+ if group is not None:
117
+ return group[cls.historical_country_data.group_names["codes_alpha4"]]
118
+
97
119
  return None
98
120
 
99
121
  @classmethod
@@ -114,7 +136,7 @@ class Country(SemanticType):
114
136
  @classmethod
115
137
  def _get_valid_set(cls) -> dict[str, None]:
116
138
  if cls.iso_subset_type == "codes_alpha2":
117
- return cls.codes_alpha2
139
+ return cls.codes_alpha2 | cls.codes_alpha4
118
140
  if cls.iso_subset_type == "codes_alpha3":
119
141
  return cls.codes_alpha3
120
142
  return cls.names
@@ -122,7 +144,7 @@ class Country(SemanticType):
122
144
  @classmethod
123
145
  def _get_valid_set_lowercase(cls) -> dict[str, str]:
124
146
  if cls.iso_subset_type == "codes_alpha2":
125
- return cls.codes_alpha2_lower
147
+ return cls.codes_alpha2_lower | cls.codes_alpha4_lower
126
148
  if cls.iso_subset_type == "codes_alpha3":
127
149
  return cls.codes_alpha3_lower
128
150
  return cls.names_lower
@@ -226,7 +226,8 @@ def normalize_phone_number(phone_str: str) -> ParsedPhoneNumber | str | None:
226
226
  1. Auto infer region code + E.164 compliant + valid num values
227
227
  2. Provided region code + E.164 compliant + valid num values (order is important)
228
228
  3. NSN if string can be converted to int and has right number of digits
229
- 4. None (nothing worked)
229
+ 4. Short service/emergency number, retained as local digits
230
+ 5. None (nothing worked)
230
231
 
231
232
  This function uses the phonenumbers library's PhoneNumberMatcher to robustly
232
233
  find a phone number within a string, even if it's surrounded by other text
@@ -249,8 +250,15 @@ def normalize_phone_number(phone_str: str) -> ParsedPhoneNumber | str | None:
249
250
  if len(valid_phone_numbers) > 0:
250
251
  return _get_most_likely_phone_number(valid_phone_numbers)
251
252
 
252
- # Nothing matched, so no way to have an E.164 compliant string or NSN that can be
253
- # valid with any region, return `None`
253
+ # Keep short service/emergency numbers as digits, without guessing a country.
254
+ if re.fullmatch(r"[0-9]+", phone_str):
255
+ for region_code in phonenumbers.SUPPORTED_SHORT_REGIONS:
256
+ with contextlib.suppress(phonenumbers.NumberParseException):
257
+ number = phonenumbers.parse(phone_str, region_code)
258
+ if phonenumbers.is_valid_short_number_for_region(number, region_code):
259
+ return phone_str
260
+
261
+ # Nothing matched a valid national, international or short number.
254
262
  return None
255
263
 
256
264
 
@@ -231,14 +231,12 @@ class VerbatimString(SemanticType):
231
231
  return value
232
232
  error.error_message = err_verbatim
233
233
 
234
- # String contain invalid escape character(s) --> remove them
234
+ # Repair invalid escape characters using the shared text normalization.
235
235
  if (
236
236
  error.error_message
237
237
  == ERR_LABEL_VERBATIM_STRING_CONTAIN_INVALID_ESCAPE_CHARACTERS
238
238
  ):
239
- for char in ESCAPE_CHARACTERS_NOT_IN_STRING:
240
- value = value.replace(char, "")
241
- return value
239
+ return _convert_string_to_comply_with_verbatim_string(value)
242
240
 
243
241
  # Prepare input_text
244
242
  if isinstance(input_text, str):
@@ -358,8 +356,8 @@ def is_verbatim_string_valid(verbatim_string: str, text_input: str) -> str | Non
358
356
  r"""
359
357
  Check that a string is valid to be in the benchmark data.
360
358
 
361
- If any newline (``"\n"``) or return carriage (``"\r"``) is present in the string,
362
- it is considered non-valid.
359
+ Spaces, line breaks and line-end hyphenation may be repaired. Other
360
+ punctuation, accents and letter case are preserved.
363
361
 
364
362
  This method uses stringzilla, when available, to make substring search faster.
365
363
 
@@ -376,6 +374,7 @@ def is_verbatim_string_valid(verbatim_string: str, text_input: str) -> str | Non
376
374
  for item in ESCAPE_CHARACTERS_NOT_IN_STRING
377
375
  ):
378
376
  return ERR_LABEL_VERBATIM_STRING_CONTAIN_INVALID_ESCAPE_CHARACTERS
377
+ verbatim_string = _convert_string_to_comply_with_verbatim_string(verbatim_string)
379
378
  if not (
380
379
  sz.contains(text_input, verbatim_string)
381
380
  if sz is not None
@@ -477,17 +476,23 @@ def _tokenize_segment(text: str, script: str | None = None) -> list[str]:
477
476
 
478
477
  def _convert_string_to_comply_with_verbatim_string(text_input: str) -> str:
479
478
  """Convert a text input to the verbatim string formatting."""
479
+ # Join words split by a hyphen at a physical line break.
480
+ text_input = re.sub(
481
+ r"(?<=[^\W\d_])[-\u00ad][ \t]*(?:\r\n|\r|\n)[ \t]*(?=[^\W\d_])",
482
+ "",
483
+ text_input,
484
+ )
485
+ text_input = re.sub(r"[\n\t]+", " ", text_input)
480
486
  for escape_char in ESCAPE_CHARACTERS_NOT_IN_STRING:
481
487
  text_input = text_input.replace(escape_char, " ")
482
- # Convert all space-like Unicode characters (except newline) into ASCII space
488
+ # Convert space-like Unicode characters into ASCII space
483
489
  for space_char in UNICODE_SPACES:
484
490
  text_input = text_input.replace(space_char, " ")
485
- # Collapse multiple ASCII spaces into one (without touching newlines)
491
+ # Collapse multiple ASCII spaces into one
486
492
  text_input = re.sub(r" {2,}", " ", text_input)
487
493
  # import string # uncomment to measure against without punctuation
488
494
  # translator = str.maketrans('', '', string.punctuation)
489
495
  # text_input = text_input.translate(translator)
490
- # Specifying " " so that it doesn't split on newline characters "\n"
491
496
  return text_input.strip()
492
497
 
493
498
 
@@ -12,7 +12,7 @@ NUEXTRACT_TYPE_TO_JSON_SCHEMA_FORMAT = {
12
12
  "date-time": "date-time",
13
13
  "duration": "duration",
14
14
  "boolean": "boolean",
15
- "country": ("country-code-ISO_3166-1_2chars", "country-code"),
15
+ "country": ("country-code", "country-code-ISO_3166-1_2chars"),
16
16
  "currency": ("currency-code-ISO_4217_3chars", "currency-code"),
17
17
  "language": ("language-code-ISO_639-3_3chars", "language-code"),
18
18
  "language-tag": ("language-tag-IETF-BCP-47", "language-tag"),
@@ -51,7 +51,7 @@ __all__ = [
51
51
  "CreateContentProjectRequest",
52
52
  "CreateOrUpdateStructuredExampleRequest",
53
53
  "CreateStructuredProjectRequest",
54
- "DiscardedLocalization",
54
+ "DiscardedLocalizationItem",
55
55
  "DocumentInfo",
56
56
  "DocumentResponse",
57
57
  "Error",
@@ -165,8 +165,8 @@ from numind.models.create_or_update_structured_example_request import (
165
165
  from numind.models.create_structured_project_request import (
166
166
  CreateStructuredProjectRequest as CreateStructuredProjectRequest,
167
167
  )
168
- from numind.models.discarded_localization import (
169
- DiscardedLocalization as DiscardedLocalization,
168
+ from numind.models.discarded_localization_item import (
169
+ DiscardedLocalizationItem as DiscardedLocalizationItem,
170
170
  )
171
171
  from numind.models.document_info import DocumentInfo as DocumentInfo
172
172
  from numind.models.document_response import DocumentResponse as DocumentResponse
@@ -58,7 +58,7 @@ class LocalizationApi:
58
58
  """
59
59
  get_api_localization_jobs_localizationjobid
60
60
 
61
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
61
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
62
62
 
63
63
  :param localization_job_id: (required)
64
64
  :type localization_job_id: str
@@ -139,7 +139,7 @@ class LocalizationApi:
139
139
  """
140
140
  get_api_localization_jobs_localizationjobid
141
141
 
142
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
142
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
143
143
 
144
144
  :param localization_job_id: (required)
145
145
  :type localization_job_id: str
@@ -220,7 +220,7 @@ class LocalizationApi:
220
220
  """
221
221
  get_api_localization_jobs_localizationjobid
222
222
 
223
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
223
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
224
224
 
225
225
  :param localization_job_id: (required)
226
226
  :type localization_job_id: str
@@ -68,7 +68,7 @@ class StructuredDataExtractionApi:
68
68
  """
69
69
  get_api_localization_jobs_localizationjobid
70
70
 
71
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
71
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
72
72
 
73
73
  :param localization_job_id: (required)
74
74
  :type localization_job_id: str
@@ -149,7 +149,7 @@ class StructuredDataExtractionApi:
149
149
  """
150
150
  get_api_localization_jobs_localizationjobid
151
151
 
152
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
152
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
153
153
 
154
154
  :param localization_job_id: (required)
155
155
  :type localization_job_id: str
@@ -230,7 +230,7 @@ class StructuredDataExtractionApi:
230
230
  """
231
231
  get_api_localization_jobs_localizationjobid
232
232
 
233
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
233
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
234
234
 
235
235
  :param localization_job_id: (required)
236
236
  :type localization_job_id: str
@@ -51,7 +51,7 @@ __all__ = [
51
51
  "CreateContentProjectRequest",
52
52
  "CreateOrUpdateStructuredExampleRequest",
53
53
  "CreateStructuredProjectRequest",
54
- "DiscardedLocalization",
54
+ "DiscardedLocalizationItem",
55
55
  "DocumentInfo",
56
56
  "DocumentResponse",
57
57
  "Error",
@@ -165,8 +165,8 @@ from numind.models.create_or_update_structured_example_request import (
165
165
  from numind.models.create_structured_project_request import (
166
166
  CreateStructuredProjectRequest as CreateStructuredProjectRequest,
167
167
  )
168
- from numind.models.discarded_localization import (
169
- DiscardedLocalization as DiscardedLocalization,
168
+ from numind.models.discarded_localization_item import (
169
+ DiscardedLocalizationItem as DiscardedLocalizationItem,
170
170
  )
171
171
  from numind.models.document_info import DocumentInfo as DocumentInfo
172
172
  from numind.models.document_response import DocumentResponse as DocumentResponse
@@ -58,7 +58,7 @@ class LocalizationApi:
58
58
  """
59
59
  get_api_localization_jobs_localizationjobid
60
60
 
61
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
61
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
62
62
 
63
63
  :param localization_job_id: (required)
64
64
  :type localization_job_id: str
@@ -139,7 +139,7 @@ class LocalizationApi:
139
139
  """
140
140
  get_api_localization_jobs_localizationjobid
141
141
 
142
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
142
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
143
143
 
144
144
  :param localization_job_id: (required)
145
145
  :type localization_job_id: str
@@ -220,7 +220,7 @@ class LocalizationApi:
220
220
  """
221
221
  get_api_localization_jobs_localizationjobid
222
222
 
223
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
223
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
224
224
 
225
225
  :param localization_job_id: (required)
226
226
  :type localization_job_id: str
@@ -68,7 +68,7 @@ class StructuredDataExtractionApi:
68
68
  """
69
69
  get_api_localization_jobs_localizationjobid
70
70
 
71
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
71
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
72
72
 
73
73
  :param localization_job_id: (required)
74
74
  :type localization_job_id: str
@@ -149,7 +149,7 @@ class StructuredDataExtractionApi:
149
149
  """
150
150
  get_api_localization_jobs_localizationjobid
151
151
 
152
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
152
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
153
153
 
154
154
  :param localization_job_id: (required)
155
155
  :type localization_job_id: str
@@ -230,7 +230,7 @@ class StructuredDataExtractionApi:
230
230
  """
231
231
  get_api_localization_jobs_localizationjobid
232
232
 
233
- Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizations` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
233
+ Retrieve the result of a completed localization job. The result follows the extraction's structure, with lists of `{page, bbox}` objects at leaves. `page` is a one-based document page number. `bbox` contains normalized `[x1, y1, x2, y2]` coordinates (0–1). Returns `200 OK` for a complete result or `206 Partial Content` with all available boxes, `discardedLocalizationItems` and `diagnostics` explaining any partial result. `400 JobNotCompleted` if pending or running; `403 QuotaExceeded` if the job failed its quota check.
234
234
 
235
235
  :param localization_job_id: (required)
236
236
  :type localization_job_id: str