Hi all,
I’m having some trouble with the code below.
I am writing a module that contains a function taking a String input (from a config file) and returns a DataType. The function aims to parse the string to a DataType. For example, f("UInt8") returns UInt8.
The function works for Core types, such as UInt8 and Float64.
But it throws an error when parsing a non-core type because the module that defines the function hasn’t imported the type.
How can I get this to work without importing all possible types into the module that defines the function?
module mymod1
export f
f(s::String) = eval(Meta.parse(s))
end
module mymod2
using mymod1
using TimeZones
f("Float64") # Float64
s = "TimeZones.ZonedDateTime"
println(eval(Meta.parse(s))) # OK
f(s) # Error
end