"""Some small tools that can be used in kvcd modules
"""
import yaml
import functools
import functools
import threading
[docs]def str2bool(v:str):
"""Transform a string to a boolean value.
Args:
v (str): String value to convert
Returns:
bool: True if v is 'True', False otherwise.
"""
return bool(yaml.safe_load(v))
[docs]def lowercase_first_string_letter(v:str):
"""Transform a string to lowercase first letter.
Args:
v (str): String value to convert
Returns:
str: Lowercase first letter of v
"""
return v[0].lower() + v[1:]
[docs]def setInterval(sec: int):
"""Time-interval based decorator
usage: @setInterval(sec=3)
"""
def decorator(func):
@functools.wraps(func)
def wrapper(*argv, **kw):
func(*argv, **kw)
t = threading.Timer(sec, wrapper, argv, kw)
t.start()
return wrapper
return decorator