mindee-lite 5.0.0.beta1
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.
- checksums.yaml +7 -0
- data/.editorconfig +24 -0
- data/.gitattributes +14 -0
- data/.gitignore +76 -0
- data/.gitmodules +3 -0
- data/.pre-commit-config.yaml +36 -0
- data/.rubocop.yml +49 -0
- data/.yardopts +4 -0
- data/CHANGELOG.md +515 -0
- data/CODE_OF_CONDUCT.md +129 -0
- data/CONTRIBUTING.md +107 -0
- data/Gemfile +14 -0
- data/LICENSE +21 -0
- data/README.md +42 -0
- data/Rakefile +40 -0
- data/Steepfile +30 -0
- data/bin/console +14 -0
- data/bin/mindee.rb +30 -0
- data/bin/v1/parser.rb +153 -0
- data/bin/v1/products.rb +88 -0
- data/bin/v2/parser.rb +235 -0
- data/bin/v2/products.rb +34 -0
- data/docs/code_samples/bank_account_details_v1.txt +24 -0
- data/docs/code_samples/bank_account_details_v2.txt +24 -0
- data/docs/code_samples/bank_statement_fr_v2_async.txt +24 -0
- data/docs/code_samples/barcode_reader_v1.txt +24 -0
- data/docs/code_samples/cropper_v1.txt +21 -0
- data/docs/code_samples/default.txt +30 -0
- data/docs/code_samples/default_async.txt +29 -0
- data/docs/code_samples/expense_receipts_v5.txt +25 -0
- data/docs/code_samples/expense_receipts_v5_async.txt +24 -0
- data/docs/code_samples/financial_document_v1.txt +25 -0
- data/docs/code_samples/financial_document_v1_async.txt +24 -0
- data/docs/code_samples/idcard_fr_v1.txt +24 -0
- data/docs/code_samples/idcard_fr_v2.txt +24 -0
- data/docs/code_samples/international_id_v2_async.txt +24 -0
- data/docs/code_samples/invoice_splitter_v1_async.txt +24 -0
- data/docs/code_samples/invoices_v4.txt +25 -0
- data/docs/code_samples/invoices_v4_async.txt +24 -0
- data/docs/code_samples/multi_receipts_detector_v1.txt +24 -0
- data/docs/code_samples/passport_v1.txt +24 -0
- data/docs/code_samples/resume_v1_async.txt +24 -0
- data/docs/code_samples/v2_classification.txt +30 -0
- data/docs/code_samples/v2_crop.txt +30 -0
- data/docs/code_samples/v2_extraction.txt +42 -0
- data/docs/code_samples/v2_extraction_webhook.txt +45 -0
- data/docs/code_samples/v2_ocr.txt +30 -0
- data/docs/code_samples/v2_split.txt +30 -0
- data/docs/code_samples/workflow_execution.txt +28 -0
- data/docs/code_samples/workflow_polling.txt +35 -0
- data/examples/auto_invoice_splitter_extraction.rb +48 -0
- data/examples/auto_multi_receipts_detector_extraction.rb +30 -0
- data/lib/mindee/dependency.rb +29 -0
- data/lib/mindee/error/mindee_error.rb +17 -0
- data/lib/mindee/error/mindee_http_error.rb +36 -0
- data/lib/mindee/error/mindee_http_error_v2.rb +45 -0
- data/lib/mindee/error/mindee_http_unknown_error_v2.rb +18 -0
- data/lib/mindee/error/mindee_input_error.rb +30 -0
- data/lib/mindee/error.rb +6 -0
- data/lib/mindee/geometry/min_max.rb +23 -0
- data/lib/mindee/geometry/point.rb +41 -0
- data/lib/mindee/geometry/polygon.rb +37 -0
- data/lib/mindee/geometry/quadrilateral.rb +50 -0
- data/lib/mindee/geometry/utils.rb +88 -0
- data/lib/mindee/geometry.rb +7 -0
- data/lib/mindee/http/.rubocop.yml +7 -0
- data/lib/mindee/http/http_error_handler.rb +106 -0
- data/lib/mindee/http/response_validation.rb +81 -0
- data/lib/mindee/http.rb +3 -0
- data/lib/mindee/image/extracted_image.rb +89 -0
- data/lib/mindee/image/image_compressor.rb +29 -0
- data/lib/mindee/image/image_extractor.rb +118 -0
- data/lib/mindee/image/image_utils.rb +165 -0
- data/lib/mindee/image.rb +6 -0
- data/lib/mindee/input/base_parameters.rb +149 -0
- data/lib/mindee/input/local_response.rb +80 -0
- data/lib/mindee/input/polling_options.rb +26 -0
- data/lib/mindee/input/sources/base64_input_source.rb +31 -0
- data/lib/mindee/input/sources/bytes_input_source.rb +21 -0
- data/lib/mindee/input/sources/file_input_source.rb +20 -0
- data/lib/mindee/input/sources/local_input_source.rb +216 -0
- data/lib/mindee/input/sources/path_input_source.rb +20 -0
- data/lib/mindee/input/sources/url_input_source.rb +130 -0
- data/lib/mindee/input/sources.rb +8 -0
- data/lib/mindee/input.rb +4 -0
- data/lib/mindee/logging/logger.rb +24 -0
- data/lib/mindee/logging.rb +3 -0
- data/lib/mindee/page_options.rb +24 -0
- data/lib/mindee/pdf/extracted_pdf.rb +70 -0
- data/lib/mindee/pdf/pdf_compressor.rb +121 -0
- data/lib/mindee/pdf/pdf_extractor.rb +121 -0
- data/lib/mindee/pdf/pdf_processor.rb +91 -0
- data/lib/mindee/pdf/pdf_tools.rb +201 -0
- data/lib/mindee/pdf.rb +7 -0
- data/lib/mindee/v1/client.rb +490 -0
- data/lib/mindee/v1/extraction/multi_receipts_extractor.rb +32 -0
- data/lib/mindee/v1/extraction.rb +3 -0
- data/lib/mindee/v1/http/.rubocop.yml +7 -0
- data/lib/mindee/v1/http/endpoint.rb +221 -0
- data/lib/mindee/v1/http/workflow_endpoint.rb +93 -0
- data/lib/mindee/v1/http.rb +4 -0
- data/lib/mindee/v1/parsing/common/api_request.rb +38 -0
- data/lib/mindee/v1/parsing/common/api_response.rb +63 -0
- data/lib/mindee/v1/parsing/common/document.rb +86 -0
- data/lib/mindee/v1/parsing/common/execution.rb +78 -0
- data/lib/mindee/v1/parsing/common/execution_file.rb +26 -0
- data/lib/mindee/v1/parsing/common/execution_priority.rb +38 -0
- data/lib/mindee/v1/parsing/common/extras/cropper_extra.rb +32 -0
- data/lib/mindee/v1/parsing/common/extras/extras.rb +62 -0
- data/lib/mindee/v1/parsing/common/extras/full_text_ocr_extra.rb +35 -0
- data/lib/mindee/v1/parsing/common/extras/rag_extra.rb +28 -0
- data/lib/mindee/v1/parsing/common/extras.rb +6 -0
- data/lib/mindee/v1/parsing/common/inference.rb +69 -0
- data/lib/mindee/v1/parsing/common/job.rb +48 -0
- data/lib/mindee/v1/parsing/common/ocr/mvision_v1.rb +52 -0
- data/lib/mindee/v1/parsing/common/ocr/ocr.rb +180 -0
- data/lib/mindee/v1/parsing/common/ocr.rb +3 -0
- data/lib/mindee/v1/parsing/common/orientation.rb +28 -0
- data/lib/mindee/v1/parsing/common/page.rb +49 -0
- data/lib/mindee/v1/parsing/common/prediction.rb +19 -0
- data/lib/mindee/v1/parsing/common/product.rb +26 -0
- data/lib/mindee/v1/parsing/common/workflow_response.rb +30 -0
- data/lib/mindee/v1/parsing/common.rb +15 -0
- data/lib/mindee/v1/parsing/standard/abstract_field.rb +74 -0
- data/lib/mindee/v1/parsing/standard/address_field.rb +51 -0
- data/lib/mindee/v1/parsing/standard/amount_field.rb +28 -0
- data/lib/mindee/v1/parsing/standard/base_field.rb +30 -0
- data/lib/mindee/v1/parsing/standard/boolean_field.rb +29 -0
- data/lib/mindee/v1/parsing/standard/classification_field.rb +18 -0
- data/lib/mindee/v1/parsing/standard/company_registration_field.rb +45 -0
- data/lib/mindee/v1/parsing/standard/date_field.rb +40 -0
- data/lib/mindee/v1/parsing/standard/feature_field.rb +26 -0
- data/lib/mindee/v1/parsing/standard/locale_field.rb +52 -0
- data/lib/mindee/v1/parsing/standard/payment_details_field.rb +44 -0
- data/lib/mindee/v1/parsing/standard/position_field.rb +61 -0
- data/lib/mindee/v1/parsing/standard/string_field.rb +26 -0
- data/lib/mindee/v1/parsing/standard/tax_field.rb +110 -0
- data/lib/mindee/v1/parsing/standard.rb +15 -0
- data/lib/mindee/v1/parsing/universal/universal_list_field.rb +60 -0
- data/lib/mindee/v1/parsing/universal/universal_object_field.rb +123 -0
- data/lib/mindee/v1/parsing/universal.rb +4 -0
- data/lib/mindee/v1/parsing.rb +5 -0
- data/lib/mindee/v1/product/.rubocop.yml +12 -0
- data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1.rb +47 -0
- data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rb +47 -0
- data/lib/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rb +38 -0
- data/lib/mindee/v1/product/cropper/cropper_v1.rb +47 -0
- data/lib/mindee/v1/product/cropper/cropper_v1_document.rb +15 -0
- data/lib/mindee/v1/product/cropper/cropper_v1_page.rb +55 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1.rb +47 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_document.rb +329 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_line_item.rb +124 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_line_items.rb +64 -0
- data/lib/mindee/v1/product/financial_document/financial_document_v1_page.rb +38 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rb +40 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rb +63 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rb +60 -0
- data/lib/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rb +40 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2.rb +49 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rb +169 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rb +40 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rb +78 -0
- data/lib/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rb +56 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v1.rb +49 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v1_document.rb +106 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v1_page.rb +57 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v2.rb +49 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v2_document.rb +143 -0
- data/lib/mindee/v1/product/fr/id_card/id_card_v2_page.rb +65 -0
- data/lib/mindee/v1/product/international_id/international_id_v2.rb +47 -0
- data/lib/mindee/v1/product/international_id/international_id_v2_document.rb +164 -0
- data/lib/mindee/v1/product/international_id/international_id_v2_page.rb +38 -0
- data/lib/mindee/v1/product/invoice/invoice_v4.rb +47 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_document.rb +300 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_line_item.rb +124 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_line_items.rb +64 -0
- data/lib/mindee/v1/product/invoice/invoice_v4_page.rb +38 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rb +47 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rb +66 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rb +58 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rb +50 -0
- data/lib/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rb +38 -0
- data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rb +47 -0
- data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rb +38 -0
- data/lib/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rb +38 -0
- data/lib/mindee/v1/product/passport/passport_v1.rb +47 -0
- data/lib/mindee/v1/product/passport/passport_v1_document.rb +112 -0
- data/lib/mindee/v1/product/passport/passport_v1_page.rb +38 -0
- data/lib/mindee/v1/product/receipt/receipt_v5.rb +47 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_document.rb +187 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_line_item.rb +88 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_line_items.rb +56 -0
- data/lib/mindee/v1/product/receipt/receipt_v5_page.rb +38 -0
- data/lib/mindee/v1/product/resume/resume_v1.rb +47 -0
- data/lib/mindee/v1/product/resume/resume_v1_certificate.rb +82 -0
- data/lib/mindee/v1/product/resume/resume_v1_certificates.rb +60 -0
- data/lib/mindee/v1/product/resume/resume_v1_document.rb +340 -0
- data/lib/mindee/v1/product/resume/resume_v1_education.rb +106 -0
- data/lib/mindee/v1/product/resume/resume_v1_educations.rb +66 -0
- data/lib/mindee/v1/product/resume/resume_v1_language.rb +66 -0
- data/lib/mindee/v1/product/resume/resume_v1_languages.rb +56 -0
- data/lib/mindee/v1/product/resume/resume_v1_page.rb +38 -0
- data/lib/mindee/v1/product/resume/resume_v1_professional_experience.rb +122 -0
- data/lib/mindee/v1/product/resume/resume_v1_professional_experiences.rb +70 -0
- data/lib/mindee/v1/product/resume/resume_v1_social_networks_url.rb +66 -0
- data/lib/mindee/v1/product/resume/resume_v1_social_networks_urls.rb +56 -0
- data/lib/mindee/v1/product/universal/universal.rb +48 -0
- data/lib/mindee/v1/product/universal/universal_document.rb +35 -0
- data/lib/mindee/v1/product/universal/universal_page.rb +54 -0
- data/lib/mindee/v1/product/universal/universal_prediction.rb +128 -0
- data/lib/mindee/v1/product.rb +18 -0
- data/lib/mindee/v1.rb +7 -0
- data/lib/mindee/v2/client.rb +132 -0
- data/lib/mindee/v2/file_operation/crop.rb +51 -0
- data/lib/mindee/v2/file_operation/crop_files.rb +25 -0
- data/lib/mindee/v2/file_operation/split.rb +37 -0
- data/lib/mindee/v2/file_operation/split_files.rb +25 -0
- data/lib/mindee/v2/file_operation.rb +6 -0
- data/lib/mindee/v2/http/.rubocop.yml +7 -0
- data/lib/mindee/v2/http/api_v2_settings.rb +65 -0
- data/lib/mindee/v2/http/mindee_api_v2.rb +230 -0
- data/lib/mindee/v2/http.rb +4 -0
- data/lib/mindee/v2/parsing/base_inference.rb +44 -0
- data/lib/mindee/v2/parsing/base_response.rb +15 -0
- data/lib/mindee/v2/parsing/common_response.rb +20 -0
- data/lib/mindee/v2/parsing/error_item.rb +21 -0
- data/lib/mindee/v2/parsing/error_response.rb +51 -0
- data/lib/mindee/v2/parsing/field/base_field.rb +63 -0
- data/lib/mindee/v2/parsing/field/field_confidence.rb +128 -0
- data/lib/mindee/v2/parsing/field/field_location.rb +33 -0
- data/lib/mindee/v2/parsing/field/inference_fields.rb +105 -0
- data/lib/mindee/v2/parsing/field/list_field.rb +79 -0
- data/lib/mindee/v2/parsing/field/object_field.rb +138 -0
- data/lib/mindee/v2/parsing/field/simple_field.rb +60 -0
- data/lib/mindee/v2/parsing/field.rb +9 -0
- data/lib/mindee/v2/parsing/inference_active_options.rb +67 -0
- data/lib/mindee/v2/parsing/inference_file.rb +38 -0
- data/lib/mindee/v2/parsing/inference_job.rb +25 -0
- data/lib/mindee/v2/parsing/inference_model.rb +30 -0
- data/lib/mindee/v2/parsing/job.rb +93 -0
- data/lib/mindee/v2/parsing/job_response.rb +30 -0
- data/lib/mindee/v2/parsing/job_webhook.rb +59 -0
- data/lib/mindee/v2/parsing/rag_metadata.rb +17 -0
- data/lib/mindee/v2/parsing/raw_text.rb +27 -0
- data/lib/mindee/v2/parsing/raw_text_page.rb +24 -0
- data/lib/mindee/v2/parsing/search/pagination_metadata.rb +44 -0
- data/lib/mindee/v2/parsing/search/search_model.rb +38 -0
- data/lib/mindee/v2/parsing/search/search_models.rb +34 -0
- data/lib/mindee/v2/parsing/search/search_response.rb +38 -0
- data/lib/mindee/v2/parsing/search.rb +6 -0
- data/lib/mindee/v2/parsing.rb +16 -0
- data/lib/mindee/v2/product/base_product.rb +28 -0
- data/lib/mindee/v2/product/classification/classification.rb +20 -0
- data/lib/mindee/v2/product/classification/classification_classifier.rb +25 -0
- data/lib/mindee/v2/product/classification/classification_inference.rb +35 -0
- data/lib/mindee/v2/product/classification/classification_response.rb +32 -0
- data/lib/mindee/v2/product/classification/classification_result.rb +27 -0
- data/lib/mindee/v2/product/classification/params/classification_parameters.rb +47 -0
- data/lib/mindee/v2/product/crop/crop.rb +20 -0
- data/lib/mindee/v2/product/crop/crop_inference.rb +34 -0
- data/lib/mindee/v2/product/crop/crop_item.rb +39 -0
- data/lib/mindee/v2/product/crop/crop_response.rb +40 -0
- data/lib/mindee/v2/product/crop/crop_result.rb +34 -0
- data/lib/mindee/v2/product/crop/params/crop_parameters.rb +47 -0
- data/lib/mindee/v2/product/extraction/extraction.rb +21 -0
- data/lib/mindee/v2/product/extraction/extraction_inference.rb +40 -0
- data/lib/mindee/v2/product/extraction/extraction_response.rb +32 -0
- data/lib/mindee/v2/product/extraction/extraction_result.rb +44 -0
- data/lib/mindee/v2/product/extraction/params/data_schema.rb +51 -0
- data/lib/mindee/v2/product/extraction/params/data_schema_field.rb +69 -0
- data/lib/mindee/v2/product/extraction/params/data_schema_replace.rb +39 -0
- data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +125 -0
- data/lib/mindee/v2/product/ocr/ocr.rb +20 -0
- data/lib/mindee/v2/product/ocr/ocr_inference.rb +34 -0
- data/lib/mindee/v2/product/ocr/ocr_page.rb +33 -0
- data/lib/mindee/v2/product/ocr/ocr_response.rb +32 -0
- data/lib/mindee/v2/product/ocr/ocr_result.rb +34 -0
- data/lib/mindee/v2/product/ocr/ocr_word.rb +29 -0
- data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +47 -0
- data/lib/mindee/v2/product/split/params/split_parameters.rb +48 -0
- data/lib/mindee/v2/product/split/split.rb +19 -0
- data/lib/mindee/v2/product/split/split_inference.rb +34 -0
- data/lib/mindee/v2/product/split/split_range.rb +38 -0
- data/lib/mindee/v2/product/split/split_response.rb +40 -0
- data/lib/mindee/v2/product/split/split_result.rb +34 -0
- data/lib/mindee/v2/product.rb +7 -0
- data/lib/mindee/v2.rb +7 -0
- data/lib/mindee/version.rb +26 -0
- data/lib/mindee.rb +135 -0
- data/mindee-lite.gemspec +36 -0
- data/mindee.gemspec +44 -0
- data/sig/custom/marcel.rbs +3 -0
- data/sig/custom/mini_magick.rbs +31 -0
- data/sig/custom/net_http.rbs +43 -0
- data/sig/custom/origami.rbs +59 -0
- data/sig/mindee/dependency.rbs +13 -0
- data/sig/mindee/error/mindee_error.rbs +13 -0
- data/sig/mindee/error/mindee_http_error.rbs +17 -0
- data/sig/mindee/error/mindee_http_error_v2.rbs +15 -0
- data/sig/mindee/error/mindee_http_unknown_error_v2.rbs +9 -0
- data/sig/mindee/error/mindee_input_error.rbs +18 -0
- data/sig/mindee/geometry/min_max.rbs +11 -0
- data/sig/mindee/geometry/point.rbs +14 -0
- data/sig/mindee/geometry/polygon.rbs +12 -0
- data/sig/mindee/geometry/quadrilateral.rbs +15 -0
- data/sig/mindee/geometry/utils.rbs +13 -0
- data/sig/mindee/http/http_error_handler.rbs +15 -0
- data/sig/mindee/http/response_validation.rbs +11 -0
- data/sig/mindee/image/extracted_image.rbs +21 -0
- data/sig/mindee/image/image_compressor.rbs +8 -0
- data/sig/mindee/image/image_extractor.rbs +13 -0
- data/sig/mindee/image/image_utils.rbs +19 -0
- data/sig/mindee/input/base_parameters.rbs +35 -0
- data/sig/mindee/input/local_response.rbs +14 -0
- data/sig/mindee/input/polling_options.rbs +12 -0
- data/sig/mindee/input/sources/base64_input_source.rbs +11 -0
- data/sig/mindee/input/sources/bytes_input_source.rbs +10 -0
- data/sig/mindee/input/sources/file_input_source.rbs +10 -0
- data/sig/mindee/input/sources/local_input_source.rbs +30 -0
- data/sig/mindee/input/sources/path_input_source.rbs +10 -0
- data/sig/mindee/input/sources/url_input_source.rbs +20 -0
- data/sig/mindee/logging/logger.rbs +11 -0
- data/sig/mindee/page_options.rbs +11 -0
- data/sig/mindee/pdf/extracted_pdf.rbs +17 -0
- data/sig/mindee/pdf/pdf_compressor.rbs +15 -0
- data/sig/mindee/pdf/pdf_extractor.rbs +19 -0
- data/sig/mindee/pdf/pdf_processor.rbs +12 -0
- data/sig/mindee/pdf/pdf_tools.rbs +31 -0
- data/sig/mindee/v1/client.rbs +84 -0
- data/sig/mindee/v1/extraction/multi_receipts_extractor.rbs +8 -0
- data/sig/mindee/v1/http/endpoint.rbs +41 -0
- data/sig/mindee/v1/http/workflow_endpoint.rbs +22 -0
- data/sig/mindee/v1/parsing/common/api_request.rbs +22 -0
- data/sig/mindee/v1/parsing/common/api_response.rbs +31 -0
- data/sig/mindee/v1/parsing/common/document.rbs +32 -0
- data/sig/mindee/v1/parsing/common/execution.rbs +26 -0
- data/sig/mindee/v1/parsing/common/execution_file.rbs +16 -0
- data/sig/mindee/v1/parsing/common/execution_priority.rbs +16 -0
- data/sig/mindee/v1/parsing/common/extras/cropper_extra.rbs +18 -0
- data/sig/mindee/v1/parsing/common/extras/extras.rbs +24 -0
- data/sig/mindee/v1/parsing/common/extras/full_text_ocr_extra.rbs +22 -0
- data/sig/mindee/v1/parsing/common/extras/rag_extra.rbs +19 -0
- data/sig/mindee/v1/parsing/common/inference.rbs +31 -0
- data/sig/mindee/v1/parsing/common/job.rbs +24 -0
- data/sig/mindee/v1/parsing/common/ocr/mvision_v1.rbs +20 -0
- data/sig/mindee/v1/parsing/common/ocr/ocr.rbs +56 -0
- data/sig/mindee/v1/parsing/common/orientation.rbs +15 -0
- data/sig/mindee/v1/parsing/common/page.rbs +19 -0
- data/sig/mindee/v1/parsing/common/prediction.rbs +14 -0
- data/sig/mindee/v1/parsing/common/product.rbs +16 -0
- data/sig/mindee/v1/parsing/common/workflow_response.rbs +22 -0
- data/sig/mindee/v1/parsing/standard/abstract_field.rbs +30 -0
- data/sig/mindee/v1/parsing/standard/address_field.rbs +28 -0
- data/sig/mindee/v1/parsing/standard/amount_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/base_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/boolean_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/classification_field.rbs +12 -0
- data/sig/mindee/v1/parsing/standard/company_registration_field.rbs +20 -0
- data/sig/mindee/v1/parsing/standard/date_field.rbs +20 -0
- data/sig/mindee/v1/parsing/standard/feature_field.rbs +12 -0
- data/sig/mindee/v1/parsing/standard/locale_field.rbs +24 -0
- data/sig/mindee/v1/parsing/standard/payment_details_field.rbs +19 -0
- data/sig/mindee/v1/parsing/standard/position_field.rbs +26 -0
- data/sig/mindee/v1/parsing/standard/string_field.rbs +16 -0
- data/sig/mindee/v1/parsing/standard/tax_field.rbs +33 -0
- data/sig/mindee/v1/parsing/universal/universal_list_field.rbs +21 -0
- data/sig/mindee/v1/parsing/universal/universal_object_field.rbs +38 -0
- data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1.rbs +13 -0
- data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_document.rbs +16 -0
- data/sig/mindee/v1/product/barcode_reader/barcode_reader_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/cropper/cropper_v1.rbs +13 -0
- data/sig/mindee/v1/product/cropper/cropper_v1_document.rbs +14 -0
- data/sig/mindee/v1/product/cropper/cropper_v1_page.rbs +19 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1.rbs +13 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_document.rbs +49 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_line_item.rbs +35 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_line_items.rbs +15 -0
- data/sig/mindee/v1/product/financial_document/financial_document_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1.rbs +15 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_document.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v1_page.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2.rbs +15 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_bban.rbs +25 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_document.rbs +20 -0
- data/sig/mindee/v1/product/fr/bank_account_details/bank_account_details_v2_page.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2.rbs +15 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_document.rbs +31 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_page.rbs +19 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transaction.rbs +27 -0
- data/sig/mindee/v1/product/fr/bank_statement/bank_statement_v2_transactions.rbs +17 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v1.rbs +15 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v1_document.rbs +26 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v1_page.rbs +20 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v2.rbs +15 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v2_document.rbs +31 -0
- data/sig/mindee/v1/product/fr/id_card/id_card_v2_page.rbs +21 -0
- data/sig/mindee/v1/product/international_id/international_id_v2.rbs +13 -0
- data/sig/mindee/v1/product/international_id/international_id_v2_document.rbs +31 -0
- data/sig/mindee/v1/product/international_id/international_id_v2_page.rbs +17 -0
- data/sig/mindee/v1/product/invoice/invoice_v4.rbs +13 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_document.rbs +45 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_line_item.rbs +35 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_line_items.rbs +15 -0
- data/sig/mindee/v1/product/invoice/invoice_v4_page.rbs +17 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1.rbs +13 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_document.rbs +17 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_group.rbs +21 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_invoice_page_groups.rbs +15 -0
- data/sig/mindee/v1/product/invoice_splitter/invoice_splitter_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1.rbs +14 -0
- data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_document.rbs +15 -0
- data/sig/mindee/v1/product/multi_receipts_detector/multi_receipts_detector_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/passport/passport_v1.rbs +13 -0
- data/sig/mindee/v1/product/passport/passport_v1_document.rbs +25 -0
- data/sig/mindee/v1/product/passport/passport_v1_page.rbs +17 -0
- data/sig/mindee/v1/product/receipt/receipt_v5.rbs +13 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_document.rbs +33 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_line_item.rbs +27 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_line_items.rbs +15 -0
- data/sig/mindee/v1/product/receipt/receipt_v5_page.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1.rbs +13 -0
- data/sig/mindee/v1/product/resume/resume_v1_certificate.rbs +27 -0
- data/sig/mindee/v1/product/resume/resume_v1_certificates.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_document.rbs +69 -0
- data/sig/mindee/v1/product/resume/resume_v1_education.rbs +33 -0
- data/sig/mindee/v1/product/resume/resume_v1_educations.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_language.rbs +23 -0
- data/sig/mindee/v1/product/resume/resume_v1_languages.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_page.rbs +19 -0
- data/sig/mindee/v1/product/resume/resume_v1_professional_experience.rbs +37 -0
- data/sig/mindee/v1/product/resume/resume_v1_professional_experiences.rbs +17 -0
- data/sig/mindee/v1/product/resume/resume_v1_social_networks_url.rbs +23 -0
- data/sig/mindee/v1/product/resume/resume_v1_social_networks_urls.rbs +17 -0
- data/sig/mindee/v1/product/universal/universal.rbs +16 -0
- data/sig/mindee/v1/product/universal/universal_document.rbs +12 -0
- data/sig/mindee/v1/product/universal/universal_page.rbs +18 -0
- data/sig/mindee/v1/product/universal/universal_prediction.rbs +30 -0
- data/sig/mindee/v2/client.rbs +29 -0
- data/sig/mindee/v2/file_operation/crop.rbs +10 -0
- data/sig/mindee/v2/file_operation/crop_files.rbs +9 -0
- data/sig/mindee/v2/file_operation/split.rbs +11 -0
- data/sig/mindee/v2/file_operation/split_files.rbs +9 -0
- data/sig/mindee/v2/http/api_v2_settings.rbs +27 -0
- data/sig/mindee/v2/http/mindee_api_v2.rbs +52 -0
- data/sig/mindee/v2/parsing/base_inference.rbs +18 -0
- data/sig/mindee/v2/parsing/base_response.rbs +11 -0
- data/sig/mindee/v2/parsing/common_response.rbs +12 -0
- data/sig/mindee/v2/parsing/error_item.rbs +13 -0
- data/sig/mindee/v2/parsing/error_response.rbs +20 -0
- data/sig/mindee/v2/parsing/field/base_field.rbs +17 -0
- data/sig/mindee/v2/parsing/field/field_confidence.rbs +30 -0
- data/sig/mindee/v2/parsing/field/field_location.rbs +16 -0
- data/sig/mindee/v2/parsing/field/inference_fields.rbs +20 -0
- data/sig/mindee/v2/parsing/field/list_field.rbs +23 -0
- data/sig/mindee/v2/parsing/field/object_field.rbs +27 -0
- data/sig/mindee/v2/parsing/field/simple_field.rbs +16 -0
- data/sig/mindee/v2/parsing/inference_active_options.rbs +26 -0
- data/sig/mindee/v2/parsing/inference_file.rbs +17 -0
- data/sig/mindee/v2/parsing/inference_job.rbs +13 -0
- data/sig/mindee/v2/parsing/inference_model.rbs +12 -0
- data/sig/mindee/v2/parsing/job.rbs +24 -0
- data/sig/mindee/v2/parsing/job_response.rbs +14 -0
- data/sig/mindee/v2/parsing/job_webhook.rbs +19 -0
- data/sig/mindee/v2/parsing/rag_metadata.rbs +13 -0
- data/sig/mindee/v2/parsing/raw_text.rbs +12 -0
- data/sig/mindee/v2/parsing/raw_text_page.rbs +11 -0
- data/sig/mindee/v2/parsing/search/pagination_metadata.rbs +20 -0
- data/sig/mindee/v2/parsing/search/search_model.rbs +19 -0
- data/sig/mindee/v2/parsing/search/search_response.rbs +17 -0
- data/sig/mindee/v2/parsing/search_models.rbs +14 -0
- data/sig/mindee/v2/product/base_product.rbs +19 -0
- data/sig/mindee/v2/product/classification/classification.rbs +10 -0
- data/sig/mindee/v2/product/classification/classification_classifier.rbs +15 -0
- data/sig/mindee/v2/product/classification/classification_inference.rbs +15 -0
- data/sig/mindee/v2/product/classification/classification_response.rbs +23 -0
- data/sig/mindee/v2/product/classification/classification_result.rbs +15 -0
- data/sig/mindee/v2/product/classification/params/classification_parameters/classification_parameters.rbs +23 -0
- data/sig/mindee/v2/product/crop/crop.rbs +10 -0
- data/sig/mindee/v2/product/crop/crop_inference.rbs +14 -0
- data/sig/mindee/v2/product/crop/crop_item.rbs +18 -0
- data/sig/mindee/v2/product/crop/crop_response.rbs +25 -0
- data/sig/mindee/v2/product/crop/crop_result.rbs +14 -0
- data/sig/mindee/v2/product/crop/params/crop_parameters/crop_parameters.rbs +23 -0
- data/sig/mindee/v2/product/extraction/extraction.rbs +15 -0
- data/sig/mindee/v2/product/extraction/extraction_inference.rbs +19 -0
- data/sig/mindee/v2/product/extraction/extraction_response.rbs +24 -0
- data/sig/mindee/v2/product/extraction/extraction_result.rbs +18 -0
- data/sig/mindee/v2/product/extraction/params/data_schema.rbs +21 -0
- data/sig/mindee/v2/product/extraction/params/data_schema_field.rbs +29 -0
- data/sig/mindee/v2/product/extraction/params/data_schema_replace.rbs +21 -0
- data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +38 -0
- data/sig/mindee/v2/product/ocr/ocr.rbs +10 -0
- data/sig/mindee/v2/product/ocr/ocr_inference.rbs +14 -0
- data/sig/mindee/v2/product/ocr/ocr_page.rbs +15 -0
- data/sig/mindee/v2/product/ocr/ocr_response.rbs +23 -0
- data/sig/mindee/v2/product/ocr/ocr_result.rbs +14 -0
- data/sig/mindee/v2/product/ocr/ocr_word.rbs +15 -0
- data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +24 -0
- data/sig/mindee/v2/product/split/params/split_parameters/split_parameters.rbs +23 -0
- data/sig/mindee/v2/product/split/split.rbs +10 -0
- data/sig/mindee/v2/product/split/split_inference.rbs +14 -0
- data/sig/mindee/v2/product/split/split_range.rbs +18 -0
- data/sig/mindee/v2/product/split/split_response.rbs +25 -0
- data/sig/mindee/v2/product/split/split_result.rbs +14 -0
- data/sig/mindee/version.rbs +6 -0
- data/sig/mindee.rbs +62 -0
- metadata +600 -0
data/CONTRIBUTING.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Contributing to mindee-api-ruby
|
|
2
|
+
|
|
3
|
+
:+1::tada: First off, thanks for taking the time to contribute! :tada::+1:
|
|
4
|
+
|
|
5
|
+
The following is a set of guidelines for contributing to mindee-api-ruby which are hosted on GitHub.
|
|
6
|
+
These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request.
|
|
7
|
+
|
|
8
|
+
## Code of Conduct
|
|
9
|
+
|
|
10
|
+
This project and everyone participating in it is governed by the following [Code of Conduct](CODE_OF_CONDUCT.md).
|
|
11
|
+
By participating, you are expected to uphold this code.
|
|
12
|
+
Please report unacceptable behavior to [contact@mindee.com](mailto:contact@mindee.com).
|
|
13
|
+
|
|
14
|
+
## How Can I Contribute
|
|
15
|
+
|
|
16
|
+
### Reporting Bugs
|
|
17
|
+
|
|
18
|
+
Bugs are tracked as [GitHub issues](https://guides.github.com/features/issues/).
|
|
19
|
+
|
|
20
|
+
To help maintainers and the community to be efficient, follow these guidelines:
|
|
21
|
+
|
|
22
|
+
* **Use a clear and descriptive title** for the issue to identify the problem.
|
|
23
|
+
* **Describe the exact steps which reproduce the problem** in as many details as possible.
|
|
24
|
+
When listing steps, **don't just say what you did, but explain how you did it**.
|
|
25
|
+
For example, with canvas related problem, explain if you used the mouse or a keyboard shortcut, what kind of image input it is etc...
|
|
26
|
+
* **Provide specific examples to demonstrate the steps**.
|
|
27
|
+
Include links to files or GitHub projects, or copy/pasteable snippets, which you use in those examples.
|
|
28
|
+
If you're providing snippets in the issue, use [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
|
|
29
|
+
* **Describe the behavior you observed after following the steps** and point out what exactly is the problem with that behavior.
|
|
30
|
+
* **Explain which behavior you expected to see instead and why.**
|
|
31
|
+
* **If the problem wasn't triggered by a specific action**, describe what you were doing before the problem happened and share more information using the guidelines below.
|
|
32
|
+
* **Can you reliably reproduce the issue?** If not, provide details about how often the problem happens and under which conditions it normally happens.
|
|
33
|
+
|
|
34
|
+
> **Note:** If you find a **Closed** issue that seems like it is the same thing that you're experiencing, open a new issue and include a link to the original issue in the body of your new one.
|
|
35
|
+
|
|
36
|
+
Include details about your configuration and environment:
|
|
37
|
+
|
|
38
|
+
* **Which version of mindee-api-ruby are you using?**
|
|
39
|
+
* **What's the name and version of the browser you're using, on which OS**?
|
|
40
|
+
|
|
41
|
+
### Suggesting Enhancements
|
|
42
|
+
|
|
43
|
+
Enhancement suggestions are tracked as [GitHub issues](https://guides.github.com/features/issues/).
|
|
44
|
+
|
|
45
|
+
Make sure to provide the following information:
|
|
46
|
+
|
|
47
|
+
* **Use a clear and descriptive title** for the issue to identify the suggestion.
|
|
48
|
+
* **Provide a step-by-step description of the suggested enhancement** in as many details as possible.
|
|
49
|
+
* **Provide specific examples to demonstrate the steps**. Include copy/pasteable snippets which you use in those examples, as [Markdown code blocks](https://help.github.com/articles/markdown-basics/#multiple-lines).
|
|
50
|
+
* **Describe the current behavior** and **explain which behavior you expected to see instead** and why.
|
|
51
|
+
* **Include screenshots and animated GIFs** which help you demonstrate the steps or point out the part of the sdk which the suggestion is related to. You can use [this tool](https://www.cockos.com/licecap/) to record GIFs on macOS and Windows, and [this tool](https://github.com/colinkeenan/silentcast) or [this tool](https://github.com/GNOME/byzanz) on Linux.
|
|
52
|
+
* **Specify which version of mindee-api-ruby you're using.**
|
|
53
|
+
* **Specify the name and version of the browser and OS you're using.**
|
|
54
|
+
|
|
55
|
+
### Pull Requests
|
|
56
|
+
|
|
57
|
+
The process described here has several goals:
|
|
58
|
+
|
|
59
|
+
- Maintain mindee SDK quality
|
|
60
|
+
- Fix problems that are important to users
|
|
61
|
+
- Engage the community in working toward the best possible SDK
|
|
62
|
+
- Enable a sustainable system for mindee's maintainers to review contributions
|
|
63
|
+
|
|
64
|
+
Please follow these steps to have your contribution considered by the maintainers:
|
|
65
|
+
|
|
66
|
+
1. Follow all instructions in [the template](.github/PULL_REQUEST_TEMPLATE.md)
|
|
67
|
+
2. Follow the [styleguides](#styleguides)
|
|
68
|
+
|
|
69
|
+
While the prerequisites above must be satisfied prior to having your pull request reviewed, the reviewer(s) may ask you to complete additional design work, tests, or other changes before your pull request can be ultimately accepted.
|
|
70
|
+
|
|
71
|
+
## Styleguides
|
|
72
|
+
|
|
73
|
+
### Git Commit Messages
|
|
74
|
+
|
|
75
|
+
* Use the present tense ("Add feature" not "Added feature")
|
|
76
|
+
* Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
|
|
77
|
+
* Limit the first line to 72 characters or less
|
|
78
|
+
* Reference issues and pull requests liberally after the first line
|
|
79
|
+
* Consider starting the commit message with an applicable emoji, see [gitmoji](https://gitmoji.carloscuesta.me/) as a reference.
|
|
80
|
+
|
|
81
|
+
Examples:
|
|
82
|
+
|
|
83
|
+
* :memo: Add usage section in README
|
|
84
|
+
* :sparkles: Add CONTRIBUTING file in repository
|
|
85
|
+
* :bug: MyComponent - Prevent MouseEvent from firing unexpectedly
|
|
86
|
+
|
|
87
|
+
### Code Styleguide
|
|
88
|
+
|
|
89
|
+
We keep our code base consistent and expect Ruby code to adhere to our Rubocop styleguide,
|
|
90
|
+
see the `.rubocop` file.
|
|
91
|
+
|
|
92
|
+
### Local Quality Checks
|
|
93
|
+
|
|
94
|
+
We use [`pre-commit`](https://pre-commit.com/) hooks to run quality and security checks before
|
|
95
|
+
changes are pushed:
|
|
96
|
+
|
|
97
|
+
1. Install `pre-commit`, either using `pip` or `brew`:
|
|
98
|
+
- `pip install pre-commit`
|
|
99
|
+
- `brew install pre-commit`
|
|
100
|
+
2. Install project hooks:
|
|
101
|
+
- `pre-commit install`
|
|
102
|
+
- `pre-commit install --hook-type pre-push`
|
|
103
|
+
|
|
104
|
+
Run hooks manually:
|
|
105
|
+
|
|
106
|
+
* `pre-commit run --all-files`
|
|
107
|
+
* `pre-commit run --all-files --hook-stage pre-push`
|
data/Gemfile
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
source 'https://rubygems.org'
|
|
4
|
+
|
|
5
|
+
# Specify your gem's dependencies in mindee.gemspec
|
|
6
|
+
|
|
7
|
+
gemspec name: ENV.fetch('MINDEE_GEM_NAME', 'mindee')
|
|
8
|
+
|
|
9
|
+
group :development, :test do
|
|
10
|
+
gem 'openssl', '~> 4.0'
|
|
11
|
+
gem 'prism', '~> 1.3'
|
|
12
|
+
gem 'rake', '~> 13.3'
|
|
13
|
+
gem 'rspec', '~> 3.13'
|
|
14
|
+
end
|
data/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2022-Present Mindee
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
[](https://opensource.org/licenses/MIT) [](https://github.com/mindee/mindee-api-ruby) [](https://rubygems.org/gems/mindee) [](https://rubygems.org/gems/mindee)
|
|
2
|
+
|
|
3
|
+
# Mindee API Helper Library for Ruby
|
|
4
|
+
|
|
5
|
+
Quickly and easily connect to Mindee's API services using Ruby.
|
|
6
|
+
|
|
7
|
+
## Mindee API Versions
|
|
8
|
+
This client library has support for both Mindee platform versions.
|
|
9
|
+
|
|
10
|
+
### V2 - Latest
|
|
11
|
+
This is the latest platform located here:
|
|
12
|
+
|
|
13
|
+
https://app.mindee.com
|
|
14
|
+
|
|
15
|
+
It uses **API version 2**.
|
|
16
|
+
|
|
17
|
+
Consult the
|
|
18
|
+
**<a href="https://docs.mindee.com/integrations/client-libraries-sdk">V2 Documentation</a>**
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
### V1
|
|
22
|
+
This is the platform located here:
|
|
23
|
+
|
|
24
|
+
https://platform.mindee.com/
|
|
25
|
+
|
|
26
|
+
It uses **API version 1**.
|
|
27
|
+
|
|
28
|
+
Consult the
|
|
29
|
+
<a href="https://docs.mindee.com/v1/libraries/ruby-sdk">V1 Documentation</a>
|
|
30
|
+
|
|
31
|
+
## Additional Information
|
|
32
|
+
|
|
33
|
+
**<a href="https://github.com/mindee/mindee-api-ruby">Source Code</a>**
|
|
34
|
+
|
|
35
|
+
**<a href="https://mindee.github.io/mindee-api-ruby/">Reference Documentation</a>**
|
|
36
|
+
|
|
37
|
+
**<a href="https://feedback.mindee.com/">Feedback</a>**
|
|
38
|
+
|
|
39
|
+
### License
|
|
40
|
+
Copyright © Mindee
|
|
41
|
+
|
|
42
|
+
Available as open source under the terms of the <a href="https://opensource.org/licenses/MIT">MIT License</a>.
|
data/Rakefile
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'rake'
|
|
4
|
+
require 'rspec/core/rake_task'
|
|
5
|
+
|
|
6
|
+
is_lite_mode = ENV.fetch('MINDEE_GEM_NAME', 'mindee') == 'mindee-lite'
|
|
7
|
+
|
|
8
|
+
begin
|
|
9
|
+
require 'bundler/setup'
|
|
10
|
+
require 'bundler/gem_helper'
|
|
11
|
+
Bundler::GemHelper.install_tasks(name: ENV.fetch('MINDEE_GEM_NAME', 'mindee'))
|
|
12
|
+
rescue LoadError
|
|
13
|
+
puts 'although not required, bundler is recommended for running the tests'
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
task default: :spec
|
|
17
|
+
exclusion_opts = is_lite_mode ? ['--tag', '~all_deps'] : []
|
|
18
|
+
RSpec::Core::RakeTask.new(:spec) do |t|
|
|
19
|
+
t.rspec_opts = exclusion_opts
|
|
20
|
+
end
|
|
21
|
+
unless is_lite_mode
|
|
22
|
+
require 'yard'
|
|
23
|
+
desc 'Generate documentation'
|
|
24
|
+
YARD::Rake::YardocTask.new(:doc) do |task|
|
|
25
|
+
task.files = ['lib/**/*.rb']
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
Rake::Task[:doc].enhance do
|
|
29
|
+
FileUtils.cp_r(
|
|
30
|
+
File.join('docs', 'code_samples'),
|
|
31
|
+
File.join('docs', '_build')
|
|
32
|
+
)
|
|
33
|
+
end
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
desc 'Run integration tests'
|
|
37
|
+
RSpec::Core::RakeTask.new(:integration) do |t|
|
|
38
|
+
t.pattern = 'spec/**/*_integration.rb'
|
|
39
|
+
t.rspec_opts = ['--require', 'integration_helper'] + exclusion_opts
|
|
40
|
+
end
|
data/Steepfile
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
D = Steep::Diagnostic
|
|
4
|
+
|
|
5
|
+
target :lib do
|
|
6
|
+
signature 'sig/custom/*.rbs'
|
|
7
|
+
signature 'sig/mindee/**/*.rbs'
|
|
8
|
+
|
|
9
|
+
check 'lib/mindee/**/*.rb'
|
|
10
|
+
# check 'bin' # CLI files are ignored
|
|
11
|
+
|
|
12
|
+
# NOTE: Steep does not support some libraries:
|
|
13
|
+
# - net/http.
|
|
14
|
+
# - marcel
|
|
15
|
+
# - mini_magick
|
|
16
|
+
# - origami (my bad)
|
|
17
|
+
# Do NOT enable them.
|
|
18
|
+
# Use the stubs located at sig/custom/<library_name>.rbs instead.
|
|
19
|
+
library 'date'
|
|
20
|
+
library 'fileutils'
|
|
21
|
+
library 'logger'
|
|
22
|
+
library 'json'
|
|
23
|
+
library 'openssl'
|
|
24
|
+
library 'pathname'
|
|
25
|
+
library 'tempfile'
|
|
26
|
+
library 'time'
|
|
27
|
+
library 'uri'
|
|
28
|
+
|
|
29
|
+
configure_code_diagnostics(D::Ruby.default) # `default` diagnostics setting (applies by default)
|
|
30
|
+
end
|
data/bin/console
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
|
|
3
|
+
require 'bundler/setup'
|
|
4
|
+
require 'mindee'
|
|
5
|
+
|
|
6
|
+
# You can add fixtures and/or initialization code here to make experimenting
|
|
7
|
+
# with your gem easier. You can also use a different console, if you like.
|
|
8
|
+
|
|
9
|
+
# (If you use this, don't forget to add pry to your Gemfile!)
|
|
10
|
+
# require "pry"
|
|
11
|
+
# Pry.start
|
|
12
|
+
|
|
13
|
+
require 'irb'
|
|
14
|
+
IRB.start(__FILE__)
|
data/bin/mindee.rb
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
#!/usr/bin/env ruby
|
|
2
|
+
# frozen_string_literal: true
|
|
3
|
+
|
|
4
|
+
require 'bundler/setup'
|
|
5
|
+
require 'optparse'
|
|
6
|
+
require_relative 'v1/parser'
|
|
7
|
+
require_relative 'v2/parser'
|
|
8
|
+
|
|
9
|
+
def setup_main_parser
|
|
10
|
+
v1_parser = MindeeCLI::V1Parser.new(ARGV)
|
|
11
|
+
v2_parser = MindeeCLI::V2Parser.new(ARGV)
|
|
12
|
+
main_parser = OptionParser.new do |opts|
|
|
13
|
+
opts.banner = "Usage: mindee [command]"
|
|
14
|
+
opts.separator "Commands:"
|
|
15
|
+
opts.separator " v1 Use Version 1 of the Mindee API"
|
|
16
|
+
opts.separator " v2 Use Version 2 of the Mindee API"
|
|
17
|
+
end
|
|
18
|
+
main_command = ARGV.shift
|
|
19
|
+
|
|
20
|
+
case main_command
|
|
21
|
+
when 'v1'
|
|
22
|
+
v1_parser.execute
|
|
23
|
+
when 'v2'
|
|
24
|
+
v2_parser.execute
|
|
25
|
+
else
|
|
26
|
+
abort(main_parser.help)
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
setup_main_parser
|
data/bin/v1/parser.rb
ADDED
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'mindee'
|
|
4
|
+
require_relative 'products'
|
|
5
|
+
|
|
6
|
+
module MindeeCLI
|
|
7
|
+
# Mindee Command Line Interface
|
|
8
|
+
# V1 CLI class.
|
|
9
|
+
class V1Parser
|
|
10
|
+
# @return [Array<String>]
|
|
11
|
+
attr_reader :arguments
|
|
12
|
+
|
|
13
|
+
# @return [OptionParser]
|
|
14
|
+
attr_reader :options_parser
|
|
15
|
+
|
|
16
|
+
# @return [Parser]
|
|
17
|
+
attr_reader :product_parser
|
|
18
|
+
|
|
19
|
+
def initialize(arguments)
|
|
20
|
+
@arguments = arguments
|
|
21
|
+
@options_parser = OptionParser.new do |opts|
|
|
22
|
+
opts.banner = 'Usage: mindee v1 product [options] file'
|
|
23
|
+
opts.separator 'Available products:'
|
|
24
|
+
opts.separator " #{V1_PRODUCTS.keys.join("\n ")}"
|
|
25
|
+
end
|
|
26
|
+
@product_parser = init_product_parser
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
# @param cli_parser [OptionParser]
|
|
30
|
+
def custom_subcommand(cli_parser)
|
|
31
|
+
cli_parser.on('-v [VERSION]', '--version [VERSION]', 'Model version for the API') do |v|
|
|
32
|
+
@options[:endpoint_version] = v
|
|
33
|
+
end
|
|
34
|
+
cli_parser.on('-a ACCOUNT_NAME', '--account ACCOUNT_NAME', 'API account name for the endpoint') do |v|
|
|
35
|
+
@options[:account_name] = v
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @return [Hash]
|
|
40
|
+
def init_product_parser
|
|
41
|
+
v1_product_parser = {}
|
|
42
|
+
V1_PRODUCTS.each do |doc_key, doc_value|
|
|
43
|
+
v1_product_parser[doc_key] = OptionParser.new do |options_parser|
|
|
44
|
+
options_parser.on('-w', '--all-words', 'Include words in response') { |v| @options[:all_words] = v }
|
|
45
|
+
options_parser.on('-k [KEY]', '--key [KEY]', 'API key for the endpoint') { |v| @options[:api_key] = v }
|
|
46
|
+
options_parser.on('-o FORMAT', '--output-format FORMAT', ['raw', 'full', 'summary'],
|
|
47
|
+
'Format of the output (raw, full, summary). Default: summary') do |format|
|
|
48
|
+
@options[:output_format] = format
|
|
49
|
+
end
|
|
50
|
+
options_parser.on('-F', '--fix-pdf', 'Repair PDF') { @options[:repair_pdf] = true }
|
|
51
|
+
|
|
52
|
+
if doc_key != 'universal'
|
|
53
|
+
options_parser.banner = "Usage: mindee v1 #{doc_key} [options] file"
|
|
54
|
+
custom_subcommand(options_parser)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
if doc_value[:async] && doc_value[:sync]
|
|
58
|
+
options_parser.on('-A', '--async', 'Call asynchronously') { |v| @options[:parse_async] = v }
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
62
|
+
v1_product_parser
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
# @param product_command [String]
|
|
66
|
+
# @param endpoint_name [String, nil]
|
|
67
|
+
# @param options [Hash]
|
|
68
|
+
# @return [Mindee::V1::Parsing::Common::ApiResponse]
|
|
69
|
+
def send(product_command, endpoint_name, options)
|
|
70
|
+
mindee_client = Mindee::V1::Client.new(api_key: options[:api_key])
|
|
71
|
+
doc_class = V1_PRODUCTS[product_command][:doc_class]
|
|
72
|
+
input_source = setup_input_source(mindee_client, options)
|
|
73
|
+
custom_endpoint = setup_endpoint(mindee_client, product_command, endpoint_name, options)
|
|
74
|
+
options[:parse_async] = !V1_PRODUCTS[product_command][:sync] if options[:parse_async].nil?
|
|
75
|
+
|
|
76
|
+
mindee_client.parse(
|
|
77
|
+
input_source,
|
|
78
|
+
doc_class,
|
|
79
|
+
options: { endpoint: custom_endpoint,
|
|
80
|
+
enqueue: options[:parse_async] }
|
|
81
|
+
)
|
|
82
|
+
end
|
|
83
|
+
|
|
84
|
+
def print_result(result, output_format)
|
|
85
|
+
if output_format == :raw
|
|
86
|
+
puts JSON.pretty_generate(JSON.parse(result.raw_http))
|
|
87
|
+
else
|
|
88
|
+
puts output_format == :full ? result.document : result.document.inference.prediction
|
|
89
|
+
end
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
# @param product_command [String]
|
|
93
|
+
def execute
|
|
94
|
+
@options = { output_format: :summary }
|
|
95
|
+
product_command = @arguments.shift
|
|
96
|
+
|
|
97
|
+
abort(@options_parser.help) unless V1_PRODUCTS.include?(product_command)
|
|
98
|
+
@product_parser[product_command].parse!
|
|
99
|
+
|
|
100
|
+
if product_command == 'universal'
|
|
101
|
+
if @arguments.length < 2
|
|
102
|
+
warn "The 'universal' command requires both ENDPOINT_NAME and file arguments."
|
|
103
|
+
abort(@product_parser[product_command].help)
|
|
104
|
+
end
|
|
105
|
+
endpoint_name = @arguments[0]
|
|
106
|
+
@options[:file_path] = @arguments[1]
|
|
107
|
+
else
|
|
108
|
+
if @arguments.empty?
|
|
109
|
+
warn 'file missing'
|
|
110
|
+
abort(@product_parser[product_command].help)
|
|
111
|
+
end
|
|
112
|
+
endpoint_name = nil
|
|
113
|
+
@options[:file_path] = @arguments[0]
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
result = send(product_command, endpoint_name, @options)
|
|
117
|
+
print_result(result, output_format)
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
private
|
|
121
|
+
|
|
122
|
+
# @return [Symbol]
|
|
123
|
+
def output_format
|
|
124
|
+
@options[:output_format]&.to_sym || :summary
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
# @param mindee_client [Mindee::V1::Client]
|
|
128
|
+
# @param options [Hash]
|
|
129
|
+
# @return [Hash]
|
|
130
|
+
def setup_input_source(mindee_client, options)
|
|
131
|
+
if options[:file_path].start_with?('https://')
|
|
132
|
+
mindee_client.source_from_url(options[:file_path])
|
|
133
|
+
else
|
|
134
|
+
mindee_client.source_from_path(options[:file_path], repair_pdf: options[:repair_pdf])
|
|
135
|
+
end
|
|
136
|
+
end
|
|
137
|
+
|
|
138
|
+
# @param mindee_client [Mindee::V1::Client]
|
|
139
|
+
# @param product_command [String]
|
|
140
|
+
# @param endpoint_name [String, nil]
|
|
141
|
+
# @param options [Hash]
|
|
142
|
+
# @return [Mindee::HTTP::Endpoint, nil]
|
|
143
|
+
def setup_endpoint(mindee_client, product_command, endpoint_name, options)
|
|
144
|
+
return unless product_command == 'universal'
|
|
145
|
+
|
|
146
|
+
mindee_client.create_endpoint(
|
|
147
|
+
endpoint_name: endpoint_name,
|
|
148
|
+
account_name: options[:account_name],
|
|
149
|
+
version: options[:endpoint_version] || '1'
|
|
150
|
+
)
|
|
151
|
+
end
|
|
152
|
+
end
|
|
153
|
+
end
|
data/bin/v1/products.rb
ADDED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
V1_PRODUCTS = {
|
|
4
|
+
'universal' => {
|
|
5
|
+
description: 'Universal document type from API builder',
|
|
6
|
+
doc_class: Mindee::V1::Product::Universal::Universal,
|
|
7
|
+
sync: true,
|
|
8
|
+
async: true,
|
|
9
|
+
},
|
|
10
|
+
'barcode-reader' => {
|
|
11
|
+
description: 'Barcode Reader',
|
|
12
|
+
doc_class: Mindee::V1::Product::BarcodeReader::BarcodeReaderV1,
|
|
13
|
+
sync: true,
|
|
14
|
+
async: false,
|
|
15
|
+
},
|
|
16
|
+
'cropper' => {
|
|
17
|
+
description: 'Cropper',
|
|
18
|
+
doc_class: Mindee::V1::Product::Cropper::CropperV1,
|
|
19
|
+
sync: true,
|
|
20
|
+
async: false,
|
|
21
|
+
},
|
|
22
|
+
'financial-document' => {
|
|
23
|
+
description: 'Financial Document',
|
|
24
|
+
doc_class: Mindee::V1::Product::FinancialDocument::FinancialDocumentV1,
|
|
25
|
+
sync: true,
|
|
26
|
+
async: true,
|
|
27
|
+
},
|
|
28
|
+
'fr-bank-account-details' => {
|
|
29
|
+
description: 'Bank Account Details',
|
|
30
|
+
doc_class: Mindee::V1::Product::FR::BankAccountDetails::BankAccountDetailsV2,
|
|
31
|
+
sync: true,
|
|
32
|
+
async: false,
|
|
33
|
+
},
|
|
34
|
+
'fr-bank-statement' => {
|
|
35
|
+
description: 'Bank Statement',
|
|
36
|
+
doc_class: Mindee::V1::Product::FR::BankStatement::BankStatementV2,
|
|
37
|
+
sync: false,
|
|
38
|
+
async: true,
|
|
39
|
+
},
|
|
40
|
+
'fr-carte-nationale-d-identite' => {
|
|
41
|
+
description: "Carte Nationale d'Identité",
|
|
42
|
+
doc_class: Mindee::V1::Product::FR::IdCard::IdCardV2,
|
|
43
|
+
sync: true,
|
|
44
|
+
async: false,
|
|
45
|
+
},
|
|
46
|
+
'international-id' => {
|
|
47
|
+
description: 'International ID',
|
|
48
|
+
doc_class: Mindee::V1::Product::InternationalId::InternationalIdV2,
|
|
49
|
+
sync: false,
|
|
50
|
+
async: true,
|
|
51
|
+
},
|
|
52
|
+
'invoice' => {
|
|
53
|
+
description: 'Invoice',
|
|
54
|
+
doc_class: Mindee::V1::Product::Invoice::InvoiceV4,
|
|
55
|
+
sync: true,
|
|
56
|
+
async: true,
|
|
57
|
+
},
|
|
58
|
+
'invoice-splitter' => {
|
|
59
|
+
description: 'Invoice Splitter',
|
|
60
|
+
doc_class: Mindee::V1::Product::InvoiceSplitter::InvoiceSplitterV1,
|
|
61
|
+
sync: false,
|
|
62
|
+
async: true,
|
|
63
|
+
},
|
|
64
|
+
'multi-receipts-detector' => {
|
|
65
|
+
description: 'Multi Receipts Detector',
|
|
66
|
+
doc_class: Mindee::V1::Product::MultiReceiptsDetector::MultiReceiptsDetectorV1,
|
|
67
|
+
sync: true,
|
|
68
|
+
async: false,
|
|
69
|
+
},
|
|
70
|
+
'passport' => {
|
|
71
|
+
description: 'Passport',
|
|
72
|
+
doc_class: Mindee::V1::Product::Passport::PassportV1,
|
|
73
|
+
sync: true,
|
|
74
|
+
async: false,
|
|
75
|
+
},
|
|
76
|
+
'receipt' => {
|
|
77
|
+
description: 'Receipt',
|
|
78
|
+
doc_class: Mindee::V1::Product::Receipt::ReceiptV5,
|
|
79
|
+
sync: true,
|
|
80
|
+
async: true,
|
|
81
|
+
},
|
|
82
|
+
'resume' => {
|
|
83
|
+
description: 'Resume',
|
|
84
|
+
doc_class: Mindee::V1::Product::Resume::ResumeV1,
|
|
85
|
+
sync: false,
|
|
86
|
+
async: true,
|
|
87
|
+
},
|
|
88
|
+
}.freeze
|