Chandler Carruth 6b547686c5 Update the file headers across all of the LLVM projects in the monorepo 6 years ago
..
llvm 6b547686c5 Update the file headers across all of the LLVM projects in the monorepo 6 years ago
README.txt 61e22cd85c [llvm.py] Implement interface to object files 13 years ago

README.txt

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.