red-arrow 0.3.0 → 0.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d66932ddc8b1edd4d0a00a3c44ace6a54eb23509
4
- data.tar.gz: d373ca2d306387a5709e8b2b28946e10ec5529ee
3
+ metadata.gz: 77e27ff86072c96cce811ad70a0657630899f7c9
4
+ data.tar.gz: 33fe984ad9e639d3fb98e9733da997c39da6bf65
5
5
  SHA512:
6
- metadata.gz: d018d51d091d4ad37cd608f4bd951a837b385d36cf975a0a0652a5d1173a847aa2f875705e46d66e533b8246d5f3b0b0b75d936fdcdd2e794e1676463759bd66
7
- data.tar.gz: 434cd73edc6180de459d9bfa95272703d7d0ffb1a095ea7e7f64462880bae79cdb14ccadbcd8285966462832c80c8837a55c26c79e424c9160ceb9e719989639
6
+ metadata.gz: 4c2a4829076698810d9ce2837e238d0ad673d70ed1487fd116ce836713a99278aab0136a08b2824f1d6bc7e652c94b972d7a97ccfc5d22821ad61d8d5ae45332
7
+ data.tar.gz: c374346921b53f397c58c03eb0f025aba425529f9ff6422eb397ea97170aeddd3b45692e9b16e9ec0df1ea211c98b9fa54119e207e9a5a099c7a0f7d787d4af9
@@ -0,0 +1,40 @@
1
+ # -*- ruby -*-
2
+ #
3
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # 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, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
16
+
17
+ require "pkg-config"
18
+ require "native-package-installer"
19
+
20
+ case RUBY_PLATFORM
21
+ when /mingw|mswin/
22
+ task :default => "nothing"
23
+ else
24
+ task :default => "dependency:check"
25
+ end
26
+
27
+ task :nothing do
28
+ end
29
+
30
+ namespace :dependency do
31
+ desc "Check dependency"
32
+ task :check do
33
+ unless PKGConfig.check_version?("arrow-glib")
34
+ unless NativePackageInstaller.install(:debian => "libarrow-glib-dev",
35
+ :redhat => "arrow-glib-devel")
36
+ exit(false)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -1,5 +1,34 @@
1
1
  # News
2
2
 
3
+ ## 0.3.1 - 2017-05-17
4
+
5
+ ### Improvements
6
+
7
+ * `Arrow::MemoryMappedInputStream`: Renamed from
8
+ `Arrow::MemoryMappedFile`.
9
+
10
+ * `Arrow::RecordBatchStreamReader`: Renamed from
11
+ `Arrow::StreamReader`.
12
+
13
+ * `Arrow::RecordBatchFileReader`: Renamed from
14
+ `Arrow::FileReader`.
15
+
16
+ * `Arrow::RecordBatchStreamWriter`: Renamed from
17
+ `Arrow::StreamWriter`.
18
+
19
+ * `Arrow::RecordBatchFileWriter`: Renamed from
20
+ `Arrow::FileWriter`.
21
+
22
+ * `Arrow::Column#each`: Added.
23
+
24
+ * `Arrow::ChunkedColumn#each`: Added.
25
+
26
+ * `Arrow::Table#columns`: Added.
27
+
28
+ * `Arrow::Table#each_column`: Added.
29
+
30
+ * Supported auto native package install on install.
31
+
3
32
  ## 0.3.0 - 2017-05-06
4
33
 
5
34
  ### Improvements
@@ -30,7 +30,11 @@ module Arrow
30
30
 
31
31
  def each
32
32
  length.times do |i|
33
- yield(self[i])
33
+ if null?(i)
34
+ yield(nil)
35
+ else
36
+ yield(self[i])
37
+ end
34
38
  end
35
39
  end
36
40
 
@@ -0,0 +1,28 @@
1
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Arrow
16
+ class ChunkedArray
17
+ include Enumerable
18
+
19
+ def each(&block)
20
+ return to_enum(__method__) unless block_given?
21
+
22
+ n_chunks.times do |i|
23
+ array = get_chunk(i)
24
+ array.each(&block)
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,25 @@
1
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Arrow
16
+ class Column
17
+ include Enumerable
18
+
19
+ def each(&block)
20
+ return to_enum(__method__) unless block_given?
21
+
22
+ data.each(&block)
23
+ end
24
+ end
25
+ end
@@ -30,12 +30,15 @@ module Arrow
30
30
  def require_libraries
31
31
  require "arrow/array"
32
32
  require "arrow/array-builder"
33
+ require "arrow/chunked-array"
34
+ require "arrow/column"
33
35
  require "arrow/field"
34
36
  require "arrow/record-batch"
37
+ require "arrow/table"
35
38
  require "arrow/tensor"
36
39
 
37
- require "arrow/file-reader"
38
- require "arrow/stream-reader"
40
+ require "arrow/record-batch-file-reader"
41
+ require "arrow/record-batch-stream-reader"
39
42
 
