Wagon

 

 

Nir Cohen @ Gigaspaces

nir0s@github

@thinkops

Wheel Format

  • PEP427 (1.0)

  • PEP491 (v1.9)

Flask-0.10.1-py2-none-any.whl

MarkupSafe-0.23-cp27-none-linux_x86_64.whl

What if you want to package with dependencies?

What is wagon?

  • Creates and installs wheel based archives including dependencies.

  • Can install "offline".

  • Provides metadata to allow making installation decisions.

pip install wagon

Create

wagon create -s flask==0.10.1

Creating archive for flask==0.10.1...
Package name: flask
Package version: 0.10.1
Downloading Wheels for flask==0.10.1...
Creating archive: 
./flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz...
Process complete!

You can also...

  • Create from GitHub URL

  • Create from local path

  • Exclude packages

  • Process req files

  • Create zip/tar.gz

  • Pass arbitrary pip args

Install

wagon install -s flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz
INFO - Installing flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz
INFO - Installing flask...

pip freeze

Flask==0.10.1
itsdangerous==0.24
Jinja2==2.8
MarkupSafe==0.23
Werkzeug==0.10.4
wheel==0.24.0

You can also...

  • Install from a URL

  • Install to a virtualenv

  • Upgrade

  • Pass arbitrary pip args.

Validate

wagon validate -s flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz
INFO - Validating flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz
INFO - Installing flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz
INFO - Installing flask...
INFO - Validation Passed! 

Metadata

wagon showmeta -s flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz
{
    "archive_name": "flask-0.10.1-py27-none-linux_x86_64-Ubuntu-trusty.tar.gz", 
    "build_server_os_properties": {
        "distribution": "ubuntu", 
        "distribution_release": "trusty", 
        "distribution_version": "14.04"
    }, 
    "excluded_wheels": [], 
    "package_name": "flask", 
    "package_source": "flask==0.10.1", 
    "package_version": "0.10.1", 
    "supported_platform": "linux_x86_64", 
    "supported_python_versions": [
        "py27"
    ], 
    "wheels": [
        "Flask-0.10.1-py2-none-any.whl", 
        "Werkzeug-0.10.4-py2.py3-none-any.whl", 
        "MarkupSafe-0.23-cp27-none-linux_x86_64.whl", 
        "Jinja2-2.8-py2.py3-none-any.whl", 
        "itsdangerous-0.24-py2-none-any.whl"
    ]
}

Platforms

  • Currently supports Python 2.6.x and 2.7.x.

  • Supports linux/win/osx.

Naming

  • Tries to follow PEP427

tox-2.0.0-py2.py3-none-any.whl
-> 
tox-2.0.0-py2.py3-none-any-none-none.wgn

Linux Caveats

(stupid ABI)

Project Page

 

https://github.com/cloudify-cosmo/wagon

Wagon

By Nir Cohen