我们从Python开源项目中,提取了以下50个代码示例,用于说明如何使用pylibmc.NotFound()。
def incr(self, key, delta=1, version=None): key = self.make_key(key, version=version) # memcached doesn't support a negative delta if delta < 0: return self._cache.decr(key, -delta) try: val = self._cache.incr(key, delta) # python-memcache responds to incr on non-existent keys by # raising a ValueError, pylibmc by raising a pylibmc.NotFound # and Cmemcache returns None. In all cases, # we should raise a ValueError though. except self.LibraryValueNotFoundException: val = None if val is None: raise ValueError("Key '%s' not found" % key) return val
def decr(self, key, delta=1, version=None): key = self.make_key(key, version=version) # memcached doesn't support a negative delta if delta < 0: return self._cache.incr(key, -delta) try: val = self._cache.decr(key, delta) # python-memcache responds to incr on non-existent keys by # raising a ValueError, pylibmc by raising a pylibmc.NotFound # and Cmemcache returns None. In all cases, # we should raise a ValueError though. except self.LibraryValueNotFoundException: val = None if val is None: raise ValueError("Key '%s' not found" % key) return val
def __init__(self, server, params): import pylibmc super(PyLibMCCache, self).__init__(server, params, library=pylibmc, value_not_found_exception=pylibmc.NotFound) # The contents of `OPTIONS` was formerly only used to set the behaviors # attribute, but is now passed directly to the Client constructor. As such, # any options that don't match a valid keyword argument are removed and set # under the `behaviors` key instead, to maintain backwards compatibility. legacy_behaviors = {} for option in list(self._options): if option not in ('behaviors', 'binary', 'username', 'password'): warnings.warn( "Specifying pylibmc cache behaviors as a top-level property " "within `OPTIONS` is deprecated. Move `%s` into a dict named " "`behaviors` inside `OPTIONS` instead." % option, RemovedInDjango21Warning, stacklevel=2, ) legacy_behaviors[option] = self._options.pop(option) if legacy_behaviors: self._options.setdefault('behaviors', {}).update(legacy_behaviors)
def _cache(self, key, data): current_lock = self._lock_value() with self.client_pool.reserve() as client: while True: value, cid = client.gets(key) # If there is a lock value in Memcache that is # different from our own we have to bail. if value and value.startswith(self._lock_prefix) and value != current_lock: return # If there isn't a value at all, we have to add one # and try again. if cid is None: client.add(key, current_lock, self._lock_timeout) continue try: return client.cas(key, data, cid, self._item_timeout) # There is a small chance that between the `gets` and # "now" the key will have been deleted by a concurrent # process, so we account for that possibility here. except pylibmc.NotFound: # pragma: no cover return