mirror of
https://github.com/sphinx-doc/sphinx.git
synced 2025-02-25 18:55:22 -06:00
Migrate to py3 style type annotation: sphinx.domains.changeset
This commit is contained in:
parent
62e5f6935b
commit
6c47f7d4a2
@ -9,9 +9,11 @@
|
|||||||
"""
|
"""
|
||||||
|
|
||||||
from collections import namedtuple
|
from collections import namedtuple
|
||||||
|
from typing import Any, Dict, List
|
||||||
from typing import cast
|
from typing import cast
|
||||||
|
|
||||||
from docutils import nodes
|
from docutils import nodes
|
||||||
|
from docutils.nodes import Node
|
||||||
|
|
||||||
from sphinx import addnodes
|
from sphinx import addnodes
|
||||||
from sphinx import locale
|
from sphinx import locale
|
||||||
@ -23,9 +25,8 @@ from sphinx.util.docutils import SphinxDirective
|
|||||||
|
|
||||||
if False:
|
if False:
|
||||||
# For type annotation
|
# For type annotation
|
||||||
from typing import Any, Dict, List # NOQA
|
from sphinx.application import Sphinx
|
||||||
from sphinx.application import Sphinx # NOQA
|
from sphinx.environment import BuildEnvironment
|
||||||
from sphinx.environment import BuildEnvironment # NOQA
|
|
||||||
|
|
||||||
|
|
||||||
versionlabels = {
|
versionlabels = {
|
||||||
@ -63,8 +64,7 @@ class VersionChange(SphinxDirective):
|
|||||||
final_argument_whitespace = True
|
final_argument_whitespace = True
|
||||||
option_spec = {} # type: Dict
|
option_spec = {} # type: Dict
|
||||||
|
|
||||||
def run(self):
|
def run(self) -> List[Node]:
|
||||||
# type: () -> List[nodes.Node]
|
|
||||||
node = addnodes.versionmodified()
|
node = addnodes.versionmodified()
|
||||||
node.document = self.state.document
|
node.document = self.state.document
|
||||||
self.set_source_info(node)
|
self.set_source_info(node)
|
||||||
@ -102,7 +102,7 @@ class VersionChange(SphinxDirective):
|
|||||||
domain = cast(ChangeSetDomain, self.env.get_domain('changeset'))
|
domain = cast(ChangeSetDomain, self.env.get_domain('changeset'))
|
||||||
domain.note_changeset(node)
|
domain.note_changeset(node)
|
||||||
|
|
||||||
ret = [node] # type: List[nodes.Node]
|
ret = [node] # type: List[Node]
|
||||||
ret += messages
|
ret += messages
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
@ -117,15 +117,13 @@ class ChangeSetDomain(Domain):
|
|||||||
'changes': {}, # version -> list of ChangeSet
|
'changes': {}, # version -> list of ChangeSet
|
||||||
} # type: Dict
|
} # type: Dict
|
||||||
|
|
||||||
def clear_doc(self, docname):
|
def clear_doc(self, docname: str) -> None:
|
||||||
# type: (str) -> None
|
|
||||||
for version, changes in self.data['changes'].items():
|
for version, changes in self.data['changes'].items():
|
||||||
for changeset in changes[:]:
|
for changeset in changes[:]:
|
||||||
if changeset.docname == docname:
|
if changeset.docname == docname:
|
||||||
changes.remove(changeset)
|
changes.remove(changeset)
|
||||||
|
|
||||||
def merge_domaindata(self, docnames, otherdata):
|
def merge_domaindata(self, docnames: List[str], otherdata: Dict) -> None:
|
||||||
# type: (List[str], Dict) -> None
|
|
||||||
# XXX duplicates?
|
# XXX duplicates?
|
||||||
for version, otherchanges in otherdata['changes'].items():
|
for version, otherchanges in otherdata['changes'].items():
|
||||||
changes = self.data['changes'].setdefault(version, [])
|
changes = self.data['changes'].setdefault(version, [])
|
||||||
@ -133,12 +131,10 @@ class ChangeSetDomain(Domain):
|
|||||||
if changeset.docname in docnames:
|
if changeset.docname in docnames:
|
||||||
changes.append(changeset)
|
changes.append(changeset)
|
||||||
|
|
||||||
def process_doc(self, env, docname, document):
|
def process_doc(self, env: "BuildEnvironment", docname: str, document: nodes.document) -> None: # NOQA
|
||||||
# type: (BuildEnvironment, str, nodes.document) -> None
|
|
||||||
pass # nothing to do here. All changesets are registered on calling directive.
|
pass # nothing to do here. All changesets are registered on calling directive.
|
||||||
|
|
||||||
def note_changeset(self, node):
|
def note_changeset(self, node: addnodes.versionmodified) -> None:
|
||||||
# type: (addnodes.versionmodified) -> None
|
|
||||||
version = node['version']
|
version = node['version']
|
||||||
module = self.env.ref_context.get('py:module')
|
module = self.env.ref_context.get('py:module')
|
||||||
objname = self.env.temp_data.get('object')
|
objname = self.env.temp_data.get('object')
|
||||||
@ -146,13 +142,11 @@ class ChangeSetDomain(Domain):
|
|||||||
module, objname, node.astext())
|
module, objname, node.astext())
|
||||||
self.data['changes'].setdefault(version, []).append(changeset)
|
self.data['changes'].setdefault(version, []).append(changeset)
|
||||||
|
|
||||||
def get_changesets_for(self, version):
|
def get_changesets_for(self, version: str) -> List[ChangeSet]:
|
||||||
# type: (str) -> List[ChangeSet]
|
|
||||||
return self.data['changes'].get(version, [])
|
return self.data['changes'].get(version, [])
|
||||||
|
|
||||||
|
|
||||||
def setup(app):
|
def setup(app: "Sphinx") -> Dict[str, Any]:
|
||||||
# type: (Sphinx) -> Dict[str, Any]
|
|
||||||
app.add_domain(ChangeSetDomain)
|
app.add_domain(ChangeSetDomain)
|
||||||
app.add_directive('deprecated', VersionChange)
|
app.add_directive('deprecated', VersionChange)
|
||||||
app.add_directive('versionadded', VersionChange)
|
app.add_directive('versionadded', VersionChange)
|
||||||
|
Loading…
Reference in New Issue
Block a user