2012-03-10 12:41:24 +08:00
|
|
|
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.
|