From 37808e044fe8a88f1d7689064c38aad5f77434ee Mon Sep 17 00:00:00 2001 From: Zhou Zhiqiang Date: Thu, 29 Feb 2024 10:08:59 +0800 Subject: [PATCH] chore: setup default backoff for tranlate method (#387) * chore: setup default backoff for tranlate method Signed-off-by: Zhou Zhiqiang --- book_maker/loader/helper.py | 18 +++++++++++++++--- requirements.txt | 3 ++- setup.py | 1 + 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/book_maker/loader/helper.py b/book_maker/loader/helper.py index 85557ed..b628f4f 100644 --- a/book_maker/loader/helper.py +++ b/book_maker/loader/helper.py @@ -1,5 +1,10 @@ import re from copy import copy +import backoff +import logging + +logging.basicConfig(level=logging.WARNING) +logger = logging.getLogger(__name__) class EPUBBookLoaderHelper: @@ -27,13 +32,20 @@ class EPUBBookLoaderHelper: if single_translate: p.extract() + @backoff.on_exception( + backoff.expo, + Exception, + on_backoff=lambda details: logger.warning(f"retry backoff: {details}"), + on_giveup=lambda details: logger.warning(f"retry abort: {details}"), + ) + def translate_with_backoff(self, **kwargs): + return self.translate_model.translate(**kwargs) + def deal_new(self, p, wait_p_list, single_translate=False): self.deal_old(wait_p_list, single_translate, self.context_flag) self.insert_trans( p, - shorter_result_link( - self.translate_model.translate(p.text, self.context_flag) - ), + shorter_result_link(self.translate_with_backoff(p.text, self.context_flag)), self.translation_style, single_translate, ) diff --git a/requirements.txt b/requirements.txt index 7e556cb..39b5bee 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ -e . mkdocs -mkdocs-material \ No newline at end of file +mkdocs-material +backoff diff --git a/setup.py b/setup.py index f7af255..6109563 100644 --- a/setup.py +++ b/setup.py @@ -13,6 +13,7 @@ packages = [ "PyDeepLX", "google-generativeai", "langdetect", + "backoff", ]