[Python-Dev] Dropping __init__.py requirement for subpackages

Paul Moore p.f.moore at gmail.com
Thu Apr 27 09:47:44 CEST 2006


On 4/27/06, Guido van Rossum <guido at python.org> wrote:
> On 4/26/06, Thomas Wouters <thomas at python.org> wrote:
> > Of course, I only consider *my* reasons to be valid, and mine weren't
> > knee-jerk or tool-related. I don't think Python should be going "Oh, what
> > you wanted wasn't possible, but I think I know what you wanted, let me do it
> > for you", first of all because it's not very Pythonic, and second of all
> > because it doesn't lower the learning curve, it just delays some upward
> > motion a little (meaning the curve may become steeper, later.) A clear
> > warning, on the other hand, can be a helpful nudge towards the 'a-HA'
> > moment.
>
> That still sounds like old-timer reasoning. Long ago we were very
> close to defining a package as "a directory" -- with none of this
> "must contain __init__.py or another *.py file" nonsense. IIRC the
> decision to make __init__.py mandatory faced opposition too, since
> people were already doing packages with just directories (which is
> quite clean and elegant, and that's also how it was in Java), but I
> added it after seeing a few newbies tear out their hair.

OK. After due consideration, I'm happy to accept the change. (Call
that +0, it doesn't bother me much personally either way).

Although reading the above paragraph, I get the impression that you
are saying that __init__.py was originally added to help newbies, and
yet you are now saying the exact opposite. I'll leave you to resolve
that particular contradiction, though...

FWIW, I still have every confidence in your judgement about features.
However, I'd have to say that your timing sucks :-) Your initial
message read to me as "Quick! I'm about to get lynched here - can I
have the OK to shove this change in before a2 goes out?" (OK, 2.5
isn't feature frozen until a3, so maybe you only meant a3, but you
clearly wanted a quick response). So it's hard to expect anything
other than immediate knee-jerk responses. And those are usually driven
by personal experience (implying less consideration of newbie mistakes
from this type of audience) and unfocused fear of breakage.

Paul.


More information about the Python-Dev mailing list