Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
holoviz
GitHub Repository: holoviz/panel
Path: blob/main/scripts/panelite/test/utils.py
2011 views
1
import time
2
3
4
class MaxRetriesExceeded(Exception):
5
"""Raised if the maximum number of retries has been exceeded"""
6
7
class Retrier:
8
9
def __init__(self, retries=3, delay=0):
10
self.max_retries = retries
11
self.delay=delay
12
13
self.retries = 0
14
self.accomplished = False
15
16
def __enter__(self):
17
return self
18
19
def __exit__(self, exc, value, traceback):
20
if not exc:
21
self.accomplished = True
22
return True
23
self.retries += 1
24
time.sleep(self.delay)
25
if self.retries >= self.max_retries:
26
raise MaxRetriesExceeded from exc
27
return True
28
29