'Retrieves the real value after stripping the prefix string (if
present). If the prefix is present, pass the value through self.func
before returning, otherwise return the raw value.'

def __getitem__(self, key):

    if key.startswith(self.prefix):
        use_func = True
        key = key[len(self.prefix):]
    else:
        use_func = False
    value = super(DictWrapper, self).__getitem__(key)
    if use_func:
        return self.func(value)
    return value
