DebugInfo: Separate out the addition of subprogram attribute additions so that they...
[oota-llvm.git] / bindings / python / README.txt
1 This directory contains Python bindings for LLVM's C library.
2
3 The bindings are currently a work in progress and are far from complete.
4 Use at your own risk.
5
6 Developer Info
7 ==============
8
9 The single Python package is "llvm." Modules inside this package roughly
10 follow the names of the modules/headers defined by LLVM's C API.
11
12 Testing
13 -------
14
15 All test code is location in llvm/tests. Tests are written as classes
16 which inherit from llvm.tests.base.TestBase, which is a convenience base
17 class that provides common functionality.
18
19 Tests can be executed by installing nose:
20
21     pip install nosetests
22
23 Then by running nosetests:
24
25     nosetests
26
27 To see more output:
28
29     nosetests -v
30
31 To step into the Python debugger while running a test, add the following
32 to your test at the point you wish to enter the debugger:
33
34     import pdb; pdb.set_trace()
35
36 Then run nosetests:
37
38     nosetests -s -v
39
40 You should strive for high code coverage. To see current coverage:
41
42     pip install coverage
43     nosetests --with-coverage --cover-html
44
45 Then open cover/index.html in your browser of choice to see the code coverage.
46
47 Style Convention
48 ----------------
49
50 All code should pass PyFlakes. First, install PyFlakes:
51
52     pip install pyflakes
53
54 Then at any time run it to see a report:
55
56     pyflakes .
57
58 Eventually we'll provide a Pylint config file. In the meantime, install
59 Pylint:
60
61     pip install pylint
62
63 And run:
64
65     pylint llvm
66
67 And try to keep the number of violations to a minimum.