openparser-sdk 1.0.25__tar.gz → 1.0.27__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 (286) hide show
  1. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/PKG-INFO +1 -1
  2. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/pyproject.toml +1 -1
  3. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/extract/extract_async.py +0 -2
  4. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/extract/extract_batch.py +0 -2
  5. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/extract/extract_sync.py +0 -2
  6. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/files/create_file.py +0 -2
  7. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/parse/parse_async.py +0 -2
  8. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/parse/parse_batch.py +0 -2
  9. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/parse/parse_sync.py +0 -2
  10. openparser_sdk-1.0.27/src/openparser/_generated_requests.py +64 -0
  11. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_telemetry.py +1 -1
  12. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/client.py +136 -139
  13. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/hosted_models.py +16 -55
  14. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/.gitignore +0 -0
  15. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/LICENSE +0 -0
  16. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/README.md +0 -0
  17. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/__init__.py +0 -0
  18. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_files.py +0 -0
  19. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/__init__.py +0 -0
  20. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/__init__.py +0 -0
  21. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/extract/__init__.py +0 -0
  22. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/extract/suggest_schema.py +0 -0
  23. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/files/__init__.py +0 -0
  24. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/files/delete_file.py +0 -0
  25. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/files/get_file.py +0 -0
  26. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/files/get_file_content.py +0 -0
  27. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/__init__.py +0 -0
  28. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/complete_extraction_review.py +0 -0
  29. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/get_extraction_review.py +0 -0
  30. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/get_job.py +0 -0
  31. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/get_job_result.py +0 -0
  32. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/get_job_source.py +0 -0
  33. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/list_jobs.py +0 -0
  34. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/reopen_extraction_review.py +0 -0
  35. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/jobs/update_extraction_review.py +0 -0
  36. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/models/__init__.py +0 -0
  37. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/models/list_llm_models.py +0 -0
  38. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/models/list_ocr_models.py +0 -0
  39. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/parse/__init__.py +0 -0
  40. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/pipelines/__init__.py +0 -0
  41. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/pipelines/create_extraction_pipeline.py +0 -0
  42. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/pipelines/delete_extraction_pipeline.py +0 -0
  43. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/pipelines/get_extraction_pipeline.py +0 -0
  44. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/pipelines/list_extraction_pipelines.py +0 -0
  45. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/api/pipelines/update_extraction_pipeline.py +0 -0
  46. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/client.py +0 -0
  47. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/errors.py +0 -0
  48. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/__init__.py +0 -0
  49. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/asset_kind.py +0 -0
  50. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/barcode_element.py +0 -0
  51. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/batch_child_page.py +0 -0
  52. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/batch_child_summary.py +0 -0
  53. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/batch_job_accepted.py +0 -0
  54. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/batch_job_accepted_operation.py +0 -0
  55. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/batch_summary_counts.py +0 -0
  56. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/bounding_box.py +0 -0
  57. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/complete_extraction_review_request.py +0 -0
  58. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/complete_extraction_review_request_status.py +0 -0
  59. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/confidence.py +0 -0
  60. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/confidence_scope.py +0 -0
  61. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/confidence_source_scale.py +0 -0
  62. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/coordinate_unit.py +0 -0
  63. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_extraction_pipeline_request.py +0 -0
  64. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_extraction_pipeline_request_grounding.py +0 -0
  65. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_extraction_pipeline_request_llm_options.py +0 -0
  66. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_extraction_pipeline_request_llm_options_reasoning_effort_type_1.py +0 -0
  67. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_extraction_pipeline_request_ocr_options.py +0 -0
  68. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_extraction_pipeline_request_schema.py +0 -0
  69. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/create_file_body.py +0 -0
  70. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/delete_extraction_pipeline_response.py +0 -0
  71. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/delete_file_response.py +0 -0
  72. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_asset.py +0 -0
  73. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_element_kind.py +0 -0
  74. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_page.py +0 -0
  75. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_page_quality.py +0 -0
  76. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_page_quality_defects_item.py +0 -0
  77. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_page_quality_metrics_item.py +0 -0
  78. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_provenance.py +0 -0
  79. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/document_relation.py +0 -0
  80. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/error_body.py +0 -0
  81. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/error_body_details.py +0 -0
  82. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/error_response.py +0 -0
  83. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_async_body.py +0 -0
  84. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_body.py +0 -0
  85. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_item.py +0 -0
  86. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_item_grounding.py +0 -0
  87. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_item_llm_options.py +0 -0
  88. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_item_llm_options_reasoning_effort_type_1.py +0 -0
  89. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_item_ocr_options.py +0 -0
  90. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_item_schema.py +0 -0
  91. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request.py +0 -0
  92. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_items_item.py +0 -0
  93. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_items_item_grounding.py +0 -0
  94. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_items_item_llm_options.py +0 -0
  95. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_items_item_llm_options_reasoning_effort_type_1.py +0 -0
  96. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_items_item_ocr_options.py +0 -0
  97. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_items_item_schema.py +0 -0
  98. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_batch_request_output_format.py +0 -0
  99. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request.py +0 -0
  100. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request_grounding.py +0 -0
  101. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request_llm_options.py +0 -0
  102. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request_llm_options_reasoning_effort_type_1.py +0 -0
  103. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request_ocr_options.py +0 -0
  104. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request_output_format.py +0 -0
  105. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_request_schema.py +0 -0
  106. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extract_sync_body.py +0 -0
  107. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_attempt.py +0 -0
  108. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_attempt_kind.py +0 -0
  109. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_attempt_status.py +0 -0
  110. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_citation.py +0 -0
  111. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_citation_granularity.py +0 -0
  112. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_field.py +0 -0
  113. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_field_transform_claim.py +0 -0
  114. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_field_transform_claim_confidence.py +0 -0
  115. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_field_transform_claim_operation.py +0 -0
  116. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_field_transform_claim_parameters.py +0 -0
  117. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_mode.py +0 -0
  118. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_grounding_result.py +0 -0
  119. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_pipeline.py +0 -0
  120. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_pipeline_list_response.py +0 -0
  121. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_pipeline_llm_options.py +0 -0
  122. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_pipeline_llm_options_reasoning_effort_type_0_type_1.py +0 -0
  123. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_pipeline_ocr_options.py +0 -0
  124. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_pipeline_schema.py +0 -0
  125. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review.py +0 -0
  126. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_confirmation.py +0 -0
  127. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_event_type_0.py +0 -0
  128. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_event_type_1.py +0 -0
  129. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_event_type_2.py +0 -0
  130. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_event_type_2_type.py +0 -0
  131. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_event_type_3.py +0 -0
  132. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_retraction.py +0 -0
  133. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_review_status.py +0 -0
  134. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_terminal_result.py +0 -0
  135. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_terminal_result_reasoning_effort_type_0.py +0 -0
  136. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/extraction_usage_totals.py +0 -0
  137. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/figure_element.py +0 -0
  138. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/formula_element.py +0 -0
  139. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/formula_format.py +0 -0
  140. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/geometry.py +0 -0
  141. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job.py +0 -0
  142. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_accepted.py +0 -0
  143. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_accepted_operation.py +0 -0
  144. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_extraction_schema.py +0 -0
  145. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_failure.py +0 -0
  146. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_failure_details.py +0 -0
  147. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_list_response.py +0 -0
  148. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_operation.py +0 -0
  149. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_progress.py +0 -0
  150. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_related_extractions_item.py +0 -0
  151. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_status.py +0 -0
  152. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/job_summary.py +0 -0
  153. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/json_schema_object.py +0 -0
  154. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/key_value_element.py +0 -0
  155. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/language.py +0 -0
  156. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_activity.py +0 -0
  157. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_activity_attributes.py +0 -0
  158. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_activity_parameters.py +0 -0
  159. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_activity_status.py +0 -0
  160. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_agent.py +0 -0
  161. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_agent_attributes.py +0 -0
  162. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_association.py +0 -0
  163. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_association_attributes.py +0 -0
  164. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_attribution.py +0 -0
  165. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_attribution_attributes.py +0 -0
  166. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_confidence_assertion.py +0 -0
  167. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_confidence_assertion_attributes.py +0 -0
  168. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_confidence_assertion_kind.py +0 -0
  169. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_confidence_assertion_sources_item.py +0 -0
  170. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_confidence_assertion_sources_item_type.py +0 -0
  171. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_confidence_scale.py +0 -0
  172. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_derivation.py +0 -0
  173. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_derivation_attributes.py +0 -0
  174. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_derivation_input.py +0 -0
  175. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_derivation_input_attributes.py +0 -0
  176. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_derivation_input_effect.py +0 -0
  177. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_digest.py +0 -0
  178. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_document.py +0 -0
  179. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_document_activities.py +0 -0
  180. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_document_agents.py +0 -0
  181. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_document_attributes.py +0 -0
  182. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_document_entities.py +0 -0
  183. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_entity.py +0 -0
  184. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_entity_approvals_item.py +0 -0
  185. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_entity_approvals_item_attributes.py +0 -0
  186. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_entity_attributes.py +0 -0
  187. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_entity_kind.py +0 -0
  188. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_entity_schema.py +0 -0
  189. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_implementation.py +0 -0
  190. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_implementation_attributes.py +0 -0
  191. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_locator.py +0 -0
  192. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_locator_attributes.py +0 -0
  193. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_relation.py +0 -0
  194. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_relation_attributes.py +0 -0
  195. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_relation_type.py +0 -0
  196. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_selector.py +0 -0
  197. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_selector_attributes.py +0 -0
  198. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_transformation.py +0 -0
  199. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/lineage_transformation_attributes.py +0 -0
  200. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/link_element.py +0 -0
  201. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/list_llm_models_mode.py +0 -0
  202. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_model_catalog_entry.py +0 -0
  203. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_model_catalog_entry_pricing.py +0 -0
  204. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0.py +0 -0
  205. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0_default_effort_type_0.py +0 -0
  206. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_model_catalog_entry_reasoning_type_0_supported_efforts_type_0_item.py +0 -0
  207. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_model_catalog_entry_recommendation.py +0 -0
  208. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_models_response.py +0 -0
  209. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_llm_models_response_mode.py +0 -0
  210. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry.py +0 -0
  211. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_availability.py +0 -0
  212. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_benchmark_type_0.py +0 -0
  213. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_capabilities.py +0 -0
  214. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_capabilities_options.py +0 -0
  215. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_guidance.py +0 -0
  216. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_option_controls_item.py +0 -0
  217. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_option_controls_item_choices_item.py +0 -0
  218. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_option_controls_item_kind.py +0 -0
  219. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_option_defaults.py +0 -0
  220. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_pricing.py +0 -0
  221. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_pricing_configurations_item.py +0 -0
  222. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_pricing_configurations_item_options.py +0 -0
  223. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_provider.py +0 -0
  224. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_provider_logo_data.py +0 -0
  225. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_provider_logo_data_paths_item.py +0 -0
  226. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_model_catalog_entry_provider_logo_data_paths_item_clip_rule.py +0 -0
  227. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_models_response.py +0 -0
  228. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/ocr_output_format.py +0 -0
  229. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/other_element.py +0 -0
  230. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_async_body.py +0 -0
  231. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_body.py +0 -0
  232. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_item.py +0 -0
  233. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_item_ocr_options.py +0 -0
  234. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_request.py +0 -0
  235. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_request_items_item.py +0 -0
  236. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_request_items_item_ocr_options.py +0 -0
  237. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_batch_request_output_format.py +0 -0
  238. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_request.py +0 -0
  239. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_request_ocr_options.py +0 -0
  240. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_request_output_format.py +0 -0
  241. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parse_sync_body.py +0 -0
  242. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/parsed_document.py +0 -0
  243. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/point.py +0 -0
  244. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/public_file.py +0 -0
  245. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/query_answer_element.py +0 -0
  246. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/raw_parse_result.py +0 -0
  247. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/raw_parse_result_profile.py +0 -0
  248. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/raw_parse_result_profile_options.py +0 -0
  249. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/raw_parse_result_result.py +0 -0
  250. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/relation_type.py +0 -0
  251. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/reopen_extraction_review_request.py +0 -0
  252. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/section_element.py +0 -0
  253. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/section_role.py +0 -0
  254. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/selection_mark_element.py +0 -0
  255. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/selection_mark_type.py +0 -0
  256. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/selection_state.py +0 -0
  257. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/signature_element.py +0 -0
  258. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/source_provenance.py +0 -0
  259. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/stamp_element.py +0 -0
  260. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/structured_value.py +0 -0
  261. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/suggest_schema_request.py +0 -0
  262. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/suggest_schema_response.py +0 -0
  263. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/suggest_schema_response_schema.py +0 -0
  264. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/table_cell.py +0 -0
  265. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/table_cell_role.py +0 -0
  266. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/table_element.py +0 -0
  267. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_annotation.py +0 -0
  268. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_break.py +0 -0
  269. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_element.py +0 -0
  270. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_role.py +0 -0
  271. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_span.py +0 -0
  272. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_style.py +0 -0
  273. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/text_style_font_size_unit.py +0 -0
  274. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_pipeline_request.py +0 -0
  275. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_pipeline_request_grounding.py +0 -0
  276. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_pipeline_request_llm_options_type_0.py +0 -0
  277. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_pipeline_request_llm_options_type_0_reasoning_effort_type_1.py +0 -0
  278. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_pipeline_request_ocr_options_type_0.py +0 -0
  279. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_pipeline_request_schema.py +0 -0
  280. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_review_request.py +0 -0
  281. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_review_request_confirmations_item.py +0 -0
  282. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/models/update_extraction_review_request_retractions_item.py +0 -0
  283. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/py.typed +0 -0
  284. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/_generated/types.py +0 -0
  285. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/errors.py +0 -0
  286. {openparser_sdk-1.0.25 → openparser_sdk-1.0.27}/src/openparser/py.typed +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: openparser-sdk
