Hmm, ya. I'm not too happy with what the metaclass is doing, just not sure on other ways to have the defaults inherited. An alternative would be to have config fields be class level variables initialised with optional defaults (like we do in vumi). Would be happy to make that change, but I think it might make more sense for that change to come once diamondash and vumi are using some common config component.

Also, I'm up for alternatives if you have anything in mind.