Implement strtobool over distutils strtobool

pull/372/head
Rodrigo Cristiano 2021-12-22 13:29:09 -03:00
parent eb50a02028
commit e9ca00574e
1 changed files with 21 additions and 1 deletions

View File

@ -24,7 +24,6 @@ from datetime import timedelta
from _thread import interrupt_main
from collections import defaultdict
from select import select
from distutils.util import strtobool
from string import Template
from math import ceil, floor
from random import randint
@ -404,6 +403,27 @@ def timeit_decorator(func):
return out
return timed
#? Issue #364 ----------------------------------------------------------->
def strtobool(val: str) -> bool:
"""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.
"""
try:
val = val.lower()
if val in ('y', 'yes', 't', 'true', 'on', '1'):
return True
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
return False
except:
raise ValueError(f"invalid type {type(val)} for truth value {val}")
else:
raise ValueError(f"invalid truth value {val}")
#? Set up config class and load config ----------------------------------------------------------->
class Config: