OLD | NEW |
1 # copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. | 1 # copyright 2003-2012 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr | 2 # contact http://www.logilab.fr/ -- mailto:contact@logilab.fr |
3 # | 3 # |
4 # This file is part of logilab-common. | 4 # This file is part of logilab-common. |
5 # | 5 # |
6 # logilab-common is free software: you can redistribute it and/or modify it unde
r | 6 # logilab-common is free software: you can redistribute it and/or modify it unde
r |
7 # the terms of the GNU Lesser General Public License as published by the Free | 7 # the terms of the GNU Lesser General Public License as published by the Free |
8 # Software Foundation, either version 2.1 of the License, or (at your option) an
y | 8 # Software Foundation, either version 2.1 of the License, or (at your option) an
y |
9 # later version. | 9 # later version. |
10 # | 10 # |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 def class_renamed(self, version, old_name, new_class, message=None): | 118 def class_renamed(self, version, old_name, new_class, message=None): |
119 clsdict = {} | 119 clsdict = {} |
120 if message is None: | 120 if message is None: |
121 message = '%s is deprecated, use %s' % (old_name, new_class.__name__
) | 121 message = '%s is deprecated, use %s' % (old_name, new_class.__name__
) |
122 clsdict['__deprecation_warning__'] = message | 122 clsdict['__deprecation_warning__'] = message |
123 try: | 123 try: |
124 # new-style class | 124 # new-style class |
125 return self.class_deprecated(version)(old_name, (new_class,), clsdic
t) | 125 return self.class_deprecated(version)(old_name, (new_class,), clsdic
t) |
126 except (NameError, TypeError): | 126 except (NameError, TypeError): |
127 # old-style class | 127 # old-style class |
| 128 warn = self.warn |
128 class DeprecatedClass(new_class): | 129 class DeprecatedClass(new_class): |
129 """FIXME: There might be a better way to handle old/new-style cl
ass | 130 """FIXME: There might be a better way to handle old/new-style cl
ass |
130 """ | 131 """ |
131 def __init__(self, *args, **kwargs): | 132 def __init__(self, *args, **kwargs): |
132 self.warn(version, message, stacklevel=3) | 133 warn(version, message, stacklevel=3) |
133 new_class.__init__(self, *args, **kwargs) | 134 new_class.__init__(self, *args, **kwargs) |
134 return DeprecatedClass | 135 return DeprecatedClass |
135 | 136 |
136 def class_moved(self, version, new_class, old_name=None, message=None): | 137 def class_moved(self, version, new_class, old_name=None, message=None): |
137 """nice wrapper around class_renamed when a class has been moved into | 138 """nice wrapper around class_renamed when a class has been moved into |
138 another module | 139 another module |
139 """ | 140 """ |
140 if old_name is None: | 141 if old_name is None: |
141 old_name = new_class.__name__ | 142 old_name = new_class.__name__ |
142 if message is None: | 143 if message is None: |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
179 sample.py:57: DeprecationWarning: Set is now replaced by set | 180 sample.py:57: DeprecationWarning: Set is now replaced by set |
180 s = Set() | 181 s = Set() |
181 >>> | 182 >>> |
182 """ | 183 """ |
183 return _defaultdeprecator.class_renamed(None, old_name, new_class, message) | 184 return _defaultdeprecator.class_renamed(None, old_name, new_class, message) |
184 | 185 |
185 def class_moved(new_class, old_name=None, message=None): | 186 def class_moved(new_class, old_name=None, message=None): |
186 return _defaultdeprecator.class_moved(None, new_class, old_name, message) | 187 return _defaultdeprecator.class_moved(None, new_class, old_name, message) |
187 class_moved.__doc__ = _defaultdeprecator.class_moved.__doc__ | 188 class_moved.__doc__ = _defaultdeprecator.class_moved.__doc__ |
188 | 189 |
OLD | NEW |