3
- Version: 1.0.25
3
+ Version: 1.0.27
4
4
  Summary: Parse documents and extract structured data with Python
5
5
  Project-URL: Homepage, https://openparser.dev
6
6
  Project-URL: Documentation, https://docs.openparser.dev
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "openparser-sdk"
3
- version = "1.0.25"
3
+ version = "1.0.27"
4
4
  description = "Parse documents and extract structured data with Python"
5
5
  readme = "README.md"
6
6
  requires-python = ">=3.10"
@@ -37,8 +37,6 @@ def _get_kwargs(
37
37
 
38
38
  _kwargs["files"] = body.to_multipart()
39
39
 
40
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
41
-
42
40
  _kwargs["headers"] = headers
43
41
  return _kwargs
44
42
 
@@ -37,8 +37,6 @@ def _get_kwargs(
37
37
 
38
38
  _kwargs["files"] = body.to_multipart()
39
39
 
40
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
41
-
42
40
  _kwargs["headers"] = headers
43
41
  return _kwargs
44
42
 
@@ -38,8 +38,6 @@ def _get_kwargs(
38
38
 
39
39
  _kwargs["files"] = body.to_multipart()
40
40
 
41
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
42
-
43
41
  _kwargs["headers"] = headers
44
42
  return _kwargs
45
43
 
@@ -34,8 +34,6 @@ def _get_kwargs(
34
34
 
35
35
  _kwargs["files"] = body.to_multipart()
36
36
 
37
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
38
-
39
37
  _kwargs["headers"] = headers
40
38
  return _kwargs
41
39
 
@@ -37,8 +37,6 @@ def _get_kwargs(
37
37
 
38
38
  _kwargs["files"] = body.to_multipart()
39
39
 
40
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
41
-
42
40
  _kwargs["headers"] = headers
43
41
  return _kwargs
44
42
 
@@ -37,8 +37,6 @@ def _get_kwargs(
37
37
 
38
38
  _kwargs["files"] = body.to_multipart()
39
39
 
40
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
41
-
42
40
  _kwargs["headers"] = headers
43
41
  return _kwargs
44
42
 
@@ -39,8 +39,6 @@ def _get_kwargs(
39
39
 
40
40
  _kwargs["files"] = body.to_multipart()
41
41
 
42
- headers["Content-Type"] = "multipart/form-data; boundary=+++"
43
-
44
42
  _kwargs["headers"] = headers
45
43
  return _kwargs
46
44
 
@@ -0,0 +1,64 @@
1
+ """Bridge from the facade's plain-dict arguments to the generated request builders.
2
+
3
+ The generated `_generated.api.*` modules own the HTTP method, path, query parameter
4
+ names and multipart field layout. The facade keeps its public contract on top of them:
5
+
6
+ - callers pass plain dicts, and unknown keys are sent unchanged, so JSON bodies are
7
+ handed to the builders as-is instead of being rebuilt from the typed models;
8
+ - optional arguments that the caller did not set are left out of the request;
9
+ - responses stay raw JSON (`AttrDict`) or bytes, so the generated `sync_detailed`
10
+ parsers, which decode bodies into attrs models, are not used.
11
+ """
12
+
13
+ from __future__ import annotations
14
+
15
+ from typing import Any, Optional, Sequence, Tuple
16
+
17
+ from openparser._generated.types import UNSET
18
+
19
+ MultipartPart = Tuple[str, Any]
20
+
21
+
22
+ class RawBody:
23
+ """Carries caller-owned JSON or multipart parts to a generated request builder.
24
+
25
+ The generated builders call `to_dict()` for JSON bodies and `to_multipart()` for
26
+ multipart bodies; this object answers both with the facade's own values.
27
+ """
28
+
29
+ def __init__(
30
+ self,
31
+ *,
32
+ json: Any = None,
33
+ multipart: Optional[Sequence[MultipartPart]] = None,
34
+ ) -> None:
35
+ self._json = json
36
+ self._multipart = list(multipart or [])
37
+
38
+ def to_dict(self) -> Any:
39
+ return self._json
40
+
41
+ def to_multipart(self) -> list[MultipartPart]:
42
+ return list(self._multipart)
43
+
44
+
45
+ class Wire:
46
+ """Stands in for a generated enum. Builders read `.value` and send it unchanged.
47
+
48
+ The server validates these strings, so the facade does not reject values that
49
+ the generated enums do not list.
50
+ """
51
+
52
+ __slots__ = ("value",)
53
+
54
+ def __init__(self, value: str) -> None:
55
+ self.value = value
56
+
57
+
58
+ def optional(value: Any) -> Any:
59
+ """Map an argument the caller left unset to the generator's UNSET sentinel."""
60
+ return UNSET if value is None else value
61
+
62
+
63
+ def optional_wire(value: Optional[str]) -> Any:
64
+ return UNSET if value is None else Wire(value)
@@ -6,7 +6,7 @@ import platform
6
6
  import sys
7
7
 
8
8
  SDK_LANGUAGE = "python"
9
- SDK_VERSION = "1.0.25"
9
+ SDK_VERSION = "1.0.27"
10
10
 
11
11
 
12
12
  def _detect_runtime() -> str:
@@ -11,11 +11,48 @@ from datetime import datetime, timezone
11
11
  from email.utils import parsedate_to_datetime
12
12
  from pathlib import Path
13
13
  from typing import Any, BinaryIO, Literal, Optional, Sequence, Union
14
- from urllib.parse import quote
15
14
 
16
15
  import httpx
17
16
 
18
17
  from openparser._files import to_upload_tuple
18
+ from openparser._generated.client import Client as GeneratedClient
19
+ from openparser._generated.api.extract import (
20
+ extract_async,
21
+ extract_batch,
22
+ extract_sync,
23
+ suggest_schema,
24
+ )
25
+ from openparser._generated.api.files import (
26
+ create_file,
27
+ delete_file,
28
+ get_file,
29
+ get_file_content,
30
+ )
31
+ from openparser._generated.api.jobs import (
32
+ complete_extraction_review,
33
+ get_extraction_review,
34
+ get_job,
35
+ get_job_result,
36
+ get_job_source,
37
+ list_jobs,
38
+ reopen_extraction_review,
39
+ update_extraction_review,
40
+ )
41
+ from openparser._generated.api.models import list_llm_models, list_ocr_models
42
+ from openparser._generated.api.parse import parse_async, parse_batch, parse_sync
43
+ from openparser._generated.api.pipelines import (
44
+ create_extraction_pipeline,
45
+ delete_extraction_pipeline,
46
+ get_extraction_pipeline,
47
+ list_extraction_pipelines,
48
+ update_extraction_pipeline,
49
+ )
50
+ from openparser._generated_requests import (
51
+ RawBody,
52
+ optional,
53
+ optional_wire,
54
+ Wire,
55
+ )
19
56
  from openparser._telemetry import build_telemetry_headers
20
57
  from openparser.errors import (
21
58
  OpenParserError,
@@ -27,7 +64,7 @@ DEFAULT_BASE_URL = "https://api.openparser.dev"
27
64
  DEFAULT_TIMEOUT_SECONDS = 300.0
28
65
  DEFAULT_POLL_INTERVAL_SECONDS = 2.0
29
66
  DEFAULT_WAIT_TIMEOUT_SECONDS = 300.0
30
- TERMINAL_JOB_STATUSES = frozenset({"succeeded", "failed", "indeterminate", "partial"})
67
+ TERMINAL_JOB_STATUSES = frozenset({"succeeded", "failed", "indeterminate"})
31
68
 
32
69
  FileInput = Union[Path, dict[str, Any], BinaryIO]
33
70
  ParseResultFormat = Literal["openparser@1", "raw"]
@@ -201,11 +238,16 @@ class OpenParserClient:
201
238
  ).rstrip("/")
202
239
  self.timeout_seconds = timeout_seconds
203
240
  self.max_retries = max_retries
204
- self._http = httpx.Client(
205
- base_url=self.base_url,
206
- timeout=timeout_seconds,
207
- headers=_headers(resolved_key, default_headers),
208
- **(httpx_args or {}),
241
+ # The generated client owns the httpx.Client. Retries stay in `_send`, so
242
+ # they apply the same way to every endpoint and keep httpx_args (TLS, proxies).
243
+ self._generated = GeneratedClient(base_url=self.base_url)
244
+ self._generated.set_httpx_client(
245
+ httpx.Client(
246
+ base_url=self.base_url,
247
+ timeout=timeout_seconds,
248
+ headers=_headers(resolved_key, default_headers),
249
+ **(httpx_args or {}),
250
+ )
209
251
  )
210
252
 
211
253
  self.parse = ParseResource(self)
@@ -216,7 +258,7 @@ class OpenParserClient:
216
258
  self.pipelines = PipelinesResource(self)
217
259
 
218
260
  def close(self) -> None:
219
- self._http.close()
261
+ self._generated.get_httpx_client().close()
220
262
 
221
263
  def __enter__(self) -> "OpenParserClient":
222
264
  return self
@@ -224,13 +266,13 @@ class OpenParserClient:
224
266
  def __exit__(self, *_: object) -> None:
225
267
  self.close()
226
268
 
227
- def _send_with_retries(
228
- self, method: str, url: str, **kwargs: Any
229
- ) -> httpx.Response:
230
- may_retry = _is_retryable_request(method, kwargs.get("headers"))
269
+ def _send(self, kwargs: dict[str, Any]) -> httpx.Response:
270
+ """Send a request built by a generated builder, retrying where the policy allows."""
271
+ http = self._generated.get_httpx_client()
272
+ may_retry = _is_retryable_request(kwargs["method"], kwargs.get("headers"))
231
273
  for attempt in range(self.max_retries + 1):
232
274
  try:
233
- response = self._http.request(method, url, **kwargs)
275
+ response = http.request(**kwargs)
234
276
  if (
235
277
  may_retry
236
278
  and _is_retriable(response.status_code)
@@ -252,11 +294,11 @@ class OpenParserClient:
252
294
 
253
295
  raise AssertionError("unreachable")
254
296
 
255
- def _request(self, method: str, url: str, **kwargs: Any) -> Any:
256
- return _check_response(self._send_with_retries(method, url, **kwargs))
297
+ def _request(self, kwargs: dict[str, Any]) -> Any:
298
+ return _check_response(self._send(kwargs))
257
299
 
258
- def _request_bytes(self, method: str, url: str, **kwargs: Any) -> bytes:
259
- response = self._send_with_retries(method, url, **kwargs)
300
+ def _request_bytes(self, kwargs: dict[str, Any]) -> bytes:
301
+ response = self._send(kwargs)
260
302
  if response.status_code >= 400:
261
303
  _check_response(response)
262
304
  return response.content
@@ -284,6 +326,23 @@ class OpenParserClient:
284
326
  )
285
327
 
286
328
 
329
+ def _multipart_submit(
330
+ root: OpenParserClient,
331
+ builder: Any,
332
+ parts: list[tuple[str, Any]],
333
+ idempotency_key: Optional[str],
334
+ ) -> Any:
335
+ kwargs = builder._get_kwargs(
336
+ body=RawBody(multipart=parts),
337
+ idempotency_key=_idempotency_key(idempotency_key),
338
+ )
339
+ return root._request(kwargs)
340
+
341
+
342
+ def _request_parts(request: dict[str, Any]) -> list[tuple[str, Any]]:
343
+ return [("request", (None, json.dumps(request), "application/json"))]
344
+
345
+
287
346
  class ParseResource:
288
347
  def __init__(self, root: OpenParserClient) -> None:
289
348
  self._root = root
@@ -295,9 +354,7 @@ class ParseResource:
295
354
  file: Optional[FileInput] = None,
296
355
  idempotency_key: Optional[str] = None,
297
356
  ) -> Any:
298
- return self._submit(
299
- "/parse", request, file=file, idempotency_key=idempotency_key
300
- )
357
+ return self._submit(parse_sync, request, file=file, idempotency_key=idempotency_key)
301
358
 
302
359
  def async_(
303
360
  self,
@@ -306,9 +363,7 @@ class ParseResource:
306
363
  file: Optional[FileInput] = None,
307
364
  idempotency_key: Optional[str] = None,
308
365
  ) -> Any:
309
- return self._submit(
310
- "/parse/async", request, file=file, idempotency_key=idempotency_key
311
- )
366
+ return self._submit(parse_async, request, file=file, idempotency_key=idempotency_key)
312
367
 
313
368
  def batch(
314
369
  self,
@@ -317,37 +372,22 @@ class ParseResource:
317
372
  files: Sequence[FileInput],
318
373
  idempotency_key: Optional[str] = None,
319
374
  ) -> Any:
320
- multipart: list[tuple[str, Any]] = [
321
- ("request", (None, json.dumps(request), "application/json")),
322
- ]
323
- for item in files:
324
- multipart.append(("files", to_upload_tuple(item)))
325
- return self._root._request(
326
- "POST",
327
- "/parse/batch",
328
- files=multipart,
329
- headers={"Idempotency-Key": _idempotency_key(idempotency_key)},
330
- )
375
+ parts = _request_parts(request)
376
+ parts.extend(("files", to_upload_tuple(item)) for item in files)
377
+ return _multipart_submit(self._root, parse_batch, parts, idempotency_key)
331
378
 
332
379
  def _submit(
333
380
  self,
334
- path: str,
381
+ builder: Any,
335
382
  request: dict[str, Any],
336
383
  *,
337
384
  file: Optional[FileInput],
338
385
  idempotency_key: Optional[str],
339
386
  ) -> Any:
340
- multipart: dict[str, Any] = {
341
- "request": (None, json.dumps(request), "application/json"),
342
- }
387
+ parts = _request_parts(request)
343
388
  if file is not None:
344
- multipart["file"] = to_upload_tuple(file)
345
- return self._root._request(
346
- "POST",
347
- path,
348
- files=multipart,
349
- headers={"Idempotency-Key": _idempotency_key(idempotency_key)},
350
- )
389
+ parts.append(("file", to_upload_tuple(file)))
390
+ return _multipart_submit(self._root, builder, parts, idempotency_key)
351
391
 
352
392
 
353
393
  class ExtractResource:
@@ -361,9 +401,7 @@ class ExtractResource:
361
401
  file: Optional[FileInput] = None,
362
402
  idempotency_key: Optional[str] = None,
363
403
  ) -> Any:
364
- return self._submit(
365
- "/extract", request, file=file, idempotency_key=idempotency_key
366
- )
404
+ return self._submit(extract_sync, request, file=file, idempotency_key=idempotency_key)
367
405
 
368
406
  def async_(
369
407
  self,
@@ -372,9 +410,7 @@ class ExtractResource:
372
410
  file: Optional[FileInput] = None,
373
411
  idempotency_key: Optional[str] = None,
374
412
  ) -> Any:
375
- return self._submit(
376
- "/extract/async", request, file=file, idempotency_key=idempotency_key
377
- )
413
+ return self._submit(extract_async, request, file=file, idempotency_key=idempotency_key)
378
414
 
379
415
  def batch(
380
416
  self,
@@ -383,40 +419,26 @@ class ExtractResource:
383
419
  files: Sequence[FileInput],
384
420
  idempotency_key: Optional[str] = None,
385
421
  ) -> Any:
386
- multipart: list[tuple[str, Any]] = [
387
- ("request", (None, json.dumps(request), "application/json")),
388
- ]
389
- for item in files:
390
- multipart.append(("files", to_upload_tuple(item)))
391
- return self._root._request(
392
- "POST",
393
- "/extract/batch",
394
- files=multipart,
395
- headers={"Idempotency-Key": _idempotency_key(idempotency_key)},
396
- )
422
+ parts = _request_parts(request)
423
+ parts.extend(("files", to_upload_tuple(item)) for item in files)
424
+ return _multipart_submit(self._root, extract_batch, parts, idempotency_key)
397
425
 
398
426
  def suggest_schema(self, body: dict[str, Any]) -> Any:
399
- return self._root._request("POST", "/suggest-schema", json=body)
427
+ kwargs = suggest_schema._get_kwargs(body=RawBody(json=body))
428
+ return self._root._request(kwargs)
400
429
 
401
430
  def _submit(
402
431
  self,
403
- path: str,
432
+ builder: Any,
404
433
  request: dict[str, Any],
405
434
  *,
406
435
  file: Optional[FileInput],
407
436
  idempotency_key: Optional[str],
408
437
  ) -> Any:
409
- multipart: dict[str, Any] = {
410
- "request": (None, json.dumps(request), "application/json"),
411
- }
438
+ parts = _request_parts(request)
412
439
  if file is not None:
413
- multipart["file"] = to_upload_tuple(file)
414
- return self._root._request(
415
- "POST",
416
- path,
417
- files=multipart,
418
- headers={"Idempotency-Key": _idempotency_key(idempotency_key)},
419
- )
440
+ parts.append(("file", to_upload_tuple(file)))
441
+ return _multipart_submit(self._root, builder, parts, idempotency_key)
420
442
 
421
443
 
422
444
  class JobsResource:
@@ -431,17 +453,13 @@ class JobsResource:
431
453
  status: Optional[str] = None,
432
454
  operation: Optional[str] = None,
433
455
  ) -> Any:
434
- params = {
435
- "cursor": cursor,
436
- "limit": limit,
437
- "status": status,
438
- "operation": operation,
439
- }
440
- return self._root._request(
441
- "GET",
442
- "/jobs",
443
- params={k: v for k, v in params.items() if v is not None} or None,
456
+ kwargs = list_jobs._get_kwargs(
457
+ cursor=optional(cursor),
458
+ limit=optional(limit),
459
+ status=optional_wire(status),
460
+ operation=optional_wire(operation),
444
461
  )
462
+ return self._root._request(kwargs)
445
463
 
446
464
  def get(
447
465
  self,
@@ -450,12 +468,10 @@ class JobsResource:
450
468
  cursor: Optional[str] = None,
451
469
  limit: Optional[int] = None,
452
470
  ) -> Any:
453
- params = {"cursor": cursor, "limit": limit}
454
- return self._root._request(
455
- "GET",
456
- f"/jobs/{quote(job_id, safe='')}",
457
- params={k: v for k, v in params.items() if v is not None} or None,
471
+ kwargs = get_job._get_kwargs(
472
+ job_id, cursor=optional(cursor), limit=optional(limit)
458
473
  )
474
+ return self._root._request(kwargs)
459
475
 
460
476
  def result(
461
477
  self,
@@ -463,43 +479,26 @@ class JobsResource:
463
479
  *,
464
480
  format: Optional[ParseResultFormat] = None,
465
481
  ) -> Any:
466
- params = {"format": format} if format is not None else None
467
- return self._root._request(
468
- "GET",
469
- f"/jobs/{quote(job_id, safe='')}/result",
470
- params=params,
471
- )
482
+ kwargs = get_job_result._get_kwargs(job_id, format_=optional_wire(format))
483
+ return self._root._request(kwargs)
472
484
 
473
485
  def source(self, job_id: str) -> bytes:
474
- return self._root._request_bytes(
475
- "GET", f"/jobs/{quote(job_id, safe='')}/source"
476
- )
486
+ return self._root._request_bytes(get_job_source._get_kwargs(job_id))
477
487
 
478
488
  def review(self, job_id: str) -> Any:
479
- return self._root._request(
480
- "GET", f"/jobs/{quote(job_id, safe='')}/review"
481
- )
489
+ return self._root._request(get_extraction_review._get_kwargs(job_id))
482
490
 
483
491
  def update_review(self, job_id: str, body: dict[str, Any]) -> Any:
484
- return self._root._request(
485
- "PATCH",
486
- f"/jobs/{quote(job_id, safe='')}/review",
487
- json=body,
488
- )
492
+ kwargs = update_extraction_review._get_kwargs(job_id, body=RawBody(json=body))
493
+ return self._root._request(kwargs)
489
494
 
490
495
  def complete_review(self, job_id: str, body: dict[str, Any]) -> Any:
491
- return self._root._request(
492
- "POST",
493
- f"/jobs/{quote(job_id, safe='')}/review/complete",
494
- json=body,
495
- )
496
+ kwargs = complete_extraction_review._get_kwargs(job_id, body=RawBody(json=body))
497
+ return self._root._request(kwargs)
496
498
 
497
499
  def reopen_review(self, job_id: str, body: dict[str, Any]) -> Any:
498
- return self._root._request(
499
- "POST",
500
- f"/jobs/{quote(job_id, safe='')}/review/reopen",
501
- json=body,
502
- )
500
+ kwargs = reopen_extraction_review._get_kwargs(job_id, body=RawBody(json=body))
501
+ return self._root._request(kwargs)
503
502
 
504
503
 
505
504
  class FilesResource:
@@ -507,20 +506,19 @@ class FilesResource:
507
506
  self._root = root
508
507
 
509
508
  def upload(self, file: FileInput) -> Any:
510
- return self._root._request(
511
- "POST", "/files", files={"file": to_upload_tuple(file)}
509
+ kwargs = create_file._get_kwargs(
510
+ body=RawBody(multipart=[("file", to_upload_tuple(file))])
512
511
  )
512
+ return self._root._request(kwargs)
513
513
 
514
514
  def get(self, file_id: str) -> Any:
515
- return self._root._request("GET", f"/files/{quote(file_id, safe='')}")
515
+ return self._root._request(get_file._get_kwargs(file_id))
516
516
 
517
517
  def download(self, file_id: str) -> bytes:
518
- return self._root._request_bytes(
519
- "GET", f"/files/{quote(file_id, safe='')}/content"
520
- )
518
+ return self._root._request_bytes(get_file_content._get_kwargs(file_id))
521
519
 
522
520
  def delete(self, file_id: str) -> Any:
523
- return self._root._request("DELETE", f"/files/{quote(file_id, safe='')}")
521
+ return self._root._request(delete_file._get_kwargs(file_id))
524
522
 
525
523
 
526
524
  class ModelsResource:
@@ -528,7 +526,7 @@ class ModelsResource:
528
526
  self._root = root
529
527
 
530
528
  def list_ocr(self) -> Any:
531
- return self._root._request("GET", "/models/ocr")
529
+ return self._root._request(list_ocr_models._get_kwargs())
532
530
 
533
531
  def list_llm(
534
532
  self,
@@ -538,12 +536,13 @@ class ModelsResource:
538
536
  page: Optional[int] = None,
539
537
  limit: Optional[int] = None,
540
538
  ) -> Any:
541
- params = {"mode": mode, "q": q, "page": page, "limit": limit}
542
- return self._root._request(
543
- "GET",
544
- "/models/llm",
545
- params={k: v for k, v in params.items() if v is not None} or None,
539
+ kwargs = list_llm_models._get_kwargs(
540
+ mode=Wire(mode),
541
+ q=optional(q),
542
+ page=optional(page),
543
+ limit=optional(limit),
546
544
  )
545
+ return self._root._request(kwargs)
547
546
 
548
547
 
549
548
  class PipelinesResource:
@@ -551,22 +550,20 @@ class PipelinesResource:
551
550
  self._root = root
552
551
 
553
552
  def list(self) -> Any:
554
- return self._root._request("GET", "/pipelines")
553
+ return self._root._request(list_extraction_pipelines._get_kwargs())
555
554
 
556
555
  def get(self, pipeline_id: str) -> Any:
557
- return self._root._request("GET", f"/pipelines/{quote(pipeline_id, safe='')}")
556
+ return self._root._request(get_extraction_pipeline._get_kwargs(pipeline_id))
558
557
 
559
558
  def create(self, body: dict[str, Any]) -> Any:
560
- return self._root._request("POST", "/pipelines", json=body)
559
+ kwargs = create_extraction_pipeline._get_kwargs(body=RawBody(json=body))
560
+ return self._root._request(kwargs)
561
561
 
562
562
  def update(self, pipeline_id: str, body: dict[str, Any]) -> Any:
563
- return self._root._request(
564
- "PATCH",
565
- f"/pipelines/{quote(pipeline_id, safe='')}",
566
- json=body,
563
+ kwargs = update_extraction_pipeline._get_kwargs(
564
+ pipeline_id, body=RawBody(json=body)
567
565
  )
566
+ return self._root._request(kwargs)
568
567
 
569
568
  def delete(self, pipeline_id: str) -> Any:
570
- return self._root._request(
571
- "DELETE", f"/pipelines/{quote(pipeline_id, safe='')}"
572
- )
569
+ return self._root._request(delete_extraction_pipeline._get_kwargs(pipeline_id))