import re
import codecs
-from docutils.statemachine import string2lines
-from sphinx.util.nodes import nested_parse_with_titles
-issue_re = re.compile('Issue #([0-9]+)')
+issue_re = re.compile('([Ii])ssue #([0-9]+)')
+whatsnew_re = re.compile(r"(?im)^what's new in (.*?)\??$")
class MiscNews(Directive):
has_content = False
source = self.state_machine.input_lines.source(
self.lineno - self.state_machine.input_offset - 1)
source_dir = path.dirname(path.abspath(source))
+ fpath = path.join(source_dir, fname)
+ self.state.document.settings.record_dependencies.add(fpath)
try:
- fp = codecs.open(path.join(source_dir, fname), encoding='utf-8')
+ fp = codecs.open(fpath, encoding='utf-8')
try:
content = fp.read()
finally:
text = 'The NEWS file is not available.'
node = nodes.strong(text, text)
return [node]
- content = issue_re.sub(r'`Issue #\1 <http://bugs.python.org/\1>`__',
+ content = issue_re.sub(r'`\1ssue #\2 <http://bugs.python.org/\2>`__',
content)
+ content = whatsnew_re.sub(r'\1', content)
# remove first 3 lines as they are the main heading
lines = content.splitlines()[3:]
self.state_machine.insert_input(lines, fname)
2.1.rst
2.0.rst
-The "Python News" is a HTML version of the file :source:`Misc/NEWS` which
-contains *all* nontrivial changes to Python.
+The "Changelog" is a HTML version of the file :source:`Misc/NEWS` which
+contains *all* nontrivial changes to Python for the current version.
.. toctree::
- :maxdepth: 1
+ :maxdepth: 2
- news.rst
+ changelog.rst
- Issue #15509: webbrowser.UnixBrowser no longer passes empty arguments to
Popen when %action substitutions produce empty strings.
-- Issues #12776, #11839: call argparse type function (specified by add_argument)
+- Issue #12776, issue #11839: call argparse type function (specified by add_argument)
only once. Before, the type function was called twice in the case where the
default was specified and the argument was given as well. This was especially
problematic for the FileType type, as a default file would always be opened,