Skip to content

Commit d8dcb04

Browse files
authored
Merge pull request #88 from alan-turing-institute/dev
For a 0.4.0 release
2 parents 9a44da5 + 4567468 commit d8dcb04

File tree

3 files changed

+17
-7
lines changed

3 files changed

+17
-7
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name = "MLJModelInterface"
22
uuid = "e80e1ace-859a-464e-9ed9-23947d8ae3ea"
33
authors = ["Thibaut Lienart and Anthony Blaom"]
4-
version = "0.3.9"
4+
version = "0.4.0"
55

66
[deps]
77
Random = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"

src/data_utils.jl

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -239,10 +239,14 @@ Select single or multiple rows from a table, abstract vector or matrix
239239
preferred sink type of `typeof(X)`, even if only a single row is
240240
selected.
241241
242+
If the object is neither a table, abstract vector or matrix, `X` is
243+
returned and `r` is ignored.
244+
242245
"""
243246
selectrows(X, r) = selectrows(get_interface_mode(), vtrait(X), X, r)
244247

245-
selectrows(::Mode, ::Val{:other}, ::Nothing, r) = nothing
248+
# fall-back is to return object, ignoring vector of row indices, `r`:
249+
selectrows(::Mode, ::Val{:other}, X::Any, r) = X
246250

247251
selectrows(::Mode, ::Val{:other}, X::AbstractVector, r) = X[r]
248252
selectrows(::Mode, ::Val{:other}, X::AbstractVector, r::Integer) = X[r:r]
@@ -252,10 +256,6 @@ selectrows(::Mode, ::Val{:other}, X::AbstractMatrix, r) = X[r, :]
252256
selectrows(::Mode, ::Val{:other}, X::AbstractMatrix, r::Integer) = X[r:r, :]
253257
selectrows(::Mode, ::Val{:other}, X::AbstractMatrix, ::Colon) = X
254258

255-
selectrows(::Mode, ::Val{:other}, X, r) =
256-
throw(ArgumentError("Function `selectrows` only supports AbstractVector " *
257-
"or AbstractMatrix or containers implementing the " * "Tables interface."))
258-
259259
selectrows(::LightInterface, ::Val{:table}, X, r; kw...) =
260260
errlight("selectrows")
261261

test/data_utils.jl

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ end
141141
# ------------------------------------------------------------------------
142142
@testset "select-light" begin
143143
setlight()
144+
145+
# test fallback
144146
X = nothing
145147
@test selectrows(X, 1) === nothing
146148
@test selectcols(X, 1) === nothing
@@ -173,12 +175,20 @@ end
173175

174176
# something else
175177
X = (1,2,3)
176-
@test_throws ArgumentError selectrows(X, 1)
178+
selectrows(X, 1) == X
177179
@test_throws ArgumentError selectcols(X, 1)
178180
@test_throws ArgumentError select(X, 1, 1)
179181
end
180182
@testset "select-full" begin
181183
setfull()
184+
185+
# test fallback
186+
X = nothing
187+
@test selectrows(X, 1) === nothing
188+
@test selectcols(X, 1) === nothing
189+
@test select(X, 1, 2) === nothing
190+
191+
# implement some behaviour:
182192
M.selectrows(::FI, ::Val{:table}, X, ::Colon) = X
183193
M.selectcols(::FI, ::Val{:table}, X, ::Colon) = X
184194
function M.selectrows(::FI, ::Val{:table}, X, r)

0 commit comments

Comments
 (0)