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

# Content
1 """
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))