mindee 3.2.0 → 3.3.1

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.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +1 -0
  4. data/CHANGELOG.md +17 -0
  5. data/bin/mindee.rb +1 -1
  6. data/docs/bank_account_details_v2.md +1 -1
  7. data/docs/bank_check_v1.md +5 -2
  8. data/docs/barcode_reader_v1.md +3 -3
  9. data/docs/carte_grise_v1.md +454 -0
  10. data/docs/carte_vitale_v1.md +1 -1
  11. data/docs/code_samples/carte_grise_v1.txt +19 -0
  12. data/docs/cropper_v1.md +6 -3
  13. data/docs/custom_v1.md +9 -1
  14. data/docs/expense_receipts_v5.md +3 -3
  15. data/docs/financial_document_v1.md +11 -8
  16. data/docs/idcard_fr_v2.md +1 -1
  17. data/docs/invoices_v4.md +73 -101
  18. data/docs/license_plates_v1.md +1 -1
  19. data/docs/multi_receipts_detector_v1.md +6 -3
  20. data/docs/passport_v1.md +1 -1
  21. data/docs/proof_of_address_v1.md +1 -1
  22. data/docs/us_driver_license_v1.md +1 -1
  23. data/docs/us_w9_v1.md +4 -4
  24. data/lib/mindee/client.rb +15 -10
  25. data/lib/mindee/http/endpoint.rb +5 -1
  26. data/lib/mindee/http/error.rb +1 -1
  27. data/lib/mindee/parsing/common/api_response.rb +3 -2
  28. data/lib/mindee/parsing/common/document.rb +4 -1
  29. data/lib/mindee/parsing/custom/list_field.rb +7 -5
  30. data/lib/mindee/parsing/standard/base_field.rb +1 -1
  31. data/lib/mindee/product/financial_document/financial_document_v1_document.rb +2 -2
  32. data/lib/mindee/product/fr/carte_grise/carte_grise_v1.rb +39 -0
  33. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_document.rb +235 -0
  34. data/lib/mindee/product/fr/carte_grise/carte_grise_v1_page.rb +34 -0
  35. data/lib/mindee/product/invoice/invoice_v4.rb +1 -2
  36. data/lib/mindee/product/invoice/invoice_v4_document.rb +105 -145
  37. data/lib/mindee/product/invoice/invoice_v4_line_item.rb +54 -30
  38. data/lib/mindee/product/us/w9/w9_v1.rb +2 -2
  39. data/lib/mindee/product/us/w9/w9_v1_document.rb +1 -1
  40. data/lib/mindee/product/us/w9/w9_v1_page.rb +2 -2
  41. data/lib/mindee/product.rb +1 -0
  42. data/lib/mindee/version.rb +1 -1
  43. data/lib/mindee.rb +0 -3
  44. metadata +7 -2
@@ -5,61 +5,85 @@ require_relative '../../parsing'
5
5
  module Mindee
6
6
  module Product
7
7
  module Invoice
8
- # Line items for Invoice V4
9
- class InvoiceV4LineItem
10
- include Mindee::Parsing::Common
8
+ # List of line item details.
9
+ class InvoiceV4LineItem < Mindee::Parsing::Standard::FeatureField
11
10
  include Mindee::Parsing::Standard
12
- # @return [String] The product code referring to the item.
13
- attr_reader :product_code
11
+ # The item description.
14
12
  # @return [String]
15
13
  attr_reader :description
14
+ # The product code referring to the item.
15
+ # @return [String]
16
+ attr_reader :product_code
17
+ # The item quantity
16
18
  # @return [Float]
17
19
  attr_reader :quantity
20
+ # The item tax amount.
18
21
  # @return [Float]
19
- attr_reader :unit_price
22
+ attr_reader :tax_amount
23
+ # The item tax rate in percentage.
20
24
  # @return [Float]
21
- attr_reader :total_amount
22
- # @return [Float] The item tax rate percentage.
23
25
  attr_reader :tax_rate
26
+ # The item total amount.
24
27
  # @return [Float]
25
- attr_reader :tax_amount
28
+ attr_reader :total_amount
29
+ # The item unit price.
26
30
  # @return [Float]
