root / ase / utils / deprecate.py @ 7
Historique | Voir | Annoter | Télécharger (1,38 ko)
| 1 |
import warnings |
|---|---|
| 2 |
|
| 3 |
class Deprecate: |
| 4 |
def __init__(self, obj, name, newmodule, oldmodule='ase'): |
| 5 |
self.obj = obj
|
| 6 |
self.name = name
|
| 7 |
self.newmodule = newmodule
|
| 8 |
self.oldmodule = oldmodule
|
| 9 |
|
| 10 |
def __call__(self, *args, **kwargs): |
| 11 |
message = ('%s.%s is deprecated, use %s.%s instead' %
|
| 12 |
(self.oldmodule, self.name, self.newmodule, self.name)) |
| 13 |
warnings.warn(message, DeprecationWarning, stacklevel=2) |
| 14 |
return self.obj(*args, **kwargs) |
| 15 |
|
| 16 |
def _dep(method): |
| 17 |
def _method(self, *args): |
| 18 |
message = ('ase.%s is deprecated, use %s.%s instead' %
|
| 19 |
(self.name, self.newmodule, self.name)) |
| 20 |
warnings.warn(message, DeprecationWarning, stacklevel=2) |
| 21 |
return method(self, *args) |
| 22 |
return _method
|
| 23 |
|
| 24 |
class DeprecatedFloat(float): |
| 25 |
def __new__(cls, value, name, newmodule): |
| 26 |
return float.__new__(cls, value) |
| 27 |
|
| 28 |
def __init__(self, value, name, newmodule): |
| 29 |
self.name = name
|
| 30 |
self.newmodule = newmodule
|
| 31 |
|
| 32 |
__mul__ = _dep(float.__mul__)
|
| 33 |
__rmul__ = _dep(float.__rmul__)
|
| 34 |
__div__ = _dep(float.__div__)
|
| 35 |
__rdiv__ = _dep(float.__rdiv__)
|
| 36 |
|
| 37 |
class DeprecatedNumpyImport: |
| 38 |
def __init__(self): |
| 39 |
import numpy |
| 40 |
self.numpy = numpy
|
| 41 |
|
| 42 |
def __getattr__(self, key): |
| 43 |
warnings.warn('ase.np is deprecated; use import numpy as np instead')
|
| 44 |
return getattr(self.numpy, key) |