On Mon, Feb 23, 2009 at 09:53:17PM -0500, P.J. Eby wrote:
At 01:50 AM 2/24/2009 +0100, Tarek Ziadé wrote:
PEP, because as far as I can see, the namespace package boilerplate in setuptools is using pkgutil.extend_path which fixes __path__ variables on the fly. So I can't think of a case where a static __init__.py file will be shared, thus removed.
When a distutils package does it. I'm not positive, but if 'pip' supports namespace packages without using .pth files, then it has to use a shared __init__ also.
And in the long run, easy_install will do this too.
So, the uninstallation code should simply not remove file(s) that are referenced by more than one manifest in the target directory -- a relatively simple, future-proof safeguard, that doesn't require any specific knowledge of "namespace packages" per se.
But it does require that the uninstall reads all *.egg-info/RECORD files in a site directory when uninstalling. That's slow, but I guess that's fair enough. Regards Floris -- Debian GNU/Linux -- The Power of Freedom www.debian.org | www.gnu.org | www.kernel.org