<div class="gmail_quote">On Sun, May 13, 2012 at 9:18 AM, Benoît Bryon <span dir="ltr">&lt;<a href="mailto:benoit@marmelune.net" target="_blank">benoit@marmelune.net</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
&quot;Eric V. Smith&quot; &lt;<a href="mailto:eric@trueblade.com" target="_blank">eric@trueblade.com</a>&gt; wrote:<br><br></blockquote><blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
&gt; Hi, Benoit.<br>
<br>&gt; This hasn&#39;t been specifically discussed. Part of the rejection of PEP<br>&gt; 
382 was due to dots in the names of directories, but as directory<br>&gt; 
extensions (foo.pyp). I&#39;m not sure if this concern would also apply to<br>&gt; 
your proposal.<br>
<br>&gt; 
Also, I&#39;m not sure how common nested namespace packages are. I know I&#39;ve<br>&gt; 
never run across them.<br></blockquote><div><br>zope.app and peak.util are two I know of.  But deep nesting isn&#39;t common in the Python world, despite the popularity of things like org.apache.someproject.gizmos.GizmoFactory in the Java world.<br>
<br>The proposal itself is intriguing, but it&#39;s not only less backward compatible and directory-cluttering, it has some potential for ambiguity in the spec and doesn&#39;t seem like a reasonable departure from other languages&#39; conventions in this area.<br>
<br>Regarding the nesting issue and persuading Django developers to use namespaces, I would note that there isn&#39;t any reason for namespaces to be deeply nested in the first place.  By convention, top-level namespace packages should be the name of a project or its sponsoring organization, which means there is rarely a need for deep nesting.  Even cases like zope.app and peak.util are rare: usually a project or organization will have only one such &quot;miscellaneous&quot; namespace with lots of separately-distibuted components.<br>
<br>(After all, the main reason to *have* a namespace package is to have separately-distributed subpackages.  So, self-contained packages don&#39;t need to have namespaces of their own, almost by definition.)<br><br>Anyway, what I&#39;ve noticed is that when people want to deeply nest namespaces, it&#39;s usually because they&#39;re trying to share a namespace across organizations, like making a shared &#39;net.*&#39; namespace.  The idea of namespaces isn&#39;t for that kind of categorization, though, it&#39;s for *ownership*.  If two developers are fighting over where to put something in a category hierarchy, it&#39;s a sign that they need to be working in different namespaces, with each developer staking a claim to a *top-level* package -- like OSAF&#39;s osaf.*, Zope Corporation&#39;s zc.* (vs. the community project&#39;s zope.*), and so on.<br>
<br>When developers use namespaces for project/ownership distinction, the resulting package hierarchies can be pretty much as flat as you like.<br></div></div><br>