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.
- checksums.yaml +4 -4
- data/.rubocop.yml +114 -39
- data/CHANGELOG.md +203 -31
- data/Gemfile +5 -2
- data/README.md +62 -29
- data/benchmark/basic.yml +86 -0
- data/benchmark/combine.yml +62 -0
- data/benchmark/dataframe.yml +62 -0
- data/benchmark/drop_nil.yml +15 -3
- data/benchmark/group.yml +39 -0
- data/benchmark/reshape.yml +31 -0
- data/benchmark/{csv_load_penguins.yml → rover/csv_load_penguins.yml} +3 -3
- data/benchmark/rover/flights.yml +23 -0
- data/benchmark/rover/penguins.yml +23 -0
- data/benchmark/rover/planes.yml +23 -0
- data/benchmark/rover/weather.yml +23 -0
- data/benchmark/vector.yml +60 -0
- data/doc/DataFrame.md +335 -53
- data/doc/Vector.md +91 -0
- data/doc/image/dataframe/join.png +0 -0
- data/doc/image/dataframe/set_and_bind.png +0 -0
- data/doc/image/dataframe_model.png +0 -0
- data/lib/red_amber/data_frame.rb +167 -51
- data/lib/red_amber/data_frame_combinable.rb +486 -0
- data/lib/red_amber/data_frame_displayable.rb +6 -4
- data/lib/red_amber/data_frame_indexable.rb +2 -2
- data/lib/red_amber/data_frame_loadsave.rb +4 -1
- data/lib/red_amber/data_frame_reshaping.rb +35 -10
- data/lib/red_amber/data_frame_selectable.rb +221 -116
- data/lib/red_amber/data_frame_variable_operation.rb +146 -82
- data/lib/red_amber/group.rb +108 -18
- data/lib/red_amber/helper.rb +53 -43
- data/lib/red_amber/refinements.rb +199 -0
- data/lib/red_amber/vector.rb +56 -46
- data/lib/red_amber/vector_functions.rb +23 -83
- data/lib/red_amber/vector_selectable.rb +116 -69
- data/lib/red_amber/vector_updatable.rb +189 -65
- data/lib/red_amber/version.rb +1 -1
- data/lib/red_amber.rb +3 -0
- data/red_amber.gemspec +4 -3
- metadata +24 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78fa72064f9494f0f756f15cf1daaacb3640535e899ba71ab080730c0d61b0b2
|
4
|
+
data.tar.gz: 3f2de4a449c38eb995ebcc0394a1a93633f097e533696edfa91267a596dcb580
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
12
|
-
TargetRubyVersion:
|
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:
|
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
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
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' #
|
82
|
-
- 'lib/red_amber/
|
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
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
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
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
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/
|
107
|
-
- 'lib/red_amber/
|
108
|
-
- 'lib/red_amber/
|
109
|
-
- 'lib/red_amber/
|
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:
|
112
|
-
|
113
|
-
|
153
|
+
# Max: 5
|
154
|
+
# Offense count: 1
|
155
|
+
# Configuration parameters: CountKeywordArgs, MaxOptionalParameters.
|
156
|
+
Metrics/ParameterLists:
|
114
157
|
Exclude:
|
115
|
-
- 'lib/red_amber/
|
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', '
|
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-
|
24
|
+
gem 'red-arrow-numo-narray'
|
25
|
+
gem 'red-datasets-arrow'
|
26
|
+
gem 'simplecov'
|
27
|
+
gem 'simplecov-json'
|
25
28
|
end
|