Use our own copy of strtobool, rather than the one from distutils

This commit is contained in:
Paul Moore 2021-01-20 15:42:29 +00:00
parent 8de9edf401
commit 6739f56351
3 changed files with 19 additions and 3 deletions

View File

@ -13,7 +13,6 @@ pass on state. To be consistent, all options will follow this design.
import os import os
import textwrap import textwrap
import warnings import warnings
from distutils.util import strtobool
from functools import partial from functools import partial
from optparse import SUPPRESS_HELP, Option, OptionGroup from optparse import SUPPRESS_HELP, Option, OptionGroup
from textwrap import dedent from textwrap import dedent
@ -27,6 +26,7 @@ from pip._internal.models.format_control import FormatControl
from pip._internal.models.index import PyPI from pip._internal.models.index import PyPI
from pip._internal.models.target_python import TargetPython from pip._internal.models.target_python import TargetPython
from pip._internal.utils.hashes import STRONG_HASHES from pip._internal.utils.hashes import STRONG_HASHES
from pip._internal.utils.misc import strtobool
from pip._internal.utils.typing import MYPY_CHECK_RUNNING from pip._internal.utils.typing import MYPY_CHECK_RUNNING
if MYPY_CHECK_RUNNING: if MYPY_CHECK_RUNNING:

View File

@ -8,13 +8,12 @@ import optparse
import shutil import shutil
import sys import sys
import textwrap import textwrap
from distutils.util import strtobool
from pip._vendor.contextlib2 import suppress from pip._vendor.contextlib2 import suppress
from pip._internal.cli.status_codes import UNKNOWN_ERROR from pip._internal.cli.status_codes import UNKNOWN_ERROR
from pip._internal.configuration import Configuration, ConfigurationError from pip._internal.configuration import Configuration, ConfigurationError
from pip._internal.utils.misc import redact_auth_from_url from pip._internal.utils.misc import redact_auth_from_url, strtobool
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)

View File

@ -244,6 +244,23 @@ def ask_password(message):
return getpass.getpass(message) return getpass.getpass(message)
def strtobool(val):
# type: (str) -> int
"""Convert a string representation of truth to true (1) or false (0).
True values are 'y', 'yes', 't', 'true', 'on', and '1'; false values
are 'n', 'no', 'f', 'false', 'off', and '0'. Raises ValueError if
'val' is anything else.
"""
val = val.lower()
if val in ('y', 'yes', 't', 'true', 'on', '1'):
return 1
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
return 0
else:
raise ValueError("invalid truth value %r" % (val,))
def format_size(bytes): def format_size(bytes):
# type: (float) -> str # type: (float) -> str
if bytes > 1000 * 1000: if bytes > 1000 * 1000: