An object system for building declarative configurations in Python

A class that has rich(ish) keyword-parameter handling, including explicit handling of required parameters, declaration of parameter dependencies and basic type-checking.

Keyword parameter processing will be performed for any method on the Deconfigurable that is decorated with the @parameter decorator. Each of these decorated methods performs the processing specific to that parameter. The returned value is then assigned on the appropriately named attribute.

>>> @parameter('foo')
>>> def handle_foo(self, value):
...    return value