i am not sure fully understand your problem, but i found it's usually 
better to create a normal julia file that define your module, and then you 
could include("your module file.jl").

On Monday, June 1, 2015 at 12:54:11 PM UTC-4, Adam Labadorf wrote:
>
> Hi,
>
> I am using julia 0.3.8 + IJulia, and have been using ipython notebook for 
> sometime to perform my research activities. For my current project, I 
> define and export a number of types and methods wrapped in a module in one 
> of the cells, import the module, and refer explicitly to those types and 
> methods elsewhere in the notebook. I have found that redefining/reimporting 
> the module does not seem to work as expected (code excerpt only):
>
> module mt
>
> export ResultSet, start, next, done
>
> type ResultSet
>     models::Array{Any}
>     sample_inds::Array{Int64}
>     failed::Array{Int64}
>     num_fails::Int64
> end
> start(x::ResultSet) = 1
> next(x::ResultSet,i::Int64) = (x.models[i],i+1)
> done(x::ResultSet,i::Int64) = (i == length(x.models)+1)
>
> end
>
> import mt;
>
> It works the first time after kernel restart:
>
> mt.start(HD1_HDvC_batch)
>
> 1
>
>
> Later, after editing and rerunning the code:
>
> # model_batch is a ResultSet object
> state = mt.start(model_batch)
>
> `start` has no method matching start(::ResultSet)
> while loading In[10], in expression starting on line 7
>
>
> Eventhough:
>
>
> methods(mt.start)
> 1 method for generic function *start*:
>    
>    - start(x::*ResultSet*) at In[9]:33
>
>
> I have to restart the kernel basically every time I change any of the types 
> or their methods. This is currently just an annoyance, but when I start 
> running larger analyses in IJulia it will become prohibitive. I am aware of 
> the issues with redefining types in the main namespace of an active kernel 
> REPL, the workspace() function seems to be practically the same as a kernel 
> restart, and defining my types in a module in a cell doesn't seem to fix the 
> resolution issues. To my question:
>
> Is there currently a best practice for using IJulia in this way when 
> developing with custom types? At least one that does not require a kernel 
> restart every time?
>
> I'm still pretty new to julia, so if I am doing anything incorrectly here I'm 
> keen to learn. I'd love to use julia+IJulia exclusively for my work as I once 
> did for python, but it seems there are some of these issues that are 
> presently a barrier to doing that effectively. Does anyone have any 
> suggestions?
>
> Thanks.
>
>
>

Reply via email to