| Viewing file:  freeze.py (2.88 KB)      -rw-r--r-- Select action/file-type:
 
  (+) |  (+) |  (+) | Code (+) | Session (+) |  (+) | SDB (+) |  (+) |  (+) |  (+) |  (+) |  (+) | 
 
import sysfrom optparse import Values
 from typing import List
 
 from pip._internal.cli import cmdoptions
 from pip._internal.cli.base_command import Command
 from pip._internal.cli.status_codes import SUCCESS
 from pip._internal.operations.freeze import freeze
 from pip._internal.utils.compat import stdlib_pkgs
 
 DEV_PKGS = {"pip", "setuptools", "distribute", "wheel"}
 
 
 class FreezeCommand(Command):
 """
 Output installed packages in requirements format.
 
 packages are listed in a case-insensitive sorted order.
 """
 
 usage = """
 %prog [options]"""
 log_streams = ("ext://sys.stderr", "ext://sys.stderr")
 
 def add_options(self) -> None:
 self.cmd_opts.add_option(
 "-r",
 "--requirement",
 dest="requirements",
 action="append",
 default=[],
 metavar="file",
 help=(
 "Use the order in the given requirements file and its "
 "comments when generating output. This option can be "
 "used multiple times."
 ),
 )
 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.",
 )
 self.cmd_opts.add_option(cmdoptions.list_path())
 self.cmd_opts.add_option(
 "--all",
 dest="freeze_all",
 action="store_true",
 help=(
 "Do not skip these packages in the output:"
 " {}".format(", ".join(DEV_PKGS))
 ),
 )
 self.cmd_opts.add_option(
 "--exclude-editable",
 dest="exclude_editable",
 action="store_true",
 help="Exclude editable package from output.",
 )
 self.cmd_opts.add_option(cmdoptions.list_exclude())
 
 self.parser.insert_option_group(0, self.cmd_opts)
 
 def run(self, options: Values, args: List[str]) -> int:
 skip = set(stdlib_pkgs)
 if not options.freeze_all:
 skip.update(DEV_PKGS)
 
 if options.excludes:
 skip.update(options.excludes)
 
 cmdoptions.check_list_path_option(options)
 
 for line in freeze(
 requirement=options.requirements,
 local_only=options.local,
 user_only=options.user,
 paths=options.path,
 isolated=options.isolated_mode,
 skip=skip,
 exclude_editable=options.exclude_editable,
 ):
 sys.stdout.write(line + "\n")
 return SUCCESS
 
 |