Как вызвать повторный декоратор при ошибке исключения для Python

Я использую 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)

0 ответов

Другие вопросы по тегам