From 41a8d95da45612155c541a6a843bd2923d6d73c2 Mon Sep 17 00:00:00 2001 From: Giuseppe De Rosa Date: Mon, 16 Mar 2026 13:35:32 +0000 Subject: [PATCH] Fix broken error-message formatting in flax.nnx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Two string formatting bugs: 1. filterlib.to_predicate: `{filter:!r}` → `{filter!r}` (malformed f-string raised ValueError instead of intended TypeError) Reproduce: >>> import flax.nnx.filterlib as filterlib >>> filterlib.to_predicate(37) ValueError: Invalid format specifier '!r' for object of type 'int' 2. variablelib.variable_name_from_type: added missing `f` prefix (error showed literal `{name}` placeholders instead of actual values) Reproduce: >>> from flax.nnx import Variable >>> from flax.nnx.variablelib import variable_name_from_type >>> class params(Variable): pass >>> variable_name_from_type(params, allow_register=True) ValueError: Name {name} is already registered in the registry as {VariableTypeCache[name]}. It cannot be linked with this type {typ}. --- flax/nnx/filterlib.py | 2 +- flax/nnx/variablelib.py | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/flax/nnx/filterlib.py b/flax/nnx/filterlib.py index 824eb4315..e96d5ebc6 100644 --- a/flax/nnx/filterlib.py +++ b/flax/nnx/filterlib.py @@ -52,7 +52,7 @@ def to_predicate(filter: Filter) -> Predicate: elif isinstance(filter, (list, tuple)): return Any(*filter) else: - raise TypeError(f'Invalid collection filter: {filter:!r}. ') + raise TypeError(f'Invalid collection filter: {filter!r}. ') def filters_to_predicates( filters: tp.Sequence[Filter], diff --git a/flax/nnx/variablelib.py b/flax/nnx/variablelib.py index 8268c0651..8fa8f39a8 100644 --- a/flax/nnx/variablelib.py +++ b/flax/nnx/variablelib.py @@ -2292,8 +2292,8 @@ def variable_name_from_type( name = typ.__name__ if name in VariableTypeCache: raise ValueError( - 'Name {name} is already registered in the registry as {VariableTypeCache[name]}. ' - 'It cannot be linked with this type {typ}.' + f'Name {name} is already registered in the registry as {VariableTypeCache[name]}. ' + f'It cannot be linked with this type {typ}.' ) register_variable_name(name, typ) return name