jerith/landinggear


Wheels for aeroplanes: a tool to extract packages from the pip cache.

License: MIT

Language: Python


landinggear

landinggear was born out of the complaints of some friends who travel a lot and like to write software while on aeroplanes. Its purpose is to liberate wheels from the depths of the pip cache so they can be installed without an internet connection (while flying over the middle of the Atlantic, for example).

usage

Use landinggear path/to/wheelhouse to populate your wheelhouse from your pip cache. Then use pip install --no-index -f path/to/wheelhouse mypackage to install packages.

how it works

Since version 7.0, pip always installs packages from wheels, building them from source packages if necessary. All downloads are cached in the HTTP cache and any wheels pip builds itself are cached in the wheel cache. landinggear looks for wheels in both of these caches.

The wheel cache is a directory tree containing wheel files inside source-hash named directories. These are liberated by walking the tree to find them and then symlinking (or copying) them.

The HTTP cache is also a directory tree, but it contains serialized HTTP responses with opaque names. landinggear deserializes and inspects these, looking for zipfiles containing wheel metadata. Liberation involves extracting the deserialized HTTP response into a new file with the filename carefully reconstructed from the metadata.

caveats

pip doesn't really have a stable internal API, so it's possible that some of the trickery landinggear relies on will stop working with the next release. I've tried to stick to major things that are unlikely to change, however.

TODO

Figure out how to write some more useful tests.

Project Statistics

Sourcerank 3
Repository Size 160 KB
Stars 1
Forks 0
Watchers 1
Open issues 0
Dependencies 0
Contributors 1
Tags 2
Created
Last updated
Last pushed

Top Contributors See all

Jeremy Thurgood

Packages Referencing this Repo

landinggear
Wheels for aeroplanes: a tool to extract packages from the pip cache.
Latest release 0.0.2 - Updated - 1 stars

Recent Tags See all

landinggear-0.0.2 October 06, 2015
landinggear-0.0.1 October 06, 2015

Something wrong with this page? Make a suggestion

Last synced: 2017-07-12 10:37:33 UTC

Login to resync this repository