[IPython-User] Refactoring in ipynb

MinRK benjaminrk@gmail....
Sat Jul 14 13:53:29 CDT 2012


You can use %who or %whos to see the variables you have defined.

Not sure if that's what you are after.

-MinRK

On Sat, Jul 14, 2012 at 11:44 AM, Junkshops <junkshops@gmail.com> wrote:
> Hey Aaron,
>
> Thanks for the suggestions. Sorry if I wasn't clear in my OP - my question
> is more along the lines of how to refactor safely without restarting the
> kernel. Both the methods below would require that.
>
> The fact that the ipynb saves all your variables in memory is great, but it
> makes refactoring a little more tricky since you have to remember to delete
> your old function/variable names.
>
> Here's where I think I should clarify - I mean deleting the
> function/variable names *from the kernel's memory.* Even if you delete the
> names from the notebook, they'll still exist in the kernel. Hence if you
> miss renaming a function call in the notebook somewhere, it'll still use the
> old function resident in the kernel's memory - even though the old function
> never appears in the notebook. That can make bugs tricky to track down
> unless you restart the kernel.
>
> Cheers,
>
> -g
>
>
> On 7/14/2012 10:46 AM, Aaron Meurer wrote:
>
> If the variable name is a fairly unique one, you could do a find and replace
> in the JSON itself using a text editor. I think there might also be a way to
> export the notebook to a .py file and reimport it, in which case you can use
> any Python refactoring tool under the sun (others will have to say how to do
> this or correct me if I'm wrong here).
>
> Aaron Meurer
>
> On Jul 14, 2012, at 10:55 AM, "junkshops@gmail.com" <junkshops@gmail.com>
> wrote:
>
> The fact that the ipynb saves all your variables in memory is great, but it
> makes refactoring a little more tricky since you have to remember to delete
> your old function/variable names. Otherwise, if you miss changing a name
> somewhere it can lead to hard to fix bugs since the old variable/function
> still exists but is invisible to the user.
>
> How do people deal with this other than being extremely careful when
> refactoring? I've taken to restarting the kernel after I make extensive
> changes to make sure I haven't forgotten to delete any variables, but I
> assume some of the more experienced users have better methods. I'd
> definitely be interested in suggestions.
>
> Cheers, Gavin
>
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user
>
>
>
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user
>
>
> _______________________________________________
> IPython-User mailing list
> IPython-User@scipy.org
> http://mail.scipy.org/mailman/listinfo/ipython-user
>


More information about the IPython-User mailing list