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's length, they'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's rationale arguments into 420, so that we don't have to keep answering already-dead proposals that keep coming up, like, "why can't you just add a special file named xyz to fix this".)<br>
<br><div class="gmail_quote">On Sat, May 5, 2012 at 12:06 PM, Yury Selivanov <span dir="ltr"><<a href="mailto:yselivanov.ml@gmail.com" target="_blank">yselivanov.ml@gmail.com</a>></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>
> Now rename zope/ to zope.pyp/ in a full Zope checkout and see how much<br>
> noise you get.<br>
<br>
</div>Why can't we modify whatever PEP to simply mark namespace package<br>
with '__init__.pyp' 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 ".pyp" 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>
'$ rm __init__.py && touch __init__.pyp', as current __init__.py files<br>
of namespace packages contain only '__path__ = extend_path(__path__ ...)'<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>