Kw_assign Require Arg

Values can be required by adding require args to kw_assign() method.

In the following first and second args are required

from kwhelp import KwArg

def my_method(**kwargs) -> str:
    kw = KwArg(**kwargs)
    # assign args
    kw.kw_assign(key='first', require=True, types=[int])
    kw.kw_assign(key='second', require=True, types=[int])
    kw.kw_assign(key='msg', types=[str], default='Result:')
    kw.kw_assign(key='end', types=[str])
    _result = kw.first + kw.second
    if kw.is_attribute_exist('end'):
        return_msg = f'{kw.msg} {_result}{kw.end}'
    else:
        return_msg = f'{kw.msg} {_result}'
    return return_msg

first and second are required. msg is not required and has a default value. end is not required.

>>> result = my_method(first=10, second=22)
>>> print(result)
Result: 32

Output when optional args end and msg are included.

>>> result = my_method(first=10, second=22, end="!", msg="Tally")
>>> print(result)
Tally 32!

Method will raise an error as msg must be of type str as defined by types

>>> result = my_method(first=10)
ValueError: KwArg arg 'second' is required