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
« prev ^ index » next coverage.py v7.8.0, created at 2025-04-17 01:37 +0200
1import time
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()
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
18 def __repr__(self):
19 return f'(retry={self.times})'
21 def __nonzero__(self):
22 return self.times
25def retry(times=100, pause=10, factor=1.0):
26 return _Retry(times, pause, factor)