A tool to convert python wheels to eggs
For when you need an .egg but all you have is a .whl.
Humpty is a command-line utility to convert Python binary wheel packages to eggs.
Currently, the tool is in a “works for me” state. (It is not guaranteed to work for you.)
Note that recent developments may have made this utility unnecessary. As of setuptools 38.2.0, easy_install support installing wheels as unzipped eggs. Also, zc.buildout, as of 2.10.0 takes advantage of this to support installation from wheels.
The humpty “man page”:
$ humpty --help Usage: humpty [OPTIONS] WHEELS... Convert wheels to eggs. Options: -d, --dist-dir DIR Build eggs into <dir>. Default is <cwd>/dist. --help Show this message and exit.
Suppose you need an egg of a distribution which has only been uploaded to PyPI as a wheel:
$ pip install --download . publicsuffixlist [...] Saved ./publicsuffixlist-0.2.8-py2.py3-none-any.whl Successfully downloaded publicsuffixlist $ humpty -dist-dir . publicsuffixlist-0.2.8-py2.py3-none-any.whl Converting publicsuffixlist-0.2.8-py2.py3-none-any.whl to publicsuffixlist-0.2.8-py2.6.egg $ easy_install publicsuffixlist-0.2.8-py2.7.egg
- PEP 427 - The Wheel Binary Package Format 1.0
- PEP 491 - The Wheel Binary Package Format 1.9
- PEP 241 - Metadata for Python Software Packages
- PEP 314 - Metadata for Python Software Packages v1.1
- PEP 345 - Metadata for Python Software Packages 1.2
- PEP 426 - Metadata for Python Software Packages 2.0
- PEP 459 - Standard Metadata Extensions for Python Software Packages
- Setuptools: The Internal Structure of Python Eggs
Release 0.2.1 (2017-12-18)
- Drop support for python 3.3.
- Include tests in sdist.
- Test with wheel version 0.18 (among others.)
- Increase test coverage
Release 0.2 (2017-11-08)
Python 2.6 is no longer supported. We now test under cpython 2.7 and cpython 3.3 through 3.6.
- The strict check for wheel binary compatibility with the current platform has been removed. Now a warning is printed in this case. When running under py35 or py36, distlib sometimes falsely reports that some wheels are not binary compatible. See distlib ticket #93.
- Fix EggInfo_Legacy.requires to work with recent versions of distlib. With distlib<=0.2.4, distlib.wheel.Wheel.metadata.run_requires is a list of strings, taken from lines of the RFC822 style metadata. With recent versions of distlib, run_requires is a list of dicts in the “JSON” format described in PEP 426. This addresses #1.
- Always create eggs with zip_safe=False. There currently seems to be no robust way to determine whether a package is zip_safe from its wheel. See #3 for further discussion. (Thank you to immerrr.)
- Fix parsing of markers in EggInfo_Legacy.requires. Apparently, as of distlib==0.2.6, distlib.markers.interpret no longer handles leading whitespace in the marker string well.
- Fix failing test test_humpty:TestScriptCopyer.test_copies_script. Apparently, distlib.markers.interpret==0.2.6 now just prepends the new hashbang line to the copied script, but does not remove the original hashbang.
Release 0.1 (2015-07-16)
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
|Filename, Size & Hash SHA256 Hash Help||File Type||Python Version||Upload Date|
(13.4 kB) Copy SHA256 Hash SHA256
|Wheel||py2.py3||Dec 18, 2017|
(21.9 kB) Copy SHA256 Hash SHA256
|Source||None||Dec 18, 2017|