Assign Default Value
Default value can be assigned by adding default args to assign() method.
from kwhelp import KwargsHelper
import kwhelp.rules as rules
class MyClass:
def __init__(self, **kwargs):
self._duration = "Long"
kw = KwargsHelper(self, {**kwargs})
kw.assign(key="speed", require=True, rules_all=[rules.RuleIntPositive])
kw.assign(key="unit", default="MPH", rules_all=[rules.RuleStrNotNullOrEmpty])
kw.assign(key="duration", default=self._duration,
rules=[rules.RuleStrNotNullOrEmpty])
>>> myclass = MyClass(speed=123, unit="KPH")
>>> print(myclass._speed)
123
>>> print(myclass._unit)
KPH
>>> print(myclass._duration)
Long
>>> myclass = MyClass(speed=123, duration="Short")
>>> print(myclass._speed)
123
>>> print(myclass._unit)
MPH
>>> print(myclass._duration)
Short