red-arrow 9.0.0 → 10.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 23d181c0c2d49f1479ddae27c02427d75b72f66a31c097e1f0ead363422170ed
4
- data.tar.gz: e2c5e259b177bb136d7f492e46ec3411b5f05d190618cec6736494315fc64efb
3
+ metadata.gz: dc23de72fe60f7f6b71d45d4ec9019b0066da0de1aaef7992af984fa3ee14db3
4
+ data.tar.gz: 5383f405645f394c8af4b35ce537a82a54b207823a1debf755d09ef645bcbe15
5
5
  SHA512:
6
- metadata.gz: a4d7673b6457b4f288d9fc1e0bcc8b9adad239f21dbe722cbb412e81e51d117e8661027731bd4918be19c9ed6c6978f21613ebdd31fbe21271d2175f3d416655
7
- data.tar.gz: f300245a89afeb3c8d5e56db26fe866ae666a429429c26155591b430bc47f9d7abe987e35fd0507133b9e5011f78381b6e46797b1072556786fb8fb54e19e9fe
6
+ metadata.gz: cf9d0c9274059ab09a91af39573c5e4b1a902ca486038e61aff882441d725592bc4143821ba82607979ff09ea7cc9e5220efda1f12478e28b2cf9a9c89cff2d2
7
+ data.tar.gz: 4225c79d4eeb6770175624ef0eb4e90e263715a1d0b817bf34898ad179a85325f0d15e8fca6697d94870b6147bb965ab1644170fdae52eab07c37396214e5549
data/ext/arrow/extconf.rb CHANGED
@@ -38,6 +38,8 @@ checking_for(checking_message("Homebrew")) do
38
38
  end
39
39
  end
40
40
 
41
+ $CXXFLAGS += " -std=c++17 "
42
+
41
43
  unless required_pkg_config_package([
42
44
  "arrow",
43
45
  Arrow::Version::MAJOR,
data/lib/arrow/array.rb CHANGED
@@ -47,7 +47,15 @@ module Arrow
47
47
  nil
48
48
  end
49
49
  else
50
- nil
50
+ if value.respond_to?(:to_arrow_array)
51
+ begin
52
+ value.to_arrow_array
53
+ rescue RangeError
54
+ nil
55
+ end
56
+ else
57
+ nil
58
+ end
51
59
  end
52
60
  end
53
61
  end
@@ -103,6 +111,10 @@ module Arrow
103
111
  self
104
112
  end
105
113
 
114
+ def to_arrow_array
115
+ self
116
+ end
117
+
106
118
  alias_method :value_data_type_raw, :value_data_type
107
119
  def value_data_type
108
120
  @value_data_type ||= value_data_type_raw
@@ -188,9 +188,13 @@ module Arrow
188
188
  end
189
189
  end
190
190
 
191
- def build_array(values)
191
+ def array_class
192
192
  base_name = self.class.name.gsub(/DataType\z/, "")
193
- builder_class = self.class.const_get("#{base_name}ArrayBuilder")
193
+ ::Arrow.const_get("#{base_name}Array")
194
+ end
195
+
196
+ def build_array(values)
197
+ builder_class = array_class.builder_class
194
198
  args = [values]
195
199
  args.unshift(self) unless builder_class.buildable?(args)
196
200
  builder_class.build(*args)
@@ -35,7 +35,12 @@ module Arrow
35
35
  fields = []
36
36
  @values = []
37
37
  @raw_table.each do |name, array|
38
- array = ArrayBuilder.build(array) if array.is_a?(::Array)
38
+ if array.respond_to?(:to_arrow_array)
39
+ array = array.to_arrow_array
40
+ else
41
+ array = array.to_ary if array.respond_to?(:to_ary)
42
+ array = ArrayBuilder.build(array)
43
+ end
39
44
  fields << Field.new(name.to_s, array.value_data_type)
40
45
  @values << array
41
46
  end
@@ -0,0 +1,89 @@
1
+ # Licensed to the Apache Software Foundation (ASF) under one
2
+ # or more contributor license agreements. See the NOTICE file
3
+ # distributed with this work for additional information
4
+ # regarding copyright ownership. The ASF licenses this file
5
+ # to you under the Apache License, Version 2.0 (the
6
+ # "License"); you may not use this file except in compliance
7
+ # with the License. You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing,
12
+ # software distributed under the License is distributed on an
13
+ # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
14
+ # KIND, either express or implied. See the License for the
15
+ # specific language governing permissions and limitations
16
+ # under the License.
17
+
18
+ module Arrow
19
+ class RawTensorConverter
20
+ attr_reader :data_type
21
+ attr_reader :data
22
+ attr_reader :shape
23
+ attr_reader :strides
24
+ attr_reader :dimension_names
25
+ def initialize(raw_tensor,
26
+ data_type: nil,
27
+ shape: nil,
28
+ strides: nil,
29
+ dimension_names: nil)
30
+ @raw_tensor = raw_tensor
31
+ @data_type = data_type
32
+ @data = nil
33
+ @shape = shape
34
+ @strides = strides
35
+ @dimension_names = dimension_names
36
+ convert
37
+ end
38
+
39
+ private
40
+ def convert
41
+ case @raw_tensor
42
+ when Buffer
43
+ @data = @raw_tensor
44
+ when String
45
+ unless @raw_tensor.encoding == Encoding::ASCII_8BIT
46
+ message = "raw tensor String must be an ASCII-8BIT encoded string: " +
47
+ "#{@raw_tensor.encoding.inspect}"
48
+ raise ArgumentError, message
49
+ end
50
+ @data = Arrow::Buffer.new(@raw_tensor)
51
+ else
52
+ @shape ||= guess_shape
53
+ build_buffer
54
+ unless @strides.nil?
55
+ message = "strides: is only accepted with " +
56
+ "an Arrow::Buffer or String raw tensor: #{@strides.inspect}"
57
+ raise ArgumentError, message
58
+ end
59
+ end
60
+ if @shape.nil?
61
+ raise ArgumentError, "shape: is missing: #{@raw_tensor.inspect}"
62
+ end
63
+ if @data_type.nil?
64
+ raise ArgumentError, "data_type: is missing: #{@raw_tensor.inspect}"
65
+ end
66
+ end
67
+
68
+ def guess_shape
69
+ shape = [@raw_tensor.size]
70
+ target = @raw_tensor[0]
71
+ while target.is_a?(::Array)
72
+ shape << target.size
73
+ target = target[0]
74
+ end
75
+ shape
76
+ end
77
+
78
+ def build_buffer
79
+ if @data_type
80
+ @data_type = DataType.resolve(@data_type)
81
+ array = @data_type.build_array(@raw_tensor.flatten)
82
+ else
83
+ array = Array.new(@raw_tensor.flatten)
84
+ @data_type = array.value_data_type
85
+ end
86
+ @data = array.data_buffer
87
+ end
88
+ end
89
+ end
data/lib/arrow/tensor.rb CHANGED
@@ -15,10 +15,150 @@
15
15
  # specific language governing permissions and limitations
16
16
  # under the License.
17
17
 
18
+ require_relative "raw-tensor-converter"
19
+
18
20
  module Arrow
19
21
  class Tensor
22
+ alias_method :initialize_raw, :initialize
23
+ # Creates a new {Arrow::Tensor}.
24
+ #
25
+ # @overload initialize(raw_tensor, data_type: nil, shape: nil, dimension_names: nil)
26
+ #
27
+ # @param raw_tensor [::Array<Numeric>] The tensor represented as a
28
+ # raw `Array` (not `Arrow::Array`) and `Numeric`s. You can
29
+ # pass a nested `Array` for a multi-dimensional tensor.
30
+ #
31
+ # @param data_type [Arrow::DataType, String, Symbol, ::Array<String>,
32
+ # ::Array<Symbol>, Hash, nil] The element data type of the tensor.
33
+ #
34
+ # If you specify `nil`, data type is guessed from `raw_tensor`.
35
+ #
36
+ # See {Arrow::DataType.resolve} for how to specify data type.
37
+ #
38
+ # @param shape [::Array<Integer>, nil] The array of dimension sizes.
39
+ #
40
+ # If you specify `nil`, shape is guessed from `raw_tensor`.
41
+ #
42
+ # @param dimension_names [::Array<String>, ::Array<Symbol>, nil]
43
+ # The array of the dimension names.
44
+ #
45
+ # If you specify `nil`, all dimensions have empty names.
46
+ #
47
+ # @example Create a tensor from Ruby's Array
48
+ # raw_tensor = [
49
+ # [
50
+ # [1, 2, 3, 4],
51
+ # [5, 6, 7, 8],
52
+ # ],
53
+ # [
54
+ # [9, 10, 11, 12],
55
+ # [13, 14, 15, 16],
56
+ # ],
57
+ # [
58
+ # [17, 18, 19, 20],
59
+ # [21, 22, 23, 24],
60
+ # ],
61
+ # ]
62
+ # Arrow::Tensor.new(raw_tensor)
63
+ #
64
+ # @since 10.0.0
65
+ #
66
+ # @overload initialize(data_type, data, shape, strides, dimension_names)
67
+ #
68
+ # @param data_type [Arrow::DataType, String, Symbol, ::Array<String>,
69
+ # ::Array<Symbol>, Hash] The element data type of the tensor.
70
+ #
71
+ # See {Arrow::DataType.resolve} how to specify data type.
72
+ #
73
+ # @param data [Arrow::Buffer, String] The data of the tensor.
74
+ #
75
+ # @param shape [::Array<Integer>] The array of dimension sizes.
76
+ #
77
+ # @param strides [::Array<Integer>, nil] The array of strides which
78
+ # is the number of bytes between two adjacent elements in each
79
+ # dimension.
80
+ #
81
+ # If you specify `nil` or an empty `Array`, strides are
82
+ # guessed from `data_type` and `data`.
83
+ #
84
+ # @param dimension_names [::Array<String>, ::Array<Symbol>, nil]
85
+ # The array of the dimension names.
86
+ #
87
+ # If you specify `nil`, all dimensions doesn't have their names.
88
+ #
89
+ # @example Create a table from Arrow::Buffer
90
+ # raw_data = [
91
+ # 1, 2,
92
+ # 3, 4,
93
+ #
94
+ # 5, 6,
95
+ # 7, 8,
96
+ #
97
+ # 9, 10,
98
+ # 11, 12,
99
+ # ]
100
+ # data = Arrow::Buffer.new(raw_data.pack("c*").freeze)
101
+ # shape = [3, 2, 2]
102
+ # strides = []
103
+ # names = ["a", "b", "c"]
104
+ # Arrow::Tensor.new(:int8, data, shape, strides, names)
105
+ def initialize(*args,
106
+ data_type: nil,
107
+ data: nil,
108
+ shape: nil,
109
+ strides: nil,
110
+ dimension_names: nil)
111
+ n_args = args.size
112
+ case n_args
113
+ when 1
114
+ converter = RawTensorConverter.new(args[0],
115
+ data_type: data_type,
116
+ shape: shape,
117
+ strides: strides,
118
+ dimension_names: dimension_names)
119
+ data_type = converter.data_type
120
+ data = converter.data
121
+ shape = converter.shape
122
+ strides = converter.strides
123
+ dimension_names = converter.dimension_names
124
+ when 0, 2..5
125
+ data_type = args[0] || data_type
126
+ data = args[1] || data
127
+ shape = args[2] || shape
128
+ strides = args[3] || strides
129
+ dimension_names = args[4] || dimension_names
130
+ if data_type.nil?
131
+ raise ArgumentError, "data_type: is missing: #{data.inspect}"
132
+ end
133
+ else
134
+ message = "wrong number of arguments (given #{n_args}, expected 0..5)"
135
+ raise ArgumentError, message
136
+ end
137
+ initialize_raw(DataType.resolve(data_type),
138
+ data,
139
+ shape,
140
+ strides,
141
+ dimension_names)
142
+ end
143
+
144
+ def dimension_names
145
+ n_dimensions.times.collect do |i|
146
+ get_dimension_name(i)
147
+ end
148
+ end
149
+
20
150
  def to_arrow
21
151
  self
22
152
  end
153
+
154
+ def to_arrow_array
155
+ if n_dimensions != 1
156
+ raise RangeError, "must be 1 dimensional tensor: #{shape.inspect}"
157
+ end
158
+ value_data_type.array_class.new(size,
159
+ buffer,
160
+ nil,
161
+ 0)
162
+ end
23
163
  end
24
164
  end
data/lib/arrow/version.rb CHANGED
@@ -16,7 +16,7 @@
16
16
  # under the License.
17
17
 
18
18
  module Arrow
19
- VERSION = "9.0.0"
19
+ VERSION = "10.0.0"
20
20
 
21
21
  module Version
22
22
  numbers, TAG = VERSION.split("-")
data/test/test-orc.rb CHANGED
@@ -164,8 +164,8 @@ class ORCTest < Test::Unit::TestCase
164
164
  ]
165
165
  end
166
166
  assert_equal([
167
- ["boolean1: bool", [pp_values([false, true])]],
168
- ["short1: int16", [pp_values([1024, 2048])]],
167
+ ["byte1: int8", [pp_values([1, 100])]],
168
+ ["int1: int32", [pp_values([65536, 65536])]],
169
169
  ],
170
170
  dump)
171
171
  end
data/test/test-table.rb CHANGED
@@ -40,6 +40,22 @@ class TableTest < Test::Unit::TestCase
40
40
  @table = Arrow::Table.new(schema, [@count_array, @visible_array])
41
41
  end
42
42
 
43
+ sub_test_case(".new") do
44
+ test("{Symbol: Arrow::Tensor}") do
45
+ assert_equal(Arrow::Table.new(numbers: Arrow::UInt8Array.new([1, 2, 3])),
46
+ Arrow::Table.new(numbers: Arrow::Tensor.new([1, 2, 3])))
47
+ end
48
+
49
+ test("{Symbol: #to_ary}") do
50
+ array_like = Object.new
51
+ def array_like.to_ary
52
+ [1, 2, 3]
53
+ end
54
+ assert_equal(Arrow::Table.new(numbers: Arrow::UInt8Array.new([1, 2, 3])),
55
+ Arrow::Table.new(numbers: array_like))
56
+ end
57
+ end
58
+
43
59
  test("#columns") do
44
60
  assert_equal([
45
61
  Arrow::Column.new(@table, 0),
data/test/test-tensor.rb CHANGED
@@ -16,6 +16,233 @@
16
16
  # under the License.
17
17
 
18
18
  class TensorTest < Test::Unit::TestCase
19
+ sub_test_case("class methods") do
20
+ sub_test_case(".new") do
21
+ def setup
22
+ @raw_tensor = [
23
+ [
24
+ [1, 2, 3, 4],
25
+ [5, 6, 7, 8],
26
+ ],
27
+ [
28
+ [9, 10, 11, 12],
29
+ [13, 14, 15, 16],
30
+ ],
31
+ [
32
+ [17, 18, 19, 20],
33
+ [21, 22, 23, 24],
34
+ ],
35
+ ]
36
+ @shape = [3, 2, 4]
37
+ @strides = [8, 4, 1]
38
+ end
39
+
40
+ test("Array") do
41
+ tensor = Arrow::Tensor.new(@raw_tensor)
42
+ assert_equal({
43
+ value_data_type: Arrow::UInt8DataType.new,
44
+ buffer: @raw_tensor.flatten.pack("C*"),
45
+ shape: @shape,
46
+ strides: @strides,
47
+ dimension_names: ["", "", ""],
48
+ },
49
+ {
50
+ value_data_type: tensor.value_data_type,
51
+ buffer: tensor.buffer.data.to_s,
52
+ shape: tensor.shape,
53
+ strides: tensor.strides,
54
+ dimension_names: tensor.dimension_names,
55
+ })
56
+ end
57
+
58
+ test("Array, data_type: Symbol") do
59
+ tensor = Arrow::Tensor.new(@raw_tensor, data_type: :int32)
60
+ assert_equal({
61
+ value_data_type: Arrow::Int32DataType.new,
62
+ buffer: @raw_tensor.flatten.pack("l*"),
63
+ shape: @shape,
64
+ strides: @strides.collect {|x| x * 4},
65
+ dimension_names: ["", "", ""],
66
+ },
67
+ {
68
+ value_data_type: tensor.value_data_type,
69
+ buffer: tensor.buffer.data.to_s,
70
+ shape: tensor.shape,
71
+ strides: tensor.strides,
72
+ dimension_names: tensor.dimension_names,
73
+ })
74
+ end
75
+
76
+ test("Array, dimension_names: Array<String>") do
77
+ tensor = Arrow::Tensor.new(@raw_tensor,
78
+ dimension_names: ["a", "b", "c"])
79
+ assert_equal({
80
+ value_data_type: Arrow::UInt8DataType.new,
81
+ buffer: @raw_tensor.flatten.pack("C*"),
82
+ shape: @shape,
83
+ strides: @strides,
84
+ dimension_names: ["a", "b", "c"],
85
+ },
86
+ {
87
+ value_data_type: tensor.value_data_type,
88
+ buffer: tensor.buffer.data.to_s,
89
+ shape: tensor.shape,
90
+ strides: tensor.strides,
91
+ dimension_names: tensor.dimension_names,
92
+ })
93
+ end
94
+
95
+ test("Array, dimension_names: Array<Symbol>") do
96
+ tensor = Arrow::Tensor.new(@raw_tensor,
97
+ dimension_names: [:a, :b, :c])
98
+ assert_equal({
99
+ value_data_type: Arrow::UInt8DataType.new,
100
+ buffer: @raw_tensor.flatten.pack("C*"),
101
+ shape: @shape,
102
+ strides: @strides,
103
+ dimension_names: ["a", "b", "c"],
104
+ },
105
+ {
106
+ value_data_type: tensor.value_data_type,
107
+ buffer: tensor.buffer.data.to_s,
108
+ shape: tensor.shape,
109
+ strides: tensor.strides,
110
+ dimension_names: tensor.dimension_names,
111
+ })
112
+ end
113
+
114
+ test("Array, strides:") do
115
+ message = "strides: is only accepted with " +
116
+ "an Arrow::Buffer or String raw tensor: #{@strides.inspect}"
117
+ assert_raise(ArgumentError.new(message)) do
118
+ Arrow::Tensor.new(@raw_tensor, strides: @strides)
119
+ end
120
+ end
121
+
122
+ test("Arrow::Buffer, data_type:, shape:") do
123
+ data_type = :uint8
124
+ data = Arrow::Buffer.new(@raw_tensor.flatten.pack("C*").freeze)
125
+ tensor = Arrow::Tensor.new(data,
126
+ data_type: data_type,
127
+ shape: @shape)
128
+ assert_equal({
129
+ value_data_type: Arrow::UInt8DataType.new,
130
+ buffer: @raw_tensor.flatten.pack("C*"),
131
+ shape: @shape,
132
+ strides: @strides,
133
+ dimension_names: ["", "", ""],
134
+ },
135
+ {
136
+ value_data_type: tensor.value_data_type,
137
+ buffer: tensor.buffer.data.to_s,
138
+ shape: tensor.shape,
139
+ strides: tensor.strides,
140
+ dimension_names: tensor.dimension_names,
141
+ })
142
+ end
143
+
144
+ test("String, data_type:, shape:") do
145
+ data_type = :uint8
146
+ data = @raw_tensor.flatten.pack("C*").freeze
147
+ tensor = Arrow::Tensor.new(data,
148
+ data_type: data_type,
149
+ shape: @shape)
150
+ assert_equal({
151
+ value_data_type: Arrow::UInt8DataType.new,
152
+ buffer: @raw_tensor.flatten.pack("C*"),
153
+ shape: @shape,
154
+ strides: @strides,
155
+ dimension_names: ["", "", ""],
156
+ },
157
+ {
158
+ value_data_type: tensor.value_data_type,
159
+ buffer: tensor.buffer.data.to_s,
160
+ shape: tensor.shape,
161
+ strides: tensor.strides,
162
+ dimension_names: tensor.dimension_names,
163
+ })
164
+ end
165
+
166
+ test("String, data_type:") do
167
+ data_type = :uint8
168
+ data = @raw_tensor.flatten.pack("C*").freeze
169
+ message = "shape: is missing: #{data.inspect}"
170
+ assert_raise(ArgumentError.new(message)) do
171
+ Arrow::Tensor.new(data, data_type: data_type)
172
+ end
173
+ end
174
+
175
+ test("String, shape:") do
176
+ data = @raw_tensor.flatten.pack("C*").freeze
177
+ message = "data_type: is missing: #{data.inspect}"
178
+ assert_raise(ArgumentError.new(message)) do
179
+ Arrow::Tensor.new(data, shape: @shape)
180
+ end
181
+ end
182
+
183
+ test("String - not ASCII-8BIT") do
184
+ data = "XXX"
185
+ message = "raw tensor String must be " +
186
+ "an ASCII-8BIT encoded string: #{data.encoding.inspect}"
187
+ assert_raise(ArgumentError.new(message)) do
188
+ Arrow::Tensor.new("XXX")
189
+ end
190
+ end
191
+
192
+ test("Symbol, Arrow::Buffer, shape:") do
193
+ data_type = :uint8
194
+ data = Arrow::Buffer.new(@raw_tensor.flatten.pack("C*").freeze)
195
+ tensor = Arrow::Tensor.new(data_type,
196
+ data,
197
+ shape: @shape)
198
+ assert_equal({
199
+ value_data_type: Arrow::UInt8DataType.new,
200
+ buffer: @raw_tensor.flatten.pack("C*"),
201
+ shape: @shape,
202
+ strides: @strides,
203
+ dimension_names: ["", "", ""],
204
+ },
205
+ {
206
+ value_data_type: tensor.value_data_type,
207
+ buffer: tensor.buffer.data.to_s,
208
+ shape: tensor.shape,
209
+ strides: tensor.strides,
210
+ dimension_names: tensor.dimension_names,
211
+ })
212
+ end
213
+
214
+ test("Symbol, String, shape:, strides: - !contiguous and column major") do
215
+ data_type = :uint8
216
+ @shape[-1] -= 1 # Ignore the last element in @raw_tensor
217
+ @strides.reverse
218
+ tensor = Arrow::Tensor.new(data_type,
219
+ @raw_tensor.flatten.pack("C*"),
220
+ shape: @shape,
221
+ strides: @strides)
222
+ assert_equal({
223
+ value_data_type: Arrow::UInt8DataType.new,
224
+ buffer: @raw_tensor.flatten.pack("C*"),
225
+ shape: @shape,
226
+ strides: @strides,
227
+ dimension_names: ["", "", ""],
228
+ contiguous: false,
229
+ row_major: false,
230
+ column_major: false,
231
+ },
232
+ {
233
+ value_data_type: tensor.value_data_type,
234
+ buffer: tensor.buffer.data.to_s,
235
+ shape: tensor.shape,
236
+ strides: tensor.strides,
237
+ dimension_names: tensor.dimension_names,
238
+ contiguous: tensor.contiguous?,
239
+ row_major: tensor.row_major?,
240
+ column_major: tensor.column_major?,
241
+ })
242
+ end
243
+ end
244
+ end
245
+
19
246
  sub_test_case("instance methods") do
20
247
  def setup
21
248
  raw_data = [
@@ -28,11 +255,11 @@ class TensorTest < Test::Unit::TestCase
28
255
  9, 10,
29
256
  11, 12,
30
257
  ]
31
- data = Arrow::Buffer.new(raw_data.pack("c*"))
258
+ data = Arrow::Buffer.new(raw_data.pack("c*").freeze)
32
259
  shape = [3, 2, 2]
33
260
  strides = []
34
261
  names = ["a", "b", "c"]
35
- @tensor = Arrow::Tensor.new(Arrow::Int8DataType.new,
262
+ @tensor = Arrow::Tensor.new(:int8,
36
263
  data,
37
264
  shape,
38
265
  strides,
@@ -52,5 +279,19 @@ class TensorTest < Test::Unit::TestCase
52
279
  end
53
280
  end
54
281
  end
282
+
283
+ sub_test_case("#to_arrow_array") do
284
+ test("1 dimension") do
285
+ assert_equal(Arrow::UInt8Array.new([1, 2, 3]),
286
+ Arrow::Tensor.new([1, 2, 3]).to_arrow_array)
287
+ end
288
+
289
+ test("2 dimensions") do
290
+ message = "must be 1 dimensional tensor: [3, 1]"
291
+ assert_raise(RangeError.new(message)) do
292
+ Arrow::Tensor.new([[1], [2], [3]]).to_arrow_array
293
+ end
294
+ end
295
+ end
55
296
  end
56
297
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: red-arrow
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.0.0
4
+ version: 10.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Apache Arrow Developers
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-06 00:00:00.000000000 Z
11
+ date: 2022-11-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bigdecimal
@@ -163,6 +163,7 @@ files:
163
163
  - lib/arrow/null-array.rb
164
164
  - lib/arrow/path-extension.rb
165
165
  - lib/arrow/raw-table-converter.rb
166
+ - lib/arrow/raw-tensor-converter.rb
166
167
  - lib/arrow/record-batch-builder.rb
167
168
  - lib/arrow/record-batch-file-reader.rb
168
169
  - lib/arrow/record-batch-iterator.rb
@@ -307,8 +308,8 @@ homepage: https://arrow.apache.org/
307
308
  licenses:
308
309
  - Apache-2.0
309
310
  metadata:
310
- msys2_mingw_dependencies: arrow>=9.0.0
311
- post_install_message:
311
+ msys2_mingw_dependencies: arrow>=10.0.0
312
+ post_install_message:
312
313
  rdoc_options: []
313
314
  require_paths:
314
315
  - lib
@@ -324,7 +325,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
324
325
  version: '0'
325
326
  requirements: []
326
327
  rubygems_version: 3.3.15
327
- signing_key:
328
+ signing_key:
328
329
  specification_version: 4
329
330
  summary: Red Arrow is the Ruby bindings of Apache Arrow
330
331
  test_files: