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 _thread import interrupt_main
from collections import defaultdict from collections import defaultdict
from select import select from select import select
from distutils.util import strtobool
from string import Template from string import Template
from math import ceil, floor from math import ceil, floor
from random import randint from random import randint
@ -404,6 +403,27 @@ def timeit_decorator(func):
return out return out
return timed 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 -----------------------------------------------------------> #? Set up config class and load config ----------------------------------------------------------->
class Config: class Config: