Skip to content

Commit 5875f39

Browse files
committed
Extract list method passthrough into a factory function.
1 parent 7e95bd2 commit 5875f39

File tree

1 file changed

+20
-39
lines changed

1 file changed

+20
-39
lines changed

importlib_metadata/__init__.py

Lines changed: 20 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -290,52 +290,33 @@ class DeprecatedList(list):
290290
stacklevel=pypy_partial(2),
291291
)
292292

293-
def __setitem__(self, *args, **kwargs):
294-
self._warn()
295-
return super().__setitem__(*args, **kwargs)
296-
297-
def __delitem__(self, *args, **kwargs):
298-
self._warn()
299-
return super().__delitem__(*args, **kwargs)
300-
301-
def append(self, *args, **kwargs):
302-
self._warn()
303-
return super().append(*args, **kwargs)
304-
305-
def reverse(self, *args, **kwargs):
306-
self._warn()
307-
return super().reverse(*args, **kwargs)
308-
309-
def extend(self, *args, **kwargs):
310-
self._warn()
311-
return super().extend(*args, **kwargs)
312-
313-
def pop(self, *args, **kwargs):
314-
self._warn()
315-
return super().pop(*args, **kwargs)
316-
317-
def remove(self, *args, **kwargs):
318-
self._warn()
319-
return super().remove(*args, **kwargs)
320-
321-
def __iadd__(self, *args, **kwargs):
322-
self._warn()
323-
return super().__iadd__(*args, **kwargs)
293+
def _wrap_deprecated_method(method_name: str): # type: ignore
294+
def wrapped(self, *args, **kwargs):
295+
self._warn()
296+
return getattr(super(), method_name)(*args, **kwargs)
297+
298+
return wrapped
299+
300+
for method_name in [
301+
'__setitem__',
302+
'__delitem__',
303+
'append',
304+
'reverse',
305+
'extend',
306+
'pop',
307+
'remove',
308+
'__iadd__',
309+
'insert',
310+
'sort',
311+
]:
312+
locals()[method_name] = _wrap_deprecated_method(method_name)
324313

325314
def __add__(self, other):
326315
if not isinstance(other, tuple):
327316
self._warn()
328317
other = tuple(other)
329318
return self.__class__(tuple(self) + other)
330319

331-
def insert(self, *args, **kwargs):
332-
self._warn()
333-
return super().insert(*args, **kwargs)
334-
335-
def sort(self, *args, **kwargs):
336-
self._warn()
337-
return super().sort(*args, **kwargs)
338-
339320
def __eq__(self, other):
340321
if not isinstance(other, tuple):
341322
self._warn()

0 commit comments

Comments
 (0)