From 837d2f4b054586abed9e02485254c21a5d4ee7d1 Mon Sep 17 00:00:00 2001 From: "Paulo R. S. S. Alves" Date: Fri, 4 Feb 2022 10:52:12 -0300 Subject: [PATCH 1/3] kill request if there are no available translation samples --- reverso_context_api/client.py | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/reverso_context_api/client.py b/reverso_context_api/client.py index 485f4c0..7e1aa3b 100644 --- a/reverso_context_api/client.py +++ b/reverso_context_api/client.py @@ -56,6 +56,11 @@ def get_translation_samples(self, text, target_text=None, source_lang=None, targ 'In order to achieve good consumer protection, international rules are required.') """ for page in self._translations_pager(text, target_text, source_lang, target_lang): + if page["list"] == []: + # stop the request if there is no available translation sample + # if that is not done, the program will make requests endlessly until + # the server throws a 429 exception. + return False for entry in page["list"]: source_text, translation = entry["s_text"], entry["t_text"] if cleanup: From e5aedf5cc328f91587a2b897a395ac5a89dc2dae Mon Sep 17 00:00:00 2001 From: paulo Date: Thu, 17 Mar 2022 22:04:20 -0300 Subject: [PATCH 2/3] asserting the yield value is not changed --- reverso_context_api/client.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/reverso_context_api/client.py b/reverso_context_api/client.py index 7e1aa3b..e304b11 100644 --- a/reverso_context_api/client.py +++ b/reverso_context_api/client.py @@ -60,7 +60,7 @@ def get_translation_samples(self, text, target_text=None, source_lang=None, targ # stop the request if there is no available translation sample # if that is not done, the program will make requests endlessly until # the server throws a 429 exception. - return False + break for entry in page["list"]: source_text, translation = entry["s_text"], entry["t_text"] if cleanup: From fda0df61d80e46d2718484780e3a9e14813ecc10 Mon Sep 17 00:00:00 2001 From: paulo Date: Thu, 17 Mar 2022 22:27:21 -0300 Subject: [PATCH 3/3] ensuring that the break comes from the pager itself --- reverso_context_api/client.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/reverso_context_api/client.py b/reverso_context_api/client.py index e304b11..cb149ef 100644 --- a/reverso_context_api/client.py +++ b/reverso_context_api/client.py @@ -56,11 +56,7 @@ def get_translation_samples(self, text, target_text=None, source_lang=None, targ 'In order to achieve good consumer protection, international rules are required.') """ for page in self._translations_pager(text, target_text, source_lang, target_lang): - if page["list"] == []: - # stop the request if there is no available translation sample - # if that is not done, the program will make requests endlessly until - # the server throws a 429 exception. - break + for entry in page["list"]: source_text, translation = entry["s_text"], entry["t_text"] if cleanup: @@ -125,6 +121,10 @@ def _translations_pager(self, text, target_text=None, source_lang=None, target_l yield contents page_num += 1 + # if the page has no examples, or has ran out of them, stop iterating. + if contents["list"] == []: + break + def _favorites_pager(self, source_lang=None, target_lang=None): source_lang = source_lang or self._source_lang target_lang = target_lang or self._target_lang