Du code, du communisme

Purger les fichiers .pyc (et un hook git en bonus)

Vous supprimez un module complet, mais l’import continue de fonctionner. Redémarrage de serveur, de machine. Suppression et ajout de ligne. Rien n’y fait, il est toujours là. Vous êtes fatigué, énervé, et vous appelez votre collègue pour lui montrer à quel point Python est complètement débile. Réplique sourire en coin, l’index taquin pointant vers les pixels de votre honte: t’as un fichier .pyc là.
Shit.
Vous pouvez toujours vous jurer que la prochaine fois on ne vous y prendra plus, vous vous ferez avoir à nouveau. C’est perfide un .pyc, ça traine toujours dans un fatra de noms qui se ressemblent: settings.py, local_settings.py, common_settings.pyc, prod_settings.py, etc.
Soyez malin, soyez bourrin:

find . -name "*.pyc" -delete

Purge complète des petits salopards, du larynx jusqu’au colon.
Et puisqu’être un bon informaticien, c’est avant tout être un bon feignant, autant le faire automatiquement quand on en a le plus besoin. Par exemple quand on change de branche sous git:

#!/bin/bash
# remove pyc files and empty directories from the repo when switching branch
# $3 = 1 if checkout aims a commit and not a file
if [ $3 = 1 ]
then
    # Start from the repository root.
    cd ./$(git rev-parse --show-cdup)
    # Delete .pyc files and empty directories.
    find . -name "*.pyc" -delete
    find . -type d -empty -delete
fi

À mettre dans votreprojet/.git/hooks/post-checkout.
Dans la version 3 de Python les fichiers .pyc seront groupés dans un seul dossier, et nettement plus faciles à nettoyer. En attendant, exprimez votre côté subtile, faites tout sauter.