1414
1515from docutils import nodes , utils
1616
17- import sphinx
1817from sphinx .util .nodes import split_explicit_title
1918from sphinx .util .compat import Directive
2019from sphinx .writers .html import HTMLTranslator
2120from sphinx .writers .latex import LaTeXTranslator
22- from sphinx .locale import versionlabels
2321
2422# monkey-patch reST parser to disable alphabetic and roman enumerated lists
2523from docutils .parsers .rst .states import Body
2826 Body .enum .converters ['lowerroman' ] = \
2927 Body .enum .converters ['upperroman' ] = lambda x : None
3028
31- SPHINX11 = sphinx .__version__ [:3 ] < '1.2'
32-
33- if SPHINX11 :
34- # monkey-patch HTML translator to give versionmodified paragraphs a class
35- def new_visit_versionmodified (self , node ):
36- self .body .append (self .starttag (node , 'p' , CLASS = node ['type' ]))
37- text = versionlabels [node ['type' ]] % node ['version' ]
38- if len (node ):
39- text += ':'
40- else :
41- text += '.'
42- self .body .append ('<span class="versionmodified">%s</span> ' % text )
43- HTMLTranslator .visit_versionmodified = new_visit_versionmodified
44-
4529# monkey-patch HTML and LaTeX translators to keep doctest blocks in the
4630# doctest docs themselves
4731orig_visit_literal_block = HTMLTranslator .visit_literal_block
@@ -174,10 +158,9 @@ def run(self):
174158 content .line = node [0 ].line
175159 content += node [0 ].children
176160 node [0 ].replace_self (nodes .paragraph ('' , '' , content ))
177- if not SPHINX11 :
178161 node [0 ].insert (0 , nodes .inline ('' , '%s: ' % text ,
179162 classes = ['versionmodified' ]))
180- elif not SPHINX11 :
163+ else :
181164 para = nodes .paragraph ('' , '' ,
182165 nodes .inline ('' , '%s.' % text , classes = ['versionmodified' ]))
183166 if len (node ):
@@ -188,9 +171,6 @@ def run(self):
188171 env .note_versionchange ('deprecated' , version [0 ], node , self .lineno )
189172 return [node ] + messages
190173
191- # for Sphinx < 1.2
192- versionlabels ['deprecated-removed' ] = DeprecatedRemoved ._label
193-
194174
195175# Support for including Misc/NEWS
196176
@@ -289,14 +269,14 @@ def write(self, *ignored):
289269 document .append (doctree .ids [labelid ])
290270 destination = StringOutput (encoding = 'utf-8' )
291271 writer .write (document , destination )
292- self .topics [label ] = writer .output . encode ( 'utf-8' )
272+ self .topics [label ] = writer .output
293273
294274 def finish (self ):
295- f = open (path .join (self .outdir , 'topics.py' ), 'w ' )
275+ f = open (path .join (self .outdir , 'topics.py' ), 'wb ' )
296276 try :
297- f .write ('# -*- coding: utf-8 -*-\n ' )
298- f .write ('# Autogenerated by Sphinx on %s\n ' % asctime ())
299- f .write ('topics = ' + pformat (self .topics ) + '\n ' )
277+ f .write ('# -*- coding: utf-8 -*-\n ' . encode ( 'utf-8' ) )
278+ f .write (( '# Autogenerated by Sphinx on %s\n ' % asctime ()). encode ( 'utf-8' ))
279+ f .write (( 'topics = ' + pformat (self .topics ) + '\n ' ). encode ( 'utf-8' ) )
300280 finally :
301281 f .close ()
302282
0 commit comments