Coverage for quibble/cache.py: 88%

14 statements  

« prev     ^ index     » next       coverage.py v7.10.7, created at 2026-08-07 07:21 +0000

1from pymemcache.client.base import Client 

2from pymemcache.client.hash import HashClient 

3from pymemcache.client.retrying import RetryingClient 

4from pymemcache.exceptions import MemcacheUnexpectedCloseError 

5 

6 

7CONNECT_TIMEOUT = 2.0 

8SOCKET_TIMEOUT = 2.0 

9KEY_PREFIX = 'quibble/v0/' 

10 

11 

12def client(server, retries=3, retry_delay=0.5): 

13 """ 

14 Returns a memcached client. 

15 

16 server: Memcached server to use for caching, e.g. 'localhost:11211'. 

17 Multiple servers can be specified (separated by ',') for 

18 clustering/failover. 

19 """ 

20 

21 def new_client(**kwargs): 

22 servers = server.split(',') 

23 if len(servers) > 1: 23 ↛ 24line 23 didn't jump to line 24 because the condition on line 23 was never true

24 return HashClient(servers, **kwargs) 

25 else: 

26 return Client(server, **kwargs) 

27 

28 return RetryingClient( 

29 new_client( 

30 connect_timeout=CONNECT_TIMEOUT, 

31 timeout=SOCKET_TIMEOUT, 

32 key_prefix=KEY_PREFIX, 

33 ), 

34 attempts=retries, 

35 retry_delay=retry_delay, 

36 retry_for=[MemcacheUnexpectedCloseError], 

37 )