@@ -18,19 +18,52 @@ function Base.setindex!(p::ParameterIndexingProxy, val, idx)
1818 return setp (p. wrapped, idx)(p. wrapped, val)
1919end
2020
21- function Base. show (io:: IO , pip:: ParameterIndexingProxy ; kwargs... )
21+ function Base. show (io:: IO , :: MIME"text/plain" , pip:: ParameterIndexingProxy )
22+ showparams (io, pip; num_rows = 20 , show_all = false , scalarize = true )
23+ end
24+
25+ """
26+ showparams(io::IO, pip::ParameterIndexingProxy; num_rows = 20, show_all = false, scalarize = true, kwargs...)
27+
28+ Method for customizing the table output. Keyword args:
29+ - num_rows
30+ - show_all: whether to show all parameters
31+ - scalarize: whether to scalarize array symbolics in the table output.
32+ - kwargs... are passed to the pretty_table call.
33+ """
34+ function showparams (io:: IO , pip:: ParameterIndexingProxy ; num_rows = 20 , show_all = false , scalarize = true , kwargs... )
2235 params = Any[]
2336 vals = Any[]
2437 for p in parameter_symbols (pip. wrapped)
25- push! (params, p)
26- val = getp (pip. wrapped, p)(pip. wrapped)
27- push! (vals, val)
38+ if symbolic_type (p) === ArraySymbolic () && scalarize
39+ val = getp (pip. wrapped, p)(pip. wrapped)
40+ for (_p, _v) in zip (collect (p), val)
41+ push! (params, _p)
42+ push! (vals, _v)
43+ end
44+ else
45+ push! (params, p)
46+ val = getp (pip. wrapped, p)(pip. wrapped)
47+ push! (vals, val)
48+ end
2849 end
2950
30- print (
31- Table ([params vals];
32- box= :SIMPLE ,
33- header= [" Parameter" , " Value" ],
34- kwargs... )
35- )
51+ num_shown = if show_all
52+ length (params)
53+ else
54+ if num_rows > length (params)
55+ length (params)
56+ else
57+ num_rows
58+ end
59+ end
60+
61+ pretty_table (io, [params[1 : num_shown] vals[1 : num_shown]];
62+ header= [" Parameter" , " Value" ],
63+ kwargs... )
64+
65+ if num_shown < length (params)
66+ println (io,
67+ " $num_shown of $(length (params)) params shown. To show all the parameters, call `showparams(io, ps, show_all = true)`. Adjust the number of rows with the num_rows kwarg. Consult `showparams` docstring for more options." )
68+ end
3669end
0 commit comments