From 5c1d3c94fe2b3f9affdb753b5cc3a8f0ee4df836 Mon Sep 17 00:00:00 2001 From: Timo Klein Date: Mon, 28 Oct 2024 09:24:38 +0100 Subject: [PATCH] fix lambda closure --- navix/components.py | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/navix/components.py b/navix/components.py index 6fa3826..dc08c3d 100644 --- a/navix/components.py +++ b/navix/components.py @@ -57,15 +57,12 @@ def __init_subclass__(cls, **kwargs): default = getattr(cls, f_name, dataclasses.MISSING) if isinstance(default, Array): # Create a field with a lambda as default factory to prevent mutable default values - f = dataclasses.field(default_factory=lambda: default) + f = dataclasses.field(default_factory=lambda default=default: default) f.name = f_name f.type = f_type # Remove the field from the dataclass and replace by modified one setattr(cls, f.name, f) - # BUG: locals() only stores a single value for defaults - if str(cls) == "": - import ipdb; ipdb.set_trace(context=21) struct.dataclass(cls, **kwargs) # pytype: disable=wrong-arg-types