Terrific. The second option works great (and will be my first sanctioned 
use of eval...been avoiding it like the plague after reading all the 
warnings about it on google groups).

Thanks!
Ethan

On Tuesday, August 30, 2016 at 12:37:44 PM UTC-7, Simon Kornblith wrote:
>
> The reason this particular form of @load now shows a warning is that it 
> can't be made to work properly in a function. If you can't know either the 
> file name or the variable names ahead of time, there are two things you 
> could do:
>
> - Use the load function (e.g. x = load("data_run$(run).jld")) rather than 
> the macro. This returns a Dict of all variables in the file, so you'd 
> access them as x["a"] etc.
> - Use @eval @load $("data_run$(run).jld")
>
> Simon 
>
> On Tuesday, August 30, 2016 at 3:05:58 PM UTC-4, Ethan Anderes wrote:
>>
>> I often use @load as a way to conveniently load a bunch of variables 
>> obtained from a simulation run.
>> For example, the simulation script might look like this
>>
>> using JLD
>> run   = 1 # <--- simulation parameter
>> a,b,c = 1,2,3
>> @save "data_run$(run).jld" a b c
>>
>> Then, to view these simulations later, I would use the load macro. In 
>> v0.4 my REPL session would look something like this:
>>
>> julia> using JLD
>>
>> julia> run = 1  # <--- specify which simulation run to load
>> 1
>>
>> julia> @load "data_run$(run).jld"
>> 3-element Array{Symbol,1}:
>>  :a
>>  :b
>>  :c
>>
>> julia> a
>> 1
>>
>> julia> b
>> 2
>>
>> julia> c
>> 3
>>
>> However, in v0.5.0-rc3+0 , I get the following warning.
>>
>> julia> using JLD
>>
>> julia> run = 1  # <--- specify which simulation run to load
>> 1
>>
>> julia> @load "data_run$(run).jld"
>> WARNING: @load-ing a file without specifying the variables to be loaded may 
>> produce
>> unexpected behavior unless the file is specified as a string literal. Future
>> versions of JLD will require that the file is specified as a string literal
>> in this case.
>> 3-element Array{Symbol,1}:
>>  :a
>>  :b
>>  :c
>>
>> julia> a
>> 1
>>
>> julia> b
>> 2
>>
>> julia> c
>> 3
>>
>> julia> Pkg.status("JLD")
>>  - JLD                           0.6.3+             master
>>
>> I was going to file an issue with JLD but I figured I would post here 
>> first to see if I’m using an ill-advised workflow or missing some simple 
>> work around.
>>
>> Note: there are a few features of my situation which makes @load 
>> particularly convenient.
>>
>> - Each simulation produces a bunch of variables and some older runs have a 
>> smaller subset of variables than newer ones. This makes it clumsy to use the 
>> load function (rather than the macro) where one needs to specify the 
>> variable names ahead of time.
>> - I need to load in multiple `.jld` files, sometimes in a large plotting 
>> script, so printing out each file string in the REPL and pasting it into the 
>> REPL after `@load` is also unwieldy.
>>
>> ​
>>
>

Reply via email to