mindee 4.10.1 → 4.12.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/CHANGELOG.md +11 -0
- data/lib/mindee/parsing/v2/field/object_field.rb +43 -0
- data/lib/mindee/parsing/v2/inference.rb +5 -0
- data/lib/mindee/parsing/v2/inference_job.rb +25 -0
- data/lib/mindee/parsing/v2/job.rb +9 -2
- data/lib/mindee/version.rb +1 -1
- data/sig/mindee/parsing/v2/field/object_field.rbs +9 -2
- data/sig/mindee/parsing/v2/inference.rbs +2 -0
- data/sig/mindee/parsing/v2/inference_job.rbs +12 -0
- data/sig/mindee/parsing/v2/job.rbs +2 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 4ec6f37e83f30ed06cca64a016ea4936211726fe0e4e6281f6e9eec42f32bfdc
|
|
4
|
+
data.tar.gz: 780f641de505dcb64842c73b2597d389894522f38c345d92c2b28fd52db61749
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: f0909570d17dfcc54d8d95671ec323c733a98be640bd71c837708759a623d16896133998f2e5af67aa845420f92ef7c6c875d9890c6e8e9dbe97db0069529f73
|
|
7
|
+
data.tar.gz: '0975d445b49f5e22805baec50eebbaf2e8127fd85ab22fe5970167eeb3d31217be2db50ddc6a56155580d70f5fbce888f4b491d58343d7fc3fea806ed5de0d33'
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# Mindee Ruby API Library Changelog
|
|
2
2
|
|
|
3
|
+
## v4.12.0 - 2026-02-25
|
|
4
|
+
### Changes
|
|
5
|
+
* :sparkles: add job information to inference
|
|
6
|
+
* :sparkles: add more inference info
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
## v4.11.0 - 2026-02-11
|
|
10
|
+
### Changes
|
|
11
|
+
* :sparkles: add complementary accessors for ObjectField
|
|
12
|
+
|
|
13
|
+
|
|
3
14
|
## v4.10.1 - 2026-02-05
|
|
4
15
|
### Fixes
|
|
5
16
|
* :bug: fix NoMethodError in JobWebhook when error is nil (#222) (Co-authored-by: haris_delalic <haris.delalic@datamolino.com>)
|
|
@@ -85,6 +85,49 @@ module Mindee
|
|
|
85
85
|
def get_simple_field(key)
|
|
86
86
|
@fields.get_simple_field(key)
|
|
87
87
|
end
|
|
88
|
+
|
|
89
|
+
# Get a field by key and ensure it is a ListField.
|
|
90
|
+
# @param key [String] Field key to retrieve.
|
|
91
|
+
# @return [ListField] The ListField.
|
|
92
|
+
# @raise [TypeError] If the field is not a ListField.
|
|
93
|
+
def get_list_field(key)
|
|
94
|
+
field = @fields.get_list_field(key)
|
|
95
|
+
raise TypeError, "Field #{key} is not a ListField" unless field.is_a?(ListField)
|
|
96
|
+
|
|
97
|
+
field
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
# Get a field by key and ensure it is an ObjectField.
|
|
101
|
+
# @param key [String] Field key to retrieve.
|
|
102
|
+
# @return [ObjectField] The ObjectField.
|
|
103
|
+
# @raise [TypeError] If the field is not an ObjectField.
|
|
104
|
+
def get_object_field(key)
|
|
105
|
+
field = @fields.get_object_field(key)
|
|
106
|
+
raise TypeError, "Field #{key} is not an ObjectField" unless field.is_a?(ObjectField)
|
|
107
|
+
|
|
108
|
+
field
|
|
109
|
+
end
|
|
110
|
+
|
|
111
|
+
# Get all simple fields.
|
|
112
|
+
# @return [Hash<String, SimpleField>] Simple fields contained in the object.
|
|
113
|
+
def simple_fields
|
|
114
|
+
# @type var fields: Hash<String, SimpleField>
|
|
115
|
+
@fields.select { |_, value| value.is_a?(SimpleField) }
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
# Get all list fields.
|
|
119
|
+
# @return [Hash<String, ListField>] List fields contained in the object.
|
|
120
|
+
def list_fields
|
|
121
|
+
# @type var fields: Hash<String, ListField>
|
|
122
|
+
@fields.select { |_, value| value.is_a?(ListField) }
|
|
123
|
+
end
|
|
124
|
+
|
|
125
|
+
# Get all object fields.
|
|
126
|
+
# @return [Hash<String, ObjectField>] Object fields contained in the object.
|
|
127
|
+
def object_fields
|
|
128
|
+
# @type var fields: Hash<String, ObjectField>
|
|
129
|
+
@fields.select { |_, value| value.is_a?(ObjectField) }
|
|
130
|
+
end
|
|
88
131
|
end
|
|
89
132
|
end
|
|
90
133
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'inference_job'
|
|
3
4
|
require_relative 'inference_model'
|
|
4
5
|
require_relative 'inference_file'
|
|
5
6
|
require_relative 'inference_result'
|
|
@@ -12,6 +13,8 @@ module Mindee
|
|
|
12
13
|
class Inference
|
|
13
14
|
# @return [String] Identifier of the inference (when provided by API).
|
|
14
15
|
attr_reader :id
|
|
16
|
+
# @return [InferenceJob] Metadata about the job.
|
|
17
|
+
attr_reader :job
|
|
15
18
|
# @return [InferenceModel] Information about the model used.
|
|
16
19
|
attr_reader :model
|
|
17
20
|
# @return [InferenceFile] Information about the processed file.
|
|
@@ -26,6 +29,7 @@ module Mindee
|
|
|
26
29
|
raise ArgumentError, 'server_response must be a Hash' unless server_response.is_a?(Hash)
|
|
27
30
|
|
|
28
31
|
@model = InferenceModel.new(server_response['model'])
|
|
32
|
+
@job = InferenceJob.new(server_response['job']) if server_response.key?('job')
|
|
29
33
|
@file = InferenceFile.new(server_response['file'])
|
|
30
34
|
@active_options = InferenceActiveOptions.new(server_response['active_options'])
|
|
31
35
|
@result = InferenceResult.new(server_response['result'])
|
|
@@ -39,6 +43,7 @@ module Mindee
|
|
|
39
43
|
[
|
|
40
44
|
'Inference',
|
|
41
45
|
'#########',
|
|
46
|
+
@job.to_s,
|
|
42
47
|
@model.to_s,
|
|
43
48
|
@file.to_s,
|
|
44
49
|
@active_options.to_s,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require_relative 'common_response'
|
|
4
|
+
require_relative 'job'
|
|
5
|
+
|
|
6
|
+
module Mindee
|
|
7
|
+
module Parsing
|
|
8
|
+
module V2
|
|
9
|
+
# HTTP response wrapper that embeds a V2 job.
|
|
10
|
+
class InferenceJob
|
|
11
|
+
# @return [String] UUID of the Job.
|
|
12
|
+
attr_reader :id
|
|
13
|
+
|
|
14
|
+
def initialize(server_response)
|
|
15
|
+
@id = server_response['id']
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
# @return [String] String representation of the job.
|
|
19
|
+
def to_s
|
|
20
|
+
"Job\n===\n:ID: #{@id}\n"
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|
|
24
|
+
end
|
|
25
|
+
end
|
|
@@ -11,8 +11,10 @@ module Mindee
|
|
|
11
11
|
class Job
|
|
12
12
|
# @return [String] Unique job identifier.
|
|
13
13
|
attr_reader :id
|
|
14
|
-
# @return [
|
|
14
|
+
# @return [Time] Date and time of the Job creation.
|
|
15
15
|
attr_reader :created_at
|
|
16
|
+
# @return [Time, nil] Date and time of the Job completion. Filled once processing is finished.
|
|
17
|
+
attr_reader :completed_at
|
|
16
18
|
# @return [String] Identifier of the model used.
|
|
17
19
|
attr_reader :model_id
|
|
18
20
|
# @return [String] Name of the processed file.
|
|
@@ -30,6 +32,7 @@ module Mindee
|
|
|
30
32
|
# @return [ErrorResponse, nil] Error details when the job failed.
|
|
31
33
|
attr_reader :error
|
|
32
34
|
|
|
35
|
+
# rubocop:disable Metrics/CyclomaticComplexity
|
|
33
36
|
# @param server_response [Hash] Parsed JSON payload from the API.
|
|
34
37
|
def initialize(server_response)
|
|
35
38
|
raise ArgumentError, 'server_response must be a Hash' unless server_response.is_a?(Hash)
|
|
@@ -39,7 +42,10 @@ module Mindee
|
|
|
39
42
|
unless server_response['error'].nil? || server_response['error'].empty?
|
|
40
43
|
@error = ErrorResponse.new(server_response['error'])
|
|
41
44
|
end
|
|
42
|
-
@created_at
|
|
45
|
+
@created_at = Time.iso8601(server_response['created_at'])
|
|
46
|
+
if server_response.key?('completed_at') && !server_response['completed_at'].nil?
|
|
47
|
+
@completed_at = Time.iso8601(server_response['completed_at'])
|
|
48
|
+
end
|
|
43
49
|
@model_id = server_response['model_id']
|
|
44
50
|
@polling_url = server_response['polling_url']
|
|
45
51
|
@filename = server_response['filename']
|
|
@@ -50,6 +56,7 @@ module Mindee
|
|
|
50
56
|
@webhooks.push JobWebhook.new(webhook)
|
|
51
57
|
end
|
|
52
58
|
end
|
|
59
|
+
# rubocop:enable Metrics/CyclomaticComplexity
|
|
53
60
|
|
|
54
61
|
# String representation.
|
|
55
62
|
# @return [String]
|
data/lib/mindee/version.rb
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
#
|
|
2
|
-
|
|
1
|
+
# lib/mindee/parsing/v2/field/object_field.rb
|
|
3
2
|
module Mindee
|
|
4
3
|
module Parsing
|
|
5
4
|
module V2
|
|
@@ -8,7 +7,15 @@ module Mindee
|
|
|
8
7
|
class ObjectField < BaseField
|
|
9
8
|
attr_reader fields: InferenceFields
|
|
10
9
|
def initialize: (Hash[String | Symbol, untyped], ?Integer) -> void
|
|
10
|
+
|
|
11
11
|
def get_simple_field: (String) -> SimpleField
|
|
12
|
+
def get_list_field: (String) -> ListField
|
|
13
|
+
def get_object_field: (String) -> ObjectField
|
|
14
|
+
|
|
15
|
+
def simple_fields: () -> Hash[String, SimpleField]
|
|
16
|
+
def list_fields: () -> Hash[String, ListField]
|
|
17
|
+
def object_fields: () -> Hash[String, ObjectField]
|
|
18
|
+
|
|
12
19
|
def multi_str: -> String
|
|
13
20
|
def single_str: -> String
|
|
14
21
|
def to_s: -> String
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mindee
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 4.
|
|
4
|
+
version: 4.12.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-02-
|
|
11
|
+
date: 2026-02-25 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -363,6 +363,7 @@ files:
|
|
|
363
363
|
- lib/mindee/parsing/v2/inference.rb
|
|
364
364
|
- lib/mindee/parsing/v2/inference_active_options.rb
|
|
365
365
|
- lib/mindee/parsing/v2/inference_file.rb
|
|
366
|
+
- lib/mindee/parsing/v2/inference_job.rb
|
|
366
367
|
- lib/mindee/parsing/v2/inference_model.rb
|
|
367
368
|
- lib/mindee/parsing/v2/inference_response.rb
|
|
368
369
|
- lib/mindee/parsing/v2/inference_result.rb
|
|
@@ -635,6 +636,7 @@ files:
|
|
|
635
636
|
- sig/mindee/parsing/v2/inference.rbs
|
|
636
637
|
- sig/mindee/parsing/v2/inference_active_options.rbs
|
|
637
638
|
- sig/mindee/parsing/v2/inference_file.rbs
|
|
639
|
+
- sig/mindee/parsing/v2/inference_job.rbs
|
|
638
640
|
- sig/mindee/parsing/v2/inference_model.rbs
|
|
639
641
|
- sig/mindee/parsing/v2/inference_response.rbs
|
|
640
642
|
- sig/mindee/parsing/v2/inference_result.rbs
|