1
# -*- coding: iso-8859-1 -*-
3
MoinMoin - dict access via various backends.
5
@copyright: 2009 DmitrijsMilajevs
6
@license: GPL, see COPYING for details
9
from MoinMoin.datastruct.backends import BaseDictsBackend, DictDoesNotExistError
12
class CompositeDicts(BaseDictsBackend):
14
Manage several dicts backends.
17
def __init__(self, request, *backends):
19
@param backends: list of dict backends which are used to get
20
access to the dict definitions.
22
super(CompositeDicts, self).__init__(request)
23
self._backends = backends
25
def __getitem__(self, dict_name):
27
Get a dict by its name. First match counts.
29
for backend in self._backends:
31
return backend[dict_name]
32
except DictDoesNotExistError:
34
raise DictDoesNotExistError(dict_name)
36
def __contains__(self, dict_name):
38
Check if a dict called dict_name is available in any of the backends.
40
for backend in self._backends:
41
if dict_name in backend:
46
return "<%s backends=%s>" % (self.__class__, self._backends)