Contribution guidelines¶
Workflow¶
Fork this repository;
follow the project structure;
commit frequently with clear messages;
send a pull request to the
master
branch of this repository.
Coding¶
Style - 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.
Type hints - add them at least to public function signatures;
Documentation - write Sphinx docstrings at least for public functions and classes:
use reST markup;
pay special attention to info field lists;
cross-reference Python objects.
Refactoring:
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
.