view roundup/cgi/PageTemplates/MultiMapping.py @ 5132:0142b4fb5a2d

issue2550648 - partial fix for problem in this issue. Ezio Melotti reported that the expression editor allowed the user to generate an expression using retired values. To align the expression editor with the simple dropdown search item, retired values are now removed from the expression editor. Do we really want this though? Supposed a keyword is retired and I want to search for an issue with that retired keyword? Do we have a best policy document that says to remove retired keywords from all places it could possibly be used? It could be argued that the simple search dropdown is wrong and should allow selecting retired values.
author John Rouillard <rouilj@ieee.org>
date Fri, 08 Jul 2016 19:31:02 -0400
parents 81cb4860ca75
children 35ea9b1efc14
line wrap: on
line source

import operator

class MultiMapping:
    def __init__(self, *stores):
        self.stores = list(stores)
    def __getitem__(self, key):
        for store in self.stores:
            if store.has_key(key):
                return store[key]
        raise KeyError, key
    _marker = []
    def get(self, key, default=_marker):
        for store in self.stores:
            if store.has_key(key):
                return store[key]
        if default is self._marker:
            raise KeyError, key
        return default
    def __len__(self):
        return reduce(operator.add, [len(x) for x in self.stores], 0)
    def push(self, store):
        self.stores.append(store)
    def pop(self):
        return self.stores.pop()
    def items(self):
        l = []
        for store in self.stores:
            l = l + store.items()
        return l

Roundup Issue Tracker: http://roundup-tracker.org/