14
14
15
15
from docutils import nodes , utils
16
16
17
- import sphinx
18
17
from sphinx .util .nodes import split_explicit_title
19
18
from sphinx .util .compat import Directive
20
19
from sphinx .writers .html import HTMLTranslator
21
20
from sphinx .writers .latex import LaTeXTranslator
22
- from sphinx .locale import versionlabels
23
21
24
22
# monkey-patch reST parser to disable alphabetic and roman enumerated lists
25
23
from docutils .parsers .rst .states import Body
28
26
Body .enum .converters ['lowerroman' ] = \
29
27
Body .enum .converters ['upperroman' ] = lambda x : None
30
28
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
-
45
29
# monkey-patch HTML and LaTeX translators to keep doctest blocks in the
46
30
# doctest docs themselves
47
31
orig_visit_literal_block = HTMLTranslator .visit_literal_block
@@ -174,10 +158,9 @@ def run(self):
174
158
content .line = node [0 ].line
175
159
content += node [0 ].children
176
160
node [0 ].replace_self (nodes .paragraph ('' , '' , content ))
177
- if not SPHINX11 :
178
161
node [0 ].insert (0 , nodes .inline ('' , '%s: ' % text ,
179
162
classes = ['versionmodified' ]))
180
- elif not SPHINX11 :
163
+ else :
181
164
para = nodes .paragraph ('' , '' ,
182
165
nodes .inline ('' , '%s.' % text , classes = ['versionmodified' ]))
183
166
if len (node ):
@@ -188,9 +171,6 @@ def run(self):
188
171
env .note_versionchange ('deprecated' , version [0 ], node , self .lineno )
189
172
return [node ] + messages
190
173
191
- # for Sphinx < 1.2
192
- versionlabels ['deprecated-removed' ] = DeprecatedRemoved ._label
193
-
194
174
195
175
# Support for including Misc/NEWS
196
176
@@ -289,14 +269,14 @@ def write(self, *ignored):
289
269
document .append (doctree .ids [labelid ])
290
270
destination = StringOutput (encoding = 'utf-8' )
291
271
writer .write (document , destination )
292
- self .topics [label ] = writer .output . encode ( 'utf-8' )
272
+ self .topics [label ] = writer .output
293
273
294
274
def finish (self ):
295
- f = open (path .join (self .outdir , 'topics.py' ), 'w ' )
275
+ f = open (path .join (self .outdir , 'topics.py' ), 'wb ' )
296
276
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' ) )
300
280
finally :
301
281
f .close ()
302
282
0 commit comments