All modules can already be extensions or contain extensions.  Any importable module that has a `load_ipython_extension(ip)` function is a valid extension.<div><br></div><div>An excellent example of this is sympyprinting, which was recently moved <a href="https://github.com/ipython/ipython/blob/master/IPython/extensions/sympyprinting.py">out of IPython</a> and <a href="https://github.com/sympy/sympy/blob/master/sympy/interactive/ipythonprinting.py">into sympy</a>.  It is now loaded as:</div>

<div><br></div><div>%load_ext sympy.interactive.ipythonprinting</div><div><br></div><div>This is just a regular Python module that is a part of sympy.  There is nothing extra to install.</div><div><br></div><div>So I would say that this is already a solved problem, and there is no reason to deal with a special namespace.</div>

<div><br></div><div>-MinRK</div><div><br><div class="gmail_quote">On Thu, Oct 25, 2012 at 12:28 PM, Takafumi Arakaki <span dir="ltr">&lt;<a href="mailto:aka.tkf@gmail.com" target="_blank">aka.tkf@gmail.com</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi,<br>
<br>
I think IPython should provide namespace for IPython extensions, so<br>
that extension authors can upload their extensions to PyPI.  I don&#39;t<br>
care about what the actual name is (probably it can be ipythonext,<br>
IPythonContrib, IPython.extensions, or what ever).  It is something<br>
what Sphinx does for &quot;sphinxcontrib.*&quot; namespace.  I can think of many<br>
reasons why it is better for IPython extension users and authors:<br>
<br>
1. When you want to use external Python module in your extension,<br>
   currently there is no easy way to install it.  If you can upload<br>
   your extension as `IPython.ext.YOUREXT`, it can be easily solved.<br>
<br>
2. Similarity, you can depends on other IPython extensions.  Currently<br>
   there is no easy way to import other IPython extensions.<br>
<br>
3. It does not stop people using `%install_ext`.  If your extension is<br>
   just one file, you can just do::<br>
<br>
     %install_ext<br>
<a href="https://raw.github.com/YOU/ipython-ext-YOUREXT/master/IPython/ext/YOUREXT.py" target="_blank">https://raw.github.com/YOU/ipython-ext-YOUREXT/master/IPython/ext/YOUREXT.py</a><br>
<br>
4. You get IPython extension search engine for free.  People can just do::<br>
<br>
     pip search IPython.ext<br>
<br>
   Try ``pip search sphinxcontrib``, for example.<br>
<br>
5. It helps people avoiding namespace collision.  Currently there is<br>
   no easy way to make sure if other people not using some name.<br>
   Sure, you can google it, but you can&#39;t be 100% sure.<br>
<br>
6. IPython don&#39;t need to create any machinery for this.  All you need<br>
   to do is to put some notice in the documentation for extension<br>
   author.<br>
<br>
<br>
To be fair, I will try to think the reasons why you should not do this:<br>
<br>
1. It may drive lazy people away from writing it.  &quot;Oh, I need setup.py<br>
   for IPython extension?  No... I won&#39;t upload it hen.&quot;<br>
<br>
   (But you don&#39;t need to upload your extension to pypi, if your<br>
   extension is just one file.)<br>
<br>
2. It increases the amount and complexity of documentation you need to<br>
   maintain.  You need to explain:  &quot;You can install extensions using<br>
   `pip` (or `easy_install`, if you want).  Oh, you can use<br>
   `%install_ext` magic by the way.  But it cannot be used for some<br>
   packages blah blah blah...&quot;.<br>
<br>
<br>
BTW, should I post something like this in ML or github issue?  As<br>
there was old discussion in this ML [1]_, I am posting it here.<br>
<br>
.. [1] <a href="http://mail.scipy.org/pipermail/ipython-dev/2012-June/thread.html#9427" target="_blank">http://mail.scipy.org/pipermail/ipython-dev/2012-June/thread.html#9427</a><br>
<br>
<br>
--<br>
Takafumi Arakaki<br>
<a href="https://github.com/tkf" target="_blank">https://github.com/tkf</a><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>
</blockquote></div><br></div>