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
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../geometry'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Base BaseField object, upon which fields and feature fields are built
|
|
10
|
+
class AbstractField
|
|
11
|
+
# @return [Mindee::Geometry::Quadrilateral, nil]
|
|
12
|
+
attr_reader :bounding_box
|
|
13
|
+
# @return [Mindee::Geometry::Polygon, nil]
|
|
14
|
+
attr_reader :polygon
|
|
15
|
+
# @return [Integer, nil]
|
|
16
|
+
attr_reader :page_id
|
|
17
|
+
# The confidence score, value will be between 0.0 and 1.0
|
|
18
|
+
# @return [Float, nil]
|
|
19
|
+
attr_accessor :confidence
|
|
20
|
+
|
|
21
|
+
# @param prediction [Hash]
|
|
22
|
+
# @param page_id [Integer, nil]
|
|
23
|
+
def initialize(prediction, page_id)
|
|
24
|
+
@confidence = prediction['confidence'] if prediction.key?('confidence')
|
|
25
|
+
@polygon = Mindee::Geometry::Polygon.new(prediction['polygon']) if prediction.key?('polygon')
|
|
26
|
+
@bounding_box = Geometry.get_bounding_box(@polygon) unless @polygon.nil? || @polygon.empty?
|
|
27
|
+
@page_id = page_id || prediction['page_id']
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
# @return [String]
|
|
31
|
+
def to_s
|
|
32
|
+
@value ? @value.to_s : ''
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
# Multiply all the Mindee::V1::Parsing::Standard::BaseField confidences in the array.
|
|
36
|
+
# @return [Float]
|
|
37
|
+
def self.array_confidence(field_array)
|
|
38
|
+
product = 1
|
|
39
|
+
field_array.each do |field|
|
|
40
|
+
return 0.0 if field.confidence.nil?
|
|
41
|
+
|
|
42
|
+
product *= field.confidence
|
|
43
|
+
end
|
|
44
|
+
product.to_f
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# Add all the Mindee::V1::Parsing::Standard::BaseField values in the array.
|
|
48
|
+
# @return [Float]
|
|
49
|
+
def self.array_sum(field_array)
|
|
50
|
+
arr_sum = 0
|
|
51
|
+
field_array.each do |field|
|
|
52
|
+
return 0.0 if field.value.nil?
|
|
53
|
+
|
|
54
|
+
arr_sum += field.value
|
|
55
|
+
end
|
|
56
|
+
arr_sum.to_f
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
# @param value [Float]
|
|
60
|
+
# @param min_precision [Integer]
|
|
61
|
+
# @return [String]
|
|
62
|
+
def self.float_to_string(value, min_precision = 2)
|
|
63
|
+
return String.new if value.nil?
|
|
64
|
+
|
|
65
|
+
precision = value.to_f.to_s.split('.')[1].size
|
|
66
|
+
precision = [precision, min_precision].max
|
|
67
|
+
format_string = "%.#{precision}f"
|
|
68
|
+
format(format_string, value)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
end
|
|
72
|
+
end
|
|
73
|
+
end
|
|
74
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'string_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents physical-address information.
|
|
10
|
+
class AddressField < Mindee::V1::Parsing::Standard::StringField
|
|
11
|
+
# Street number
|
|
12
|
+
# @return [String, nil]
|
|
13
|
+
attr_reader :street_number
|
|
14
|
+
# Street name
|
|
15
|
+
# @return [String, nil]
|
|
16
|
+
attr_reader :street_name
|
|
17
|
+
# PO Box number
|
|
18
|
+
# @return [String, nil]
|
|
19
|
+
attr_reader :po_box
|
|
20
|
+
# Address complement
|
|
21
|
+
# @return [String, nil]
|
|
22
|
+
attr_reader :address_complement
|
|
23
|
+
# City name.
|
|
24
|
+
# @return [String, nil]
|
|
25
|
+
attr_reader :city
|
|
26
|
+
# Postal or ZIP code.
|
|
27
|
+
# @return [String, nil]
|
|
28
|
+
attr_reader :postal_code
|
|
29
|
+
# State, province or region.
|
|
30
|
+
# @return [String, nil]
|
|
31
|
+
attr_reader :state
|
|
32
|
+
# Country.
|
|
33
|
+
# @return [String, nil]
|
|
34
|
+
attr_reader :country
|
|
35
|
+
|
|
36
|
+
def initialize(prediction, page_id = nil, reconstructed: false)
|
|
37
|
+
super
|
|
38
|
+
@street_number = prediction['street_number']
|
|
39
|
+
@street_name = prediction['street_name']
|
|
40
|
+
@po_box = prediction['po_box']
|
|
41
|
+
@address_complement = prediction['address_complement']
|
|
42
|
+
@city = prediction['city']
|
|
43
|
+
@postal_code = prediction['postal_code']
|
|
44
|
+
@state = prediction['state']
|
|
45
|
+
@country = prediction['country']
|
|
46
|
+
end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents tax information.
|
|
10
|
+
class AmountField < BaseField
|
|
11
|
+
# Amount value as 3 decimal float
|
|
12
|
+
# @return [Float, nil]
|
|
13
|
+
attr_reader :value
|
|
14
|
+
|
|
15
|
+
def initialize(prediction, page_id, reconstructed: false)
|
|
16
|
+
super
|
|
17
|
+
@value = @value.to_f.round(3).to_f unless @value.to_s.empty?
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# @return [String]
|
|
21
|
+
def to_s
|
|
22
|
+
@value.nil? ? '' : BaseField.float_to_string(@value.to_f)
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative '../../../geometry'
|
|
4
|
+
require_relative 'abstract_field'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module V1
|
|
8
|
+
module Parsing
|
|
9
|
+
module Standard
|
|
10
|
+
# Base field object.
|
|
11
|
+
class BaseField < Mindee::V1::Parsing::Standard::AbstractField
|
|
12
|
+
# @return [String, Float, Integer, bool]
|
|
13
|
+
attr_reader :value
|
|
14
|
+
# true if the field was reconstructed or computed using other fields.
|
|
15
|
+
# @return [bool]
|
|
16
|
+
attr_reader :reconstructed
|
|
17
|
+
|
|
18
|
+
# @param prediction [Hash]
|
|
19
|
+
# @param page_id [Integer, nil]
|
|
20
|
+
# @param reconstructed [bool]
|
|
21
|
+
def initialize(prediction, page_id, reconstructed: false)
|
|
22
|
+
super(prediction, page_id)
|
|
23
|
+
@value = prediction['value']
|
|
24
|
+
@reconstructed = reconstructed
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
end
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents basic text information.
|
|
10
|
+
class BooleanField < BaseField
|
|
11
|
+
# Value as bool
|
|
12
|
+
# @return [bool, nil]
|
|
13
|
+
attr_reader :value
|
|
14
|
+
|
|
15
|
+
def initialize(prediction, page_id = nil, reconstructed: false)
|
|
16
|
+
super
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
# @return [String]
|
|
20
|
+
def to_s
|
|
21
|
+
return '' if value.nil?
|
|
22
|
+
|
|
23
|
+
value ? 'True' : 'False'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents a classifier value.
|
|
10
|
+
class ClassificationField < BaseField
|
|
11
|
+
# Value as String
|
|
12
|
+
# @return [String]
|
|
13
|
+
attr_reader :value
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V1
|
|
5
|
+
module Parsing
|
|
6
|
+
module Standard
|
|
7
|
+
# Company registration number or code, and its type.
|
|
8
|
+
class CompanyRegistrationField < BaseField
|
|
9
|
+
# @return [String]
|
|
10
|
+
attr_reader :type
|
|
11
|
+
|
|
12
|
+
# @param prediction [Hash]
|
|
13
|
+
# @param page_id [Integer, nil]
|
|
14
|
+
# @param reconstructed [bool]
|
|
15
|
+
def initialize(prediction, page_id, reconstructed: false)
|
|
16
|
+
super
|
|
17
|
+
@type = prediction['type']
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Table line representation of the values.
|
|
21
|
+
# @return [String] The formatted table line, as a string.
|
|
22
|
+
def to_table_line
|
|
23
|
+
printable = printable_values
|
|
24
|
+
format('| %<type>-15s | %<value>-20s ', type: printable[:type], value: printable[:value])
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
# @return [String]
|
|
28
|
+
def to_s
|
|
29
|
+
printable = printable_values
|
|
30
|
+
format('Type: %<type>s, Value: %<value>s', type: printable[:type], value: printable[:value])
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# Hashed representation of the values.
|
|
34
|
+
# @return [Hash] Hash of the values.
|
|
35
|
+
def printable_values
|
|
36
|
+
printable = {} # @type var printable: Hash[Symbol, String]
|
|
37
|
+
printable[:type] = type
|
|
38
|
+
printable[:value] = value.to_s
|
|
39
|
+
printable
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'date'
|
|
4
|
+
|
|
5
|
+
require_relative 'base_field'
|
|
6
|
+
|
|
7
|
+
module Mindee
|
|
8
|
+
module V1
|
|
9
|
+
module Parsing
|
|
10
|
+
module Standard
|
|
11
|
+
# Represents a date.
|
|
12
|
+
class DateField < BaseField
|
|
13
|
+
# The date as a standard Ruby `Date` object.
|
|
14
|
+
# @return [Date, nil]
|
|
15
|
+
attr_reader :date_object
|
|
16
|
+
# The ISO 8601 representation of the date, regardless of the `raw` contents.
|
|
17
|
+
# @return [String, nil]
|
|
18
|
+
attr_reader :value
|
|
19
|
+
# The textual representation of the date as found on the document.
|
|
20
|
+
# @return [String, nil]
|
|
21
|
+
attr_reader :raw
|
|
22
|
+
# Whether the field was computed or retrieved directly from the document.
|
|
23
|
+
# @return [bool, nil]
|
|
24
|
+
attr_reader :is_computed
|
|
25
|
+
|
|
26
|
+
# @param prediction [Hash]
|
|
27
|
+
# @param page_id [Integer, nil]
|
|
28
|
+
def initialize(prediction, page_id)
|
|
29
|
+
super
|
|
30
|
+
@is_computed = prediction['is_computed']
|
|
31
|
+
return unless @value
|
|
32
|
+
|
|
33
|
+
@date_object = Date.parse(@value)
|
|
34
|
+
@raw = prediction['raw']
|
|
35
|
+
end
|
|
36
|
+
end
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
end
|
|
40
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V1
|
|
5
|
+
module Parsing
|
|
6
|
+
module Standard
|
|
7
|
+
# Feature field object wrapper for specialized methods.
|
|
8
|
+
class FeatureField < AbstractField
|
|
9
|
+
# Format strings for display by shortening long strings and assigning empty ones.
|
|
10
|
+
# @param in_str [String, bool, nil]
|
|
11
|
+
# @param max_col_size [int, nil]
|
|
12
|
+
# @return [String]
|
|
13
|
+
def format_for_display(in_str, max_col_size = nil)
|
|
14
|
+
return 'True' if in_str == true
|
|
15
|
+
return 'False' if in_str == false
|
|
16
|
+
return '' if in_str.nil?
|
|
17
|
+
return in_str.to_s if max_col_size.nil?
|
|
18
|
+
|
|
19
|
+
in_str = in_str.to_s.gsub(%r{[\n\r\t]}, "\n" => '\\n', "\r" => '\\r', "\t" => '\\t')
|
|
20
|
+
in_str.to_s.length <= max_col_size.to_i ? in_str.to_s : "#{in_str[0..(max_col_size.to_i - 4)]}..."
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V1
|
|
5
|
+
module Parsing
|
|
6
|
+
module Standard
|
|
7
|
+
# Represents locale information
|
|
8
|
+
class LocaleField
|
|
9
|
+
# The confidence score, value will be between 0.0 and 1.0
|
|
10
|
+
# @return [Float]
|
|
11
|
+
attr_reader :confidence
|
|
12
|
+
# Language code in ISO 639-1 format.
|
|
13
|
+
# @return [String]
|
|
14
|
+
attr_reader :language
|
|
15
|
+
# Country code in ISO 3166-1 alpha-2 format.
|
|
16
|
+
# @return [String, nil]
|
|
17
|
+
attr_reader :country
|
|
18
|
+
# Currency code in ISO 4217 format.
|
|
19
|
+
# @return [String]
|
|
20
|
+
attr_reader :currency
|
|
21
|
+
# Language code, with country code when available.
|
|
22
|
+
# @return [String]
|
|
23
|
+
attr_reader :value
|
|
24
|
+
|
|
25
|
+
# @param prediction [Hash]
|
|
26
|
+
def initialize(prediction, _page_id = nil)
|
|
27
|
+
value_key = if !prediction.include?('value') || prediction['value'].nil?
|
|
28
|
+
'language'
|
|
29
|
+
else
|
|
30
|
+
'value'
|
|
31
|
+
end
|
|
32
|
+
@confidence = prediction['confidence']
|
|
33
|
+
@value = prediction[value_key]
|
|
34
|
+
@language = prediction['language']
|
|
35
|
+
@country = prediction['country']
|
|
36
|
+
@currency = prediction['currency']
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @return [String]
|
|
40
|
+
def to_s
|
|
41
|
+
out_str = String.new
|
|
42
|
+
out_str << "#{@value}; " unless @value.nil?
|
|
43
|
+
out_str << "#{@language}; " if @language
|
|
44
|
+
out_str << "#{@country}; " if @country
|
|
45
|
+
out_str << "#{@currency}; " if @currency
|
|
46
|
+
out_str.strip
|
|
47
|
+
end
|
|
48
|
+
end
|
|
49
|
+
end
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
end
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents payment details for invoices and receipts
|
|
10
|
+
class PaymentDetailsField < BaseField
|
|
11
|
+
# @return [String, nil]
|
|
12
|
+
attr_reader :account_number
|
|
13
|
+
# @return [String, nil]
|
|
14
|
+
attr_reader :iban
|
|
15
|
+
# @return [String, nil]
|
|
16
|
+
attr_reader :routing_number
|
|
17
|
+
# @return [String, nil]
|
|
18
|
+
attr_reader :swift
|
|
19
|
+
|
|
20
|
+
# @param prediction [Hash]
|
|
21
|
+
# @param page_id [Integer, nil]
|
|
22
|
+
# @param reconstructed [bool]
|
|
23
|
+
def initialize(prediction, page_id, reconstructed: false)
|
|
24
|
+
super
|
|
25
|
+
@account_number = prediction['account_number']
|
|
26
|
+
@iban = prediction['iban']
|
|
27
|
+
@routing_number = prediction['routing_number']
|
|
28
|
+
@swift = prediction['swift']
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# @return [String]
|
|
32
|
+
def to_s
|
|
33
|
+
out_str = String.new
|
|
34
|
+
out_str << "#{@account_number}; " if @account_number
|
|
35
|
+
out_str << "#{@iban}; " if @iban
|
|
36
|
+
out_str << "#{@routing_number}; " if @routing_number
|
|
37
|
+
out_str << "#{@swift}; " if @swift
|
|
38
|
+
out_str.strip
|
|
39
|
+
end
|
|
40
|
+
end
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
44
|
+
end
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V1
|
|
5
|
+
module Parsing
|
|
6
|
+
module Standard
|
|
7
|
+
# An element's position on the image
|
|
8
|
+
class PositionField
|
|
9
|
+
# @return [Mindee::Geometry::Polygon]
|
|
10
|
+
attr_reader :polygon
|
|
11
|
+
# @return [Mindee::Geometry::Polygon]
|
|
12
|
+
attr_reader :value
|
|
13
|
+
# @return [Mindee::Geometry::Quadrilateral]
|
|
14
|
+
attr_reader :quadrangle
|
|
15
|
+
# @return [Mindee::Geometry::Quadrilateral]
|
|
16
|
+
attr_reader :rectangle
|
|
17
|
+
# @return [Mindee::Geometry::Quadrilateral]
|
|
18
|
+
attr_reader :bounding_box
|
|
19
|
+
|
|
20
|
+
# @param prediction [Hash]
|
|
21
|
+
# @param page_id [Integer, nil]
|
|
22
|
+
def initialize(prediction, page_id)
|
|
23
|
+
unless prediction['polygon'].nil? || prediction['polygon'].empty?
|
|
24
|
+
@polygon = Mindee::Geometry::Polygon.new(prediction['polygon'])
|
|
25
|
+
end
|
|
26
|
+
@quadrangle = to_quadrilateral(prediction, 'quadrangle')
|
|
27
|
+
@rectangle = to_quadrilateral(prediction, 'rectangle')
|
|
28
|
+
@bounding_box = to_quadrilateral(prediction, 'bounding_box')
|
|
29
|
+
@page_id = page_id || prediction['page_id']
|
|
30
|
+
@value = @polygon
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
34
|
+
# rubocop:disable Metrics/PerceivedComplexity
|
|
35
|
+
|
|
36
|
+
# String representation.
|
|
37
|
+
# @return [String]
|
|
38
|
+
def to_s
|
|
39
|
+
return "Polygon with #{@polygon.size} points." if @polygon&.size&.positive?
|
|
40
|
+
return "Polygon with #{@bounding_box.size} points." if @bounding_box&.size&.positive?
|
|
41
|
+
return "Polygon with #{@rectangle.size} points." if @rectangle&.size&.positive?
|
|
42
|
+
return "Polygon with #{@quadrangle.size} points." if @quadrangle&.size&.positive?
|
|
43
|
+
|
|
44
|
+
''
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
48
|
+
# rubocop:enable Metrics/PerceivedComplexity
|
|
49
|
+
|
|
50
|
+
private
|
|
51
|
+
|
|
52
|
+
def to_quadrilateral(prediction, key)
|
|
53
|
+
return if prediction[key].nil? || prediction[key].empty?
|
|
54
|
+
|
|
55
|
+
Mindee::Geometry.quadrilateral_from_prediction(prediction[key])
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
end
|
|
61
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents basic text information.
|
|
10
|
+
class StringField < Mindee::V1::Parsing::Standard::BaseField
|
|
11
|
+
# Value as String
|
|
12
|
+
# @return [String, nil]
|
|
13
|
+
attr_reader :value
|
|
14
|
+
# Value as String
|
|
15
|
+
# @return [String, nil]
|
|
16
|
+
attr_reader :raw_value
|
|
17
|
+
|
|
18
|
+
def initialize(prediction, page_id = nil, reconstructed: false)
|
|
19
|
+
super
|
|
20
|
+
@raw_value = prediction['raw_value']
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'base_field'
|
|
4
|
+
|
|
5
|
+
module Mindee
|
|
6
|
+
module V1
|
|
7
|
+
module Parsing
|
|
8
|
+
module Standard
|
|
9
|
+
# Represents tax information.
|
|
10
|
+
class TaxField < BaseField
|
|
11
|
+
# Tax value as 3 decimal float
|
|
12
|
+
# @return [Float, nil]
|
|
13
|
+
attr_reader :value
|
|
14
|
+
# Tax rate percentage
|
|
15
|
+
# @return [Float]
|
|
16
|
+
attr_reader :rate
|
|
17
|
+
# Tax code
|
|
18
|
+
# @return [String]
|
|
19
|
+
attr_reader :code
|
|
20
|
+
# Tax base
|
|
21
|
+
# @return [Float]
|
|
22
|
+
attr_reader :base
|
|
23
|
+
|
|
24
|
+
# @param prediction [Hash]
|
|
25
|
+
# @param page_id [Integer, nil]
|
|
26
|
+
def initialize(prediction, page_id)
|
|
27
|
+
super
|
|
28
|
+
@value = prediction['value']&.round(3)
|
|
29
|
+
@rate = prediction['rate'].to_f unless prediction['rate'].nil?
|
|
30
|
+
@base = prediction['base'].to_f unless prediction['base'].nil?
|
|
31
|
+
@code = prediction['code'] unless prediction['code'] == 'None'
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
# @param value [Float]
|
|
35
|
+
def print_float(value)
|
|
36
|
+
format('%.2f', value)
|
|
37
|
+
end
|
|
38
|
+
|
|
39
|
+
# @return [String]
|
|
40
|
+
def to_s
|
|
41
|
+
printable = printable_values
|
|
42
|
+
out_str = String.new
|
|
43
|
+
out_str << "Base: #{printable[:base]}"
|
|
44
|
+
out_str << ", Code: #{printable[:code]}"
|
|
45
|
+
out_str << ", Rate (%): #{printable[:rate]}"
|
|
46
|
+
out_str << ", Amount: #{printable[:value]}"
|
|
47
|
+
out_str.strip
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# @return [Hash]
|
|
51
|
+
def printable_values
|
|
52
|
+
out_h = {} # @type var out_h: Hash[Symbol, String]
|
|
53
|
+
out_h[:code] = @code.nil? ? '' : @code
|
|
54
|
+
out_h[:base] = @base.nil? ? '' : print_float(@base)
|
|
55
|
+
out_h[:rate] = @rate.nil? ? '' : print_float(@rate).to_s
|
|
56
|
+
out_h[:value] = @value.to_s.empty? ? '' : print_float(@value.to_f).to_s
|
|
57
|
+
out_h
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
# @return [String]
|
|
61
|
+
def to_table_line
|
|
62
|
+
printable = printable_values
|
|
63
|
+
out_str = String.new
|
|
64
|
+
out_str << "| #{printable[:base].ljust(13, ' ')}"
|
|
65
|
+
out_str << " | #{printable[:code].ljust(6, ' ')}"
|
|
66
|
+
out_str << " | #{printable[:rate].ljust(8, ' ')}"
|
|
67
|
+
out_str << " | #{printable[:value].ljust(13, ' ')} |"
|
|
68
|
+
out_str.strip
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
# Represents tax information, grouped as an array.
|
|
73
|
+
class Taxes < Array
|
|
74
|
+
# @param prediction [Hash]
|
|
75
|
+
# @param page_id [Integer, nil]
|
|
76
|
+
def initialize(prediction, page_id)
|
|
77
|
+
super(prediction.map { |entry| TaxField.new(entry, page_id) })
|
|
78
|
+
end
|
|
79
|
+
|
|
80
|
+
# @param char [String]
|
|
81
|
+
# @return [String]
|
|
82
|
+
def line_separator(char)
|
|
83
|
+
out_str = String.new
|
|
84
|
+
out_str << ' '
|
|
85
|
+
out_str << "+#{char * 15}"
|
|
86
|
+
out_str << "+#{char * 8}"
|
|
87
|
+
out_str << "+#{char * 10}"
|
|
88
|
+
out_str << "+#{char * 15}"
|
|
89
|
+
out_str << '+'
|
|
90
|
+
out_str
|
|
91
|
+
end
|
|
92
|
+
|
|
93
|
+
# @return [String]
|
|
94
|
+
def to_s
|
|
95
|
+
return '' if nil? || empty?
|
|
96
|
+
|
|
97
|
+
out_str = String.new
|
|
98
|
+
out_str << "\n#{line_separator('-')}"
|
|
99
|
+
out_str << "\n | Base | Code | Rate (%) | Amount |"
|
|
100
|
+
out_str << "\n#{line_separator('=')}"
|
|
101
|
+
each do |entry|
|
|
102
|
+
out_str << "\n #{entry.to_table_line}\n#{line_separator('-')}"
|
|
103
|
+
end
|
|
104
|
+
out_str
|
|
105
|
+
end
|
|
106
|
+
end
|
|
107
|
+
end
|
|
108
|
+
end
|
|
109
|
+
end
|
|
110
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'standard/address_field'
|
|
4
|
+
require_relative 'standard/amount_field'
|
|
5
|
+
require_relative 'standard/base_field'
|
|
6
|
+
require_relative 'standard/boolean_field'
|
|
7
|
+
require_relative 'standard/classification_field'
|
|
8
|
+
require_relative 'standard/company_registration_field'
|
|
9
|
+
require_relative 'standard/date_field'
|
|
10
|
+
require_relative 'standard/feature_field'
|
|
11
|
+
require_relative 'standard/payment_details_field'
|
|
12
|
+
require_relative 'standard/position_field'
|
|
13
|
+
require_relative 'standard/tax_field'
|
|
14
|
+
require_relative 'standard/string_field'
|
|
15
|
+
require_relative 'standard/locale_field'
|