Contributing to Tianshou

Install Develop Version

To install Tianshou in an “editable” mode, run

$ pip install -e ".[dev]"

in the main directory. This installation is removable by

$ python setup.py develop --uninstall

PEP8 Code Style Check

We follow PEP8 python code style. To check, in the main directory, run:

$ flake8 . --count --show-source --statistics

Type Check

We use mypy to check the type annotations. To check, in the main directory, run:

$ mypy

Test Locally

This command will run automatic tests in the main directory

$ pytest test --cov tianshou -s --durations 0 -v

Test by GitHub Actions

  1. Click the Actions button in your own repo:

_images/action1.jpg
  1. Click the green button:

_images/action2.jpg
  1. You will see Actions Enabled. on the top of html page.

  2. When you push a new commit to your own repo (e.g. git push), it will automatically run the test in this page:

_images/action3.png

Documentation

Documentations are written under the docs/ directory as ReStructuredText (.rst) files. index.rst is the main page. A Tutorial on ReStructuredText can be found here.

API References are automatically generated by Sphinx according to the outlines under docs/api/ and should be modified when any code changes.

To compile documentation into webpages, run

$ make html

under the docs/ directory. The generated webpages are in docs/_build and can be viewed with browsers.

Chinese documentation is in https://tianshou.readthedocs.io/zh/latest/.

Documentation Generation Test

We have the following three documentation tests:

  1. pydocstyle: test docstrings under tianshou/. To check, in the main directory, run:

$ pydocstyle tianshou
  1. doc8: test ReStructuredText formats. To check, in the main directory, run:

$ doc8 docs
  1. sphinx test: test if there is any errors/warnings when generating front-end html documentations. To check, in the main directory, run:

$ cd docs
$ make html SPHINXOPTS="-W"