As in the topic, I’d like to execute some code (e.g. in __init_) based on the information that my module has not been used/imported into Main. I tried parentmodule and Base.moduleroot etc. but since Main is no longer special in julia, each module is it’s own root…
MWE (works only if module is defined in Main):
julia> module InnerModule
function __init__()
parent_mod = parentmodule(@__MODULE__)
@info "imported from $(last(fullname(parent_mod)))"
end
end
[ Info: imported from Main
Main.InnerModule
julia> module OuterModule
module InnerModule
function __init__()
parent_mod = parentmodule(@__MODULE__)
@info "imported from $(last(fullname(parent_mod)))"
end
end
import .InnerModule
end
[ Info: imported from OuterModule
Main.OuterModule