[Distutils] PEP 376, Uninstallation and interoperability

Vinay Sajip vinay_sajip at yahoo.co.uk
Tue Feb 19 18:02:00 CET 2013


Eric V. Smith <eric <at> trueblade.com> writes:

> Speaking of namespace packages, 2 points:
> 
> 1. When deleting, you must either be aware of namespace packages and/or
> make sure to not delete source or .py[co] files that you did not
> install. One distribution could install foo.bar, and another then
> install foo.baz. If you install the first one, you cannot just remove
> foo. I hope this is obvious, but I'll say it here because it's a
> behavior unique to namespace packages, when it comes to python files (as
> opposed to bin, etc. directories).

That's clear enough. The worry is not so much about deleting files you didn't
install (any decent tool wouldn't do that - at least, not without warning the
user and asking for confirmation). My concern is more about not warning the
user when it makes sense not to.

I just haven't got around to adding namespace packages to the shared location
stuff in distlib, but it'll be there soon.

> 2. Does the metadata need to contain information about namespace
> packages? It's settable in distribute/setuptools' setup.py. I'm not sure
> if the need for it has been obviated by PEP 420 or not. And I'm also not
> sure if metadata is needed for pre-PEP 420 namespace packages, and if
> so, if we want to support them.

We probably do want to support them - at least, distlib is aiming to remain
2.x/3.x compatible and to ease migration from 2.x, so you need to consider
pre-PEP 420 namespace packages too. Easing migration means that we shouldn't
lose any metadata which setuptools provides (such as namespace package
declaration in metadata).

Regards,

Vinay Sajip



More information about the Distutils-SIG mailing list