Implement strtobool over distutils strtobool (#372)

* Implement strtobool over distutils strtobool

* refactor: Pep8 recommendations
pull/375/head
Rodrigo Cristiano Ferreira Vieira 2021-12-22 15:52:12 -03:00 committed by GitHub
parent eb50a02028
commit 0d04db726c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
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()
except AttributeError:
raise ValueError(f"invalid type {type(val)} for truth value {val}")
if val in ('y', 'yes', 't', 'true', 'on', '1'):
return True
elif val in ('n', 'no', 'f', 'false', 'off', '0'):
return False
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: