Skip to content

Commit a2709c2

Browse files
committed
ref: refactor __delitem__
1 parent 69a2ef3 commit a2709c2

File tree

1 file changed

+14
-13
lines changed

1 file changed

+14
-13
lines changed

src/lightning/pytorch/loggers/utilities.py

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ def __eq__(self, other: Any) -> bool:
161161
return list_eq and self._dict == other._dict
162162
return list_eq
163163

164-
def copy(self) -> Self:
164+
def copy(self) -> "_ListMap":
165165
new_listmap = _ListMap(self)
166166
new_listmap._dict = self._dict.copy()
167167
return new_listmap
@@ -184,7 +184,7 @@ def pop(self, key: str, default: _PT, /) -> Union[_T, _PT]: ...
184184

185185
def pop(self, key=-1, default=None):
186186
if isinstance(key, int):
187-
ret = list.pop(self, key)
187+
ret = super().pop(key)
188188
for str_key, idx in list(self._dict.items()):
189189
if idx == key:
190190
self._dict.pop(str_key)
@@ -201,7 +201,7 @@ def insert(self, index: SupportsIndex, __object: _T) -> None:
201201
for key, idx in self._dict.items():
202202
if idx >= index:
203203
self._dict[key] = idx + 1
204-
list.insert(self, index, __object)
204+
super().insert(index, __object)
205205

206206
def remove(self, __object: _T) -> None:
207207
idx = self.index(__object)
@@ -213,7 +213,7 @@ def remove(self, __object: _T) -> None:
213213
self._dict[key] = val - 1
214214
if name:
215215
self._dict.pop(name, None)
216-
list.remove(self, __object)
216+
super().remove(__object)
217217

218218
def sort(
219219
self,
@@ -227,7 +227,7 @@ def sort(
227227
item = self[idx]
228228
item_to_names.setdefault(item, []).append(name)
229229
# Sort the list
230-
list.sort(self, key=key, reverse=reverse)
230+
super().sort(key=key, reverse=reverse)
231231
# Update _dict with new indices
232232
new_dict = {}
233233
for idx, item in enumerate(self):
@@ -270,11 +270,11 @@ def __setitem__(self, key: slice, value: Iterable[_T], /) -> None: ...
270270
def __setitem__(self, key, value, /) -> None:
271271
if isinstance(key, (int, slice)):
272272
# replace element by index
273-
return list.__setitem__(self, key, value)
273+
return super().__setitem__(key, value)
274274
if isinstance(key, str):
275275
# replace or insert by name
276276
if key in self._dict:
277-
list.__setitem__(self, self._dict[key], value)
277+
super().__setitem__(self._dict[key], value)
278278
else:
279279
self.append(value)
280280
self._dict[key] = len(self) - 1
@@ -284,24 +284,25 @@ def __setitem__(self, key, value, /) -> None:
284284
def __contains__(self, item: Union[object, str]) -> bool:
285285
if isinstance(item, str):
286286
return item in self._dict
287-
return list.__contains__(self, item)
287+
return super().__contains__(item)
288288

289289
# --- Dict-like interface ---
290290

291291
def __delitem__(self, key: Union[SupportsIndex, slice, str]) -> None:
292+
if isinstance(key, str):
293+
if key not in self._dict:
294+
raise KeyError(f"Key '{key}' not found.")
295+
key: int = self._dict[key]
296+
292297
if isinstance(key, (int, slice)):
293-
list.__delitem__(self, key)
298+
super().__delitem__(key)
294299
for _key in key.indices(len(self)) if isinstance(key, slice) else [key]:
295300
# update indices in the dict
296301
for str_key, idx in list(self._dict.items()):
297302
if idx == _key:
298303
self._dict.pop(str_key)
299304
elif idx > _key:
300305
self._dict[str_key] = idx - 1
301-
elif isinstance(key, str):
302-
if key not in self._dict:
303-
raise KeyError(f"Key '{key}' not found.")
304-
self.__delitem__(self._dict[key])
305306
else:
306307
raise TypeError("Key must be int or str")
307308

0 commit comments

Comments
 (0)