red_amber 0.2.2 → 0.3.0

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.
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