Fix for Sphinx >= 1.4 compability.

This commit is contained in:
Robin Sommer 2016-10-27 08:59:05 -07:00
parent ce72a09c0c
commit 0d37c0df7b
3 changed files with 21 additions and 7 deletions

View file

@ -1,4 +1,8 @@
2.5-beta-114 | 2016-10-27 09:00:24 -0700
* Fix for Sphinx >= 1.4 compability. (Robin Sommer)
2.5-beta-113 | 2016-10-27 07:44:25 -0700 2.5-beta-113 | 2016-10-27 07:44:25 -0700
* XMPP: Fix detection of StartTLS when using namespaces. (Johanna * XMPP: Fix detection of StartTLS when using namespaces. (Johanna

View file

@ -1 +1 @@
2.5-beta-113 2.5-beta-114

View file

@ -14,6 +14,7 @@ from sphinx.locale import l_, _
from sphinx.directives import ObjectDescription from sphinx.directives import ObjectDescription
from sphinx.roles import XRefRole from sphinx.roles import XRefRole
from sphinx.util.nodes import make_refnode from sphinx.util.nodes import make_refnode
from sphinx import version_info
import string import string
from docutils import nodes from docutils import nodes
@ -32,6 +33,14 @@ class SeeDirective(Directive):
n.refs = string.split(string.join(self.content)) n.refs = string.split(string.join(self.content))
return [n] return [n]
# Wrapper for creating a tuple for index nodes, staying backwards
# compatible to Sphinx < 1.4:
def make_index_tuple(indextype, indexentry, targetname, targetname2):
if version_info >= (1, 4, 0, '', 0):
return (indextype, indexentry, targetname, targetname2, None)
else:
return (indextype, indexentry, targetname, targetname2)
def process_see_nodes(app, doctree, fromdocname): def process_see_nodes(app, doctree, fromdocname):
for node in doctree.traverse(see): for node in doctree.traverse(see):
content = [] content = []
@ -95,8 +104,9 @@ class BroGeneric(ObjectDescription):
indextext = self.get_index_text(self.objtype, name) indextext = self.get_index_text(self.objtype, name)
if indextext: if indextext:
self.indexnode['entries'].append(('single', indextext, self.indexnode['entries'].append(make_index_tuple('single',
targetname, targetname)) indextext, targetname,
targetname))
def get_index_text(self, objectname, name): def get_index_text(self, objectname, name):
return _('%s (%s)') % (name, self.objtype) return _('%s (%s)') % (name, self.objtype)
@ -120,9 +130,9 @@ class BroNamespace(BroGeneric):
self.update_type_map(name) self.update_type_map(name)
indextext = self.get_index_text(self.objtype, name) indextext = self.get_index_text(self.objtype, name)
self.indexnode['entries'].append(('single', indextext, self.indexnode['entries'].append(make_index_tuple('single', indextext,
targetname, targetname)) targetname, targetname))
self.indexnode['entries'].append(('single', self.indexnode['entries'].append(make_index_tuple('single',
"namespaces; %s" % (sig), "namespaces; %s" % (sig),
targetname, targetname)) targetname, targetname))
@ -148,7 +158,7 @@ class BroEnum(BroGeneric):
self.update_type_map(name) self.update_type_map(name)
indextext = self.get_index_text(self.objtype, name) indextext = self.get_index_text(self.objtype, name)
#self.indexnode['entries'].append(('single', indextext, #self.indexnode['entries'].append(make_index_tuple('single', indextext,
# targetname, targetname)) # targetname, targetname))
m = sig.split() m = sig.split()
@ -162,7 +172,7 @@ class BroEnum(BroGeneric):
self.env.domaindata['bro']['notices'] = [] self.env.domaindata['bro']['notices'] = []
self.env.domaindata['bro']['notices'].append( self.env.domaindata['bro']['notices'].append(
(m[0], self.env.docname, targetname)) (m[0], self.env.docname, targetname))
self.indexnode['entries'].append(('single', self.indexnode['entries'].append(make_index_tuple('single',
"%s (enum values); %s" % (m[1], m[0]), "%s (enum values); %s" % (m[1], m[0]),
targetname, targetname)) targetname, targetname))