merge with 3.3

This commit is contained in:
Georg Brandl 2012-09-30 15:10:34 +02:00
commit 7ef90a1a37
5 changed files with 83 additions and 3 deletions

View file

@ -145,6 +145,45 @@ def run(self):
return ret
# Support for including Misc/NEWS
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]+)')
class MiscNews(Directive):
has_content = False
required_arguments = 1
optional_arguments = 0
final_argument_whitespace = False
option_spec = {}
def run(self):
fname = self.arguments[0]
source = self.state_machine.input_lines.source(
self.lineno - self.state_machine.input_offset - 1)
source_dir = path.dirname(path.abspath(source))
try:
fp = codecs.open(path.join(source_dir, fname), encoding='utf-8')
try:
content = fp.read()
finally:
fp.close()
except Exception:
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)
# remove first 3 lines as they are the main heading
lines = content.splitlines()[3:]
self.state_machine.insert_input(lines, fname)
return []
# Support for building "topic help" for pydoc
pydoc_topic_labels = [
@ -276,3 +315,4 @@ def setup(app):
app.add_description_unit('2to3fixer', '2to3fixer', '%s (2to3 fixer)')
app.add_directive_to_domain('py', 'decorator', PyDecoratorFunction)
app.add_directive_to_domain('py', 'decoratormethod', PyDecoratorMethod)
app.add_directive('miscnews', MiscNews)