Skip to content
Snippets Groups Projects
Unverified Commit cc1a188c authored by Michiel Cottaar's avatar Michiel Cottaar
Browse files

Use new propertynames in printing

parent 3f856466
No related branches found
No related tags found
1 merge request!7Add variables as properties
module Printing
import JuMP: value
import JuMP: value, AbstractJuMPScalar
import Printf: @sprintf
import ..Variables: VariableType, variables, AbstractBlock, Variable
......@@ -21,50 +21,26 @@ end
_robust_value(possible_tuple::Tuple) = _robust_value([possible_tuple...])
_robust_value(possible_tuple::NamedTuple) = NamedTuple(k => _robust_value(v) for (k, v) in pairs(possible_tuple))
_robust_value(other) = other
function Base.show(io::IO, block::AbstractBlock)
print(io, nameof(typeof(block)), "(")
for name in propertynames(block)
ft = fieldtype(typeof(block), name)
value = _robust_value(getproperty(block, name))
if (
ft == VariableType ||
(ft <: AbstractVector && eltype(ft) == VariableType) ||
string(name)[1] == '_'
)
continue
end
if (
ft <: Union{Nothing, AbstractBlock} ||
(ft <: AbstractVector && eltype(ft) <: AbstractBlock) ||
(ft <: AbstractVector && eltype(ft) <: Pair)
value isa AbstractJuMPScalar ||
(value isa AbstractVector{<:AbstractJuMPScalar}) ||
string(name)[1] == '_' ||
isnothing(value) ||
(value isa AbstractVector{<:AbstractBlock}) ||
(value isa AbstractVector{<:Pair})
)
continue
end
print(io, name, "=", repr(getproperty(block, name)), ", ")
end
for fn_name in names(variables, all=true)
fn = getproperty(variables, fn_name)
if !(fn isa Variable)
continue
end
try
numeric_value = _robust_value(fn(block))
if isnothing(numeric_value)
continue
end
as_string = string(numeric_value)
if length(as_string) > 50
continue
end
print(io, "$(fn_name)=$(as_string), ")
catch e
continue
end
end
print(io, ")")
end
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment