Skip to content

Commit 7a80899

Browse files
author
Alexander Ororbia
committed
updated/generalized function deprecator - it now accepts an is_replaced warning
1 parent 7935b0f commit 7a80899

1 file changed

Lines changed: 15 additions & 9 deletions

File tree

ngcsimlib/_src/deprecators.py

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,23 @@
11
from ngcsimlib._src.logger import warn
22

33

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
1218

1319

14-
def deprecate_args(_rebind=True, **arg_list):
20+
def deprecate_args(_rebind=True, **arg_list): ## argument deprecating decorator
1521
def _deprecate_args(fn):
1622
def _wrapped(*args, **kwargs):
1723
for kwarg in list(kwargs.keys()):

0 commit comments

Comments
 (0)