27
- attr_reader :confidence
28
- # @return [Integer]
29
- attr_reader :page_id
30
- # @return [Mindee::Geometry::Quadrilateral]
31
- attr_reader :bounding_box
32
- # @return [Array<Mindee::Geometry::Polygon>]
33
- attr_reader :polygon
31
+ attr_reader :unit_price
34
32
 
35
33
  # @param prediction [Hash]
36
34
  # @param page_id [Integer, nil]
37
35
  def initialize(prediction, page_id)
36
+ super(prediction, page_id)
37
+ @description = prediction['description']
38
38
  @product_code = prediction['product_code']
39
39
  @quantity = prediction['quantity']
40
- @unit_price = prediction['unit_price']
41
- @total_amount = prediction['total_amount']
42
40
  @tax_amount = prediction['tax_amount']
43
41
  @tax_rate = prediction['tax_rate']
44
- @description = prediction['description']
42
+ @total_amount = prediction['total_amount']
43
+ @unit_price = prediction['unit_price']
45
44
  @page_id = page_id
46
45
  end
47
46
 
47
+ # @return [Hash]
48
+ def printable_values
49
+ printable = {}
50
+ printable[:description] = format_for_display(@description, 36)
51
+ printable[:product_code] = format_for_display(@product_code, nil)
52
+ printable[:quantity] = @quantity.nil? ? '' : Field.float_to_string(@quantity)
53
+ printable[:tax_amount] = @tax_amount.nil? ? '' : Field.float_to_string(@tax_amount)
54
+ printable[:tax_rate] = @tax_rate.nil? ? '' : Field.float_to_string(@tax_rate)
55
+ printable[:total_amount] = @total_amount.nil? ? '' : Field.float_to_string(@total_amount)
56
+ printable[:unit_price] = @unit_price.nil? ? '' : Field.float_to_string(@unit_price)
57
+ printable
58
+ end
59
+
48
60
  # @return [String]
49
- def to_s
50
- tax = Field.float_to_string(@tax_amount)
51
- tax << " (#{Field.float_to_string(@tax_rate)}%)" unless @tax_rate.nil?
52
- description = @description.nil? ? '' : @description
53
- description = "#{description[0..32]}..." if description.size > 35
61
+ def to_table_line
62
+ printable = printable_values
54
63
  out_str = String.new
55
- out_str << format('| %- 20s', @product_code)
56
- out_str << " #{format('| %- 7s', Field.float_to_string(@quantity))}"
57
- out_str << " #{format('| %- 7s', Field.float_to_string(@unit_price))}"
58
- out_str << " #{format('| %- 8s', Field.float_to_string(@total_amount))}"
59
- out_str << " #{format('| %- 16s', tax)}"
60
- out_str << " #{format('| %- 37s', description)}"
64
+ out_str << format('| %- 37s', printable[:description])
65
+ out_str << format('| %- 13s', printable[:product_code])
66
+ out_str << format('| %- 9s', printable[:quantity])
67
+ out_str << format('| %- 11s', printable[:tax_amount])
68
+ out_str << format('| %- 13s', printable[:tax_rate])
69
+ out_str << format('| %- 13s', printable[:total_amount])
70
+ out_str << format('| %- 11s', printable[:unit_price])
61
71
  out_str << '|'
62
72
  end
73
+
74
+ # @return [String]
75
+ def to_s
76
+ printable = printable_values
77
+ out_str = String.new
78
+ out_str << "\n :Description: #{printable[:description]}"
79
+ out_str << "\n :Product code: #{printable[:product_code]}"
80
+ out_str << "\n :Quantity: #{printable[:quantity]}"
81
+ out_str << "\n :Tax Amount: #{printable[:tax_amount]}"
82
+ out_str << "\n :Tax Rate (%): #{printable[:tax_rate]}"
83
+ out_str << "\n :Total Amount: #{printable[:total_amount]}"
84
+ out_str << "\n :Unit Price: #{printable[:unit_price]}"
85
+ out_str
86
+ end
63
87
  end
64
88
  end
65
89
  end
@@ -7,9 +7,9 @@ require_relative 'w9_v1_page'
7
7
  module Mindee
8
8
  module Product
9
9
  module US
10
- # US W9 module.
10
+ # W9 module.
11
11
  module W9
12
- # US W9 V1 prediction inference.
12
+ # W9 V1 prediction inference.
13
13
  class W9V1 < Mindee::Parsing::Common::Inference
