<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
1. While I&#39;m all for using more weakrefs, they are a subtle tool and I<br>
doubt we can get away with using them everywhere for everything.  I<br>
don&#39;t want to &#39;bet the farm&#39; on that strategy, because we can easily<br>
find a situation where weakrefs don&#39;t work, we have way too much<br>
user-facing  state managemnet we must accomplish robustly and weakrefs<br>
may not be the tool for everything we need to do.<br>
</blockquote><div><br>Yes, I agree.  When I proposed to use them &quot;everywhere&quot; I was actually thinking quite narrowly.  Here is what I am thinking:<br><br>* Components will track children and parents using weakrefs.<br>
* Component.get_instances will have an interface for getting a weakref.  Component holds the instances as weakref anyways,<br>so this is trivial.<br>* When Components need to hold onto a ref to each other they should be a weakref.<br>
<br>Because InteractiveShell is a Component, no-one should hold a strong ref to it under<br>this approach.   <br></div><div> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

2. This is my favorite.  I wouldn&#39;t make the shell necessarily a<br>
context manager by itself yet, I&#39;m not sure it&#39;s the right interface<br>
(I tend to prefer objects that have small, well-defined interfaces by<br>
themselves), but it would be easy, and good, to have a context manager<br>
that manages a shell instance for us and cleans it up on exit.<br>
</blockquote><div><br>Yes, I like this.  For now, I am just adding a .cleanup method.  We can add the context manager later.<br><br>Also, it would be very nice to be able to manage lots of other things with &quot;with&quot;:<br>
<br>io traps<br>sys hooks<br>threading locks (we are going to have to make InteractiveShell thread safe with locks)  <br>etc. <br></div><div><br>More evidence that dropping 2.4 support makes sense.<br> </div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

How does this sound?<br>
</blockquote><div><br>Great!  Thanks for the feedback.<br><br> <br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><br>
Cheers,<br>
<font color="#888888">f<br>
</font></blockquote></div><br>