@@ -69,7 +69,7 @@ def __init__(
6969 :type retry: bool
7070 :param retry_rate_limit_interval: The amount of time to wait between HTTP request
7171 retries.
72- :type retry_rate_limit_interval: float
72+ :type retry_rate_limit_interval: Union[ float, int]
7373 :param retry_max: The number of request retries that should be attempted before
7474 raising an API error.
7575 :type retry_max: int
@@ -88,28 +88,27 @@ def __init__(
8888 if retry_statuses is not None :
8989 retry_forcelist .extend (retry_statuses )
9090
91- # make sure we got a sane backoff
92- if not isinstance (retry_rate_limit_interval , float ):
93- raise ValueError ("retry_rate_limit_interval must be a float" )
94-
9591 # Ensure the max retries value is valid
9692 if not isinstance (retry_max , int ):
9793 raise ValueError ("retry_max must be an int" )
9894
9995 self .retry = retry
100- self .retry_rate_limit_interval = retry_rate_limit_interval
96+ self .retry_rate_limit_interval = float ( retry_rate_limit_interval )
10197 self .retry_max = retry_max
102- self .retry_statuses = retry_statuses
98+ self .retry_statuses = retry_forcelist
10399
104100 # Initialize the HTTP client session
105101 self .session = requests .Session ()
106102
107103 self ._retry_config = LinearRetry (
108104 total = retry_max if retry else 0 ,
109- status_forcelist = retry_forcelist ,
105+ status_forcelist = self . retry_statuses ,
110106 respect_retry_after_header = True ,
111- backoff_factor = retry_rate_limit_interval ,
107+ backoff_factor = self . retry_rate_limit_interval ,
112108 raise_on_status = False ,
109+ # By default, POST is not an allowed method.
110+ # We should explicitly include it.
111+ allowed_methods = {"DELETE" , "GET" , "POST" , "PUT" },
113112 )
114113 retry_adapter = HTTPAdapter (max_retries = self ._retry_config )
115114
0 commit comments