This directory contains Python bindings for LLVM's C library. The bindings are currently a work in progress and are far from complete. Use at your own risk. Developer Info ============== The single Python package is "llvm." Modules inside this package roughly follow the names of the modules/headers defined by LLVM's C API. Testing ------- All test code is location in llvm/tests. Tests are written as classes which inherit from llvm.tests.base.TestBase, which is a convenience base class that provides common functionality. Tests can be executed by installing nose: pip install nosetests Then by running nosetests: nosetests To see more output: nosetests -v To step into the Python debugger while running a test, add the following to your test at the point you wish to enter the debugger: import pdb; pdb.set_trace() Then run nosetests: nosetests -s -v You should strive for high code coverage. To see current coverage: pip install coverage nosetests --with-coverage --cover-html Then open cover/index.html in your browser of choice to see the code coverage. Style Convention ---------------- All code should pass PyFlakes. First, install PyFlakes: pip install pyflakes Then at any time run it to see a report: pyflakes . Eventually we'll provide a Pylint config file. In the meantime, install Pylint: pip install pylint And run: pylint llvm And try to keep the number of violations to a minimum.