@@ -110,6 +110,41 @@ def run(self):
110110 return PyClassmember .run (self )
111111
112112
113+ # Support for documenting version of removal in deprecations
114+
115+ from sphinx .locale import versionlabels
116+ from sphinx .util .compat import Directive
117+
118+ versionlabels ['deprecated-removed' ] = \
119+ 'Deprecated since version %s, will be removed in version %s'
120+
121+ class DeprecatedRemoved (Directive ):
122+ has_content = True
123+ required_arguments = 2
124+ optional_arguments = 1
125+ final_argument_whitespace = True
126+ option_spec = {}
127+
128+ def run (self ):
129+ node = addnodes .versionmodified ()
130+ node .document = self .state .document
131+ node ['type' ] = 'deprecated-removed'
132+ version = (self .arguments [0 ], self .arguments [1 ])
133+ node ['version' ] = version
134+ if len (self .arguments ) == 3 :
135+ inodes , messages = self .state .inline_text (self .arguments [2 ],
136+ self .lineno + 1 )
137+ node .extend (inodes )
138+ if self .content :
139+ self .state .nested_parse (self .content , self .content_offset , node )
140+ ret = [node ] + messages
141+ else :
142+ ret = [node ]
143+ env = self .state .document .settings .env
144+ env .note_versionchange ('deprecated' , version [0 ], node , self .lineno )
145+ return ret
146+
147+
113148# Support for building "topic help" for pydoc
114149
115150pydoc_topic_labels = [
@@ -202,6 +237,8 @@ def parse_opcode_signature(env, sig, signode):
202237 return opname .strip ()
203238
204239
240+ # Support for documenting pdb commands
241+
205242pdbcmd_sig_re = re .compile (r'([a-z()!]+)\s*(.*)' )
206243
207244# later...
@@ -228,6 +265,7 @@ def setup(app):
228265 app .add_role ('issue' , issue_role )
229266 app .add_role ('source' , source_role )
230267 app .add_directive ('impl-detail' , ImplementationDetail )
268+ app .add_directive ('deprecated-removed' , DeprecatedRemoved )
231269 app .add_builder (PydocTopicsBuilder )
232270 app .add_builder (suspicious .CheckSuspiciousMarkupBuilder )
233271 app .add_description_unit ('opcode' , 'opcode' , '%s (opcode)' ,
0 commit comments