openmedialibrary_platform_l.../lib/python3.4/site-packages/pip/commands/freeze.py

88 lines
2.8 KiB
Python
Raw Normal View History

2016-02-22 11:13:36 +00:00
from __future__ import absolute_import
import sys
import pip
2016-03-23 11:41:42 +00:00
from pip.compat import stdlib_pkgs
2016-02-22 11:13:36 +00:00
from pip.basecommand import Command
from pip.operations.freeze import freeze
from pip.wheel import WheelCache
2016-03-23 11:41:42 +00:00
DEV_PKGS = ('pip', 'setuptools', 'distribute', 'wheel')
2016-02-22 11:13:36 +00:00
class FreezeCommand(Command):
"""
Output installed packages in requirements format.
packages are listed in a case-insensitive sorted order.
"""
name = 'freeze'
usage = """
%prog [options]"""
summary = 'Output installed packages in requirements format.'
log_streams = ("ext://sys.stderr", "ext://sys.stderr")
def __init__(self, *args, **kw):
super(FreezeCommand, self).__init__(*args, **kw)
self.cmd_opts.add_option(
'-r', '--requirement',
2017-10-13 12:49:49 +00:00
dest='requirements',
action='append',
default=[],
2016-02-22 11:13:36 +00:00
metavar='file',
help="Use the order in the given requirements file and its "
2017-10-13 12:49:49 +00:00
"comments when generating output. This option can be "
"used multiple times.")
2016-02-22 11:13:36 +00:00
self.cmd_opts.add_option(
'-f', '--find-links',
dest='find_links',
action='append',
default=[],
metavar='URL',
help='URL for finding packages, which will be added to the '
'output.')
self.cmd_opts.add_option(
'-l', '--local',
dest='local',
action='store_true',
default=False,
help='If in a virtualenv that has global access, do not output '
'globally-installed packages.')
self.cmd_opts.add_option(
'--user',
dest='user',
action='store_true',
default=False,
help='Only output packages installed in user-site.')
2016-03-23 11:41:42 +00:00
self.cmd_opts.add_option(
'--all',
dest='freeze_all',
action='store_true',
help='Do not skip these packages in the output:'
' %s' % ', '.join(DEV_PKGS))
2016-02-22 11:13:36 +00:00
self.parser.insert_option_group(0, self.cmd_opts)
def run(self, options, args):
format_control = pip.index.FormatControl(set(), set())
wheel_cache = WheelCache(options.cache_dir, format_control)
2016-03-23 11:41:42 +00:00
skip = set(stdlib_pkgs)
if not options.freeze_all:
skip.update(DEV_PKGS)
2016-02-22 11:13:36 +00:00
freeze_kwargs = dict(
2017-10-13 12:49:49 +00:00
requirement=options.requirements,
2016-02-22 11:13:36 +00:00
find_links=options.find_links,
local_only=options.local,
user_only=options.user,
skip_regex=options.skip_requirements_regex,
isolated=options.isolated_mode,
2016-03-23 11:41:42 +00:00
wheel_cache=wheel_cache,
skip=skip)
2016-02-22 11:13:36 +00:00
for line in freeze(**freeze_kwargs):
sys.stdout.write(line + '\n')