mirror of
https://github.com/pypa/pip
synced 2023-12-13 21:30:23 +01:00
50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
from pip.locations import build_prefix, src_prefix
|
|
from pip.util import display_path, backup_dir
|
|
from pip.log import logger
|
|
from pip.exceptions import InstallationError
|
|
from pip.commands.install import InstallCommand
|
|
|
|
|
|
class BundleCommand(InstallCommand):
|
|
"""Create pybundles (archives containing multiple packages)."""
|
|
name = 'bundle'
|
|
usage = """
|
|
%prog [options] <bundle name>.pybundle <package>..."""
|
|
summary = 'DEPRECATED. Create pybundles.'
|
|
bundle = True
|
|
|
|
def __init__(self, *args, **kw):
|
|
super(BundleCommand, self).__init__(*args, **kw)
|
|
# bundle uses different default source and build dirs
|
|
build_opt = self.parser.get_option("--build")
|
|
build_opt.default = backup_dir(build_prefix, '-bundle')
|
|
src_opt = self.parser.get_option("--src")
|
|
src_opt.default = backup_dir(src_prefix, '-bundle')
|
|
self.parser.set_defaults(**{
|
|
src_opt.dest: src_opt.default,
|
|
build_opt.dest: build_opt.default,
|
|
})
|
|
|
|
def run(self, options, args):
|
|
|
|
logger.deprecated(
|
|
'1.6',
|
|
"DEPRECATION: 'pip bundle' and support for installing from "
|
|
"*.pybundle files is deprecated. "
|
|
"See https://github.com/pypa/pip/pull/1046"
|
|
)
|
|
|
|
if not args:
|
|
raise InstallationError('You must give a bundle filename')
|
|
# We have to get everything when creating a bundle:
|
|
options.ignore_installed = True
|
|
logger.notify(
|
|
'Putting temporary build files in %s and source/develop files in '
|
|
'%s' % (
|
|
display_path(options.build_dir),
|
|
display_path(options.src_dir)
|
|
)
|
|
)
|
|
self.bundle_filename = args.pop(0)
|
|
requirement_set = super(BundleCommand, self).run(options, args)
|
|
return requirement_set
|