deprecated.py
22 lines
| 783 B
| text/x-python
|
PythonLexer
Min RK
|
r21081 | """Decorator for warning about deprecated widget classes""" | ||
# Copyright (c) IPython Development Team. | ||||
# Distributed under the terms of the Modified BSD License. | ||||
from warnings import warn | ||||
def DeprecatedClass(base, class_name): | ||||
"""Warn about a deprecated class on instantiation""" | ||||
# Hook the init method of the base class. | ||||
def init_hook(self, *pargs, **kwargs): | ||||
base.__init__(self, *pargs, **kwargs) | ||||
# Warn once per class. | ||||
if base not in DeprecatedClass._warned_classes: | ||||
DeprecatedClass._warned_classes.append(base) | ||||
warn('"{}" is deprecated, please use "{}" instead.'.format( | ||||
class_name, base.__name__)) | ||||
return type(class_name, (base,), {'__init__': init_hook}) | ||||
DeprecatedClass._warned_classes = [] | ||||