From 3ebfe640b78036890fe0ca513b78131fc5a6d6b4 Mon Sep 17 00:00:00 2001 From: Florian Dahlitz Date: Thu, 28 May 2020 15:21:03 +0200 Subject: [PATCH 1/4] bpo-40798: Generate a different message for already removed elements --- Doc/tools/extensions/pyspecific.py | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index bc51555fa0512b..4897686a349a71 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -35,6 +35,7 @@ # Support for checking for suspicious markup +import patchlevel import suspicious @@ -311,7 +312,11 @@ class DeprecatedRemoved(Directive): final_argument_whitespace = True option_spec = {} - _label = 'Deprecated since version {deprecated}, will be removed in version {removed}' + python_version = patchlevel.get_version_info()[0] + python_major, python_minor = map(int, python_version.split(".")) + + _deprecated_label = 'Deprecated since version {deprecated}, will be removed in version {removed}' + _removed_label = 'Deprecated since version {deprecated}, removed in version {removed}' def run(self): node = addnodes.versionmodified() @@ -319,7 +324,14 @@ def run(self): node['type'] = 'deprecated-removed' version = (self.arguments[0], self.arguments[1]) node['version'] = version - label = translators['sphinx'].gettext(self._label) + removed_major, removed_minor = map(int, self.arguments[1].split(".")) + if ( + removed_major < self.python_major or + (removed_major == self.python_major and removed_minor <= self.python_minor) + ): + label = translators['sphinx'].gettext(self._removed_label) + else: + label = translators['sphinx'].gettext(self._deprecated_label) text = label.format(deprecated=self.arguments[0], removed=self.arguments[1]) if len(self.arguments) == 3: inodes, messages = self.state.inline_text(self.arguments[2], From 040023f4986ba22a252ac936d04052d7c107d074 Mon Sep 17 00:00:00 2001 From: Florian Dahlitz Date: Thu, 28 May 2020 18:44:30 +0200 Subject: [PATCH 2/4] Simplify check as suggested by @remilapeyre --- Doc/tools/extensions/pyspecific.py | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index 4897686a349a71..c74a05b69e0f13 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -312,9 +312,6 @@ class DeprecatedRemoved(Directive): final_argument_whitespace = True option_spec = {} - python_version = patchlevel.get_version_info()[0] - python_major, python_minor = map(int, python_version.split(".")) - _deprecated_label = 'Deprecated since version {deprecated}, will be removed in version {removed}' _removed_label = 'Deprecated since version {deprecated}, removed in version {removed}' @@ -324,14 +321,15 @@ def run(self): node['type'] = 'deprecated-removed' version = (self.arguments[0], self.arguments[1]) node['version'] = version - removed_major, removed_minor = map(int, self.arguments[1].split(".")) - if ( - removed_major < self.python_major or - (removed_major == self.python_major and removed_minor <= self.python_minor) - ): - label = translators['sphinx'].gettext(self._removed_label) + env = self.state.document.settings.env + current_version = tuple(int(e) for e in env.config.version.split('.')) + removed_version = tuple(int(e) for e in self.arguments[1].split('.')) + if current_version < removed_version: + label = self._deprecated_label else: - label = translators['sphinx'].gettext(self._deprecated_label) + label = self._removed_label + + label = translators['sphinx'].gettext(label) text = label.format(deprecated=self.arguments[0], removed=self.arguments[1]) if len(self.arguments) == 3: inodes, messages = self.state.inline_text(self.arguments[2], From aa378f3fe841717cf37caf8b287ccbfad2f83a84 Mon Sep 17 00:00:00 2001 From: Florian Dahlitz Date: Thu, 28 May 2020 19:02:17 +0200 Subject: [PATCH 3/4] Remove unused import --- Doc/tools/extensions/pyspecific.py | 1 - 1 file changed, 1 deletion(-) diff --git a/Doc/tools/extensions/pyspecific.py b/Doc/tools/extensions/pyspecific.py index c74a05b69e0f13..46064fa3b6b00c 100644 --- a/Doc/tools/extensions/pyspecific.py +++ b/Doc/tools/extensions/pyspecific.py @@ -35,7 +35,6 @@ # Support for checking for suspicious markup -import patchlevel import suspicious From 6b7b016ebf71f3c9362c42e8e1026d626f527f43 Mon Sep 17 00:00:00 2001 From: Florian Dahlitz Date: Fri, 29 May 2020 23:09:15 +0200 Subject: [PATCH 4/4] Add _removed_label text for translation --- Doc/tools/templates/dummy.html | 1 + 1 file changed, 1 insertion(+) diff --git a/Doc/tools/templates/dummy.html b/Doc/tools/templates/dummy.html index 8d94137b01b519..68ae3ad148ec27 100644 --- a/Doc/tools/templates/dummy.html +++ b/Doc/tools/templates/dummy.html @@ -5,3 +5,4 @@ {% trans %}CPython implementation detail:{% endtrans %} {% trans %}Deprecated since version {deprecated}, will be removed in version {removed}{% endtrans %} +{% trans %}Deprecated since version {deprecated}, removed in version {removed}{% endtrans %}