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.py26
1 files changed, 15 insertions, 11 deletions
diff --git a/sphinx/domains/changeset.py b/sphinx/domains/changeset.py
index f11b513e2..067587a96 100644
--- a/sphinx/domains/changeset.py
+++ b/sphinx/domains/changeset.py
@@ -108,8 +108,20 @@ class ChangeSetDomain(Domain):
'changes': {}, # version -> list of ChangeSet
} # type: Dict
+ @property
+ def changesets(self) -> Dict[str, List[ChangeSet]]:
+ return self.data.setdefault('changes', {}) # version -> list of ChangeSet
+
+ def note_changeset(self, node: 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,
+ module, objname, node.astext())
+ self.changesets.setdefault(version, []).append(changeset)
+
def clear_doc(self, docname: str) -> None:
- for version, changes in self.data['changes'].items():
+ for version, changes in self.changesets.items():
for changeset in changes[:]:
if changeset.docname == docname:
changes.remove(changeset)
@@ -117,7 +129,7 @@ class ChangeSetDomain(Domain):
def merge_domaindata(self, docnames: List[str], otherdata: Dict) -> None:
# XXX duplicates?
for version, otherchanges in otherdata['changes'].items():
- changes = self.data['changes'].setdefault(version, [])
+ changes = self.changesets.setdefault(version, [])
for changeset in otherchanges:
if changeset.docname in docnames:
changes.append(changeset)
@@ -125,16 +137,8 @@ class ChangeSetDomain(Domain):
def process_doc(self, env: "BuildEnvironment", docname: str, document: nodes.document) -> None: # NOQA
pass # nothing to do here. All changesets are registered on calling directive.
- def note_changeset(self, node: 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,
- module, objname, node.astext())
- self.data['changes'].setdefault(version, []).append(changeset)
-
def get_changesets_for(self, version: str) -> List[ChangeSet]:
- return self.data['changes'].get(version, [])
+ return self.changesets.get(version, [])
def setup(app: "Sphinx") -> Dict[str, Any]: