Как вызвать повторный декоратор при ошибке исключения для Python - PullRequest
0 голосов
/ 15 февраля 2019

Я использую модуль 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...