- Fork this repository;
- follow the project structure;
- commit frequently with clear messages;
- send a pull request to the
master
branch of this repository.
Comply with PEP 8 and Wikimedia conventions:
- 4 spaces for indentation;
- snake-case style AKA underscore as a word separator (files, variables, functions);
- UPPERCASE constants;
- anything else is lowercase;
- 2 empty lines to separate functions;
- 80 characters per line, and up to 100 when suitable;
- single-quoted strings, unless single-quotes are in a string.
Add type hints at least to public function signatures.
Write Sphinx docstrings at least for public functions and classes:
- use reST markup;
- stick to PEP 257 and PEP 287;
- pay special attention to info field lists;
- cross-reference Python objects.
- Fix pylint errors:
pylint -j 0 -E PATH_TO_YOUR_CONTRIBUTION
; - look at pylint warnings:
pylint -j 0 -d all -e W PATH_TO_YOUR_CONTRIBUTION
; - reduce complexity:
flake8 --select C90 --max-complexity 10 PATH_TO_YOUR_CONTRIBUTION
; - apply relevant refactoring suggestions:
pylint -j 0 -d all -e R PATH_TO_YOUR_CONTRIBUTION
.