| 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. |