aio-libs/aiocache
View on GitHubClear() method with 'namespace' parameter fails: TypeError: delete() missing 1 required positional argument: 'key'
Open
#472 opened on Dec 24, 2019
buggood first issue
Repository metrics
- Stars
- (1,432 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
I want to use certain namespace while cleaning redis cache, like below:
coros.append(asyncio.ensure_future(cache.clear(namespace='main')))
Error occured when redis cache doesn't have key with namespace 'main' :
coros.append(asyncio.ensure_future(cache.clear(namespace='dialog_api')))
I've found the problem in file aiocache/backends/redis.py in 187 line:
async def _clear(self, namespace=None, _conn=None):
if namespace:
keys = await _conn.keys("{}:*".format(namespace))
await _conn.delete(*keys)
else:
await _conn.flushdb()
return True
So, I want to fix it by adding if statement, like:
async def _clear(self, namespace=None, _conn=None):
if namespace:
keys = await _conn.keys("{}:*".format(namespace))
if keys:
await _conn.delete(*keys)
I could be wrong or miss something, if anybody faced with it please comment