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 textwrap
import warnings
from distutils.util import strtobool
from functools import partial
from optparse import SUPPRESS_HELP, Option, OptionGroup
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.target_python import TargetPython
from pip._internal.utils.hashes import STRONG_HASHES
from pip._internal.utils.misc import strtobool
from pip._internal.utils.typing import MYPY_CHECK_RUNNING
if MYPY_CHECK_RUNNING:

View File

@ -8,13 +8,12 @@ import optparse
import shutil
import sys
import textwrap
from distutils.util import strtobool
from pip._vendor.contextlib2 import suppress
from pip._internal.cli.status_codes import UNKNOWN_ERROR
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__)

View File

@ -244,6 +244,23 @@ def ask_password(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):
# type: (float) -> str
if bytes > 1000 * 1000: