Kw_assign Type Checking
Type checking can be done by adding types to kw_assign() method.
Type checking ensures the type of **kwargs values that are assigned to attributes of current instance of class.
from kwhelp import KwArg
def speed_msg(**kwargs) -> str:
kw = KwArg(**kwargs)
kw.kw_assign(key="speed", require=True, types=[int, float])
if kw.speed > 100:
msg = f"Speed of '{kw.speed}' is fast. Caution recommended."
elif kw.speed < -40:
msg = f"Reverse speed of '{kw.speed}' is fast. Caution recommended."
elif kw.speed < 0:
msg = f"Reverse speed of '{kw.speed}'. Normal operations."
else:
msg = f"speed of '{kw.speed}'. Normal operations."
return msg
speed_msg float value.
>>> result = speed_msg(speed = 35.8)
>>> print(result)
speed of '35.8'. Normal operations.
speed_msg float fast value.
>>> result = speed_msg(speed = 227.59)
>>> print(result)
Speed of '227.59' is fast. Caution recommended.
speed_msg int value.
>>> result = speed_msg(speed = -43)
>>> print(result)
Reverse speed of '-43' is fast. Caution recommended.
speed_msg no params.
>>> result = speed_msg()
ValueError: KwArg arg 'speed' is required
speed_msg wrong type.
>>> result = speed_msg(speed = "Fast")
TypeError: KwArg arg 'speed' is expected to be of '<class 'float'> | <class 'int'>' but got 'str'