[Distutils] PEP 439 and pip bootstrap updated

Brett Cannon brett at python.org
Thu Jul 11 16:47:56 CEST 2013


On Thu, Jul 11, 2013 at 10:29 AM, Daniel Holth <dholth at gmail.com> wrote:

> On Thu, Jul 11, 2013 at 9:33 AM, Paul Moore <p.f.moore at gmail.com> wrote:
> > On 11 July 2013 13:49, Brett Cannon <brett at python.org> wrote:
> >>
> >> The dead-simple, extremely elegant solution (starting in Python 3.4) is
> to
> >> make pip a namespace package in the stdlib with nothing more than a
> >> __main__.py file that installs pip; no checking if it's installed and
> then
> >> running it, etc, just blindly install pip. Then, if you install pip as a
> >> regular package, it takes precedence and what's in the stdlib is
> completely
> >> ignored (this helps with any possible staleness with the stdlib's
> bootstrap
> >> script vs. what's in pip, etc.). You don't even need to change the
> >> __main__.py in pip as it stands today since namespace packages only
> work if
> >> no regular package is found.
> >
> >
> > Wow - that is exceptionally cool. I had never realised namespace packages
> > would work like this.
>
> Not exceptionally cool ... and that's why the namespace_package form
> is popular, since the first package in a set of namespace packages
> that gets it wrong breaks everything.
>

I'm really not following that sentence. You are saying the idea is bad, but
is that in general or for this specific case? And you say it's popular
because people get it wrong which breaks everything?

And how can namespace packages be popular if they are new to Python 3.3
(the ability to execute them with -m is new in Python 3.4)? Are you talking
about pkgutil's extend_path hack because I'm talking about NamespaceLoader
in importlib?

I'm just not seeing the downside. We control the stdlib and pip, so we know
the expected interaction and we are purposefully using the override
mechanics so it's not going to get messed up by us if we consciously use it
(and obviously have tests for it).
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20130711/579fa165/attachment.html>


More information about the Distutils-SIG mailing list