@@ -669,78 +669,9 @@ def __repr__(self) -> str:
669669 def __reversed__ (self ) -> Iterator [AgentSet ]:
670670 return reversed (self ._agentsets )
671671
672- def __setitem__ (self , key : int | str , value : AgentSet ) -> None :
673- """Assign/replace a single AgentSet at an index or name.
674-
675- Enforces name uniqueness and model consistency.
676- """
677- if value .model is not self .model :
678- raise TypeError ("Assigned AgentSet must belong to the same model" )
679- if isinstance (key , int ):
680- if value .name is not None :
681- for i , s in enumerate (self ._agentsets ):
682- if i != key and s .name == value .name :
683- raise ValueError (
684- f"Duplicate agent set name disallowed: { value .name } "
685- )
686- self ._agentsets [key ] = value
687- elif isinstance (key , str ):
688- try :
689- value .rename (key )
690- except Exception :
691- if hasattr (value , "_name" ):
692- setattr (value , "_name" , key )
693- idx = None
694- for i , s in enumerate (self ._agentsets ):
695- if s .name == key :
696- idx = i
697- break
698- if idx is None :
699- self ._agentsets .append (value )
700- else :
701- self ._agentsets [idx ] = value
702- else :
703- raise TypeError ("Key must be int index or str name" )
704- # Recompute ids cache
705- self ._recompute_ids ()
706-
707672 def __str__ (self ) -> str :
708673 return "\n " .join ([str (agentset ) for agentset in self ._agentsets ])
709674
710- def keys (self , * , key_by : KeyBy = "name" ) -> Iterable [Any ]:
711- if key_by not in ("name" , "index" , "type" ):
712- raise ValueError ("key_by must be 'name'|'index'|'type'" )
713- if key_by == "index" :
714- yield from range (len (self ._agentsets ))
715- return
716- if key_by == "type" :
717- for s in self ._agentsets :
718- yield type (s )
719- return
720- # name
721- for s in self ._agentsets :
722- if s .name is not None :
723- yield s .name
724-
725- def items (self , * , key_by : KeyBy = "name" ) -> Iterable [tuple [Any , AgentSet ]]:
726- if key_by not in ("name" , "index" , "type" ):
727- raise ValueError ("key_by must be 'name'|'index'|'type'" )
728- if key_by == "index" :
729- for i , s in enumerate (self ._agentsets ):
730- yield i , s
731- return
732- if key_by == "type" :
733- for s in self ._agentsets :
734- yield type (s ), s
735- return
736- # name
737- for s in self ._agentsets :
738- if s .name is not None :
739- yield s .name , s
740-
741- def values (self ) -> Iterable [AgentSet ]:
742- return iter (self ._agentsets )
743-
744675 @property
745676 def ids (self ) -> pl .Series :
746677 """Public view of all agent unique_id values across contained sets."""
0 commit comments