1616
1717import sphinx
1818from sphinx .util .nodes import split_explicit_title
19+ from sphinx .util .compat import Directive
1920from sphinx .writers .html import HTMLTranslator
2021from sphinx .writers .latex import LaTeXTranslator
2122from sphinx .locale import versionlabels
2728 Body .enum .converters ['lowerroman' ] = \
2829 Body .enum .converters ['upperroman' ] = lambda x : None
2930
30- if sphinx .__version__ [:3 ] < '1.2' :
31+ SPHINX11 = sphinx .__version__ [:3 ] < '1.2'
32+
33+ if SPHINX11 :
3134 # monkey-patch HTML translator to give versionmodified paragraphs a class
3235 def new_visit_versionmodified (self , node ):
3336 self .body .append (self .starttag (node , 'p' , CLASS = node ['type' ]))
@@ -88,8 +91,6 @@ def source_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
8891
8992# Support for marking up implementation details
9093
91- from sphinx .util .compat import Directive
92-
9394class ImplementationDetail (Directive ):
9495
9596 has_content = True
@@ -142,10 +143,6 @@ def run(self):
142143
143144# Support for documenting version of removal in deprecations
144145
145- from sphinx .locale import versionlabels
146- from sphinx .util .compat import Directive
147-
148-
149146class DeprecatedRemoved (Directive ):
150147 has_content = True
151148 required_arguments = 2
@@ -171,23 +168,26 @@ def run(self):
171168 messages = []
172169 if self .content :
173170 self .state .nested_parse (self .content , self .content_offset , node )
174- if len (node ):
175171 if isinstance (node [0 ], nodes .paragraph ) and node [0 ].rawsource :
176172 content = nodes .inline (node [0 ].rawsource , translatable = True )
177173 content .source = node [0 ].source
178174 content .line = node [0 ].line
179175 content += node [0 ].children
180176 node [0 ].replace_self (nodes .paragraph ('' , '' , content ))
181- node [0 ].insert (0 , nodes .inline ('' , '%s: ' % text ,
182- classes = ['versionmodified' ]))
183- else :
177+ if not SPHINX11 :
178+ node [0 ].insert (0 , nodes .inline ('' , '%s: ' % text ,
179+ classes = ['versionmodified' ]))
180+ elif not SPHINX11 :
184181 para = nodes .paragraph ('' , '' ,
185182 nodes .inline ('' , '%s.' % text , classes = ['versionmodified' ]))
186183 node .append (para )
187184 env = self .state .document .settings .env
188185 env .note_versionchange ('deprecated' , version [0 ], node , self .lineno )
189186 return [node ] + messages
190187
188+ # for Sphinx < 1.2
189+ versionlabels ['deprecated-removed' ] = DeprecatedRemoved ._label
190+
191191
192192# Support for including Misc/NEWS
193193
0 commit comments