(self)
| 44 | ) |
| 45 | |
| 46 | def run(self) -> list[Node]: |
| 47 | # Replace the first two arguments (deprecated version and removed version) |
| 48 | # with a single tuple of both versions. |
| 49 | version_deprecated = expand_version_arg( |
| 50 | self.arguments[0], self.config.release |
| 51 | ) |
| 52 | version_removed = self.arguments.pop(1) |
| 53 | if version_removed == "next": |
| 54 | raise ValueError( |
| 55 | "deprecated-removed:: second argument cannot be `next`" |
| 56 | ) |
| 57 | self.arguments[0] = version_deprecated, version_removed |
| 58 | |
| 59 | # Set the label based on if we have reached the removal version |
| 60 | current_version = tuple(map(int, self.config.version.split("."))) |
| 61 | removed_version = tuple(map(int, version_removed.split("."))) |
| 62 | if current_version < removed_version: |
| 63 | versionlabels[self.name] = self._deprecated_label |
| 64 | versionlabel_classes[self.name] = "deprecated" |
| 65 | else: |
| 66 | versionlabels[self.name] = self._removed_label |
| 67 | versionlabel_classes[self.name] = "removed" |
| 68 | try: |
| 69 | return super().run() |
| 70 | finally: |
| 71 | # reset versionlabels and versionlabel_classes |
| 72 | versionlabels[self.name] = "" |
| 73 | versionlabel_classes[self.name] = "" |
| 74 | |
| 75 | |
| 76 | def setup(app: Sphinx) -> ExtensionMetadata: |
nothing calls this directly
no test coverage detected