red_amber 0.2.2 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +114 -39
  3. data/CHANGELOG.md +203 -31
  4. data/Gemfile +5 -2
  5. data/README.md +62 -29
  6. data/benchmark/basic.yml +86 -0
  7. data/benchmark/combine.yml +62 -0
  8. data/benchmark/dataframe.yml +62 -0
  9. data/benchmark/drop_nil.yml +15 -3
  10. data/benchmark/group.yml +39 -0
  11. data/benchmark/reshape.yml +31 -0
  12. data/benchmark/{csv_load_penguins.yml → rover/csv_load_penguins.yml} +3 -3
  13. data/benchmark/rover/flights.yml +23 -0
  14. data/benchmark/rover/penguins.yml +23 -0
  15. data/benchmark/rover/planes.yml +23 -0
  16. data/benchmark/rover/weather.yml +23 -0
  17. data/benchmark/vector.yml +60 -0
  18. data/doc/DataFrame.md +335 -53
  19. data/doc/Vector.md +91 -0
  20. data/doc/image/dataframe/join.png +0 -0
  21. data/doc/image/dataframe/set_and_bind.png +0 -0
  22. data/doc/image/dataframe_model.png +0 -0
  23. data/lib/red_amber/data_frame.rb +167 -51
  24. data/lib/red_amber/data_frame_combinable.rb +486 -0
  25. data/lib/red_amber/data_frame_displayable.rb +6 -4
  26. data/lib/red_amber/data_frame_indexable.rb +2 -2
  27. data/lib/red_amber/data_frame_loadsave.rb +4 -1
  28. data/lib/red_amber/data_frame_reshaping.rb +35 -10
  29. data/lib/red_amber/data_frame_selectable.rb +221 -116
  30. data/lib/red_amber/data_frame_variable_operation.rb +146 -82
  31. data/lib/red_amber/group.rb +108 -18
  32. data/lib/red_amber/helper.rb +53 -43
  33. data/lib/red_amber/refinements.rb +199 -0
  34. data/lib/red_amber/vector.rb +56 -46
  35. data/lib/red_amber/vector_functions.rb +23 -83
  36. data/lib/red_amber/vector_selectable.rb +116 -69
  37. data/lib/red_amber/vector_updatable.rb +189 -65
  38. data/lib/red_amber/version.rb +1 -1
  39. data/lib/red_amber.rb +3 -0
  40. data/red_amber.gemspec +4 -3
  41. metadata +24 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a16699a945f41bf98790f698998126cc6b4a5e916eccb805e78448ec029f9310
4
- data.tar.gz: 5e7fa732f64567fd85e5a74b046e80861824f13d15dc910278b6c62359db9a22
3
+ metadata.gz: 78fa72064f9494f0f756f15cf1daaacb3640535e899ba71ab080730c0d61b0b2
4
+ data.tar.gz: 3f2de4a449c38eb995ebcc0394a1a93633f097e533696edfa91267a596dcb580
5
5
  SHA512:
6
- metadata.gz: 6ae7a6e3a8015b6b9736fb934526d9dc96b43830f0890ccbc16e175e539a8df1053432a63dde84a31dbd3a170aa6256b681127c510117723427bce815568c981
7
- data.tar.gz: a0e7d86a7bdc6be7ec493ef5331ced5ecf4e6b89458f4252f208435905a7e4e80a088a718098073fb0c65c86d76297c70c978cd4dec28b1eb1a0d915bb7e3608
6
+ metadata.gz: 45a7c37cc746c606e8d4d2a43005da8154b60df21bf2cf6b2bafa9f7ad5f962a3e3c8e2f931e6543b20b8f6cd8c8a447b99b7f0127854d3bb716ea763ab3cae5
7
+ data.tar.gz: b3ac4479df1e30b75e7ccfcc48b09f709cea536c98072bfe937ae283c0cc1d203ab97388cf6f57c39fd31c6beceadcb850c3f14e8e07e5e196cc0c862634f36d
data/.rubocop.yml CHANGED
@@ -8,12 +8,13 @@ require:
8
8
  - rubocop-rake
9
9
 
10
10
  AllCops:
