Coverage for gws-app/gws/lib/misc/__init__.py: 0%

19 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-04-17 01:37 +0200

1import time 

2 

3 

4class _Retry(object): 

5 def __init__(self, times, pause, factor): 

6 self.times = times - 1 

7 self.pause = pause 

8 self.factor = factor 

9 self.start = time.time() 

10 

11 def __iter__(self): 

12 while self.times >= 0: 

13 yield self 

14 time.sleep(self.pause) 

15 self.times -= 1 

16 self.pause *= self.factor 

17 

18 def __repr__(self): 

19 return f'(retry={self.times})' 

20 

21 def __nonzero__(self): 

22 return self.times 

23 

24 

25def retry(times=100, pause=10, factor=1.0): 

26 return _Retry(times, pause, factor)