red_amber 0.1.4 → 0.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -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