11
- # drop support for < 2.7
12
- TargetRubyVersion: 2.7
11
+ # drop support for 2.7 (since 0.3.0)
12
+ TargetRubyVersion: 3.0
13
13
  # accept new cops if any
14
14
  NewCops: enable
15
15
 
16
16
  # ===
17
+ # Globally I change these 3 cops from default
17
18
 
18
19
  # alias is hard to see separately
19
20
  Style/Alias:
@@ -29,111 +30,185 @@ Style/TrailingCommaInHashLiteral:
29
30
  # ===
30
31
 
31
32
  # To let you know the possibility of refactoring ===
32
- #
33
+
33
34
  # avoid unused variable asignment
34
35
  Rubycw/Rubycw:
35
36
  Exclude:
36
37
  - 'test/**/*'
37
- Lint/UselessAssignment:
38
- Exclude:
39
- - 'test/**/*'
40
38
 
41
39
  # Disabled to define Vector operators
40
+ # Offense count: 38
42
41
  Lint/BinaryOperatorWithIdenticalOperands:
43
42
  Exclude:
44
43
  - 'test/test_vector_function.rb'
45
44
 
46
45
  # Need for test with empty block
46
+ # Offense count: 1
47
+ # Configuration parameters: AllowComments, AllowEmptyLambdas.
47
48
  Lint/EmptyBlock:
48
49
  Exclude:
49
50
  - 'test/test_group.rb'
50
51
 
52
+ # avoid unused variable asignment
53
+ # Offense count: 6
54
+ Lint/UselessAssignment:
55
+ Exclude:
56
+ - 'test/**/*'
57
+
51
58
  # Max: 120
59
+ # This cop supports safe autocorrection (--autocorrect).
60
+ # Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns, IgnoredPatterns.
61
+ # URISchemes: http, https
52
62
  Layout/LineLength:
53
- Max: 118
63
+ Max: 90
54
64
  Exclude:
55
65
  - 'test/**/*'
56
66
 
57
67
  # <= 17 satisfactory
58
68
  # 18..30 unsatisfactory
59
69
  # > 30 dangerous
70
+ # Offense count: 28
71
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods, CountRepeatedAttributes.
60
72
  Metrics/AbcSize:
61
73
  Max: 30
62
- Exclude:
63
- - 'lib/red_amber/data_frame_displayable.rb' # Max: 55
64
- - 'lib/red_amber/data_frame_reshaping.rb' # Max 40.91
65
- - 'lib/red_amber/data_frame_selectable.rb' # Max: 51
66
- - 'lib/red_amber/data_frame_variable_operation.rb' # Max: 30.15
67
- - 'lib/red_amber/vector_updatable.rb' # Max: 36
68
- - 'lib/red_amber/vector_selectable.rb' # Max: 33
74
+ CountRepeatedAttributes: false
75
+ AllowedMethods: [
76
+ 'join', # 51.87
77
+ 'dataframe_info', # 46.5
78
+ 'format_table', # 84.62
79
+ 'to_long', # 33.66
80
+ 'to_wide', #38.22
81
+ 'slice_by', # 38.29
82
+ 'remove', # 44.42
83
+ 'drop', # 31.42
84
+ '[]', # 33.76
85
+ 'split', # 37.35
86
+ ]
69
87
 
70
88
  # Max: 25
89
+ # Offense count: 57
90
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
91
+ # AllowedMethods: refine
71
92
  Metrics/BlockLength:
72
93
  Max: 25
73
94
  Exclude:
74
95
  - 'test/**/*'
96
+ - 'lib/red_amber/helper.rb' # 32
75
97
 
98
+ # It's ok if class is big
76
99
  # Max: 100
100
+ # Offense count: 15
101
+ # Configuration parameters: CountComments, CountAsOne.
77
102
  Metrics/ClassLength:
78
- Max: 100
79
103
  Exclude:
80
104
  - 'test/**/*'
81
- - 'lib/red_amber/data_frame.rb' #Max: 131
82
- - 'lib/red_amber/vector.rb' #Max: 102
105
+ - 'lib/red_amber/data_frame.rb' # 162
106
+ - 'lib/red_amber/group.rb' # 105
107
+ - 'lib/red_amber/vector.rb' # 152
83
108
 
109
+ # Only for monitoring. I will measure by PerceivedComplexity.
84
110
  # Max: 7
