Example #1
0
 def __init__(self, iterable=None):
     MutableSet.__init__(self)
     self.end = end = []
     end += [None, end, end] # sentinel node for doubly linked list
     self.map = WeakKeyDictionary() # key --> [key, prev, next]
     if iterable is not None:
         self |= iterable
Example #2
0
 def __init__(self, iterable=None):
     MutableSet.__init__(self)
     self.end = end = []
     end += [None, end, end]  # sentinel node for doubly linked list
     self.map = WeakKeyDictionary()  # key --> [key, prev, next]
     if iterable is not None:
         self |= iterable
Example #3
0
 def __init__(self, values=None):
     # type: (Any) -> None
     self.odict = ordereddict()
     MutableSet.__init__(self)
     if values is not None:
         self |= values  # type: ignore
Example #4
0
    def __repr__(self):
        return REPR_LIMITED_SET.format(
            self, name=type(self).__name__, size=len(self),
        )

    def __iter__(self):
        return (i for _, i in sorted(values(self._data)))

    def __len__(self):
        return len(self._data)

    def __contains__(self, key):
        return key in self._data

    def __reduce__(self):
        return self.__class__, (
            self.maxlen, self.expires, self.as_dict(), self.minlen)

    def __bool__(self):
        return bool(self._data)
    __nonzero__ = __bool__  # Py2

    @property
    def _heap_overload(self):
        """Compute how much is heap bigger than data [percents]."""
        if not self._data:
            return len(self._heap)
        return len(self._heap) * 100 / len(self._data) - 100
MutableSet.register(LimitedSet)
Example #5
0
                                self.minlen)

    def __bool__(self):
        # type: () -> bool
        return bool(self._data)

    __nonzero__ = __bool__  # Py2

    @property
    def _heap_overload(self):
        # type: () -> float
        """Compute how much is heap bigger than data [percents]."""
        return len(self._heap) * 100 / max(len(self._data), 1) - 100


MutableSet.register(LimitedSet)  # noqa: E305


class Evictable(object):
    """Mixin for classes supporting the ``evict`` method."""

    Empty = Empty

    def evict(self):
        # type: () -> None
        """Force evict until maxsize is enforced."""
        self._evict(range=count)

    def _evict(self, limit=100, range=range):
        # type: (int) -> None
        try:
Example #6
0
 def __init__(self, values=None):
     self.odict = ordereddict()
     MutableSet.__init__(self)
     if values is not None:
         self |= values
 def __init__(self, values=None):
     self.odict = ordereddict()
     MutableSet.__init__(self)
     if values is not None:
         self |= values
Example #8
0
        return self.__class__, (
            self.maxlen, self.expires, self.as_dict(), self.minlen)

    def __bool__(self):
        # type: () -> bool
        return bool(self._data)
    __nonzero__ = __bool__  # Py2

    @property
    def _heap_overload(self):
        # type: () -> float
        """Compute how much is heap bigger than data [percents]."""
        return len(self._heap) * 100 / max(len(self._data), 1) - 100


MutableSet.register(LimitedSet)  # noqa: E305


class Evictable(object):
    """Mixin for classes supporting the ``evict`` method."""

    Empty = Empty

    def evict(self):
        # type: () -> None
        """Force evict until maxsize is enforced."""
        self._evict(range=count)

    def _evict(self, limit=100, range=range):
        # type: (int) -> None
        try:
Example #9
0
 def __init__(self, values=None):
     # type: (Any) -> None
     self.odict = ordereddict()
     MutableSet.__init__(self)
     if values is not None:
         self |= values  # type: ignore