deltalake-rb 0.1.0 → 0.1.2

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.
data/lib/deltalake.rb CHANGED
@@ -7,12 +7,17 @@ end
7
7
 
8
8
  # stdlib
9
9
  require "json"
10
+ require "time"
10
11
 
11
12
  # modules
12
13
  require_relative "deltalake/field"
13
14
  require_relative "deltalake/metadata"
14
15
  require_relative "deltalake/schema"
15
16
  require_relative "deltalake/table"
17
+ require_relative "deltalake/table_alterer"
18
+ require_relative "deltalake/table_merger"
19
+ require_relative "deltalake/table_optimizer"
20
+ require_relative "deltalake/utils"
16
21
  require_relative "deltalake/version"
17
22
 
18
23
  module DeltaLake
@@ -22,8 +27,43 @@ module DeltaLake
22
27
  class CommitFailedError < Error; end
23
28
  class SchemaMismatchError < Error; end
24
29
 
25
- class << self
30
+ class Todo < Error
31
+ def message
32
+ "not implemented yet"
33
+ end
34
+ end
35
+
36
+ ProtocolVersions =
37
+ Struct.new(
38
+ :min_reader_version,
39
+ :min_writer_version,
40
+ :writer_features,
41
+ :reader_features
42
+ )
43
+
44
+ CommitProperties =
45
+ Struct.new(
46
+ :custom_metadata,
47
+ :max_commit_retries,
48
+ # TODO
49
+ # :app_transactions,
50
+ keyword_init: true
51
+ )
52
+
53
+ PostCommitHookProperties =
54
+ Struct.new(
55
+ :create_checkpoint,
56
+ :cleanup_expired_logs,
57
+ keyword_init: true
58
+ )
26
59
 
60
+ class ArrowArrayStream
61
+ def arrow_c_stream
62
+ self
63
+ end
64
+ end
65
+
66
+ class << self
27
67
  def write(
28
68
  table_or_uri,
29
69
  data,
@@ -35,7 +75,10 @@ module DeltaLake
35
75
  schema_mode: nil,
36
76
  storage_options: nil,
37
77
  predicate: nil,
38
- target_file_size: nil
78
+ target_file_size: nil,
79
+ writer_properties: nil,
80
+ commit_properties: nil,
81
+ post_commithook_properties: nil
39
82
  )
40
83
  table, table_uri = try_get_table_and_table_uri(table_or_uri, storage_options)
41
84
 
@@ -47,7 +90,7 @@ module DeltaLake
47
90
  return
48
91
  end
49
92
 
50
- data = convert_data(data)
93
+ data = Utils.convert_data(data)
51
94
 
52
95
  write_deltalake_rust(
53
96
  table_uri,
@@ -61,7 +104,10 @@ module DeltaLake
61
104
  name,
62
105
  description,
63
106
  configuration,
64
- storage_options
107
+ storage_options,
108
+ writer_properties,
109
+ commit_properties,
110
+ post_commithook_properties
65
111
  )
66
112
 
67
113
  if table
@@ -92,13 +138,5 @@ module DeltaLake
92
138
  rescue TableNotFoundError
93
139
  nil
94
140
  end
95
-
96
- def convert_data(data)
97
- if data.respond_to?(:arrow_c_stream)
98
- data.arrow_c_stream
99
- else
100
- raise TypeError, "Only objects implementing the Arrow C stream interface are valid inputs for source."
101
- end
102
- end
103
141
  end
104
142
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deltalake-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kane
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-11-21 00:00:00.000000000 Z
11
+ date: 2024-12-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rb_sys
@@ -39,7 +39,9 @@ files:
39
39
  - ext/deltalake/Cargo.toml
40
40
  - ext/deltalake/extconf.rb
41
41
  - ext/deltalake/src/error.rs
42
+ - ext/deltalake/src/features.rs
42
43
  - ext/deltalake/src/lib.rs
44
+ - ext/deltalake/src/merge.rs
43
45
  - ext/deltalake/src/schema.rs
44
46
  - ext/deltalake/src/utils.rs
45
47
  - lib/deltalake-rb.rb
@@ -48,6 +50,10 @@ files:
48
50
  - lib/deltalake/metadata.rb
49
51
  - lib/deltalake/schema.rb
50
52
  - lib/deltalake/table.rb
53
+ - lib/deltalake/table_alterer.rb
54
+ - lib/deltalake/table_merger.rb
55
+ - lib/deltalake/table_optimizer.rb
56
+ - lib/deltalake/utils.rb
51
57
  - lib/deltalake/version.rb
52
58
  homepage: https://github.com/ankane/delta-ruby
53
59
  licenses: