itsjohncs/superzippy

Way to install dependencies with options.

itsjohncs opened this issue · 2 comments

PyYAML in particular can be given --without-libyaml which is very handy (particularly in the context of superzippy's need to have pure Python dependencies).

I propose that packages (notice the plural) to install are specified using a flag (-p for example) and whatever arguments are provided are passed directly to pip. The default output name will be the first argument of the last package given to install.

Here's an example with the new interface:

$ superzippy -p "PyYAML==3.1.0 --without-libyaml" -p superzippy superzippy.packaging:run

I thought of a more intuitive interface. Rather than using flags to specify the packages to install, we'll make superzippy variadic.

$ superzippy "PyYAML==3.1.0 --without-libyaml" superzippy superzippy.packaging:run

For the record, the correct way to pass the --without-libyaml flag to PyYAML is to do

$ superzippy -o superzippy "PyYAML --global-option='--without-libyaml'" superzippy superzippy.packaging:run

Also note that superzippy doesn't actually require PyYAML (and ironically has no external dependencies).