From 936c6651958e14b09152e7e2ee2452b53eb35f59 Mon Sep 17 00:00:00 2001 From: Saurabh Bikram Date: Thu, 12 Feb 2026 08:52:10 +0000 Subject: [PATCH] fix: move _internal_config assignment back into TrainableModel.__init__ The _internal_config assignment was accidentally placed after a return statement inside _noop_cost_calculator, making it dead code. Co-Authored-By: Claude Opus 4.6 --- src/art/model.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/art/model.py b/src/art/model.py index 21244ad8c..0c706add6 100644 --- a/src/art/model.py +++ b/src/art/model.py @@ -706,6 +706,9 @@ def __init__( report_metrics=report_metrics, **kwargs, ) + if _internal_config is not None: + # Bypass BaseModel __setattr__ to allow setting private attr + object.__setattr__(self, "_internal_config", _internal_config) object.__setattr__(self, "_costs_lock", asyncio.Lock()) object.__setattr__(self, "_cost_calculator", self._noop_cost_calculator) @@ -725,9 +728,6 @@ def _noop_cost_calculator( _prompt_tokens: int | None, _completion_tokens: int | None ) -> dict[str, float]: return {} - if _internal_config is not None: - # Bypass BaseModel __setattr__ to allow setting private attr - object.__setattr__(self, "_internal_config", _internal_config) @overload def __new__(