@@ -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