devpy, outils de dev à l’arrache Recently updated !
mercredi 1 mars 2017 à 17:21Je le publie en coup de vent car je me dis que ça peut servir à des gens, mais j’ai pas l’intention d’y passer des heures… vu que je fais ça pour me faire gagner du temps en mission.
J’ai créé devpy, un outil pour me faciliter le développement.
Dans sa forme la plus simple:
pip install devpy |
Ca donne automatiquement:
- Un logger qui log dans un fichier temporaire et dans la console.
- Un traceback qui montre les lignes de SON code avec coloration syntaxique.
- Si le programme crash, la stack trace est logguée dans le log automatiquement.
En gros quand on commence à bosser on fait:
import devpy.develop as log |
Et on peut logger comme avec les logs python habituels (log.info, log.debug, etc).
On peut facilement retirer devpy une fois qu’on a fini et le remplacer par un log Python traditionnel type:
log = logging.getLogger(__name__) |
Donc utiliser devpy ne coûte rien car on peut le retirer facilement une fois qu’on a fini: c’est 100% compat avec le log de la stdlib.
Ça tombe bien, car c’est pas un truc qu’on met en prod en théorie (même si ça peut pas abîmer le serveur).
C’est juste un outil que j’ai fais car j’en avais marre:
- De galérer à setuper un logging de base à chaque fois. C’est long, verbeux, pleins de coups fourrés. Mais 9 fois sur 10 je veux la même chose: la console et un fichier temp. Du coup par flemme je fais un print et je le regrette plus tard.
- Devoir faire les choses proprement pour le dev. Oui un bon log c’est important, mais quand je commence à bosser je ne veux pas passer mon après midi à setuper les logs proprement. Je ferais ça plus tard, un truc à l’arrache pour le debug me suffit.
- Devoir chercher dans la stack trace les lignes qui m’intéresse. Je debug rarement la stdlib. Montre moi MON code
- Avoir des logs avec la stack trace en cas d’erreur est super relou à mettre en place. Mais c’est tellement pratique.
Je vais sûrement rajouter des trucs dedans au fur et à mesure mais pour le moment ça fait ce que je veux.
Je l’ai mis compatible uniquement 3.6 car j’ai pas envie de me faire chier à tester ailleurs. D’ailleurs j’ai même pas de tests.
Et si vous êtes pas contents, vous pouvez vous mettre ma deadline là où je pense.