Developing

Development occurs on GitHub. We gladly accept pull requests !

Development Requirements

To start developing features for the package, you will need the core runtime dependencies, shown in installing, in addition to the below:

Testing

  • py.test
  • pytest-cov
  • coverage

Linting

  • pylint

Documentation

  • sphinx >= 1.4
  • sphinx_bootstrap_theme
  • nbsphinx

These are all installable with pip.

Continuous Integration

Pull requests and commits are automatically built and tested on Travis.

Running the Tests

Tests may be run locally through py.test. This can be invoked using either py.test or python setup.py test in the project root. Command line extensions are not tested by default - these can be tested also, by using the appropriate flag, such as python setup.py test --with-chemaxon.

Test Coverage

Test coverage is assessed using coverage. This is run locally as part of the pytest command. It is set up to run as part of the CI, and can be viewed on Scrutinzer. Test coverage has suffered as features were rapidly developed in response to needs for the author’s PhD, and will be improved once the PhD is submitted!

Code Quality

scikit-chem conforms to pep8. PyLint is used to assess code quality locally, and can be run using pylint skchem from the root of the project. Scrutinzer is also set up to run as part of the CI. As with test coverage, code quality has slipped due to time demands, and will be fixed once the PhD is submitted!

Documentation

This documentation is built using Sphinx, and Bootstrap using the Bootswatch Flatly theme. The documentation is hosted on Github Pages. To build the html documentation locally, run make html. To serve it, run make livehtml.