Clear() method with 'namespace' parameter fails: TypeError: delete() missing 1 required positional argument: 'key'
- Langage dominant
- Python
- Étoiles
- 1.4k
- Forks
- 181
- Métriques de merge des PR
- Aucune PR mergée en 30 j
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
Guide de contribution
Ouvrir le guide de contribution
Évaluation
Cette issue n'a pas encore été évaluée.