mindee-lite 5.3.1 → 5.5.0
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 +4 -4
- data/.git-hooks/pre_commit/gitleaks.rb +19 -0
- data/.overcommit.yml +46 -0
- data/CHANGELOG.md +14 -0
- data/CONTRIBUTING.md +128 -0
- data/bin/mindee.rb +4 -1
- data/bin/v2/parser.rb +40 -45
- data/bin/v2/search_commands.rb +100 -0
- data/lib/mindee/http/cancellation_token.rb +24 -0
- data/lib/mindee/http.rb +1 -0
- data/lib/mindee/v1/client.rb +15 -1
- data/lib/mindee/v2/client.rb +25 -10
- data/lib/mindee/v2/client_options/base_product_parameters.rb +162 -0
- data/lib/mindee/v2/client_options/base_search_parameters.rb +51 -0
- data/lib/mindee/v2/client_options.rb +4 -0
- data/lib/mindee/v2/http/mindee_api_v2.rb +28 -32
- data/lib/mindee/v2/parsing/field/field_confidence.rb +37 -2
- data/lib/mindee/v2/parsing/search/base_search_response.rb +47 -0
- data/lib/mindee/v2/parsing/search/model_webhook.rb +3 -3
- data/lib/mindee/v2/parsing/search/pagination_metadata.rb +1 -1
- data/lib/mindee/v2/parsing/search/search_models.rb +2 -1
- data/lib/mindee/v2/parsing/search/search_rag_document.rb +60 -0
- data/lib/mindee/v2/parsing/search/search_rag_documents.rb +39 -0
- data/lib/mindee/v2/parsing/search/search_response.rb +2 -29
- data/lib/mindee/v2/parsing/search.rb +5 -1
- data/lib/mindee/v2/product/base_product.rb +2 -2
- data/lib/mindee/v2/product/classification/classification_classifier.rb +1 -2
- data/lib/mindee/v2/product/classification/params/classification_parameters.rb +1 -1
- data/lib/mindee/v2/product/crop/crop_item.rb +1 -2
- data/lib/mindee/v2/product/crop/params/crop_parameters.rb +1 -1
- data/lib/mindee/v2/product/extraction/params/extraction_parameters.rb +2 -2
- data/lib/mindee/v2/product/ocr/params/ocr_parameters.rb +1 -1
- data/lib/mindee/v2/product/split/params/split_parameters.rb +1 -1
- data/lib/mindee/v2/product/split/split_range.rb +1 -2
- data/lib/mindee/v2/search/models/model_search_parameters.rb +51 -0
- data/lib/mindee/v2/search/models/model_search_response.rb +28 -0
- data/lib/mindee/v2/search/rag_documents/rag_document_search_parameters.rb +52 -0
- data/lib/mindee/v2/search/rag_documents/rag_document_search_response.rb +28 -0
- data/lib/mindee/v2/search.rb +6 -0
- data/lib/mindee/v2.rb +2 -0
- data/lib/mindee/version.rb +1 -1
- data/mindee.gemspec +1 -0
- data/sig/custom/net_http.rbs +1 -1
- data/sig/mindee/http/cancellation_token.rbs +15 -0
- data/sig/mindee/v2/client.rbs +7 -4
- data/sig/mindee/v2/client_options/base_product_parameters.rbs +41 -0
- data/sig/mindee/v2/client_options/base_search_parameters.rbs +19 -0
- data/sig/mindee/v2/http/mindee_api_v2.rbs +12 -6
- data/sig/mindee/v2/parsing/field/field_confidence.rbs +9 -0
- data/sig/mindee/v2/parsing/search/base_search_response.rbs +19 -0
- data/sig/mindee/v2/parsing/search/search_rag_document.rbs +23 -0
- data/sig/mindee/v2/parsing/search/search_rag_documents.rbs +16 -0
- data/sig/mindee/v2/parsing/search/search_response.rbs +4 -9
- data/sig/mindee/v2/product/base_product.rbs +3 -3
- data/sig/mindee/v2/product/classification/params/classification_parameters/classification_parameters.rbs +1 -1
- data/sig/mindee/v2/product/crop/params/crop_parameters/crop_parameters.rbs +1 -1
- data/sig/mindee/v2/product/extraction/params/extraction_parameters.rbs +1 -1
- data/sig/mindee/v2/product/ocr/params/ocr_parameters/ocr_parameters.rbs +1 -1
- data/sig/mindee/v2/product/split/params/split_parameters/split_parameters.rbs +1 -1
- data/sig/mindee/v2/search/models/model_search_parameters.rbs +22 -0
- data/sig/mindee/v2/search/models/model_search_response.rbs +17 -0
- data/sig/mindee/v2/search/rag_documents/rag_document_search_parameters.rbs +22 -0
- data/sig/mindee/v2/search/rag_documents/rag_document_search_response.rbs +17 -0
- metadata +27 -5
- data/.pre-commit-config.yaml +0 -36
- data/lib/mindee/input/base_parameters.rb +0 -156
- data/sig/mindee/input/base_parameters.rbs +0 -36
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# lib/mindee/v2/search/models/model_search_response.rb
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Search
|
|
6
|
+
module Models
|
|
7
|
+
class ModelSearchResponse < V2::Parsing::Search::BaseSearchResponse
|
|
8
|
+
attr_reader models: V2::Parsing::Search::SearchModels
|
|
9
|
+
|
|
10
|
+
def initialize: (Hash[String|Symbol, untyped]) -> void
|
|
11
|
+
|
|
12
|
+
def body_lines: -> Array[String]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# lib/mindee/v2/search/rag_documents/rag_document_search_parameters.rb
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Search
|
|
6
|
+
module RAGDocuments
|
|
7
|
+
class RAGDocumentSearchParameters < ClientOptions::BaseSearchParameters
|
|
8
|
+
attr_reader filename: String?
|
|
9
|
+
attr_reader model_id: String
|
|
10
|
+
|
|
11
|
+
def initialize: (model_id: String, ?filename: String?, ?page: Integer?, ?per_page: Integer?) -> void
|
|
12
|
+
|
|
13
|
+
def self.slug: -> String
|
|
14
|
+
def self.response_class: -> singleton(RAGDocumentSearchResponse)
|
|
15
|
+
def response_class: -> singleton(RAGDocumentSearchResponse)
|
|
16
|
+
|
|
17
|
+
def request_parameters: -> Hash[String, String | Array[String]]
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# lib/mindee/v2/search/rag_documents/rag_document_search_response.rb
|
|
2
|
+
|
|
3
|
+
module Mindee
|
|
4
|
+
module V2
|
|
5
|
+
module Search
|
|
6
|
+
module RAGDocuments
|
|
7
|
+
class RAGDocumentSearchResponse < V2::Parsing::Search::BaseSearchResponse
|
|
8
|
+
attr_reader rag_documents: V2::Parsing::Search::SearchRAGDocuments
|
|
9
|
+
|
|
10
|
+
def initialize: (Hash[String|Symbol, untyped]) -> void
|
|
11
|
+
|
|
12
|
+
def body_lines: -> Array[String]
|
|
13
|
+
end
|
|
14
|
+
end
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mindee-lite
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 5.
|
|
4
|
+
version: 5.5.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mindee, SA
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-09-30 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -63,10 +63,11 @@ extensions: []
|
|
|
63
63
|
extra_rdoc_files: []
|
|
64
64
|
files:
|
|
65
65
|
- ".editorconfig"
|
|
66
|
+
- ".git-hooks/pre_commit/gitleaks.rb"
|
|
66
67
|
- ".gitattributes"
|
|
67
68
|
- ".gitignore"
|
|
68
69
|
- ".gitmodules"
|
|
69
|
-
- ".
|
|
70
|
+
- ".overcommit.yml"
|
|
70
71
|
- ".rubocop.yml"
|
|
71
72
|
- ".yardopts"
|
|
72
73
|
- CHANGELOG.md
|
|
@@ -84,6 +85,7 @@ files:
|
|
|
84
85
|
- bin/v1/products.rb
|
|
85
86
|
- bin/v2/parser.rb
|
|
86
87
|
- bin/v2/products.rb
|
|
88
|
+
- bin/v2/search_commands.rb
|
|
87
89
|
- docs/code_samples/bank_account_details_v1.txt
|
|
88
90
|
- docs/code_samples/bank_account_details_v2.txt
|
|
89
91
|
- docs/code_samples/bank_statement_fr_v2_async.txt
|
|
@@ -130,6 +132,7 @@ files:
|
|
|
130
132
|
- lib/mindee/geometry/utils.rb
|
|
131
133
|
- lib/mindee/http.rb
|
|
132
134
|
- lib/mindee/http/.rubocop.yml
|
|
135
|
+
- lib/mindee/http/cancellation_token.rb
|
|
133
136
|
- lib/mindee/http/http_error_handler.rb
|
|
134
137
|
- lib/mindee/http/response_validation.rb
|
|
135
138
|
- lib/mindee/image.rb
|
|
@@ -139,7 +142,6 @@ files:
|
|
|
139
142
|
- lib/mindee/image/image_extractor.rb
|
|
140
143
|
- lib/mindee/image/image_utils.rb
|
|
141
144
|
- lib/mindee/input.rb
|
|
142
|
-
- lib/mindee/input/base_parameters.rb
|
|
143
145
|
- lib/mindee/input/local_response.rb
|
|
144
146
|
- lib/mindee/input/polling_options.rb
|
|
145
147
|
- lib/mindee/input/sources.rb
|
|
@@ -282,6 +284,9 @@ files:
|
|
|
282
284
|
- lib/mindee/v1/product/universal/universal_prediction.rb
|
|
283
285
|
- lib/mindee/v2.rb
|
|
284
286
|
- lib/mindee/v2/client.rb
|
|
287
|
+
- lib/mindee/v2/client_options.rb
|
|
288
|
+
- lib/mindee/v2/client_options/base_product_parameters.rb
|
|
289
|
+
- lib/mindee/v2/client_options/base_search_parameters.rb
|
|
285
290
|
- lib/mindee/v2/file_operations.rb
|
|
286
291
|
- lib/mindee/v2/file_operations/crop.rb
|
|
287
292
|
- lib/mindee/v2/file_operations/split.rb
|
|
@@ -315,10 +320,13 @@ files:
|
|
|
315
320
|
- lib/mindee/v2/parsing/raw_text.rb
|
|
316
321
|
- lib/mindee/v2/parsing/raw_text_page.rb
|
|
317
322
|
- lib/mindee/v2/parsing/search.rb
|
|
323
|
+
- lib/mindee/v2/parsing/search/base_search_response.rb
|
|
318
324
|
- lib/mindee/v2/parsing/search/model_webhook.rb
|
|
319
325
|
- lib/mindee/v2/parsing/search/pagination_metadata.rb
|
|
320
326
|
- lib/mindee/v2/parsing/search/search_model.rb
|
|
321
327
|
- lib/mindee/v2/parsing/search/search_models.rb
|
|
328
|
+
- lib/mindee/v2/parsing/search/search_rag_document.rb
|
|
329
|
+
- lib/mindee/v2/parsing/search/search_rag_documents.rb
|
|
322
330
|
- lib/mindee/v2/parsing/search/search_response.rb
|
|
323
331
|
- lib/mindee/v2/product.rb
|
|
324
332
|
- lib/mindee/v2/product/base_product.rb
|
|
@@ -355,6 +363,11 @@ files:
|
|
|
355
363
|
- lib/mindee/v2/product/split/split_range.rb
|
|
356
364
|
- lib/mindee/v2/product/split/split_response.rb
|
|
357
365
|
- lib/mindee/v2/product/split/split_result.rb
|
|
366
|
+
- lib/mindee/v2/search.rb
|
|
367
|
+
- lib/mindee/v2/search/models/model_search_parameters.rb
|
|
368
|
+
- lib/mindee/v2/search/models/model_search_response.rb
|
|
369
|
+
- lib/mindee/v2/search/rag_documents/rag_document_search_parameters.rb
|
|
370
|
+
- lib/mindee/v2/search/rag_documents/rag_document_search_response.rb
|
|
358
371
|
- lib/mindee/version.rb
|
|
359
372
|
- mindee-lite.gemspec
|
|
360
373
|
- mindee.gemspec
|
|
@@ -374,6 +387,7 @@ files:
|
|
|
374
387
|
- sig/mindee/geometry/polygon.rbs
|
|
375
388
|
- sig/mindee/geometry/quadrilateral.rbs
|
|
376
389
|
- sig/mindee/geometry/utils.rbs
|
|
390
|
+
- sig/mindee/http/cancellation_token.rbs
|
|
377
391
|
- sig/mindee/http/http_error_handler.rbs
|
|
378
392
|
- sig/mindee/http/response_validation.rbs
|
|
379
393
|
- sig/mindee/image/extracted_image.rbs
|
|
@@ -381,7 +395,6 @@ files:
|
|
|
381
395
|
- sig/mindee/image/image_compressor.rbs
|
|
382
396
|
- sig/mindee/image/image_extractor.rbs
|
|
383
397
|
- sig/mindee/image/image_utils.rbs
|
|
384
|
-
- sig/mindee/input/base_parameters.rbs
|
|
385
398
|
- sig/mindee/input/local_response.rbs
|
|
386
399
|
- sig/mindee/input/polling_options.rbs
|
|
387
400
|
- sig/mindee/input/sources/base64_input_source.rbs
|
|
@@ -508,6 +521,8 @@ files:
|
|
|
508
521
|
- sig/mindee/v1/product/universal/universal_page.rbs
|
|
509
522
|
- sig/mindee/v1/product/universal/universal_prediction.rbs
|
|
510
523
|
- sig/mindee/v2/client.rbs
|
|
524
|
+
- sig/mindee/v2/client_options/base_product_parameters.rbs
|
|
525
|
+
- sig/mindee/v2/client_options/base_search_parameters.rbs
|
|
511
526
|
- sig/mindee/v2/file_operation/crop.rbs
|
|
512
527
|
- sig/mindee/v2/file_operation/split.rbs
|
|
513
528
|
- sig/mindee/v2/http/api_v2_settings.rbs
|
|
@@ -535,10 +550,13 @@ files:
|
|
|
535
550
|
- sig/mindee/v2/parsing/rag_metadata.rbs
|
|
536
551
|
- sig/mindee/v2/parsing/raw_text.rbs
|
|
537
552
|
- sig/mindee/v2/parsing/raw_text_page.rbs
|
|
553
|
+
- sig/mindee/v2/parsing/search/base_search_response.rbs
|
|
538
554
|
- sig/mindee/v2/parsing/search/model_webhook.rbs
|
|
539
555
|
- sig/mindee/v2/parsing/search/pagination_metadata.rbs
|
|
540
556
|
- sig/mindee/v2/parsing/search/search_model.rbs
|
|
541
557
|
- sig/mindee/v2/parsing/search/search_models.rbs
|
|
558
|
+
- sig/mindee/v2/parsing/search/search_rag_document.rbs
|
|
559
|
+
- sig/mindee/v2/parsing/search/search_rag_documents.rbs
|
|
542
560
|
- sig/mindee/v2/parsing/search/search_response.rbs
|
|
543
561
|
- sig/mindee/v2/parsing/search_models.rbs
|
|
544
562
|
- sig/mindee/v2/product/base_product.rbs
|
|
@@ -575,6 +593,10 @@ files:
|
|
|
575
593
|
- sig/mindee/v2/product/split/split_range.rbs
|
|
576
594
|
- sig/mindee/v2/product/split/split_response.rbs
|
|
577
595
|
- sig/mindee/v2/product/split/split_result.rbs
|
|
596
|
+
- sig/mindee/v2/search/models/model_search_parameters.rbs
|
|
597
|
+
- sig/mindee/v2/search/models/model_search_response.rbs
|
|
598
|
+
- sig/mindee/v2/search/rag_documents/rag_document_search_parameters.rbs
|
|
599
|
+
- sig/mindee/v2/search/rag_documents/rag_document_search_response.rbs
|
|
578
600
|
- sig/mindee/version.rbs
|
|
579
601
|
homepage: https://github.com/mindee/mindee-api-ruby
|
|
580
602
|
licenses:
|
data/.pre-commit-config.yaml
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
repos:
|
|
2
|
-
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
3
|
-
rev: v6.0.0
|
|
4
|
-
hooks:
|
|
5
|
-
- id: check-merge-conflict
|
|
6
|
-
- id: check-yaml
|
|
7
|
-
- id: end-of-file-fixer
|
|
8
|
-
- id: trailing-whitespace
|
|
9
|
-
- id: check-added-large-files
|
|
10
|
-
args: ["--maxkb=1024"]
|
|
11
|
-
|
|
12
|
-
- repo: https://github.com/gitleaks/gitleaks
|
|
13
|
-
rev: v8.30.0
|
|
14
|
-
hooks:
|
|
15
|
-
- id: gitleaks
|
|
16
|
-
exclude: ^(spec/data/|docs/code_samples/|local_test/)
|
|
17
|
-
|
|
18
|
-
- repo: local
|
|
19
|
-
hooks:
|
|
20
|
-
- id: rubocop
|
|
21
|
-
name: RuboCop
|
|
22
|
-
entry: bundle exec rubocop --force-exclusion --no-server
|
|
23
|
-
language: system
|
|
24
|
-
pass_filenames: false
|
|
25
|
-
- id: steep
|
|
26
|
-
name: Steep
|
|
27
|
-
entry: bundle exec steep check
|
|
28
|
-
language: system
|
|
29
|
-
pass_filenames: false
|
|
30
|
-
stages: [pre-commit, pre-push]
|
|
31
|
-
- id: bundle-audit
|
|
32
|
-
name: Bundle Audit
|
|
33
|
-
entry: bundle exec bundle-audit check
|
|
34
|
-
language: system
|
|
35
|
-
pass_filenames: false
|
|
36
|
-
stages: [pre-commit, pre-push]
|
|
@@ -1,156 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Mindee
|
|
4
|
-
module Input
|
|
5
|
-
# Base class for parameters accepted by all V2 endpoints.
|
|
6
|
-
class BaseParameters
|
|
7
|
-
# @return [String] ID of the model (required).
|
|
8
|
-
attr_reader :model_id
|
|
9
|
-
|
|
10
|
-
# @return [String, nil] Optional alias for the file.
|
|
11
|
-
attr_reader :file_alias
|
|
12
|
-
|
|
13
|
-
# @return [Array<String>, nil] Optional list of Webhooks IDs to propagate the API response to.
|
|
14
|
-
attr_reader :webhook_ids
|
|
15
|
-
|
|
16
|
-
# @return [PollingOptions] Options for polling. Set only if having timeout issues.
|
|
17
|
-
attr_reader :polling_options
|
|
18
|
-
|
|
19
|
-
# @return [Boolean, nil] Whether to close the file after parsing.
|
|
20
|
-
attr_reader :close_file
|
|
21
|
-
|
|
22
|
-
# @param [String] model_id ID of the model
|
|
23
|
-
# @param [String, nil] file_alias File alias, if applicable.
|
|
24
|
-
# @param [Array<String>, nil] webhook_ids List of webhook IDs to propagate the API response to.
|
|
25
|
-
# @param [Hash, PollingOptions, nil] polling_options Options for polling. Set only if having timeout issues.
|
|
26
|
-
# @param [Boolean, nil] close_file Whether to close the file after parsing.
|
|
27
|
-
def initialize(
|
|
28
|
-
model_id,
|
|
29
|
-
file_alias: nil,
|
|
30
|
-
webhook_ids: nil,
|
|
31
|
-
polling_options: nil,
|
|
32
|
-
close_file: true
|
|
33
|
-
)
|
|
34
|
-
raise Error::MindeeInputError, 'Model ID is required.' if model_id.empty? || model_id.nil?
|
|
35
|
-
|
|
36
|
-
@model_id = model_id
|
|
37
|
-
@file_alias = file_alias
|
|
38
|
-
@webhook_ids = webhook_ids || []
|
|
39
|
-
@polling_options = get_clean_polling_options(polling_options)
|
|
40
|
-
@close_file = close_file.nil? || close_file
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
# Sets polling options after normalizing hash inputs.
|
|
44
|
-
# @param [Hash, PollingOptions, nil] polling_options
|
|
45
|
-
# @return [PollingOptions]
|
|
46
|
-
def polling_options=(polling_options)
|
|
47
|
-
@polling_options = get_clean_polling_options(polling_options)
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
# @return [String] Slug for the endpoint.
|
|
51
|
-
def self.slug
|
|
52
|
-
if self == BaseParameters
|
|
53
|
-
raise NotImplementedError, 'Cannot access `slug` directly on the BaseParameters class.'
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
''
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
# @return [String] Slug for the endpoint.
|
|
60
|
-
def slug
|
|
61
|
-
self.class.slug
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
# Load from a hash
|
|
65
|
-
# @param [Hash] params Parameters to provide as a hash.
|
|
66
|
-
# @return [BaseParameters]
|
|
67
|
-
def self.from_hash(params: {})
|
|
68
|
-
load_from_hash(params: params)
|
|
69
|
-
new(
|
|
70
|
-
params[:model_id],
|
|
71
|
-
file_alias: params[:file_alias],
|
|
72
|
-
webhook_ids: params[:webhook_ids],
|
|
73
|
-
polling_options: params[:polling_options],
|
|
74
|
-
close_file: params[:close_file]
|
|
75
|
-
)
|
|
76
|
-
end
|
|
77
|
-
|
|
78
|
-
# Loads a prediction from a Hash.
|
|
79
|
-
# @param [Hash] params Parameters to provide as a hash.
|
|
80
|
-
# @return [Hash]
|
|
81
|
-
def self.load_from_hash(params: {})
|
|
82
|
-
params.transform_keys!(&:to_sym)
|
|
83
|
-
|
|
84
|
-
if params.empty? || params[:model_id].nil? || params[:model_id].empty?
|
|
85
|
-
raise Error::MindeeInputError, 'Model ID is required.'
|
|
86
|
-
end
|
|
87
|
-
|
|
88
|
-
polling_options_input = params.fetch(:page_options, PollingOptions.new)
|
|
89
|
-
if polling_options_input.is_a?(Hash)
|
|
90
|
-
polling_options_input = polling_options_input.transform_keys(&:to_sym)
|
|
91
|
-
PollingOptions.new(
|
|
92
|
-
initial_delay_sec: polling_options_input.fetch(:initial_delay_sec, 2.0),
|
|
93
|
-
delay_sec: polling_options_input.fetch(:delay_sec, 1.5),
|
|
94
|
-
max_retries: polling_options_input.fetch(:max_retries, 80)
|
|
95
|
-
)
|
|
96
|
-
end
|
|
97
|
-
params
|
|
98
|
-
end
|
|
99
|
-
|
|
100
|
-
# Appends base form data to the provided array.
|
|
101
|
-
# @param [Array] form_data Array of form fields
|
|
102
|
-
# @return [Array]
|
|
103
|
-
def append_form_data(form_data)
|
|
104
|
-
form_data.push(['alias', @file_alias]) if @file_alias
|
|
105
|
-
webhook_ids = @webhook_ids || []
|
|
106
|
-
form_data.push(['webhook_ids', webhook_ids.join(',')]) unless @webhook_ids.nil? || webhook_ids.empty?
|
|
107
|
-
form_data
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
# Validates the parameters for async auto-polling
|
|
111
|
-
def validate_async_params
|
|
112
|
-
min_delay_sec = 1
|
|
113
|
-
min_initial_delay_sec = 1
|
|
114
|
-
min_retries = 2
|
|
115
|
-
|
|
116
|
-
if @polling_options.delay_sec < min_delay_sec
|
|
117
|
-
raise ArgumentError,
|
|
118
|
-
"Cannot set auto-poll delay to less than #{min_delay_sec} second(s)"
|
|
119
|
-
end
|
|
120
|
-
if @polling_options.initial_delay_sec < min_initial_delay_sec
|
|
121
|
-
raise ArgumentError,
|
|
122
|
-
"Cannot set initial parsing delay to less than #{min_initial_delay_sec} second(s)"
|
|
123
|
-
end
|
|
124
|
-
return unless @polling_options.max_retries < min_retries
|
|
125
|
-
|
|
126
|
-
raise ArgumentError,
|
|
127
|
-
"Cannot set auto-poll retries to less than #{min_retries}"
|
|
128
|
-
end
|
|
129
|
-
|
|
130
|
-
private
|
|
131
|
-
|
|
132
|
-
# Cleans a proper polling options object potentially from a hash.
|
|
133
|
-
# @param [Hash, PollingOptions, nil] polling_options Polling options.
|
|
134
|
-
# @return [PollingOptions] Valid polling options object.
|
|
135
|
-
def get_clean_polling_options(polling_options)
|
|
136
|
-
return PollingOptions.new if polling_options.is_a?(PollingOptions)
|
|
137
|
-
|
|
138
|
-
if polling_options.is_a?(Hash)
|
|
139
|
-
polling_options = polling_options.transform_keys(&:to_sym)
|
|
140
|
-
output_polling_options = PollingOptions.new(
|
|
141
|
-
initial_delay_sec: polling_options.fetch(:initial_delay_sec, 2.0),
|
|
142
|
-
delay_sec: polling_options.fetch(:delay_sec, 1.5),
|
|
143
|
-
max_retries: polling_options.fetch(:max_retries, 80)
|
|
144
|
-
)
|
|
145
|
-
else
|
|
146
|
-
output_polling_options = if polling_options.is_a?(PollingOptions)
|
|
147
|
-
polling_options || PollingOptions.new
|
|
148
|
-
else
|
|
149
|
-
PollingOptions.new
|
|
150
|
-
end
|
|
151
|
-
end
|
|
152
|
-
output_polling_options
|
|
153
|
-
end
|
|
154
|
-
end
|
|
155
|
-
end
|
|
156
|
-
end
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
# lib/mindee/input/base_parameters.rb
|
|
2
|
-
|
|
3
|
-
module Mindee
|
|
4
|
-
module Input
|
|
5
|
-
class BaseParameters
|
|
6
|
-
attr_reader self.slug: String
|
|
7
|
-
|
|
8
|
-
def self.from_hash: (params: Hash[String | Symbol, untyped]) -> BaseParameters
|
|
9
|
-
def self.load_from_hash: (params: Hash[String | Symbol, untyped]) -> Hash[String | Symbol, untyped]
|
|
10
|
-
|
|
11
|
-
def slug: -> String
|
|
12
|
-
|
|
13
|
-
attr_reader model_id: String
|
|
14
|
-
attr_reader file_alias: String?
|
|
15
|
-
attr_reader webhook_ids: Array[String]?
|
|
16
|
-
attr_reader polling_options: PollingOptions
|
|
17
|
-
attr_reader close_file: bool
|
|
18
|
-
|
|
19
|
-
def initialize: (
|
|
20
|
-
String,
|
|
21
|
-
?file_alias: String?,
|
|
22
|
-
?webhook_ids: Array[String]?,
|
|
23
|
-
?polling_options: Hash[Symbol | String, untyped] | PollingOptions | nil,
|
|
24
|
-
?close_file: bool?
|
|
25
|
-
) -> void
|
|
26
|
-
|
|
27
|
-
def append_form_data: (Array[Array[untyped]]) -> Array[Array[untyped]]
|
|
28
|
-
def validate_async_params: () -> void
|
|
29
|
-
def polling_options=: (Hash[Symbol | String, untyped] | PollingOptions | nil) -> PollingOptions
|
|
30
|
-
|
|
31
|
-
private
|
|
32
|
-
|
|
33
|
-
def get_clean_polling_options: (Hash[String | Symbol, untyped] | PollingOptions | nil) -> PollingOptions
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|