Я использую модуль retry
для обработки исключений.Когда я вызываю f.write, это может вернуть исключение RateLimitException с кодами ошибок 400-500.Мне просто нужно повторить попытку кода 401, как мне этого добиться?
(в настоящее время у меня нет доступа к этой библиотеке) Я могу прочитать свойство self.code Исключения
import retry
@retry.retry(RateLimitException, tries=3, delay=1, backoff=2)
def write(self, buf, path):
with self._get_client().open(path, 'w') as f:
return f.write(buf)
class RateLimitException(Exception):
"""Holds the message and code from cloud errors."""
def __init__(self, error_response=None):
if error_response:
self.message = error_response.get('message', '')
self.code = error_response.get('code', None)
else:
self.message = ''
self.code = None
# Call the base class constructor with the parameters it needs
super(RateLimitException, self).__init__(self.message)