Esempio n. 1
0
 async def add_if_not_present(self, obj):
     try:
         id_ = self._key_func(obj)
     except Exception as e:
         raise store.StoreKeyError(obj) from e
     async with self._lock:
         self._add_if_not_present(id_, obj)
Esempio n. 2
0
 async def delete(self, obj):
     try:
         id_ = self._key_func(obj)
     except Exception as e:
         raise store.StoreKeyError(obj) from e
     async with self._lock:
         self._populated = True
         del self._items[id_]
Esempio n. 3
0
 def key_of(self, obj):
     if isinstance(obj, Deltas):
         if not obj:
             raise store.StoreKeyError(obj) from ZeroLengthDeltasObjectError
         obj = obj.newest().object
     if isinstance(obj, DeletedFinalStateUnknown):
         return obj.key
     return self._key_func(obj)
Esempio n. 4
0
 async def add(self, obj):
     try:
         id_ = self._key_func(obj)
     except Exception as e:
         raise store.StoreKeyError(obj) from e
     async with self._lock:
         self._populated = True
         if id_ not in self._items:
             self._queue.append(id_)
         self._items[id_] = obj
         self._cond.notify_all()
Esempio n. 5
0
    async def replace(self, list_, resource_version):
        items = {}
        for item in list_:
            try:
                key = self._key_func(item)
            except Exception as e:
                raise store.StoreKeyError(item) from e
            items[key] = item
        async with self._lock:
            if not self._populated:
                self._populated = True
                self._initial_population_count = len(items)

            self._items = items
            self._queue = list(items)
            if self._queue:
                self._cond.notify_all()
Esempio n. 6
0
 def get(self, obj):
     try:
         key = self._key_func(obj)
     except Exception as e:
         raise store.StoreKeyError(obj) from e
     return self.get_by_key(key)