示例#1
0
def test_pop():
    set1 = OrderedSet('ab')
    elem = set1.pop()

    assert elem == 'b'
    elem = set1.pop()

    assert elem == 'a'

    pytest.raises(KeyError, set1.pop)
示例#2
0
def test_pop():
    set1 = OrderedSet('ab')
    elem = set1.pop()

    assert elem == 'b'
    elem = set1.pop()

    assert elem == 'a'

    pytest.raises(KeyError, set1.pop)
示例#3
0
def Pyro4bot_Loader(clss, **kwargs):
    """ Decorator for load Json options in Pyro4bot objects
        init superclass control
    """
    original_init = clss.__init__
    supes = OrderedSet(clss.__mro__[::-1])
    supes.pop()

    def init(self):
        for k, v in kwargs.items():
            setattr(self, k, v)
        for x in supes:
            try:
                x.__init__(x)
            except:
                pass
        original_init(self)

    clss.__init__ = init
    return clss
示例#4
0
class OrderedSetQueue(Queue):
    """Unique queue.

    Elements cannot be repeated, so there's no need to traverse it to check.
    LIFO ordered and thread-safe.
    """
    def _init(self, maxsize):
        self.queue = OrderedSet()

    def _put(self, item):
        self.queue.add(item)

    def _get(self):
        return self.queue.pop()