commit 656ad9be65ff281786926dfd5b4e8350f414aa3e
Author: Michael R. Crusoe <michael.crusoe@gmail.com>
Date:   Tue Jan 23 14:59:04 2024 +0100
Subject: remove use of distutils by copying in strtobool()
Forwarded: https://github.com/DataBiosphere/toil/pull/4765
    
    Copied code is MIT licensed
    
    https://github.com/pypa/distutils/blob/fb5c5704962cd3f40c69955437da9a88f4b28567/distutils/util.py#L340
    https://github.com/pypa/distutils/blob/fb5c5704962cd3f40c69955437da9a88f4b28567/LICENSE

diff --git a/src/toil/lib/conversions.py b/src/toil/lib/conversions.py
index 2a8d5a848..9e896b65d 100644
--- a/src/toil/lib/conversions.py
+++ b/src/toil/lib/conversions.py
@@ -128,3 +128,19 @@ def hms_duration_to_seconds(hms: str) -> float:
     seconds += float(vals_to_convert[2]) 
 
     return seconds
+
+
+def strtobool(val):
+    """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}".format(val))
diff --git a/src/toil/options/common.py b/src/toil/options/common.py
index 47d0ab763..d2003ab06 100644
--- a/src/toil/options/common.py
+++ b/src/toil/options/common.py
@@ -2,13 +2,12 @@ import os
 from argparse import ArgumentParser, Action, _AppendAction
 from typing import Any, Optional, Union, Type, Callable, List, Dict, TYPE_CHECKING
 
-from distutils.util import strtobool
 from configargparse import SUPPRESS
 import logging
 
 from ruamel.yaml import YAML
 
-from toil.lib.conversions import bytes2human, human2bytes
+from toil.lib.conversions import bytes2human, human2bytes, strtobool
 
 from toil.batchSystems.options import add_all_batchsystem_options
 from toil.provisioners import parse_node_types
diff --git a/src/toil/utils/toilDebugFile.py b/src/toil/utils/toilDebugFile.py
index 3ce5052ba..b8abcea4b 100644
--- a/src/toil/utils/toilDebugFile.py
+++ b/src/toil/utils/toilDebugFile.py
@@ -17,11 +17,11 @@ import logging
 import os.path
 import sys
 from typing import Optional
-from distutils.util import strtobool
 
 from toil.common import Config, Toil, parser_with_common_options
 from toil.jobStores.fileJobStore import FileJobStore
 from toil.lib.resources import glob
+from toil.lib.conversions import strtobool
 from toil.statsAndLogging import set_logging_from_options
 
 logger = logging.getLogger(__name__)
