On Sun, Jul 1, 2012 at 4:50 PM, PJ Eby <pje@telecommunity.com> wrote:
On Sun, Jul 1, 2012 at 2:26 PM, Daniel Holth <dholth@gmail.com> wrote:
I'm convinced that data that the code really needs at runtime should continue to go right next to the .py files as usual. Time will tell as to the utility of .data. I think .data will make Debian maintainers happy.
The new setup command bdist_wheel does exactly the task of converting egg-info to dist-info. It just doesn't understand prebuilt eggs.
Well, if you do that conversion on the EGG-INFO directory of an .egg file, then you'll have a wheel. At least, if I understand your spec correctly. (Since .egg contains just the code and static files.) All you need to do is get the egg's platform info and Python version from its filename; everything else is in .egg-info. The full spec is here:
http://peak.telecommunity.com/DevCenter/EggFormats
But basically, it's just going to be just convert EGG-INFO to Projectname.dist-info. The actual layout of the rest of the zipfile is essentially unchanged.
Yes. You have to use Metadata 1.2 (list requirements with Requires-Dist:) and PKG-INFO has been renamed to METADATA by the distutils-sig for whatever reason. The WHEEL file lets an installer complain when the next version of the format is invented. Once it is installed into site-packages it is not a wheel anymore, it is just a PEP-compliant Python distribution.
(Heck, add .whl support to pkg_resources, and wheels will have all the advantages of eggs as well. Though, for that to work under 3.x some of the stub file stuff would have to be changed as well.)
The pkg_resources in the patched distribute this requires already understands the unpacked format. This would be a good small project.