Bugs reports, feature requests and questions#

Please use the Issue Tracker to report bugs or request new features. Contributions to extend this package are welcome! Please use the Fork and Pull workflow to do so and follow the PEP8 style guidelines.


The easiest way to handle these guidelines is to use the example pre-commit hook. To do this, first install pre-commit using pip and then run pre-commit install to set up the git hook scripts:

$ pip install pre-commit
$ pre-commit install

Now, pre-commit will run automatically the linting tests after each commit. Optionally, you can use the following command to manually run the hooks against all files:

$ pre-commit run --all-files


Alternatively, if you prefer not to use pre-commit hooks, you can manually run the following in the correct sequence on your local machine. From the shakenbreak top directory, run ruff –fix to lint and format, followed by black, which will automatically reformat the code to PEP8 conventions:

$ ruff --fix
$ black  --diff --color shakenbreak

Then run pycodestyle to check the docstrings, followed by flake8, which will identify any remaining issues.

$ pycodestyle --max-line-length=107 --ignore=E121,E123,E126,E203,E226,E24,E704,W503,W504,F401 shakenbreak
$ flake8 --max-line-length 107 --color always --ignore=E121,E123,E126,E203,E226,E24,E704,W503,W504,F401 shakenbreak


  • Please use comments, informative docstrings and tests as much as possible.


Unit tests are in the tests directory and can be run from the top directory using unittest. Automatic testing is run on the master and develop branches using Github Actions. Please run tests and add new tests for any new features whenever submitting pull requests.