llvm-for-llvmta/bindings/python/README.txt

68 lines
1.4 KiB
Plaintext
Raw Permalink Normal View History

2022-04-25 10:02:23 +02: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.