At 09:32 PM 10/5/2010 -0400, Barry Warsaw wrote:
It probably would be better to only blow away the original egg when a
--reinstall option were given.  This might change current semantics too much,
so a --keep option would probably be in order.

My worry here is that this breaks the invariant that .egg files and .egg directories are identical/interchangeable. I'm not sure whether there's anything in the ecosystem that depends on that (besides perhaps the --always-copy flag to easy_install, which I'd have to check to see if it depends on that).


For zip'd eggs, you might be right.  For egg directories, it's not necessary.
Everything is sharable, and when not (i.e. the .so's) they are build-flag
discriminated.  I'd like to share as much as possible, but I'm open to any
suggestions.

Given that platform string discrimination has been battle-hardened by many years of deployment, my personal inclination is to suggest that approach.

The relevant functions are:

* pkg_resources.get_build_platform() -- returns the "minimum" platform string that should be used for eggs built by this interpreter

* pkg_resources.get_supported_platform() -- returns the platform string that represents the "maximum" platform supported by this interpreter

* pkg_resources.compatible_platforms(provided, required) -- Can code for the `provided` platform run on the `required` platform?

In practical terms, though, you could probably just change distutils.util.get_platform() (or whatever it's called in Py3) to add the debug and width flags to the platform string. The get_*_platform() functions are based on that, and the default compatibility check is just string equality.
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to