summaryrefslogtreecommitdiff
path: root/sphinx/deprecation.py
diff options
context:
space:
mode:
authorTakeshi KOMIYA <i.tkomiya@gmail.com>2018-02-24 16:42:48 +0900
committerTakeshi KOMIYA <i.tkomiya@gmail.com>2018-03-03 02:54:54 +0900
commit50ffe5b7c2e58b80ac379d8a1d300d12e5bf471f (patch)
treeb425af2833b94f8c4f581232db8c145f15b3a706 /sphinx/deprecation.py
parent80176cdc7666738e5f5ebbef493a96399ec82e15 (diff)
downloadsphinx-git-50ffe5b7c2e58b80ac379d8a1d300d12e5bf471f.tar.gz
refactor: Move versionlabels to sphinx.directives.other
Diffstat (limited to 'sphinx/deprecation.py')
-rw-r--r--sphinx/deprecation.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/sphinx/deprecation.py b/sphinx/deprecation.py
index cd6e1ae2a..905d19a07 100644
--- a/sphinx/deprecation.py
+++ b/sphinx/deprecation.py
@@ -9,6 +9,8 @@
:license: BSD, see LICENSE for details.
"""
+import warnings
+
class RemovedInSphinx18Warning(DeprecationWarning):
pass
@@ -27,3 +29,38 @@ class RemovedInSphinx30Warning(PendingDeprecationWarning):
RemovedInNextVersionWarning = RemovedInSphinx18Warning
+
+
+class DeprecatedDict(dict):
+ """A deprecated dict which warns on each access."""
+
+ def __init__(self, data, message, warning):
+ # type: (Dict, str, DeprecationWarning) -> None
+ self.message = message
+ self.warning = warning
+ super(DeprecatedDict, self).__init__(data)
+
+ def __setitem__(self, key, value):
+ # type: (unicode, Any) -> None
+ warnings.warn(self.message, self.warning)
+ super(DeprecatedDict, self).__setitem__(key, value)
+
+ def setdefault(self, key, default=None):
+ # type: (unicode, Any) -> None
+ warnings.warn(self.message, self.warning)
+ return super(DeprecatedDict, self).setdefault(key, default)
+
+ def __getitem__(self, key):
+ # type: (unicode, Any) -> None
+ warnings.warn(self.message, self.warning)
+ return super(DeprecatedDict, self).__getitem__(key)
+
+ def get(self, key, default=None):
+ # type: (unicode, Any) -> None
+ warnings.warn(self.message, self.warning)
+ return super(DeprecatedDict, self).get(key, default)
+
+ def update(self, other=None): # type: ignore
+ # type: (Dict) -> None
+ warnings.warn(self.message, self.warning)
+ super(DeprecatedDict, self).update(other)