aio-libs / aio-libs/aiocache

Clear() method with 'namespace' parameter fails: TypeError: delete() missing 1 required positional argument: 'key'

Ouverte
#472 8 commentaires 1 réaction 1 personne assignée Réclamée par @AbuSM Voir sur GitHub
bug good first issue
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.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.