MCPcopy
hub / github.com/celery/celery / Messagebuffer

Class Messagebuffer

celery/utils/collections.py:692–759  ·  view source on GitHub ↗

A buffer of pending messages.

Source from the content-addressed store, hash-verified

690
691
692class Messagebuffer(Evictable):
693 """A buffer of pending messages."""
694
695 Empty = Empty
696
697 def __init__(self, maxsize, iterable=None, deque=deque):
698 # type: (int, Iterable, Any) -> None
699 self.maxsize = maxsize
700 self.data = deque(iterable or [])
701 self._append = self.data.append
702 self._pop = self.data.popleft
703 self._len = self.data.__len__
704 self._extend = self.data.extend
705
706 def put(self, item):
707 # type: (Any) -> None
708 self._append(item)
709 self.maxsize and self._evict()
710
711 def extend(self, it):
712 # type: (Iterable) -> None
713 self._extend(it)
714 self.maxsize and self._evict()
715
716 def take(self, *default):
717 # type: (*Any) -> Any
718 try:
719 return self._pop()
720 except IndexError:
721 if default:
722 return default[0]
723 raise self.Empty()
724
725 def _pop_to_evict(self):
726 # type: () -> None
727 return self.take()
728
729 def __repr__(self):
730 # type: () -> str
731 return f'<{type(self).__name__}: {len(self)}/{self.maxsize}>'
732
733 def __iter__(self):
734 # type: () -> Iterable
735 while 1:
736 try:
737 yield self._pop()
738 except IndexError:
739 break
740
741 def __len__(self):
742 # type: () -> int
743 return self._len()
744
745 def __contains__(self, item) -> bool:
746 return item in self.data
747
748 def __reversed__(self):
749 # type: () -> Iterable

Callers 13

test_append_limitedMethod · 0.90
test_append_unlimitedMethod · 0.90
test_extend_limitedMethod · 0.90
test_extend_unlimitedMethod · 0.90
test_reprMethod · 0.90
test_iterMethod · 0.90
test_containsMethod · 0.90
test_reversedMethod · 0.90
test_getitemMethod · 0.90

Calls

no outgoing calls

Tested by 13

test_append_limitedMethod · 0.72
test_append_unlimitedMethod · 0.72
test_extend_limitedMethod · 0.72
test_extend_unlimitedMethod · 0.72
test_reprMethod · 0.72
test_iterMethod · 0.72
test_containsMethod · 0.72
test_reversedMethod · 0.72
test_getitemMethod · 0.72