[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / bindings / python / README.txt
blob96e334319bde39f7eda2d9db2fe0d1818e795433
1 This directory contains Python bindings for LLVM's C library.
3 The bindings are currently a work in progress and are far from complete.
4 Use at your own risk.
6 Developer Info
7 ==============
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.
12 Testing
13 -------
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.
19 Tests can be executed by installing nose:
21     pip install nosetests
23 Then by running nosetests:
25     nosetests
27 To see more output:
29     nosetests -v
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:
34     import pdb; pdb.set_trace()
36 Then run nosetests:
38     nosetests -s -v
40 You should strive for high code coverage. To see current coverage:
42     pip install coverage
43     nosetests --with-coverage --cover-html
45 Then open cover/index.html in your browser of choice to see the code coverage.
47 Style Convention
48 ----------------
50 All code should pass PyFlakes. First, install PyFlakes:
52     pip install pyflakes
54 Then at any time run it to see a report:
56     pyflakes .
58 Eventually we'll provide a Pylint config file. In the meantime, install
59 Pylint:
61     pip install pylint
63 And run:
65     pylint llvm
67 And try to keep the number of violations to a minimum.