Skip to content

Commit d89134c

Browse files
committed
Clean up _rename_kwargs decorator
1 parent 345e9d5 commit d89134c

File tree

1 file changed

+13
-12
lines changed

1 file changed

+13
-12
lines changed

proplot/internals/warnings.py

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -50,10 +50,11 @@ def obj(*args, **kwargs):
5050
return obj
5151

5252

53-
def _rename_kwargs(version=None, **kwargs_rename):
53+
def _rename_kwargs(version=None, ignore=False, **kwargs_rename):
5454
"""
5555
Emit a basic deprecation warning after removing or renaming function
56-
keyword arguments.
56+
keyword arguments. Each key should be an old keyword, and each arguments
57+
should be the new keyword or a tuple of new keyword options.
5758
"""
5859
version = 'a future version' if version is None else f'version {version}'
5960

@@ -62,20 +63,20 @@ def decorator(func_orig):
6263
def func(*args, **kwargs):
6364
for key_old, key_new in kwargs_rename.items():
6465
if key_old in kwargs:
65-
if key_new is None:
66+
if ignore or not isinstance(key_new, str):
6667
del kwargs[key_old]
67-
_warn_proplot(
68-
f'Ignoring keyword arg {key_old!r}. This argument '
69-
'is deprecated. Using it will raise an error '
70-
'in {version}.'
71-
)
68+
message = f'Ignoring deprecated keyword arg {key_old!r}.'
7269
else:
7370
kwargs[key_new] = kwargs.pop(key_old)
74-
_warn_proplot(
75-
f'Keyword arg {key_old!r} is deprecated and will be '
76-
f'removed in {version}. Please use {key_new!r} '
77-
'instead.'
71+
message = (
72+
f'Keyword arg {key_old!r} is deprecated and will '
73+
f'be removed in {version}.'
7874
)
75+
if isinstance(key_new, str):
76+
alternative = repr(key_new)
77+
else:
78+
alternative = ', '.join(map(repr, key_new))
79+
_warn_proplot(f'{message} Please use {alternative} instead.')
7980
return func_orig(*args, **kwargs)
8081
return func
8182
return decorator

0 commit comments

Comments
 (0)