Participating in the development of ptypes

What you will need

Note

Many of the below requirements can be easily installed by uncommenting the appropriate lines in setup.py.

Here is a list of the tools you are likely to need if you want to work on ptypes:

  • gcc, gdb and make
  • python2.7 (Most Linux distros include it by default. You may have to install the header files [usually in a package called python-dev or similar] on top of the normal Python2 package.)
  • cython (You need at least 0.19.2. In earlier versions there is a bug that will make the compiled binary core. Download from here then build and install it: cd <yourcythondir>; python setup.py build; sudo python setup.py install)
  • git (and an account on https://github.com/ so that you can send pull requests)
  • pep8 (This is a Python package to check compliance to the Python coding standards PEP 8. Install it via sudo apt-get install pep8)
  • autopep8 (This is a package to fix non-compliant code automatically - use it with caution. Install is using sudo apt-get install python-autopep8)
  • setuptools, virtualenv and virtualenvwrapper (See here how to install these.)
  • py.test (sudo apt-get install python-pytest, sudo apt-get install python-pytest-doc)
  • tox (sudo apt-get install python-tox)
  • valgrind (Use this when gdb proves to be insufficient for debugging memory related errors. Installation: sudo apt-get install valgrind. You will need to download the suppression file Misc/valgrind-python.supp from the source repository of the Python release you are using and specify it when running valgrind.)
  • sphinx (sudo apt-get install python-sphinx)

Before you make changes, have a look at Lessons learnt while developing ptypes

For a complete build-package-install-test cycle go to the directory containing tox.ini and type tox. This will recompile all modules, which may prove lengthy. For a shorter cycle, create a virtual environment called (say) ptypes (i.e. mkvirtualenv ptypes) or, if it already exists, activate it (by workon ptypes), and for each cycle run pip install -e .; py.test from the directory containing tox.ini.

To build the documentation, go to the doc directory and type make html.

Quality guidelines

Please cover new code with tests. Before submitting, run the test suites via tox and make sure they all pass. Verify that the documentation builds.

Run pep8 as well. Please avoid introducing new warnings.

Coding style

Many of the warnings of pep8 are not applicable because the verifier is targeted at Python (as opposed to Cython) code. These warnings are silenced in the tox.ini file.

For imports, cimport statements should precede normal imports, reflecting the fact that a the former has a compile time effect, while the later is an executable runtime statement.

Table Of Contents

Previous topic

Library Reference

Next topic

Development roadmap

This Page