Source: https://developpement.lis-lab.fr/prive/wp-content/uploads/2016/03/bonnes_pratiques_python.pdf