Skip to main content

Humpty - Convert Python wheels to eggs

Latest Version build status

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

Authors

Jeff Dairiki

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.

Metadata

Release files for humpty 0.2.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for humpty 0.2.1
File Size Uploaded Provenance
humpty-0.2.1.tar.gz 21.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for humpty 0.2.1
File Interpreter ABI Platform
humpty-0.2.1-py2.py3-none-any.whl Python 2, Python 3 none any Details

Total release size: 35.2 kB

Release files / humpty-0.2.1.tar.gz

Download URL humpty-0.2.1.tar.gz
Size 21.9 kB
Tags Source
SHA-256 checksum
How to use checksums
1bd4569a64eae24f8ca3adf100c492798e65644ebd74a026250cf88537b3c7c6
BLAKE2b-256 checksum
How to use checksums
f35e794586d41cee2dfef374ea6af1222084723707f855b6aa8473e961c41001
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release files / humpty-0.2.1-py2.py3-none-any.whl

Download URL humpty-0.2.1-py2.py3-none-any.whl
Size 13.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
5ac3b93098a0dba922ea7225c088c5a827c744353b7fc16dcb87a71eda2f8a06
BLAKE2b-256 checksum
How to use checksums
eb976cc962e880e8a1da0b316f9c9b2415540fdc40cf4f5f8ec446751f182e52
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Security for humpty 0.2.1

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page