111
+ # Offense count: 16
112
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
85
113
  Metrics/CyclomaticComplexity:
86
114
  Max: 12
87
- Exclude:
88
- - 'lib/red_amber/data_frame_displayable.rb' # Max: 18
89
- - 'lib/red_amber/data_frame_selectable.rb' # Max: 14
90
- - 'lib/red_amber/helper.rb' # Max: 15
91
- - 'lib/red_amber/vector_selectable.rb' # Max: 13
92
- - 'lib/red_amber/vector_updatable.rb' # Max: 14
115
+ AllowedMethods: [
116
+ 'join', # 14
117
+ 'format_table', # 21
118
+ 'slice_by', # 16
119
+ 'remove', # 14
120
+ 'normalize_element', # 17
121
+ '[]', # 13
122
+ 'parse_range', # 14
123
+ 'split', # 33
124
+ ]
93
125
 
94
126
  # Max: 10
127
+ # Offense count: 34
128
+ # Configuration parameters: CountComments, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
95
129
  Metrics/MethodLength:
96
130
  Max: 30
97
- Exclude:
98
- - 'lib/red_amber/data_frame_displayable.rb' # Max: 33
99
- - 'lib/red_amber/data_frame_selectable.rb' # Max: 38
100
- - 'lib/red_amber/data_frame_variable_operation.rb' # Max: 35
131
+ AllowedMethods: [
132
+ 'join', # 47
133
+ 'dataframe_info', # 33
134
+ 'format_table', # 53
135
+ 'slice_by', # 38
136
+ 'assign_update', # 35
137
+ ]
101
138
 
102
139
  # Max: 100
140
+ # Offense count: 5
141
+ # Configuration parameters: CountComments, CountAsOne.
103
142
  Metrics/ModuleLength:
104
143
  Max: 100
105
144
  Exclude:
106
- - 'lib/red_amber/data_frame_displayable.rb' # Max: 132
107
- - 'lib/red_amber/data_frame_selectable.rb' # Max: 141
108
- - 'lib/red_amber/data_frame_variable_operation.rb' # Max: 110
109
- - 'lib/red_amber/vector_functions.rb' # Max: 114
145
+ - 'lib/red_amber/data_frame_combinable.rb' # Max: 149
146
+ - 'lib/red_amber/data_frame_displayable.rb' # Max: 226
147
+ - 'lib/red_amber/data_frame_selectable.rb' # Max: 175
148
+ - 'lib/red_amber/data_frame_variable_operation.rb' # Max: 171
149
+ - 'lib/red_amber/vector_functions.rb' # Max: 165
150
+ - 'lib/red_amber/vector_selectable.rb' # Max: 104
151
+ - 'lib/red_amber/vector_updatable.rb' # Max: 103
110
152
 
111
- # Max: 8
112
- Metrics/PerceivedComplexity:
113
- Max: 13
153
+ # Max: 5
154
+ # Offense count: 1
155
+ # Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
156
+ Metrics/ParameterLists:
114
157
  Exclude:
115
- - 'lib/red_amber/data_frame_selectable.rb' # Max: 14
116
- - 'lib/red_amber/helper.rb' # Max: 15
117
- - 'lib/red_amber/vector_updatable.rb' # Max: 15
118
- - 'lib/red_amber/data_frame_displayable.rb' # Max: 19
158
+ - 'lib/red_amber/data_frame_combinable.rb' # Max: 6, at 'join'
119
159
 
160
+ # Max: 8
161
+ # Offense count: 15
162
+ # Configuration parameters: AllowedMethods, AllowedPatterns, IgnoredMethods.
163
+ Metrics/PerceivedComplexity:
164
+ Max: 10
165
+ AllowedMethods: [
166
+ 'join', # 14
167
+ 'dataframe_info', # 13
168
+ 'format_table', # 22
169
+ 'slice_by', # 20
170
+ 'remove', # 14
171
+ 'drop', # 12
172
+ 'filters', # 11
173
+ 'normalize_element', # 17
174
+ '[]', # 11
175
+ 'parse_range', # 15
176
+ 'split', # 14
177
+ ]
178
+
179
+ # Offense count: 1
180
+ # Configuration parameters: ExpectMatchingDefinition, CheckDefinitionPathHierarchy, CheckDefinitionPathHierarchyRoots, Regex, IgnoreExecutableScripts, AllowedAcronyms.
181
+ # CheckDefinitionPathHierarchyRoots: lib, spec, test, src
182
+ # AllowedAcronyms: CLI, DSL, ACL, API, ASCII, CPU, CSS, DNS, EOF, GUID, HTML, HTTP, HTTPS, ID, IP, JSON, LHS, QPS, RAM, RHS, RPC, SLA, SMTP, SQL, SSH, TCP, TLS, TTL, UDP, UI, UID, UUID, URI, URL, UTF8, VM, XML, XMPP, XSRF, XSS
120
183
  Naming/FileName:
