@@ -247,10 +247,7 @@ def update(self, *args: Any, **kwargs: Any) -> None:
247
247
# only update the first member
248
248
m0 = getattr (self , cg [0 ])
249
249
m0 .update (* args , ** m0 ._filter_kwargs (** kwargs ))
250
- if self ._state_is_copy :
251
- # If we have deep copied state in between updates, reestablish link
252
- self ._compute_groups_create_state_ref ()
253
- self ._state_is_copy = False
250
+ self ._compute_groups_create_state_ref ()
254
251
else : # the first update always do per metric to form compute groups
255
252
for m in self .values (copy_state = False ):
256
253
m_kwargs = m ._filter_kwargs (** kwargs )
@@ -339,16 +336,15 @@ def _compute_groups_create_state_ref(self, copy: bool = False) -> None:
339
336
of just passed by reference
340
337
341
338
"""
342
- if not self ._state_is_copy and self ._groups_checked :
343
- for cg in self ._groups .values ():
344
- m0 = getattr (self , cg [0 ])
345
- for i in range (1 , len (cg )):
346
- mi = getattr (self , cg [i ])
347
- for state in m0 ._defaults :
348
- m0_state = getattr (m0 , state )
349
- # Determine if we just should set a reference or a full copy
350
- setattr (mi , state , deepcopy (m0_state ) if copy else m0_state )
351
- mi ._update_count = deepcopy (m0 ._update_count ) if copy else m0 ._update_count
339
+ for cg in self ._groups .values ():
340
+ m0 = getattr (self , cg [0 ])
341
+ for i in range (1 , len (cg )):
342
+ mi = getattr (self , cg [i ])
343
+ for state in m0 ._defaults :
344
+ m0_state = getattr (m0 , state )
345
+ # Determine if we just should set a reference or a full copy
346
+ setattr (mi , state , deepcopy (m0_state ) if copy else m0_state )
347
+ mi ._update_count = deepcopy (m0 ._update_count ) if copy else m0 ._update_count
352
348
self ._state_is_copy = copy
353
349
354
350
def compute (self ) -> dict [str , Any ]:
0 commit comments