summaryrefslogtreecommitdiff
path: root/ot/deprecation.py
diff options
context:
space:
mode:
Diffstat (limited to 'ot/deprecation.py')
-rw-r--r--ot/deprecation.py103
1 files changed, 0 insertions, 103 deletions
diff --git a/ot/deprecation.py b/ot/deprecation.py
deleted file mode 100644
index 2b16427..0000000
--- a/ot/deprecation.py
+++ /dev/null
@@ -1,103 +0,0 @@
-"""
- deprecated class from scikit-learn package
- https://github.com/scikit-learn/scikit-learn/blob/master/sklearn/utils/deprecation.py
-"""
-
-import sys
-import warnings
-
-__all__ = ["deprecated", ]
-
-
-class deprecated(object):
- """Decorator to mark a function or class as deprecated.
- Issue a warning when the function is called/the class is instantiated and
- adds a warning to the docstring.
- The optional extra argument will be appended to the deprecation message
- and the docstring. Note: to use this with the default value for extra, put
- in an empty of parentheses:
- >>> from ot.deprecation import deprecated
- >>> @deprecated()
- ... def some_function(): pass
-
- Parameters
- ----------
- extra : string
- to be added to the deprecation messages
- """
-
- # Adapted from http://wiki.python.org/moin/PythonDecoratorLibrary,
- # but with many changes.
-
- def __init__(self, extra=''):
- self.extra = extra
-
- def __call__(self, obj):
- """Call method
- Parameters
- ----------
- obj : object
- """
- if isinstance(obj, type):
- return self._decorate_class(obj)
- else:
- return self._decorate_fun(obj)
-
- def _decorate_class(self, cls):
- msg = "Class %s is deprecated" % cls.__name__
- if self.extra:
- msg += "; %s" % self.extra
-
- # FIXME: we should probably reset __new__ for full generality
- init = cls.__init__
-
- def wrapped(*args, **kwargs):
- warnings.warn(msg, category=DeprecationWarning)
- return init(*args, **kwargs)
-
- cls.__init__ = wrapped
-
- wrapped.__name__ = '__init__'
- wrapped.__doc__ = self._update_doc(init.__doc__)
- wrapped.deprecated_original = init
-
- return cls
-
- def _decorate_fun(self, fun):
- """Decorate function fun"""
-
- msg = "Function %s is deprecated" % fun.__name__
- if self.extra:
- msg += "; %s" % self.extra
-
- def wrapped(*args, **kwargs):
- warnings.warn(msg, category=DeprecationWarning)
- return fun(*args, **kwargs)
-
- wrapped.__name__ = fun.__name__
- wrapped.__dict__ = fun.__dict__
- wrapped.__doc__ = self._update_doc(fun.__doc__)
-
- return wrapped
-
- def _update_doc(self, olddoc):
- newdoc = "DEPRECATED"
- if self.extra:
- newdoc = "%s: %s" % (newdoc, self.extra)
- if olddoc:
- newdoc = "%s\n\n%s" % (newdoc, olddoc)
- return newdoc
-
-
-def _is_deprecated(func):
- """Helper to check if func is wraped by our deprecated decorator"""
- if sys.version_info < (3, 5):
- raise NotImplementedError("This is only available for python3.5 "
- "or above")
- closures = getattr(func, '__closure__', [])
- if closures is None:
- closures = []
- is_deprecated = ('deprecated' in ''.join([c.cell_contents
- for c in closures
- if isinstance(c.cell_contents, str)]))
- return is_deprecated