root / ase / utils / deprecate.py @ 18
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) |