I just want to chime in at this point that PEP 402 actually provides rationale to answer a lot of the questions that are coming up in this thread, and which are still valid in a PEP 420 world.  While some folks have complained about PEP 402&#39;s length, they&#39;re mostly people who were already present for all those discussions and hashing out of rationales.  ;-)  (I actually wrote 402 with the intent of answering as many as possible of these objections in advance, hence the length.)<br>
<br>(On a more serious note, it might help to crib some bits of 402&#39;s rationale arguments into 420, so that we don&#39;t have to keep answering already-dead proposals that keep coming up, like, &quot;why can&#39;t you just add a special file named xyz to fix this&quot;.)<br>
<br><div class="gmail_quote">On Sat, May 5, 2012 at 12:06 PM, Yury Selivanov <span dir="ltr">&lt;<a href="mailto:yselivanov.ml@gmail.com" target="_blank">yselivanov.ml@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">
<div class="im">On 2012-05-05, at 9:18 AM, Nick Coghlan wrote:<br>
&gt; Now rename zope/ to zope.pyp/ in a full Zope checkout and see how much<br>
&gt; noise you get.<br>
<br>
</div>Why can&#39;t we modify whatever PEP to simply mark namespace package<br>
with &#39;__init__.pyp&#39; or some other special file?  Why rename directories,<br>
introduce ugly suffixes, deal with all the weirdness of importing<br>
just plain directories and guessing that they are namespace packages,<br>
ignoring content in __init__.py etc, instead of plain simple file<br>
marker?<br>
<br>
In terms of steps (as Nick illustrated):<br>
<div class="im"><br>
With PEP 382, the migration path is:<br>
1. delete all __init__.py files from namespace package portions<br>
2. rename the directories for all namespace package portions to append<br>
the &quot;.pyp&quot; extension<br>
<br>
With PEP 420, the migration path is:<br>
1. delete all __init__.py files from namespace package portions<br>
2. there is no step 2<br>
<br>
</div>With a marker:<br>
1. $ mv __init__.py __init__.pyp<br>
<div class="im">2. there is no step 2<br>
<br>
</div>The first step can be even replaced with<br>
&#39;$ rm __init__.py &amp;&amp; touch __init__.pyp&#39;, as current __init__.py files<br>
of namespace packages contain only &#39;__path__ = extend_path(__path__ ...)&#39;<br>
crap.<br>
<br>
-<br>
Yury<br>
<div class="HOEnZb"><div class="h5">_______________________________________________<br>
Import-SIG mailing list<br>
<a href="mailto:Import-SIG@python.org">Import-SIG@python.org</a><br>
<a href="http://mail.python.org/mailman/listinfo/import-sig" target="_blank">http://mail.python.org/mailman/listinfo/import-sig</a><br>
</div></div></blockquote></div><br>