DefaultArgs Usage

DefaultArgs decorator that defines default values for **kwargs of a function.

from kwhelp.decorator import DefaultArgs

@DefaultArgs(speed=45, limit=60, name="John")
def speed_msg(**kwargs) -> str:
    name = kwargs.get('name')
    limit = kwargs.get('limit')
    speed = kwargs.get('speed')
    if limit > speed:
        msg = f"Current speed is '{speed}'. {name} may go faster as the limit is '{limit}'."
    elif speed == limit:
        msg = f"Current speed is '{speed}'. {name} are at the limit."
    else:
        msg = f"Please slow down limit is '{limit}' and current speed is '{speed}'."
    if 'hours' in kwargs:
        msg = msg + f" Current driving hours is '{kwargs['hours']}'."
    return msg
>>> result = speed_msg()
>>> print(result)
Current speed is '45'. John may go faster as the limit is '60'.
>>> result = speed_msg(name="Sue", speed=47)
>>> print(result)
Current speed is '47'. Sue may go faster as the limit is '60'.