From 0d04db726ce996f79197fb37a4900cec5c32af00 Mon Sep 17 00:00:00 2001 From: Rodrigo Cristiano Ferreira Vieira Date: Wed, 22 Dec 2021 15:52:12 -0300 Subject: [PATCH] Implement strtobool over distutils strtobool (#372) * Implement strtobool over distutils strtobool * refactor: Pep8 recommendations --- bpytop.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/bpytop.py b/bpytop.py index 55c99ad..3c66015 100755 --- a/bpytop.py +++ b/bpytop.py @@ -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() + 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 -----------------------------------------------------------> class Config: