A tool to convert python wheels to eggs
Project description
For when you need an .egg but all you have is a .whl.
Description
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.)
Development takes place on github. The package is installable from PyPI
Obsolescence
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.
Synopsis
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
References
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
History
Release 0.2.1 (2017-12-18)
Compatibility
Drop support for python 3.3.
Packaging
Include tests in sdist.
Testing
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.
Changed Behavior
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.
Bugs Fixed
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)
Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file humpty-0.2.1.tar.gz
.
File metadata
- Download URL: humpty-0.2.1.tar.gz
- Upload date:
- Size: 21.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bd4569a64eae24f8ca3adf100c492798e65644ebd74a026250cf88537b3c7c6 |
|
MD5 | f6ac01df4068cdf8fcb589ee166cf5f4 |
|
BLAKE2b-256 | f35e794586d41cee2dfef374ea6af1222084723707f855b6aa8473e961c41001 |
File details
Details for the file humpty-0.2.1-py2.py3-none-any.whl
.
File metadata
- Download URL: humpty-0.2.1-py2.py3-none-any.whl
- Upload date:
- Size: 13.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ac3b93098a0dba922ea7225c088c5a827c744353b7fc16dcb87a71eda2f8a06 |
|
MD5 | b2a71297a2ffad79fa62216626158a23 |
|
BLAKE2b-256 | eb976cc962e880e8a1da0b316f9c9b2415540fdc40cf4f5f8ec446751f182e52 |