@@ -33,14 +33,31 @@ def run(self) -> list[Node]:
3333 return super ().run ()
3434
3535
36+ class TerribleHashableDictHack :
37+ def __init__ (self , deprecated , removed ):
38+ self .deprecated = deprecated
39+ self .removed = removed
40+
41+ def __hash__ (self ):
42+ return hash ((self .deprecated , self .removed ))
43+
44+ def __getitem__ (self , name ):
45+ return getattr (self , name )
46+
47+
48+ class FormatToPctTranslator :
49+ def __getitem__ (self , name ):
50+ return f'%({ name } )s'
51+
52+
3653class DeprecatedRemoved (VersionChange ):
3754 required_arguments = 2
3855
3956 _deprecated_label = sphinx_gettext (
40- "Deprecated since version %s , will be removed in version %s "
57+ "Deprecated since version {deprecated} , will be removed in version {removed} "
4158 )
4259 _removed_label = sphinx_gettext (
43- "Deprecated since version %s , removed in version %s "
60+ "Deprecated since version {deprecated} , removed in version {removed} "
4461 )
4562
4663 def run (self ) -> list [Node ]:
@@ -54,16 +71,23 @@ def run(self) -> list[Node]:
5471 raise ValueError (
5572 "deprecated-removed:: second argument cannot be `next`"
5673 )
57- self .arguments [0 ] = version_deprecated , version_removed
74+ self .arguments [0 ] = TerribleHashableDictHack (
75+ deprecated = version_deprecated ,
76+ removed = version_removed ,
77+ )
5878
5979 # Set the label based on if we have reached the removal version
6080 current_version = tuple (map (int , self .config .version .split ("." )))
6181 removed_version = tuple (map (int , version_removed .split ("." )))
6282 if current_version < removed_version :
63- versionlabels [self .name ] = self ._deprecated_label
83+ versionlabels [self .name ] = self ._deprecated_label .format_map (
84+ FormatToPctTranslator ()
85+ )
6486 versionlabel_classes [self .name ] = "deprecated"
6587 else :
66- versionlabels [self .name ] = self ._removed_label
88+ versionlabels [self .name ] = self ._removed_label .format_map (
89+ FormatToPctTranslator ()
90+ )
6791 versionlabel_classes [self .name ] = "removed"
6892 try :
6993 return super ().run ()
0 commit comments