diff options
Diffstat (limited to 'sphinx/domains/changeset.py')
-rw-r--r-- | sphinx/domains/changeset.py | 26 |
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]: |