red-arrow-flight 16.1.0 → 18.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/arrow-flight/client.rb +44 -0
- data/lib/arrow-flight/version.rb +1 -1
- data/test/helper/server.rb +11 -0
- data/test/test-client.rb +31 -0
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 658c5a7dad91b476c435276383713b91730dd3192e033532eaea8e88b4554349
|
4
|
+
data.tar.gz: ff25e6c1927a7d56b0c547933da0e9201998e56ac7df04b292385311acddebed
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 87247bf8ddcb3ca84f38b0e269a5d04989683439b1638a33c8b9e77d89547d22c621bd716037edeaa4ca4afc07fe8b1c2f22ee25d177a0108e8503dcf7f8048e
|
7
|
+
data.tar.gz: e911e98bf8b68eaa3d6ef809a1b77ebb20f9658805ccdab4446d27d2acca03bb2bb31301fc2d158ac7e1b09128ebabffe55062abb906b0a5f6a06121540e1397
|
data/lib/arrow-flight/client.rb
CHANGED
@@ -47,5 +47,49 @@ module ArrowFlight
|
|
47
47
|
end
|
48
48
|
options
|
49
49
|
end
|
50
|
+
|
51
|
+
alias_method :do_put_raw, :do_put
|
52
|
+
# Upload data to a Flight described by the given descriptor. The
|
53
|
+
# caller must call `#close` on the returned stream once they are
|
54
|
+
# done writing. Note that it's automatically done when you use
|
55
|
+
# block.
|
56
|
+
#
|
57
|
+
# The reader and writer are linked; closing the writer will also
|
58
|
+
# close the reader. Use GArrowFlight::StreamWriter#done_writing to
|
59
|
+
# only close the write side of the channel.
|
60
|
+
#
|
61
|
+
# @param descriptor [GArrowFlight::Descriptor] Descriptor to be uploaded.
|
62
|
+
# @param schema [GArrow::Schema] Schema of uploaded data.
|
63
|
+
# @param options [ArrowFlight::CallOptions, Hash, nil] (nil)
|
64
|
+
# The options to be used.
|
65
|
+
#
|
66
|
+
# @yieldparam writer [GArrowFlight::StreamWriter] The writer to upload
|
67
|
+
# data to the given descriptor.
|
68
|
+
#
|
69
|
+
# This is closed automatically after the given block is finished.
|
70
|
+
#
|
71
|
+
# @yieldparam reader [GArrowFlight::MetadataReader] The reader to read
|
72
|
+
# metadata from the server.
|
73
|
+
#
|
74
|
+
# @return [Array<GArrowFlight::MetadataReader, GArrowFlight::StreamWriter>, Object]
|
75
|
+
# The reader and the writer if block isn't given.
|
76
|
+
#
|
77
|
+
# The return value from block if block is given.
|
78
|
+
#
|
79
|
+
# @since 18.0.0
|
80
|
+
def do_put(descriptor, schema, options=nil)
|
81
|
+
result = do_put_raw(descriptor, schema, options)
|
82
|
+
reader = result.reader
|
83
|
+
writer = result.writer
|
84
|
+
if block_given?
|
85
|
+
begin
|
86
|
+
yield(reader, writer)
|
87
|
+
ensure
|
88
|
+
writer.close unless writer.closed?
|
89
|
+
end
|
90
|
+
else
|
91
|
+
return reader, writer
|
92
|
+
end
|
93
|
+
end
|
50
94
|
end
|
51
95
|
end
|
data/lib/arrow-flight/version.rb
CHANGED
data/test/helper/server.rb
CHANGED
@@ -21,6 +21,8 @@ module Helper
|
|
21
21
|
class Server < ArrowFlight::Server
|
22
22
|
type_register
|
23
23
|
|
24
|
+
attr_reader :uploaded_table
|
25
|
+
|
24
26
|
private
|
25
27
|
def virtual_do_list_flights(context, criteria)
|
26
28
|
generator = InfoGenerator.new
|
@@ -35,5 +37,14 @@ module Helper
|
|
35
37
|
table = generator.page_view_table
|
36
38
|
ArrowFlight::RecordBatchStream.new(table)
|
37
39
|
end
|
40
|
+
|
41
|
+
def virtual_do_do_put(context, reader, writer)
|
42
|
+
@uploaded_table = reader.read_all
|
43
|
+
writer.write(Arrow::Buffer.new("done"))
|
44
|
+
if @uploaded_table.n_rows.zero?
|
45
|
+
raise Arrow::Error::Invalid.new("empty table")
|
46
|
+
end
|
47
|
+
true
|
48
|
+
end
|
38
49
|
end
|
39
50
|
end
|
data/test/test-client.rb
CHANGED
@@ -43,4 +43,35 @@ class TestClient < Test::Unit::TestCase
|
|
43
43
|
assert_equal(generator.page_view_table,
|
44
44
|
reader.read_all)
|
45
45
|
end
|
46
|
+
|
47
|
+
def test_do_put_with_block
|
48
|
+
client = ArrowFlight::Client.new(@location)
|
49
|
+
generator = Helper::InfoGenerator.new
|
50
|
+
descriptor = generator.page_view_descriptor
|
51
|
+
table = generator.page_view_table
|
52
|
+
client.do_put(descriptor, table.schema) do |reader, writer|
|
53
|
+
writer.write_table(table)
|
54
|
+
writer.done_writing
|
55
|
+
metadata = reader.read
|
56
|
+
assert_equal(["done", table],
|
57
|
+
[metadata.data.to_s, @server.uploaded_table])
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
def test_do_put_without_block
|
62
|
+
client = ArrowFlight::Client.new(@location)
|
63
|
+
generator = Helper::InfoGenerator.new
|
64
|
+
descriptor = generator.page_view_descriptor
|
65
|
+
table = generator.page_view_table
|
66
|
+
reader, writer = client.do_put(descriptor, table.schema)
|
67
|
+
begin
|
68
|
+
writer.write_table(table)
|
69
|
+
writer.done_writing
|
70
|
+
metadata = reader.read
|
71
|
+
assert_equal(["done", table],
|
72
|
+
[metadata.data.to_s, @server.uploaded_table])
|
73
|
+
ensure
|
74
|
+
writer.close
|
75
|
+
end
|
76
|
+
end
|
46
77
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: red-arrow-flight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 18.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: 2024-
|
11
|
+
date: 2024-10-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: red-arrow
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 18.0.0
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 18.0.0
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -106,7 +106,7 @@ homepage: https://arrow.apache.org/
|
|
106
106
|
licenses:
|
107
107
|
- Apache-2.0
|
108
108
|
metadata: {}
|
109
|
-
post_install_message:
|
109
|
+
post_install_message:
|
110
110
|
rdoc_options: []
|
111
111
|
require_paths:
|
112
112
|
- lib
|
@@ -121,8 +121,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
121
121
|
- !ruby/object:Gem::Version
|
122
122
|
version: '0'
|
123
123
|
requirements: []
|
124
|
-
rubygems_version: 3.
|
125
|
-
signing_key:
|
124
|
+
rubygems_version: 3.4.20
|
125
|
+
signing_key:
|
126
126
|
specification_version: 4
|
127
127
|
summary: Red Arrow Flight is the Ruby bindings of Apache Arrow Flight
|
128
128
|
test_files:
|