Il y en a beaucoup trop pour les citer, c'est un métier. N'hésitez pas à poser des questions.
- Faites au mieux pour découper votre logique en méthodes distinctes
- N'hésitez pas à utiliser des classes pour refactoriser votre code et le rendre réutilisable
- À flexibiser votre code en ajoutant des paramètres à vos méthodes plutôt qu'à mettre des valeurs en dur
- Les tests sont appréciés
- Le typing également
- Créez des méthodes plutôt que faire du c/c
- Lintez votre code python (avec ruff ou activez le pre-commit)
On utilise pytest pour tester le code, les tests sont à placer dans src/tests/.
Il est conseillé d'ajouter des tests au fur et à mesure.
À défaut, pensez à bien découper vos méthodes de façon à séparer votre logique et faciliter la rédaction ultérieure des tests.
À savoir que la CI bloquera vos PR si les tests échouent.
Le fichier main.py est le point d'entrée temporaire de votre code.
On va éviter les éventuels if __name__ == "__main__": qui sont bien trop spécifiques et poseront des problèmes d'import.
Utilisez plutôt, et de la même façon, la méthode main:
def main(**kwargs):
…Puis exécutez votre script depuis la racine grâce au fichier main.py.
uv run main.py chemin/de/mon/script.pyDans le kwargs vous trouverez les différents arguments fournis de la commande.
Les données se situent dans le dossier src/data/.
Actuellement, on y retrouve notamment les données brutes de C2C et de OSM.
Elles ne sont pas définitives mais vous pouvez commencer à vous familiariser avec elles.
À activer sur votre projet pour appliquer quelques règles/checks sur votre code lors de vos commits.
Actuellement, il active le linter ruff. Qui permet d'uniformer votre code python en facilitant la maintenance et les reviews.
S'il détecte des anomalies, il refusera votre commit, lintera votre code et vous pourrez/devrez alors re-commiter ces nouveaux changements.
Vous pouvez l'installer sur votre projet avec :
pre-commit install
C'est actuellement facultatif si vous utilisez déjà ruff dans votre IDE.
Vous pouvez(devez) utiliser les loggers pour afficher les messages utiles lors de l'exécution de votre code.
import logging
logger = logging.getLogger(__name__)
…
logger.warning("mon message")Ces logs seront présents à 3 endroits :
- Dans la console
- Dans le fichier
errors.logà la racine du projet (non versionné) - Dans le fichier
errors.jsonlà la racine du projet (non versionné)