Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit8c8a257

Browse files
authored
[3.9]gh-121277: Allow .. versionadded:: next in docs (GH-121278) (#128117)
Make `versionchanged:: next`` expand to current (unreleased) version.When a new CPython release is cut, the release manager will replaceall such occurences of "next" with the just-released version.(See the issue for release-tools and devguide PRs.)Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>(cherry picked from commit7d24ea9)gh-121277: Raise nice error on `next` as second argument to deprecated-removed (GH-124623)(cherry-picked frome349f73)(cherry-picked from 3.11:f0895aa)(cherry-picked from 3.10:8773554)
1 parent340a82d commit8c8a257

File tree

2 files changed

+33
-5
lines changed

2 files changed

+33
-5
lines changed

‎Doc/tools/extensions/pyspecific.py

Lines changed: 31 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
fromsphinximportaddnodes
2424
fromsphinx.buildersimportBuilder
25+
fromsphinx.domains.changesetimportVersionChange
2526
try:
2627
fromsphinx.errorsimportNoUri
2728
exceptImportError:
@@ -332,7 +333,22 @@ def run(self):
332333
returnPyMethod.run(self)
333334

334335

335-
# Support for documenting version of removal in deprecations
336+
# Support for documenting version of changes, additions, deprecations
337+
338+
defexpand_version_arg(argument,release):
339+
"""Expand "next" to the current version"""
340+
ifargument=='next':
341+
returntranslators['sphinx'].gettext('{} (unreleased)').format(release)
342+
returnargument
343+
344+
345+
classPyVersionChange(VersionChange):
346+
defrun(self):
347+
# Replace the 'next' special token with the current development version
348+
self.arguments[0]=expand_version_arg(self.arguments[0],
349+
self.config.release)
350+
returnsuper().run()
351+
336352

337353
classDeprecatedRemoved(Directive):
338354
has_content=True
@@ -348,18 +364,24 @@ def run(self):
348364
node=addnodes.versionmodified()
349365
node.document=self.state.document
350366
node['type']='deprecated-removed'
351-
version= (self.arguments[0],self.arguments[1])
352-
node['version']=version
353367
env=self.state.document.settings.env
368+
version= (
369+
expand_version_arg(self.arguments[0],env.config.release),
370+
self.arguments[1],
371+
)
372+
ifversion[1]=='next':
373+
raiseValueError(
374+
'deprecated-removed:: second argument cannot be `next`')
375+
node['version']=version
354376
current_version=tuple(int(e)foreinenv.config.version.split('.'))
355-
removed_version=tuple(int(e)foreinself.arguments[1].split('.'))
377+
removed_version=tuple(int(e)foreinversion[1].split('.'))
356378
ifcurrent_version<removed_version:
357379
label=self._deprecated_label
358380
else:
359381
label=self._removed_label
360382

361383
label=translators['sphinx'].gettext(label)
362-
text=label.format(deprecated=self.arguments[0],removed=self.arguments[1])
384+
text=label.format(deprecated=version[0],removed=version[1])
363385
iflen(self.arguments)==3:
364386
inodes,messages=self.state.inline_text(self.arguments[2],
365387
self.lineno+1)
@@ -607,6 +629,10 @@ def setup(app):
607629
app.add_directive('availability',Availability)
608630
app.add_directive('audit-event',AuditEvent)
609631
app.add_directive('audit-event-table',AuditEventListDirective)
632+
app.add_directive('versionadded',PyVersionChange,override=True)
633+
app.add_directive('versionchanged',PyVersionChange,override=True)
634+
app.add_directive('versionremoved',PyVersionChange,override=True)
635+
app.add_directive('deprecated',PyVersionChange,override=True)
610636
app.add_directive('deprecated-removed',DeprecatedRemoved)
611637
app.add_builder(PydocTopicsBuilder)
612638
app.add_builder(suspicious.CheckSuspiciousMarkupBuilder)
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
Writers of CPython's documentation can now use ``next`` as the version for
2+
the ``versionchanged``, ``versionadded``, ``deprecated`` directives.

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp