@@ -76,7 +76,6 @@ def __init__(
7676 ptypes : list [str ] | None = None ,
7777 xml : str | None = None ,
7878 _address_index : dict [str , int ] | None = None ,
79- _pnames_index : dict [str , int ] | None = None ,
8079 ) -> None :
8180 """Initialize the Programs ISY programs manager class."""
8281 self .isy = isy
@@ -85,7 +84,6 @@ def __init__(
8584 self .addresses : list [str ] = []
8685 self ._address_index : dict [str , int ] = {}
8786 self .pnames : list [str ] = []
88- self ._pnames_index : dict [str , int ] = {}
8987 self .pparents : list [str ] = []
9088 self .pobjs : list [Program | Folder ] = []
9189 self .ptypes : list [str ] = []
@@ -99,7 +97,6 @@ def __init__(
9997 self ._address_index = _address_index or {address : i for i , address in enumerate (addresses )}
10098 if pnames is not None :
10199 self .pnames = pnames
102- self ._pnames_index = _pnames_index or {name : i for i , name in enumerate (pnames )}
103100 if pparents is not None :
104101 self .pparents = pparents
105102 if pobjs is not None :
@@ -308,7 +305,6 @@ def insert(self, address: str, pname: str, pparent: str, pobj: Program | Program
308305 self .addresses .append (address )
309306 self ._address_index [address ] = len (self .addresses ) - 1
310307 self .pnames .append (pname )
311- self ._pnames_index [pname ] = len (self .pnames ) - 1
312308 self .pparents .append (pparent )
313309 self .ptypes .append (ptype )
314310 self .pobjs .append (pobj )
@@ -321,14 +317,16 @@ def __getitem__(self, val: str) -> Program | Folder | None:
321317 """
322318 if val in self ._address_index :
323319 fun = self .get_by_id
324- elif val in self ._pnames_index :
325- fun = self .get_by_name
326320 else :
327321 try :
328- val = int (val )
329- fun = self .get_by_index
330- except (TypeError , ValueError ) as err :
331- raise KeyError ("Unrecognized Key: " + str (val )) from err
322+ self .pnames .index (val )
323+ fun = self .get_by_name
324+ except ValueError :
325+ try :
326+ val = int (val )
327+ fun = self .get_by_index
328+ except (TypeError , ValueError ) as err :
329+ raise KeyError ("Unrecognized Key: " + str (val )) from err
332330 try :
333331 return fun (val )
334332 except (ValueError , KeyError , IndexError ):
@@ -344,9 +342,9 @@ def get_by_name(self, val: str) -> Program | Folder | Programs | None:
344342
345343 | val: The name of the child program/folder to look for.
346344 """
347- i = self ._pnames_index . get ( val )
348- if i is not None and (self .root is None or self .pparents [i ] == self .root ):
349- return self .get_by_index (i )
345+ for i in range ( len ( self .addresses )):
346+ if (self .root is None or self .pparents [i ] == self .root ) and self . pnames [ i ] == val :
347+ return self .get_by_index (i )
350348 return None
351349
352350 def get_by_id (self , address : str ) -> Program | Folder | Programs :
@@ -373,7 +371,6 @@ def get_by_index(self, i: int) -> Program | Folder | Programs:
373371 pobjs = self .pobjs ,
374372 ptypes = self .ptypes ,
375373 _address_index = self ._address_index ,
376- _pnames_index = self ._pnames_index ,
377374 )
378375 return self .pobjs [i ]
379376
0 commit comments