ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/src/vendor/jansson/dist/doc/ext/refcounting.py
Revision: 7201
Committed: Sun Aug 2 14:24:45 2015 UTC (8 years, 9 months ago) by laffer1
Content type: text/x-python
File size: 1715 byte(s)
Log Message:
add jansson 2.7

File Contents

# User Rev Content
1 laffer1 7201 """
2     refcounting
3     ~~~~~~~~~~~
4    
5     Reference count annotations for C API functions. Has the same
6     result as the sphinx.ext.refcounting extension but works for all
7     functions regardless of the signature, and the reference counting
8     information is written inline with the documentation instead of a
9     separate file.
10    
11     Adds a new directive "refcounting". The directive has no content
12     and one required positional parameter:: "new" or "borrow".
13    
14     Example:
15    
16     .. cfunction:: json_t *json_object(void)
17    
18     .. refcounting:: new
19    
20     <description of the json_object function>
21    
22     :copyright: Copyright (c) 2009-2014 Petri Lehtinen <petri@digip.org>
23     :license: MIT, see LICENSE for details.
24     """
25    
26     from docutils import nodes
27    
28     class refcounting(nodes.emphasis): pass
29    
30     def visit(self, node):
31     self.visit_emphasis(node)
32    
33     def depart(self, node):
34     self.depart_emphasis(node)
35    
36     def html_visit(self, node):
37     self.body.append(self.starttag(node, 'em', '', CLASS='refcount'))
38    
39     def html_depart(self, node):
40     self.body.append('</em>')
41    
42    
43     def refcounting_directive(name, arguments, options, content, lineno,
44     content_offset, block_text, state, state_machine):
45     if arguments[0] == 'borrow':
46     text = 'Return value: Borrowed reference.'
47     elif arguments[0] == 'new':
48     text = 'Return value: New reference.'
49     else:
50     raise Error('Valid arguments: new, borrow')
51    
52     return [refcounting(text, text)]
53    
54     def setup(app):
55     app.add_node(refcounting,
56     html=(html_visit, html_depart),
57     latex=(visit, depart),
58     text=(visit, depart))
59     app.add_directive('refcounting', refcounting_directive, 0, (1, 0, 0))