mindee 4.11.0 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 43659b03f8409d595466a6a97647aa49fc18f87c06da2d487f5f3642327d7903
4
- data.tar.gz: 046b2d6be2bad2ce4e1be68b30b6da6d3848b1dcca7d4a87969a0cd8f17980c4
3
+ metadata.gz: 4ec6f37e83f30ed06cca64a016ea4936211726fe0e4e6281f6e9eec42f32bfdc
4
+ data.tar.gz: 780f641de505dcb64842c73b2597d389894522f38c345d92c2b28fd52db61749
5
5
  SHA512:
6
- metadata.gz: 25ec82428fd6ddcbf1187c6b23312c867378a703928388a76478db0e81ff42e157e066b1a9508c9478397664f0a5cf3226d482ac2533d2f433f524d093e0a322
7
- data.tar.gz: 769ca5bf411c393fa32f1c46acf7922b3cd80d9390b36ce3bfaf07ab9439cd4d229d69cbba792ee7917e8e1aa33cefd0e7cbee619a7f0226820408c26e020d20
6
+ metadata.gz: f0909570d17dfcc54d8d95671ec323c733a98be640bd71c837708759a623d16896133998f2e5af67aa845420f92ef7c6c875d9890c6e8e9dbe97db0069529f73
7
+ data.tar.gz: '0975d445b49f5e22805baec50eebbaf2e8127fd85ab22fe5970167eeb3d31217be2db50ddc6a56155580d70f5fbce888f4b491d58343d7fc3fea806ed5de0d33'
data/CHANGELOG.md CHANGED
@@ -1,9 +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
+
3
9
  ## v4.11.0 - 2026-02-11
4
10
  ### Changes
5
11
  * :sparkles: add complementary accessors for ObjectField
6
12
 
13
+
7
14
  ## v4.10.1 - 2026-02-05
8
15
  ### Fixes
9
16
  * :bug: fix NoMethodError in JobWebhook when error is nil (#222) (Co-authored-by: haris_delalic <haris.delalic@datamolino.com>)
@@ -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 [DateTime, nil] Timestamp of creation.
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 = Time.iso8601(server_response['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]
@@ -3,7 +3,7 @@
3
3
  # Mindee
4
4
  module Mindee
5
5
  # Current version.
6
- VERSION = '4.11.0'
6
+ VERSION = '4.12.0'
7
7
 
8
8
  # Finds and return the current platform.
9
9
  # @return [Symbol, Hash[String | Symbol, Regexp], Nil?]
@@ -3,7 +3,9 @@ module Mindee
3
3
  module Parsing
4
4
  module V2
5
5
  class Inference
6
+
6
7
  attr_reader id: String
8
+ attr_reader job: InferenceJob
7
9
  attr_reader model: InferenceModel
8
10
  attr_reader file: InferenceFile
9
11
  attr_reader active_options: InferenceActiveOptions
@@ -0,0 +1,12 @@
1
+ module Mindee
2
+ module Parsing
3
+ module V2
4
+ class InferenceJob
5
+ attr_reader id: String
6
+
7
+ def initialize: (Hash[String | Symbol, untyped]) -> void
8
+ def to_s: -> String
9
+ end
10
+ end
11
+ end
12
+ end
@@ -4,7 +4,8 @@ module Mindee
4
4
  module V2
5
5
  class Job
6
6
  attr_reader alias: String
7
- attr_reader created_at: DateTime?
7
+ attr_reader created_at: Time
8
+ attr_reader completed_at: Time?
8
9
  attr_reader error: ErrorResponse?
9
10
  attr_reader filename: String
10
11
  attr_reader id: 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.11.0
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 00:00:00.000000000 Z
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