This question is probably applicable to multiple packages, but the example I am familiar with and want to somewhat replicate is from the HypothosisTests
package.
When an instance of a HypothesisTests.OneSampleTTest
is put into the console it displays the name of the test, population details, test summary, and details. The fields are also accessible but are not exactly the same as that list. How does the design of the HypothesisTests
abstract type display that information and contain different information?
The custom printing of types is documented here. The key is to overload Base.show(::IO, ::YourType)
. In the OneSampleTTest
case the relevant definition is
https://github.com/JuliaStats/HypothesisTests.jl/blob/b28a4587fe441d1da0479c0791e5f9fd2120cb6b/src/HypothesisTests.jl#L102-L138
An easy way to find the definition is often to call
julia> t = OneSampleTTest(randn(100), 0.1);
julia> @which show(STDOUT, t)
show(io::IO, test::T) where T<:HypothesisTests.HypothesisTest in HypothesisTests at /Users/andreasnoack/.julia/v0.6/HypothesisTests/src/HypothesisTests.jl:103
2 Likes