40
43
  require "arrow/compatibility"
41
44
  end
@@ -13,37 +13,9 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module Arrow
16
- class FileReader
16
+ class RecordBatchFileReader
17
17
  include Enumerable
18
18
 
19
- # For backward compatibility
20
- if respond_to?(:open)
21
- class << self
22
- alias_method :open_raw, :open
23
- def open(input)
24
- warn("#{self}.#{__method__}: use #{self}.new instead: #{caller(1, 1)[0]}")
25
- reader = open_raw(input)
26
- if block_given?
27
- yield(reader)
28
- else
29
- reader
30
- end
31
- end
32
- end
33
- else
34
- class << self
35
- def open(input)
36
- warn("#{self}.#{__method__}: use #{self}.new instead #{caller(1, 1)[0]}")
37
- reader = new(input)
38
- if block_given?
39
- yield(reader)
40
- else
41
- reader
42
- end
43
- end
44
- end
45
- end
46
-
47
19
  def each
48
20
  n_record_batches.times do |i|
49
21
  yield(get_record_batch(i))
@@ -13,7 +13,7 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module Arrow
16
- class StreamReader
16
+ class RecordBatchStreamReader
17
17
  include Enumerable
18
18
 
19
19
  def each
@@ -0,0 +1,29 @@
1
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ module Arrow
16
+ class Table
17
+ def each_column(&block)
18
+ return to_enum(__method__) unless block_given?
19
+
20
+ n_columns.times do |i|
21
+ yield(get_column(i))
22
+ end
23
+ end
24
+
25
+ def columns
26
+ each_column.to_a
27
+ end
28
+ end
29
+ end
@@ -13,5 +13,5 @@
13
13
  # limitations under the License.
14
14
 
15
15
  module Arrow
16
- VERSION = "0.3.0"
16
+ VERSION = "0.3.1"
17
17
  end
@@ -40,8 +40,11 @@ Gem::Specification.new do |spec|
40
40
  spec.files += Dir.glob("lib/**/*.rb")
41
41
  spec.files += Dir.glob("doc/text/*")
42
42
  spec.test_files += Dir.glob("test/**/*")
43
+ spec.extensions = ["dependency-check/Rakefile"]
43
44
 
44
45
  spec.add_runtime_dependency("gobject-introspection", ">= 3.1.1")
46
+ spec.add_runtime_dependency("pkg-config")
47
+ spec.add_runtime_dependency("native-package-installer")
45
48
 
46
49
  spec.add_development_dependency("bundler")
47
50
  spec.add_development_dependency("rake")
@@ -20,4 +20,10 @@ class ArrayTest < Test::Unit::TestCase
20
20
  array.to_a)
21
21
  end
22
22
  end
23
+
24
+ test("#each") do
25
+ array = Arrow::BooleanArray.new([true, false, nil, true])
26
+ assert_equal([true, false, nil, true],
27
+ array.to_a)
28
+ end
23
29
  end
@@ -0,0 +1,25 @@
1
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ class ChunkedArrayTest < Test::Unit::TestCase
16
+ test("#each") do
17
+ arrayes = [
18
+ Arrow::BooleanArray.new([true, false]),
19
+ Arrow::BooleanArray.new([nil, true]),
20
+ ]
21
+ chunked_array = Arrow::ChunkedArray.new(arrayes)
22
+ assert_equal([true, false, nil, true],
23
+ chunked_array.to_a)
24
+ end
25
+ end
@@ -0,0 +1,27 @@
1
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ class ColumnTest < Test::Unit::TestCase
16
+ test("#each") do
17
+ arrayes = [
18
+ Arrow::BooleanArray.new([true, false]),
19
+ Arrow::BooleanArray.new([nil, true]),
20
+ ]
21
+ chunked_array = Arrow::ChunkedArray.new(arrayes)
22
+ column = Arrow::Column.new(Arrow::Field.new("visible", :boolean),
23
+ chunked_array)
24
+ assert_equal([true, false, nil, true],
25
+ column.to_a)
26
+ end
27
+ end
@@ -12,7 +12,7 @@
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
14
 
15
- class FileReaderTest < Test::Unit::TestCase
15
+ class RecordBatchFileReaderTest < Test::Unit::TestCase
16
16
  test("write/read") do
