red_amber 0.1.4 → 0.1.5

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.
@@ -42,7 +42,8 @@ module RedAmber
42
42
 
43
43
  # [Unary element-wise]: vector.func => vector
44
44
  unary_element_wise =
45
- %i[abs atan bit_wise_not ceil cos floor is_finite is_inf is_nan is_null is_valid sign sin tan trunc]
45
+ %i[abs array_sort_indices atan bit_wise_not ceil cos fill_null_backward fill_null_forward floor is_finite
46
+ is_inf is_nan is_null is_valid round round_to_multiple sign sin tan trunc unique]
46
47
  unary_element_wise.each do |function|
47
48
  define_method(function) do |opts: nil|
48
49
  datum = exec_func_unary(function, options: opts)
@@ -55,6 +56,14 @@ module RedAmber
55
56
  numeric? ? (is_nil | is_nan) : is_nil
56
57
  end
57
58
 
59
+ alias_method :fill_nil_backward, :fill_null_backward
60
+ alias_method :fill_nil_forward, :fill_null_forward
61
+
62
+ alias_method :sort_indexes, :array_sort_indices
63
+ alias_method :sort_indices, :array_sort_indices
64
+
65
+ alias_method :uniq, :unique
66
+
58
67
  # [Unary element-wise with operator]: vector.func => vector, op vector
