Skip to content

Commit

Permalink
Add a filter function to describers set
Browse files Browse the repository at this point in the history
  • Loading branch information
Conradox committed Sep 10, 2020
1 parent 5c53cbf commit 6c983fb
Showing 1 changed file with 27 additions and 2 deletions.
29 changes: 27 additions & 2 deletions src/descriptor.jl
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,38 @@ end

MethodDescriberSet(args...) = MethodDescriberSet([args...])

function methodsFilter(methods::MethodDescriberSet, parameters::Union{Pair, Array{Pair}})
if !(parameters isa Array)
parameters = [parameters]
end

filtered_methods = Set()

for parameter in parameters
if !(parameter[1] in fieldnames(MethodDescriber))
@warn "$(parameter[1]) isn't a property of MethodDescriber"
continue
end
for method in methods.describers
property = getfield(method, parameter[1])
if property == parameter[2]
push!(filtered_methods, method)
end
end
end

return MethodDescriberSet(collect(filtered_methods))
end

methodsFilter(parameters::Union{Pair, Array{Pair}}) = (METHODS, parameters)

function Base.show(io::IO, methods::MethodDescriberSet)
for method in methods.describers
println(method)
end
end

_methods = MethodDescriberSet(
const METHODS = MethodDescriberSet(
MethodDescriber(
"Generate_blobs",
n_features = :Dynamic,
Expand All @@ -55,4 +80,4 @@ _methods = MethodDescriberSet(
problem_type = :Regression),
)

methods() = println(_methods)
methods() = println(METHODS)

0 comments on commit 6c983fb

Please sign in to comment.