Refactor cast function in utils.py (#1340)

- less indentation, more readable code
- early return
This commit is contained in:
Dr.Blank 2024-02-04 14:22:37 -05:00 committed by GitHub
parent d9539a357d
commit ba384e0be5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -144,22 +144,21 @@ def cast(func, value):
func (func): Callback function to used cast to type (int, bool, float). func (func): Callback function to used cast to type (int, bool, float).
value (any): value to be cast and returned. value (any): value to be cast and returned.
""" """
if value is not None: if value is None:
if func == bool: return value
if value in (1, True, "1", "true"): if func == bool:
return True if value in (1, True, "1", "true"):
elif value in (0, False, "0", "false"): return True
return False if value in (0, False, "0", "false"):
else: return False
raise ValueError(value) raise ValueError(value)
elif func in (int, float): if func in (int, float):
try: try:
return func(value) return func(value)
except ValueError: except ValueError:
return float('nan') return float('nan')
return func(value) return func(value)
return value
def joinArgs(args): def joinArgs(args):