@@ -50,10 +50,11 @@ def obj(*args, **kwargs):
50
50
return obj
51
51
52
52
53
- def _rename_kwargs (version = None , ** kwargs_rename ):
53
+ def _rename_kwargs (version = None , ignore = False , ** kwargs_rename ):
54
54
"""
55
55
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.
57
58
"""
58
59
version = 'a future version' if version is None else f'version { version } '
59
60
@@ -62,20 +63,20 @@ def decorator(func_orig):
62
63
def func (* args , ** kwargs ):
63
64
for key_old , key_new in kwargs_rename .items ():
64
65
if key_old in kwargs :
65
- if key_new is None :
66
+ if ignore or not isinstance ( key_new , str ) :
66
67
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} .'
72
69
else :
73
70
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 } .'
78
74
)
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.' )
79
80
return func_orig (* args , ** kwargs )
80
81
return func
81
82
return decorator
0 commit comments