From 1c70cd916854c8e53dfa1e5188e60bcbef88bd56 Mon Sep 17 00:00:00 2001 From: Morningstar202604 Date: Tue, 29 Sep 2026 19:21:54 +0000 Subject: [PATCH] fix(translator): guard rate_limit_params before .get() in do_llm_translate do_llm_translate dereferences rate_limit_params.get(...) when enable_json_mode_if_requested is set, but llm_translate() passes its rate_limit_params through with a default of None. A caller that does not supply rate_limit_params (e.g. a custom translator built on OpenAITranslator) then crashes with AttributeError: 'NoneType' object has no attribute 'get'. Match the guard already used in babeldoc/tools/executor/translator.py. --- babeldoc/translator/translator.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/babeldoc/translator/translator.py b/babeldoc/translator/translator.py index 117962b7e..73d2d727e 100644 --- a/babeldoc/translator/translator.py +++ b/babeldoc/translator/translator.py @@ -307,7 +307,7 @@ def do_llm_translate(self, text, rate_limit_params: dict = None): options = {} if self.send_temperature: options.update(self.options) - if self.enable_json_mode_if_requested and rate_limit_params.get( + if self.enable_json_mode_if_requested and rate_limit_params and rate_limit_params.get( "request_json_mode", False ): options["response_format"] = {"type": "json_object"}