Source code for graphid.util.util_kw
[docs]
class KWSpec(object):
"""
Safer keyword arguments with keyword specifications.
"""
def __init__(kwspec, spec):
kwspec.spec = spec
kwspec.spec_set = set(spec)
def __call__(kwspec, **kwargs):
kw = kwspec.spec.copy()
unknown_keys = set(kw).difference(kwspec.spec_set)
if unknown_keys:
raise KeyError('Unknown keys: {}'.format(unknown_keys))
kw.update(kwargs)
return kw