14
14
  @endpoint_name = 'us_w9'
15
15
  @endpoint_version = '1'
@@ -6,7 +6,7 @@ module Mindee
6
6
  module Product
7
7
  module US
8
8
  module W9
9
- # US W9 V1 document prediction.
9
+ # W9 V1 document prediction.
10
10
  class W9V1Document < Mindee::Parsing::Common::Prediction
11
11
  end
12
12
  end
@@ -7,7 +7,7 @@ module Mindee
7
7
  module Product
8
8
  module US
9
9
  module W9
10
- # US W9 V1 page.
10
+ # W9 V1 page.
11
11
  class W9V1Page < Mindee::Parsing::Common::Page
12
12
  # @param prediction [Hash]
13
13
  def initialize(prediction)
@@ -19,7 +19,7 @@ module Mindee
19
19
  end
20
20
  end
21
21
 
22
- # US W9 V1 page prediction.
22
+ # W9 V1 page prediction.
23
23
  class W9V1PagePrediction < W9V1Document
24
24
  include Mindee::Parsing::Standard
25
25
 
@@ -16,6 +16,7 @@ require_relative 'product/fr/bank_account_details/bank_account_details_v2'
16
16
  require_relative 'product/fr/carte_vitale/carte_vitale_v1'
17
17
  require_relative 'product/fr/id_card/id_card_v1'
18
18
  require_relative 'product/fr/id_card/id_card_v2'
19
+ require_relative 'product/fr/carte_grise/carte_grise_v1'
19
20
  require_relative 'product/invoice_splitter/invoice_splitter_v1'
20
21
  require_relative 'product/us/bank_check/bank_check_v1'
21
22
  require_relative 'product/us/driver_license/driver_license_v1'
@@ -3,7 +3,7 @@
3
3
  # Mindee
4
4
  module Mindee
5
5
  # Current version.
6
- VERSION = '3.2.0'
6
+ VERSION = '3.3.1'
7
7
 
8
8
  # Finds and return the current platform.
9
9
  # @return [String]
data/lib/mindee.rb CHANGED
@@ -5,9 +5,6 @@ require 'mindee/client'
5
5
  module Mindee
6
6
  # Mindee internal http module.
7
7
  module HTTP
8
- # Global Mindee HTTP error handler.
9
- class HttpError < StandardError
10
- end
11
8
  end
12
9
 
13
10
  # PDF-specific operations.
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: 3.2.0
4
+ version: 3.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mindee, SA
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-18 00:00:00.000000000 Z
11
+ date: 2023-12-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: marcel
@@ -120,11 +120,13 @@ files:
120
120
  - docs/bank_account_details_v2.md
121
121
  - docs/bank_check_v1.md
122
122
  - docs/barcode_reader_v1.md
123
+ - docs/carte_grise_v1.md
123
124
  - docs/carte_vitale_v1.md
124
125
  - docs/code_samples/bank_account_details_v1.txt
125
126
  - docs/code_samples/bank_account_details_v2.txt
126
127
  - docs/code_samples/bank_check_v1.txt
127
128
  - docs/code_samples/barcode_reader_v1.txt
129
+ - docs/code_samples/carte_grise_v1.txt
128
130
  - docs/code_samples/carte_vitale_v1.txt
129
131
  - docs/code_samples/cropper_v1.txt
130
132
  - docs/code_samples/custom_v1.txt
@@ -224,6 +226,9 @@ files:
224
226
  - lib/mindee/product/fr/bank_account_details/bank_account_details_v2_bban.rb
225
227
  - lib/mindee/product/fr/bank_account_details/bank_account_details_v2_document.rb
226
228
  - lib/mindee/product/fr/bank_account_details/bank_account_details_v2_page.rb
229
+ - lib/mindee/product/fr/carte_grise/carte_grise_v1.rb
230
+ - lib/mindee/product/fr/carte_grise/carte_grise_v1_document.rb
231
+ - lib/mindee/product/fr/carte_grise/carte_grise_v1_page.rb
227
232
  - lib/mindee/product/fr/carte_vitale/carte_vitale_v1.rb
228
233
  - lib/mindee/product/fr/carte_vitale/carte_vitale_v1_document.rb
229
234
  - lib/mindee/product/fr/carte_vitale/carte_vitale_v1_page.rb