diff options
author | Laurent Peuch <cortex@worlddomination.be> | 2020-04-23 03:33:13 +0200 |
---|---|---|
committer | Laurent Peuch <cortex@worlddomination.be> | 2020-04-23 03:33:13 +0200 |
commit | 30916daafb7eca535abd07028a1a570c90b27443 (patch) | |
tree | 10cd429d735735da505abafae2b963f74a5739a1 /logilab/common | |
parent | 290dd7e63ba63159aaba69675c2a23819745eb92 (diff) | |
download | logilab-common-30916daafb7eca535abd07028a1a570c90b27443.tar.gz |
[deprecation/refactoring] simplify class_renamed
Diffstat (limited to 'logilab/common')
-rw-r--r-- | logilab/common/deprecation.py | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/logilab/common/deprecation.py b/logilab/common/deprecation.py index 4da111b..5b2d28d 100644 --- a/logilab/common/deprecation.py +++ b/logilab/common/deprecation.py @@ -279,7 +279,8 @@ class class_deprecated(type): def __call__(cls, *args, **kwargs): msg = getattr(cls, "__deprecation_warning__", "%(cls)s is deprecated") % {'cls': cls.__name__} - send_warning(msg, stacklevel=4) + send_warning(msg, stacklevel=getattr(cls, "__deprecation_warning_stacklevel__", 4), + version=getattr(cls, "__deprecation_warning_version__", None)) return type.__call__(cls, *args, **kwargs) @@ -407,7 +408,7 @@ def renamed(old_name, new_function, version=None): return wrapped -def class_renamed(old_name, new_class, message=None): +def class_renamed(old_name, new_class, message=None, version=None): """automatically creates a class which fires a DeprecationWarning when instantiated. @@ -417,7 +418,16 @@ def class_renamed(old_name, new_class, message=None): s = Set() >>> """ - return _defaultdeprecator.class_renamed(None, old_name, new_class, message) + class_dict = {} + if message is None: + message = '%s is deprecated, use %s instead' % (old_name, new_class.__name__) + + class_dict['__deprecation_warning__'] = message + class_dict['__deprecation_warning_version__'] = version + class_dict['__deprecation_warning_stacklevel__'] = 5 + + return class_deprecated(old_name, (new_class,), class_dict) + def class_moved(new_class, old_name=None, message=None): return _defaultdeprecator.class_moved(None, new_class, old_name, message) |