<br><br><div class="gmail_quote">On Thu, Oct 8, 2009 at 1:58 PM, Robert Kern <span dir="ltr">&lt;<a href="mailto:robert.kern@gmail.com">robert.kern@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="im">On 2009-10-08 15:42 PM, Brian Granger wrote:<br>
&gt; Robert,<br>
&gt;<br>
&gt; I agree it would be useful to have a README in those directories, but I<br>
&gt; wasn&#39;t entirely<br>
&gt; neglectful:<br>
&gt;<br>
&gt;  From the &quot;changes/whatsnew&quot; docs:<br>
</div>...<br>
 &gt;  From module_reorg:<br>
...<br>
<br>
I read those. I asked because those documents give a number of listed reasons a<br>
module could be in either directory. They don&#39;t tell me which reason you thought<br>
applied to each module. For example, ipy_traits_completer could plausibly be in<br>
deathrow because it didn&#39;t have a maintainer (my submitted patches<br>
notwithstanding) or because you thought it belonged in a separate package. The<br>
appropriate next action depends on which reason you had in mind.<br>
<div class="im"><br></div></blockquote><div><br>Ah, Yes, you are absolutely right, especially about the reasons something may be in <br>deathrow.  I sorted through the extension modules putting them into either quarantine or<br>
deathrow, simply because most (if not all) of them are currently broken because of the API<br>changes that have been made.  In many cases, I had no idea what the status of various extensions<br>(are they used by anyone, were they broken before the API changes) was <br>
and I made a very rough guess about where it should go (quarantine or deathrow).<br><br>My *intention* is that when people see their favorite extension in quarantine or deathrow,<br>that *have* to come to the list to help us figure out what needs to happen.  Over time,<br>
that is how we can figure out which extensions &quot;matter&quot; and which have outlived their<br>life or belong elsewhere.  <br><br>For ipy_pretty and ipy_traits_completer it is easy, because I know what they do and that they are<br>
still used.  But for many other ones, I personally have *no idea* what there status is,<br>so it really needs to be discussed on list.<br><br>Summary: I want people to have to ask on list about the status of things in <br>
quarantine/deathrow.  <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;"><div class="im">
&gt; Based on this, I would say the following:<br>
&gt;<br>
&gt; * ipy_pretty should be cleaned up,<br>
<br>
</div>What needs to be cleaned up?<br>
<font color="#888888"><br></font></blockquote><div><br>It needs to be converted to the new extension API.  Here are the docs for that:<br>(this is in docs/source/config/ipython.txt)<br><br>:attr:`c.Global.extensions`<br>
    A list of strings, each of which is an importable IPython extension. An<br>    IPython extension is a regular Python module or package that has a<br>    :func:`load_in_ipython(ip)` method. This method gets called when the<br>
    extension is loaded with the currently running<br>    :class:`~IPython.core.iplib.InteractiveShell` as its only argument. You<br>    can put your extensions anywhere they can be imported but we add the<br>    :file:`extensions` subdirectory of the ipython directory to ``sys.path``<br>
    during extension loading, so you can put them there as well.  Extensions<br>    are not executed in the user&#39;s interactive namespace and they must<br>    be pure Python code.  Extensions are the recommended way of customizing<br>
    :command:`ipython`.<br><br>The easy part is this, if you remove the ipapi stuff and instead all the following to the bottom:<br><br>def load_in_ipython(ip):<br>    ip.set_hook(&#39;result_display&#39;, pretty_result_display, priority=99)<br>
<br>The slightly more involved part is that the way the config variables are handled will<br>need to be changed.  I don&#39;t mind doing this as an example if you can wait until tomorrow<br>(my son&#39;s 4th B-day is today!).  But, one question: once<br>
the extension is activated, who does a user activate a custom displayer for a type?<br>By calling for_type/for_type_by_name (which are injected into the userns)?<br><br>It would be great to convert this to the new API to show how it all works.<br>
<br>Cheers,<br><br>Brian <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;"><font color="#888888">
--<br>
</font><div><div></div><div class="h5">Robert Kern<br>
<br>
&quot;I have come to believe that the whole world is an enigma, a harmless enigma<br>
  that is made terrible by our own mad attempt to interpret it as though it had<br>
  an underlying truth.&quot;<br>
   -- Umberto Eco<br>
<br>
_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
</div></div></blockquote></div><br>