121
184
  Exclude:
122
185
  - 'lib/red-amber.rb'
123
186
 
124
187
  # Necessary to define is_na, is_in, etc.
188
+ # Offense count: 3
189
+ # Configuration parameters: NamePrefix, ForbiddenPrefixes, AllowedMethods, MethodDefinitionMacros.
190
+ # NamePrefix: is_, has_, have_
191
+ # ForbiddenPrefixes: is_, has_, have_
192
+ # AllowedMethods: is_a?
193
+ # MethodDefinitionMacros: define_method, define_singleton_method
125
194
  Naming/PredicateName:
126
195
  Exclude:
127
- - 'lib/red_amber/vector_functions.rb'
128
196
  - 'lib/red_amber/vector.rb'
197
+ - 'lib/red_amber/vector_functions.rb'
129
198
  - 'lib/red_amber/vector_selectable.rb'
130
199
 
131
200
  # Necessary to test when range.end == -1
201
+ # Offense count: 2
202
+ # This cop supports unsafe autocorrection (--autocorrect-all).
132
203
  Style/SlicingWithRange:
133
204
  Exclude:
134
205
  - 'test/test_data_frame_selectable.rb'
135
206
 
136
207
  # Necessary to Vector < 0 element-wise comparison
208
+ # Offense count: 5
209
+ # This cop supports unsafe autocorrection (--autocorrect-all).
210
+ # Configuration parameters: EnforcedStyle, AllowedMethods, AllowedPatterns, IgnoredMethods.
211
+ # SupportedStyles: predicate, comparison
137
212
  Style/NumericPredicate:
138
213
  Exclude:
139
214
  - 'lib/red_amber/data_frame_selectable.rb'
