It seems a bitunnatural to me to have an error thrown if default is None. This is not how a dict get method or the ConfigParser is working. For me an error should be returned, if default is left blank and nothing is found anywhere, not if it is None. If None, it should return None. Makes sense?