|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- """Primary application entrypoint.
- """
- # The following comment should be removed at some point in the future.
- # mypy: disallow-untyped-defs=False
-
- from __future__ import absolute_import
-
- import locale
- import logging
- import os
- import sys
-
- from pip._internal.cli.autocompletion import autocomplete
- from pip._internal.cli.main_parser import parse_command
- from pip._internal.commands import create_command
- from pip._internal.exceptions import PipError
- from pip._internal.utils import deprecation
-
- logger = logging.getLogger(__name__)
-
-
- def main(args=None):
- if args is None:
- args = sys.argv[1:]
-
- # Configure our deprecation warnings to be sent through loggers
- deprecation.install_warning_logger()
-
- autocomplete()
-
- try:
- cmd_name, cmd_args = parse_command(args)
- except PipError as exc:
- sys.stderr.write("ERROR: %s" % exc)
- sys.stderr.write(os.linesep)
- sys.exit(1)
-
- # Needed for locale.getpreferredencoding(False) to work
- # in pip._internal.utils.encoding.auto_decode
- try:
- locale.setlocale(locale.LC_ALL, '')
- except locale.Error as e:
- # setlocale can apparently crash if locale are uninitialized
- logger.debug("Ignoring error %s when setting locale", e)
- command = create_command(cmd_name, isolated=("--isolated" in cmd_args))
-
- return command.main(cmd_args)
|