data/CHANGELOG.md CHANGED
@@ -1,35 +1,226 @@
1
+ ## [0.3.0] - 2022-12-18
2
+
3
+ - Breaking change
4
+ - Supported Ruby version has changed from 2.7 to 3.0
5
+ - Upgrade minimum supported/required version of Ruby from 2.7 to 3.0 (#159, #160)
6
+
7
+ - Bug fixes
8
+ - Add check with #key? in DataFrame#method_missing (#140)
9
+ - Delete unnecessary backslash to supress warning in unary functions (#140)
10
+ - Fix syntax in code_climate.yml (144)
11
+ - Temporary disable simplecov test report (#149)
12
+ - Change Vector#[] to return Array or scalar (#148)
13
+ - Add missing simplecov HTML formatter (#148)
14
+ - Change return value of DataFrame#save to self (#160)
15
+ - Originally reported by kojix2.
16
+
17
+ - New features and improvements
18
+ - Update Vector#take to accept block (#148)
19
+ - Add properties of list Vectors (#148)
20
+ - Add Vector#split, #split_to_column, #split_to_row (#148)
21
+ - Add Vector#merge (#148)
22
+
23
+ - Refactoring
24
+ - Refactor code (#140)
25
+ - Add DataFrame.create as a faster constructor
26
+ - Refactor DataFrame.new using refinements and duck typing
27
+ - Refactor Vector.new using refinements and duck typing
28
+ - Add Vector.create as a faster constructor
29
+ - Refactor Group
30
+ - Refactor DataFrame#pick/#drop by refininig Array
31
+ - Refactor DataFrame#pick/#drop
32
+ - Refactor nil treatment in pick/drop
33
+ - Refactor DataFrame#pick/#drop using new parser
34
+ - Refactor DataFrame#[]
35
+ - Refactor Vector#[], #take, #filter by updating parser
36
+ - Add for_keys option to parse_args
37
+ - Refactor Vector properties by refinements for Arrow::Array
38
+ - Refactor DataFrame selectable using Arrow::Array refinements instead of Vector methods
39
+ - Refactor DataFrame#assign
40
+ - Refine error message in DataFrame#to_long/to_wide #143)
41
+ - Refactor Vector#take/filter returns arrow array (#148)
42
+ - Change LineLength in cop from 120 to 90 (#152)
43
+ - Refine DataFrame combinable (join) operations (#159)
44
+ - Refine DataFrame#join effectively using outputs options
45
+ - Simplify DataFrame set operations
46
+
47
+ - Improve in tests/CI
48
+ - Tests
49
+ - Update benchmark using 0.2.3 (#138)
50
+ - Update benchmark basic#02/pick by [] (#140)
51
+ - Update benchmark contexts and loop_count (#140)
52
+ - Add benchmark for vector (#140)
53
+ - Add tests for refinements (#140)
54
+ - Add benchmark for the series of DataFrame operations (#140)
55
+ - Add missing test for tdr and dictionary (#140)
56
+ - Add missing test for group#method with foreign key (#152)
57
+ - Add missing test for set operations and natural join (#152)
58
+ - Add missing test for DataFrame#[] with selecting by Array of illegal type' (#152)
59
+ - Add missing test for DataFrame#assign when assigner size is mismatch (#152)
60
+ - Accept Hash as join keys in DataFrame join methods (#159)
61
+
62
+ - Cops
63
+ - Refactor/clean rubocop.yml (#138)
64
+
65
+ - CI
66
+ - Support Ruby 3.2 in CI test (#141)
67
+ - Send test coverage report to Code Climate (#144)
68
+ - Add test on Fedora (#151)
69
+ - Thanks to Benson Muite.
70
+
71
+ - Add workflow to generate document (#153)
72
+ - Thanks to kojix2.
73
+
74
+ - Support Code Climate test coverage report in CI (#155)
75
+
76
+ - Documentation
77
+ - Add YARD in data_frame.rb (#140)
78
+ - Fix YARD document in the code (#140)
79
+ - Add Code Climate badges of maintainability and coverage (#144)
80
+ - Add installation for Fedora in README (#147)
81
+ - Thanks to Benson Muite.
82
+
83
+ - Add Vector#split/merge in Vector.md (#148)
84
+ - Fix codeclimate badges in README (#155)
85
+ - Update YARD in DataFrame join methods (#159)
86
+ - Update jupyter notebook '89 examples of Redamber' (#160)
87
+
88
+ - Thanks
89
+ - Benson Muite
90
+ - kojix2
91
+
92
+ ## [0.2.3] - 2022-11-16
93
+
94
+ - Bug fixes
95
+
96
+ - Fix DataFrame#to_s when DataFrame.size == 0 (#125)
97
+ - Remove unused lines in funcs (#128)
98
+ - Remove unused methods in helper (#128)
99
+ - Add test for invalid arg in DataFrame.new (#128)
100
+ - Add test for Vector#shift(0) (#128)
101
+ - Fix bugs for DataFrame#[], #pick and #drop with Range of Symbols and Symbol (#135)
102
+
103
+ - New features and improvements
104
+
105
+ - Upgrade dependency to Arrow 10.0.0 (#132)
106
+
107
+ It is possible to initialize by the objects responsible to `to_arrow` since 0.2.3 .
108
+ Arrays in Numo::NArray is responsible to `to_arrow` with Red Arrow Numo::NArray 0.0.6 .
109
+ This feature is proposed by the Red Data Tools member @kojix2 and implemented by @kou.
110
+ I made also Vector to be responsible to `to_arrow` and `to_arrow_array`.
111
+ It becomes a member of ducks ('quack quack'). Thanks!
112
+
113
+ - Change dev dependency to red-dataset-arrow (#117)
114
+ - Add dev dependency for red-arrow-numo-narray (#132)
115
+ - Support Numo::NArray in Vector.new (#132)
116
+ - Support Vector#to_arrow_array (#132)
117
+
118
+ - Update group (#118)
119
+ - Introduce new DataFrame group support (experimental)
120
+
121
+ This additional API will treat a grouped DataFrame as a list of DataFrames.
122
+ I think this API has pros such as:
123
+ - API is easy to understand and flexible.
124
+ - It has good compatibility with Ruby's primitive Enumerables.
125
+ - We can only use non hash-ed aggregation functions.
126
+ - Do not need grouped DataFrame state, nor `#ungroup` method.
127
+ - May be useful for concurrent operations.
128
+
129
+ This feature is implemented by Ruby, so it is pretty slow and experimental.
130
+ Use original Group API for practical purpose.
131
+
132
+ - `include Enumerable` to Group (experimental)
133
+ - Add Group#each, #inspect
134
+ - Refactor Group to align with Arrow
135
+
136
+ - Introduce DataFrame combining methods (#125)
137
+ - Introduce DataFrame#concatenate method
138
+ - Add DataFrame#merge method
139
+ - Add DataFrame#inner_join method
140
+ - Add DataFrame#full_join method
141
+ - Add DataFrame#left_join method
142
+ - Add DataFrame#right_join method
143
+ - Add DataFrame#semi_join method
144
+ - Add DataFrame#anti_join method
145
+ - Add DataFrame#intersect method
146
+ - Add DataFrame#union method
147
+ - Add DataFrame#setdiff method
148
+ - Rename #setdiff to #difference
149
+ - Support natural join in DataFrame#join
150
+ - Support partial join_key and renaming
151
+ - Fix DataFrame#join to merge key columns
152
+ - Add DataFrame#set_operable? method
153
+ - Add join/set/bind image to DataFrame.md
154
+ - Fix DataFrame#join, #right_semi, #right_anti (#128)
155
+
156
+ - Miscellaneous
157
+ - Return Vector in DataFrame#indices (#118)
158
+
159
+ - Improve tests/ci
160
+
161
+ - Improve CI
162
+ - Add CI test on macOS (#133)
163
+ - Enable bundler-cache on macOS (#128)
164
+ - Add install gobject introspection prior to glib in CI (#133)
165
+ This will stabilize CI system installation especially with cache.
166
+
167
+ - Rename workflows/test.yml to ci.yml (#133)
168
+ - Fix link in CI badge of README.md (#118)
169
+
170
+ - Add github action for coverage (#128)
171
+
172
+ - Add benchmark
173
+ - Add benchmarks with Rover (#118)
174
+ - Introduce benchmark suite (#134)
175
+ - Add benchmark for combining operations (#134)
176
+
177
+ - Measuring test coverage
178
+ - Add test coverage measurement (#128)
179
+
180
+ - Refactoring
181
+
182
+ - Remove redundant string escape in `test_vector_function` (#132)
183
+ - Refine tests to use `assert_equal_array` (#128)
184
+ - Rewrite Vector#replace (#128)
185
+
186
+ - Documentation
187
+
188
+ - Update README.md for installation (#126)
189
+ - Add clause that keys must be unique in doc. (#126)
190
+ - Rows should be called as 'records' (#126)
191
+ - Update Jupyter Notebook `83 examples of RedAmber` (#135)
192
+
193
+ - GitHub site
194
+
195
+ - Update Jupyter notebooks in Binder
196
+ - Change default branch name from 'master' to 'main' (#127)
197
+
198
+ - Thanks
199
+
200
+ Ruby Association Grant committee
201
+ It is a great honor for selecting RedAmber as a project of Ruby Association Grant 2022.
202
+
203
+
1
204
  ## [0.2.2] - 2022-10-04
2
205
 
3
206
  - Bug fixes
4
207
 
5
208
  - Return self when no replacement happen in Vector#replace. (#92)
6
-
7
209
  - Limit n-digits in to_iruby. (#111)
8
-
9
210
  - Fix displaying space in to_iruby. (#111)
10
-
11
211
  - Raise error if key is duplicated. (#113)
12
-
13
212
  - Fix DataFrame#pick/#drop with endless Range. (#113)
14
-
15
213
  - Change type from dictionary to string in DataFrame reshaping methods. (#113)
16
-
17
214
  - Fix arguments parser to accept Enumerator. (#114)
18
215
 
19
216
  - New features and improvements
20
217
 
21
218
  - Support to make a data frame from a to_arrow-responsible object. (#106) [Patch by Kenta Murata]
22
-
23
219
  - Introduce DataFrame#auto_cast (experimental feature) (#105)
24
-
25
220
  - Change default name in DataFrame#transpose, #to_long, #to_wide. (#110)
26
-
27
221
  - Add Vector#dictionary? method. (#113)
28
-
29
222
  - Add display mode 'Plain' and 'Minimum'. (#113)
30
-
31
223
  - Refactor code
32
-
33
224
  - Refine test_vector_selectable. (#92)
34
225
  - Refine test_vector_updatable. (#92)
35
226
  - Refine Vector.new. (#113)
@@ -38,7 +229,6 @@
38
229
  - Documents
39
230
 
40
231
  - Update images. (#90, #105, #113)
41
-
42
232
  - Update README to use simpler examples. (#112)
43
233
  - Update README with a new screenshot example. (#113)
44
234
 
@@ -61,39 +251,27 @@
61
251
 
62
252
  - Fix `Vector#each` with block (#66)
63
253
  `Vector#each` will return value of each element with block.
64
-
65
254
  - Fix table format at size == 9 (#67)
66
-
67
255
  - Fix to support Vector in `DataFrame#assign` (#77)
68
-
69
256
  - Add `assert_delta` functionality for `assert_with_NaN` (#78)
70
-
71
257
  - Fix Vector#is_in when self is chunked (#79)
72
-
73
258
  - Fix Array type error (uint/int) (#79)
74
259
 
75
260
  - New features and improvements
76
261
 
77
262
  - Refine `DataFrame#indices` method (#67)
78
-
79
263
  - Update DataFrame reshaping methods (#73)
80
-
81
264
  - Change default option value of DataFrame reshaping
82
-
83
265
  - Change the order of import_cars example
84
266
 
85
267
  - Add `DataFrame#method_missing` to get column vector by method (#75)
86
-
87
268
  - Add `DataFrame#method_missing` to get column (#75)
88
269
 
89
270
  - Accept both args and block in `DataFrame#assign` (#75)
90
-
91
271
  - Accept indices in `DataFrame#pick` and `DataFrame#drop` (#76)
92
272
 
93
273
  - Add `DataFrame#slice_by` method (#77)
94
-
95
274
  - Add new Vector functions (#78)
96
-
97
275
  - Add inverse trigonometric function for Vector
98
276
  - `acos`
99
277
  - `asin`
@@ -123,25 +301,19 @@
123
301
  - Bug fixes
124
302
 
125
303
  - Fix order of multiple group keys (#55)
126
-
127
304
  Only 1 group key comes to left. Other keys remain in right.
128
305
 
129
306
  - Remove optional `require` for rover (#55)
130
-
131
307
  Fix DataFrame.new for argument with Rover::DataFrame.
132
-
133
308
  - Fix occasional failure in CI (#59)
134
-
135
309
  Sometimes the CI test fails. I added -dev dependency
136
310
  in Arrow install by apt, not doing in bundler.
137
311
 
138
312
  - Fix calling :take in V#[] (#56)
139
-
140
313
  Fixed to call Arrow function :take instead of :array_take in Vector#take_by_vector. This will prevent the error below
141
314
  when called with Arrow::ChunkedArray.
142
315
 
143
316
  - Raise error renaming non existing key (#61)
144
-
145
317
  Add error when specified key is not exist.
146
318
 
147
319
  - Fix DataFrame#rename #assign by array (#65)
data/Gemfile CHANGED
@@ -7,7 +7,7 @@ gemspec
7
7
  group :test do
8
8
  gem 'rake'
9
9
 
10
- gem 'red-parquet', '>= 9.0.0'
10
+ gem 'red-parquet', '~> 10.0.0'
11
11
  gem 'rover-df', '~> 0.3.0'
12
12
 
13
13
  gem 'rubocop'
@@ -21,5 +21,8 @@ group :test do
21
21
  gem 'yard'
22
22
 
23
23
  gem 'benchmark_driver'
24
- gem 'red-datasets'
24
+ gem 'red-arrow-numo-narray'
25
+ gem 'red-datasets-arrow'
26
+ gem 'simplecov'
27
+ gem 'simplecov-json'
25
28
  end