|
1 | 1 | from ngcsimlib._src.logger import warn |
2 | 2 |
|
3 | 3 |
|
4 | | -def deprecated(fn): |
5 | | - def _wrapped(*args, **kwargs): |
6 | | - warn(fn.__qualname__, "is deprecated") |
7 | | - return fn(*args, **kwargs) |
8 | | - |
9 | | - _wrapped._is_deprecated = True |
10 | | - _wrapped._original = fn |
11 | | - return _wrapped |
| 4 | +def deprecated(replaced_by=None): ## function deprecating decorator |
| 5 | + def decorator(fn): |
| 6 | + def _wrapped(*args, **kwargs): |
| 7 | + message = "is deprecated" ## <= default warning message |
| 8 | + if replaced_by: ## make known substitute function name, if replaced_by != None |
| 9 | + ## uses __name__ or string representation |
| 10 | + new_name = getattr(replaced_by, '__name__', str(replaced_by)) |
| 11 | + message += f" (use {new_name} instead)" |
| 12 | + warn(fn.__qualname__, message) |
| 13 | + return fn(*args, **kwargs) |
| 14 | + _wrapped._is_deprecated = True |
| 15 | + _wrapped._original = fn |
| 16 | + return _wrapped |
| 17 | + return decorator |
12 | 18 |
|
13 | 19 |
|
14 | | -def deprecate_args(_rebind=True, **arg_list): |
| 20 | +def deprecate_args(_rebind=True, **arg_list): ## argument deprecating decorator |
15 | 21 | def _deprecate_args(fn): |
16 | 22 | def _wrapped(*args, **kwargs): |
17 | 23 | for kwarg in list(kwargs.keys()): |
|
0 commit comments