Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 281d6ba

Browse files
committed
Add a deprecated-removed directive that allows to give the version of removal for deprecations.
1 parent 40d23e8 commit 281d6ba

1 file changed

Lines changed: 38 additions & 0 deletions

File tree

Doc/tools/sphinxext/pyspecific.py

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

115150
pydoc_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+
205242
pdbcmd_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

Comments
 (0)