59
68
  unary_element_wise_op = {
60
69
  invert: '!',
@@ -73,9 +82,6 @@ module RedAmber
73
82
  end
74
83
  alias_method :not, :invert
75
84
 
76
- # option(s) required
77
- # - round, round_to_multiple
78
-
79
85
  # NaN support needed
80
86
  # - acos asin ln log10 log1p log2
81
87
 
@@ -154,13 +160,10 @@ module RedAmber
154
160
  alias_method :ne, :not_equal
155
161
 
156
162
  # (array functions)
157
- # array_filter, array_sort_indices, array_take
158
- # dictionary_encode, hash_all, hash_any, hash_approximate_median,
159
- # hash_count, hash_count_distinct, hash_distinct, hash_max, hash_mean, hash_min,
160
- # hash_min_max, hash_product, hash_stddev, hash_sum, hash_tdigest, hash_variance,
163
+ # array_filter, array_take
164
+ # dictionary_encode,
161
165
  # partition_nth_indices,
162
- # quarter, quarters_between, unique,
163
- # value_counts
166
+ # quarter, quarters_between,
164
167
 
165
168
  # (strings)
166
169
  # ascii_capitalize, ascii_center, ascii_is_alnum, ascii_is_alpha, ascii_is_decimal,
@@ -195,10 +198,10 @@ module RedAmber
195
198
  # choose, index_in, index_in_meta_binary, indices_nonzero
196
199
 
197
200
  # (others)
198
- # coalesce, drop_null, fill_null_backward, fill_null_forward,
201
+ # coalesce, drop_null,
199
202
  # filter, is_in, is_in_meta_binary,
200
203
  # list_element, list_flatten, list_parent_indices, list_value_length, make_struct,
201
- # max_element_wise, min_element_wise, random, replace_with_mask, select_k_unstable,
204
+ # max_element_wise, min_element_wise, random, select_k_unstable,
202
205
  # sort_indices, struct_field, take
203
206
 
204
207
  private # =======
@@ -214,7 +217,7 @@ module RedAmber
214
217
  when Arrow::Array, Arrow::ChunkedArray, Arrow::Scalar, Array, Numeric, String, TrueClass, FalseClass
215
218
  find(function).execute([data, other], options)
216
219
  else
217
- raise ArgumentError, "Operand is not supported: #{other.class}"
220
+ raise VectorArgumentError, "Operand is not supported: #{other.class}"
218
221
  end
219
222
  end
220
223
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module RedAmber
4
- VERSION = '0.1.4'
4
+ VERSION = '0.1.5'
5
5
  end
data/lib/red_amber.rb CHANGED
@@ -5,10 +5,12 @@ require 'rover-df'
5
5
 
6
6
  require_relative 'red_amber/data_frame_displayable'
7
7
  require_relative 'red_amber/data_frame_helper'
8
+ require_relative 'red_amber/data_frame_indexable'
8
9
  require_relative 'red_amber/data_frame_selectable'
9
10
  require_relative 'red_amber/data_frame_observation_operation'
10
11
  require_relative 'red_amber/data_frame_variable_operation'
11
12
  require_relative 'red_amber/data_frame'
13
+ require_relative 'red_amber/vector_compensable'
12
14
  require_relative 'red_amber/vector_functions'
13
15
  require_relative 'red_amber/vector'
14
16
  require_relative 'red_amber/version'
@@ -18,4 +20,7 @@ module RedAmber
18
20
 
19
21
  class DataFrameArgumentError < ArgumentError; end
20
22
  class DataFrameTypeError < TypeError; end
23
+
24
+ class VectorArgumentError < ArgumentError; end
25
+ class VectorTypeError < TypeError; end
21
26
  end
data/red_amber.gemspec CHANGED
@@ -9,7 +9,7 @@ Gem::Specification.new do |spec|
9
9
  spec.email = ['heronshoes877@gmail.com']
10
10
 
11
11
  spec.summary = 'Simple dataframe library for Ruby'
12
- spec.description = 'RedAmber is a simple dataframe library powered by Red Arrow with API similar to Rover-df.'
12
+ spec.description = 'RedAmber is a simple dataframe library inspired by Rover-df and powered by Red Arrow.'
13
13
  spec.homepage = 'https://github.com/heronshoes/red_amber'
14
14
  spec.license = 'MIT'
15
15
  spec.required_ruby_version = '>= 2.7'
@@ -30,14 +30,11 @@ Gem::Specification.new do |spec|
30
30
  spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
31
31
  spec.require_paths = ['lib']
32
32
 
33
- spec.add_dependency 'red-arrow', '>= 7.0.0'
34
- spec.add_dependency 'red-parquet', '>= 7.0.0'
33
+ spec.add_dependency 'red-arrow', '>= 8.0.0'
34
+ spec.add_dependency 'red-parquet', '>= 8.0.0'
35
35
  spec.add_dependency 'rover-df', '~> 0.3.0'
36
36
 
37
37
  # Development dependency has gone to the Gemfile (rubygems/bundler#7237)
38
38
 
39
39
  spec.metadata['rubygems_mfa_required'] = 'true'
40
-
41
- # For more information and examples about making a new gem, check out our
42
- # guide at: https://bundler.io/guides/creating_gem.html
43
40
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: red_amber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hirokazu SUZUKI (heronshoes)
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2022-05-29 00:00:00.000000000 Z
11
+ date: 2022-06-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: red-arrow
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 7.0.0
19
+ version: 8.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: 7.0.0
26
+ version: 8.0.0
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: red-parquet
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 7.0.0
33
+ version: 8.0.0
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 7.0.0
40
+ version: 8.0.0
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rover-df
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -52,8 +52,8 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: 0.3.0
55
- description: RedAmber is a simple dataframe library powered by Red Arrow with API
56
- similar to Rover-df.
55
+ description: RedAmber is a simple dataframe library inspired by Rover-df and powered
56
+ by Red Arrow.
57
57
  email:
58
58
  - heronshoes877@gmail.com
59
59
  executables: []
@@ -67,10 +67,11 @@ files:
67
67
  - LICENSE
68
68
  - README.md
69
69
  - Rakefile
70
+ - benchmark/csv_load_penguins.yml
71
+ - benchmark/drop_nil.yml
70
72
  - doc/CODE_OF_CONDUCT.md
71
73
  - doc/DataFrame.md
72
74
  - doc/Vector.md
73
- - doc/image/TDR_operations.pdf
74
75
  - doc/image/arrow_table_new.png
75
76
  - doc/image/dataframe/assign.png
76
77
  - doc/image/dataframe/drop.png
@@ -93,10 +94,12 @@ files:
93
94
  - lib/red_amber/data_frame.rb
94
95
  - lib/red_amber/data_frame_displayable.rb
95
96
  - lib/red_amber/data_frame_helper.rb
97
+ - lib/red_amber/data_frame_indexable.rb
96
98
  - lib/red_amber/data_frame_observation_operation.rb
97
99
  - lib/red_amber/data_frame_selectable.rb
98
100
  - lib/red_amber/data_frame_variable_operation.rb
99
101
  - lib/red_amber/vector.rb
102
+ - lib/red_amber/vector_compensable.rb
100
103
  - lib/red_amber/vector_functions.rb
101
104
  - lib/red_amber/version.rb
102
105
  - red_amber.gemspec
Binary file