# -*- coding: utf-8 -*- """ extension ~~~~~~~~~ A directive to create a box warning that a certain bit of Psycopg is an extension to the DBAPI 2.0. :copyright: Copyright 2010 by Daniele Varrazzo. """ from docutils import nodes from sphinx.util.compat import Directive, make_admonition class extension_node(nodes.Admonition, nodes.Element): pass class Extension(Directive): """ An extension entry, displayed as an admonition. """ has_content = True required_arguments = 0 optional_arguments = 0 final_argument_whitespace = False option_spec = {} def run(self): nodes = make_admonition(extension_node, self.name, [_('DB API extension')], self.options, self.content, self.lineno, self.content_offset, self.block_text, self.state, self.state_machine) nodes[0]['classes'].append('dbapi-extension') return nodes def visit_extension_node(self, node): self.visit_admonition(node) def depart_extension_node(self, node): self.depart_admonition(node) def setup(app): app.add_node(extension_node, html=(visit_extension_node, depart_extension_node), latex=(visit_extension_node, depart_extension_node), text=(visit_extension_node, depart_extension_node)) app.add_directive('extension', Extension)