17
17
  fields = [
18
18
  Arrow::Field.new("uint8", :uint8),
@@ -30,7 +30,7 @@ class FileReaderTest < Test::Unit::TestCase
30
30
 
31
31
  tempfile = Tempfile.new(["batch", ".arrow"])
32
32
  Arrow::FileOutputStream.open(tempfile.path, false) do |output|
33
- Arrow::FileWriter.open(output, schema) do |writer|
33
+ Arrow::RecordBatchFileWriter.open(output, schema) do |writer|
34
34
  uints = [1, 2, 4, 8]
35
35
  ints = [1, -2, 4, -8]
36
36
  floats = [1.1, -2.2, 4.4, -8.8]
@@ -53,7 +53,7 @@ class FileReaderTest < Test::Unit::TestCase
53
53
  end
54
54
 
55
55
  Arrow::MemoryMappedInputStream.open(tempfile.path) do |input|
56
- reader = Arrow::FileReader.new(input)
56
+ reader = Arrow::RecordBatchFileReader.new(input)
57
57
  reader.each do |record_batch|
58
58
  assert_equal([
59
59
  {
@@ -0,0 +1,32 @@
1
+ # Copyright 2017 Kouhei Sutou <kou@clear-code.com>
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License");
4
+ # you may not use this file except in compliance with the License.
5
+ # You may obtain a copy of the License at
6
+ #
7
+ # http://www.apache.org/licenses/LICENSE-2.0
8
+ #
9
+ # Unless required by applicable law or agreed to in writing, software
10
+ # distributed under the License is distributed on an "AS IS" BASIS,
11
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
+ # See the License for the specific language governing permissions and
13
+ # limitations under the License.
14
+
15
+ class TableTest < Test::Unit::TestCase
16
+ test("#columns") do
17
+ fields = [
18
+ Arrow::Field.new("count", :uint32),
19
+ Arrow::Field.new("visible", :boolean),
20
+ ]
21
+ schema = Arrow::Schema.new(fields)
22
+ columns = [
23
+ Arrow::Column.new(fields[0],
24
+ Arrow::UInt32Array.new([1, 2, 4, 8])),
25
+ Arrow::Column.new(fields[1],
26
+ Arrow::BooleanArray.new([true, false, nil, true])),
27
+ ]
28
+ table = Arrow::Table.new(schema, columns)
29
+ assert_equal(["count", "visible"],
30
+ table.columns.collect(&:name))
31
+ end
32
+ 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: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kouhei Sutou
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-05-06 00:00:00.000000000 Z
11
+ date: 2017-05-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: gobject-introspection
@@ -24,6 +24,34 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 3.1.1
27
+ - !ruby/object:Gem::Dependency
28
+ name: pkg-config
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: native-package-installer
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
27
55
  - !ruby/object:Gem::Dependency
28
56
  name: bundler
29
57
  requirement: !ruby/object:Gem::Requirement
@@ -99,34 +127,42 @@ description: "[Apache Arrow](https://arrow.apache.org/) is an in-memory columnar
99
127
  email:
100
128
  - kou@clear-code.com
101
129
  executables: []
102
- extensions: []
130
+ extensions:
131
+ - dependency-check/Rakefile
103
132
  extra_rdoc_files: []
104
133
  files:
105
134
  - ".yardopts"
106
135
  - Gemfile
107
136
  - README.md
108
137
  - Rakefile
138
+ - dependency-check/Rakefile
109
139
  - doc/text/apache-2.0.txt
110
140
  - doc/text/news.md
111
141
  - lib/arrow.rb
112
142
  - lib/arrow/array-builder.rb
113
143
  - lib/arrow/array.rb
114
144
  - lib/arrow/block-closable.rb
145
+ - lib/arrow/chunked-array.rb
146
+ - lib/arrow/column.rb
115
147
  - lib/arrow/compatibility.rb
116
148
  - lib/arrow/field.rb
117
- - lib/arrow/file-reader.rb
118
149
  - lib/arrow/loader.rb
150
+ - lib/arrow/record-batch-file-reader.rb
151
+ - lib/arrow/record-batch-stream-reader.rb
119
152
  - lib/arrow/record-batch.rb
120
153
  - lib/arrow/record.rb
121
- - lib/arrow/stream-reader.rb
154
+ - lib/arrow/table.rb
122
155
  - lib/arrow/tensor.rb
123
156
  - lib/arrow/version.rb
124
157
  - red-arrow.gemspec
125
158
  - test/helper.rb
126
159
  - test/run-test.rb
127
160
  - test/test-array.rb
128
- - test/test-file-reader.rb
161
+ - test/test-chunked-array.rb
162
+ - test/test-column.rb
163
+ - test/test-record-batch-file-reader.rb
129
164
  - test/test-record-batch.rb
165
+ - test/test-table.rb
130
166
  homepage: https://github.com/red-data-tools/red-arrow
131
167
  licenses:
132
168
  - Apache-2.0
@@ -153,8 +189,11 @@ specification_version: 4
153
189
  summary: Red Arrow is a Ruby bindings of Apache Arrow. Red Arrow is based on GObject
154
190
  Introspection.
155
191
  test_files:
192
+ - test/test-record-batch-file-reader.rb
193
+ - test/test-column.rb
194
+ - test/test-chunked-array.rb
156
195
  - test/test-record-batch.rb
157
196
  - test/helper.rb
158
197
  - test/run-test.rb
198
+ - test/test-table.rb
159
199
  - test/test-array.rb
160
- - test/test-file-reader.rb