summaryrefslogtreecommitdiff
path: root/sphinx/domains/changeset.py
diff options
context:
space:
mode:
Diffstat (limited to 'sphinx/domains/changeset.py')
-rw-r--r--sphinx/domains/changeset.py36
1 files changed, 20 insertions, 16 deletions
diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py
index ed878b1d3..1c38ee2af 100644
--- a/sphinx/domains/changeset.py
+++ b/sphinx/domains/changeset.py
@@ -9,10 +9,9 @@
:license: BSD, see LICENSE for details.
"""
-from typing import NamedTuple
+from typing import NamedTuple, cast
from docutils import nodes
-from six import iteritems
from sphinx import addnodes
from sphinx import locale
@@ -34,7 +33,7 @@ versionlabels = {
'versionadded': _('New in version %s'),
'versionchanged': _('Changed in version %s'),
'deprecated': _('Deprecated since version %s'),
-} # type: Dict[unicode, unicode]
+}
locale.versionlabels = DeprecatedDict(
versionlabels,
@@ -87,8 +86,9 @@ class VersionChange(SphinxDirective):
content.line = node[0].line
content += node[0].children
node[0].replace_self(nodes.paragraph('', '', content, translatable=False))
- node[0].insert(0, nodes.inline('', '%s: ' % text,
- classes=['versionmodified']))
+
+ para = cast(nodes.paragraph, node[0])
+ para.insert(0, nodes.inline('', '%s: ' % text, classes=['versionmodified']))
else:
para = nodes.paragraph('', '',
nodes.inline('', '%s.' % text,
@@ -96,8 +96,12 @@ class VersionChange(SphinxDirective):
translatable=False)
node.append(para)
- self.env.get_domain('changeset').note_changeset(node) # type: ignore
- return [node] + messages
+ domain = cast(ChangeSetDomain, self.env.get_domain('changeset'))
+ domain.note_changeset(node)
+
+ ret = [node] # type: List[nodes.Node]
+ ret += messages
+ return ret
class ChangeSetDomain(Domain):
@@ -111,41 +115,41 @@ class ChangeSetDomain(Domain):
} # type: Dict
def clear_doc(self, docname):
- # type: (unicode) -> None
- for version, changes in iteritems(self.data['changes']):
+ # type: (str) -> None
+ for version, changes in self.data['changes'].items():
for changeset in changes[:]:
if changeset.docname == docname:
changes.remove(changeset)
def merge_domaindata(self, docnames, otherdata):
- # type: (List[unicode], Dict) -> None
+ # type: (List[str], Dict) -> None
# XXX duplicates?
- for version, otherchanges in iteritems(otherdata['changes']):
+ for version, otherchanges in otherdata['changes'].items():
changes = self.data['changes'].setdefault(version, [])
for changeset in otherchanges:
if changeset.docname in docnames:
changes.append(changeset)
def process_doc(self, env, docname, document):
- # type: (BuildEnvironment, unicode, nodes.Node) -> None
+ # type: (BuildEnvironment, str, nodes.document) -> None
pass # nothing to do here. All changesets are registered on calling directive.
def note_changeset(self, node):
- # type: (nodes.Node) -> None
+ # type: (addnodes.versionmodified) -> None
version = node['version']
module = self.env.ref_context.get('py:module')
objname = self.env.temp_data.get('object')
- changeset = ChangeSet(node['type'], self.env.docname, node.line, # type: ignore
+ changeset = ChangeSet(node['type'], self.env.docname, node.line,
module, objname, node.astext())
self.data['changes'].setdefault(version, []).append(changeset)
def get_changesets_for(self, version):
- # type: (unicode) -> List[ChangeSet]
+ # type: (str) -> List[ChangeSet]
return self.data['changes'].get(version, [])
def setup(app):
- # type: (Sphinx) -> Dict[unicode, Any]
+ # type: (Sphinx) -> Dict[str, Any]
app.add_domain(ChangeSetDomain)
app.add_directive('deprecated', VersionChange)
app.add_directive('versionadded', VersionChange)