Sweetohm

Michel Casabianca

Humble Bundle Python

O’Reilly propose un humble bundle Python : vous donnez ce que vous voulez (à partir de 1 $) pour un bundle d’ouvrages O’Reilly qui vaut jusqu’à 524 $ (selon le montant payé), sans DRM et en multi-format (souvent ePub et PDF) !

Logueur de base en Python

Voici comment mettre en place un logger de base en Python, dans le fichier init.py par exemple :

La puissance de Python

Voici un bout de code qui inverse un dictionnaire et illustre bien l’incroyable expressivité du langage Python :

Isso une alternative à Disqus

Suite à des déboires avec Disqus, je me suis mis en quête d’une alternative et je suis tombé sur Isso. Cet article détaille son installation sur une Debian.

Dump des threads Python

En cas de problème dans une application Python (boucle infinie ou blocage par exemple), il peut être utile d’afficher la trace de tous les threads en cours d’exécution.

Valider des sources Python sur un commit Git

Pour valider automatiquement avec Pylint les sources Python modifiés à chaque commit, il suffit d’ajouter un hook Git.

Script Python Intéractif

Il peut être parfois utile de lancer un script Python et de l’interrompre en cours d’exécution dans un shell intéractif. C’est le cas par exemple pour déboguer un script et tester intéractivement du code.

Build

Sur Github: https://github.com/c4s4/build

Ce projet contient mes build files parent pour NeON.

CheeseShop

Sur Github: https://github.com/c4s4/cheeseshop

CheeseShop est un repository de packages Python, soit une version locale du célèbre http://pypi.python.org. Ceci est utile pour les utilisateurs en entreprise qui ont besoin de partager des bibliothèques Python privées entre développeurs.

DB Migration

Sur Github: https://github.com/c4s4/db_migration

Cet outil permet de gérer les migrations d’une base de données. On doit écrire les scripts de migration et les disposer dans des répertoires par version et par plate-forme. Par exemple, pour migrer la PRP vers la version 1.2.3, on placera le script dans le fichier 1.2.3/prp.sql.

Sqlplus Commando

Sur Github: https://github.com/c4s4/sqlplus_command

L’installation d’un pilote Oracle sur une machine est parfois pénible, voire impossible. En outre, vous pouvez souhaiter distribuer des scripts autonomes qui accèdent à Oracle sans avoir à installer de logiciel supplémentaire. Enfin, vous pouvez vouloir automatiser les scripts qui doivent être lancés avec SQL*Plus.

Comparaison d'objets Python

Par défaut, Python compare les objets par leur adresse mémoire. Autrement dit, deux objets sont considérés comme égaux s’ils sont les mêmes. Souvent, on considère que deux objets sont égaux si tous leurs champs le sont.

Introduction to YAML

This article is an introduction to YAML, a language to write structured data, as XML would for example, but in a more natural and less verbose way. We will see a description of the YAML syntax as well as examples in Java, Python and Go.

Grumpy

Grumpy est un projet Google qui permet de compiler des sources Python en Go. Si je ne m’attends pas à des miracles de performances, je crois que c’est une piste intéressante pour faciliter la distribution de scripts Python car il n’est plus nécessaire d’installer une VM…

total_seconds() pour Python 2.6

Voici une fonction qui permet de contourner l’absence de méthode total_seconds() sur la classe datetime.timedelta en Python 2.6 ou antérieur :

Générer un tableau Markdown en Python

J’ai eu aujourd’hui à générer un document Mardown qui comportait des tableaux. Voici le code qui génère le tableau au format Markdown à partir d’une liste des en-têtes de colonnes et d’une liste de lignes :

Couverture de Code

Entendu dans l’excellent podcast Talk Python to Me :

Un moyen d'augmenter la couverture
de test est de détruire du code.

List Comprehension vs Streams Java

Voici le code en Python pour construire une liste des IDs de factures dont le titre contient Training, triée par ordre décroissant de montant :

Pythenv

Sur Github: https://github.com/c4s4/pythenv

Pythenv exécute un script Python dans un environnement virtuel temporaire, créé à la volée dans le répertoire /tmp, puis détruit après usage.

Dictionnaire Python avec accesseurs

Il est plus élégant d’accéder aux valeurs d’un dictionnaire comme si l’on avait affaire à des champs plutôt qu’avec la notation du type tableau. Nous allons voir comment c’est possible en Python.

Babel

Babel est une boîte à outils permettant de gérer vos langages de programmation favoris.

Parsing JSON en Python

Sur de vieux serveurs où l’on ne peut plus installer de packages (c’est du vécu, pas plus tard qu’hier) ou si l’on souhaite limiter le nombre de bibliothèques Python à installer, on peut parser simplement du JSON avec le bout de code suivant :

Décorateur Django pour accès super user

Il est souvent pratique de n’autoriser l’accès à une méthode d’une vue Django qu’aux seuls super utilisateurs. Pour ce faire, on pourra utiliser le décorateur suivant :

Requête HTTP en Python

J’ai eu aujourd’hui besoin de réaliser des requêtes HTTP en Python en contrôlant finement tous les paramètres de la requête (URL bien sûr, mais aussi la méthode, les en-têtes et le corps) et les valeurs de retour (le statut, le message, le corps et les en-têtes). N’ayant rien trouvé répondant à mon besoin, j’ai dû développer ma propre fonction qui pourrait se rendre utile à l’occasion :

Ignorer les .pyc dans Netbeans

Par défaut Netbeans affiche les fichiers .pyc dans l’explorateur de projets. C’est assez énervant et voici comment ignorer ces fichiers :

Introduction à YAML

Cet article est une introduction à YAML, un langage permettant de représenter des données structurées, comme le ferait XML par exemple, mais de manière plus naturelle et moins verbeuse. On y verra une description de la syntaxe de YAML ainsi que des exemples en Java, Python et Go.

PyCon 2008

La PyCon France 2008, rencontres autour du langage de programmation Python, se déroule en ce moment même à la Cité des Sciences et de l’Industrie à Paris.

Bordeaux7 tous les matins sur votre bureau

Après le scripts de téléchargement de 20 Minutes et Metro, voici une version pour récupérer automatiquement la version PDF de Bordeaux7. Ce script fonctionne sous Linux et MacOSX.

Metro sur votre bureau tous les matins

Après le script de téléchargement de 20 Minutes, voici une version pour récupérer automatiquement la version PDF de Metro. Ce script fonctionne sous Linux et MacOSX.

20 Minutes Reloaded

Voici une amélioration de mon script de téléchargement automatique du quotidien 20 Minutes en version PDF sur votre bureau. Cette nouvelle version fonctionne sous Linux et MacOSX et ne dépend plus de curl.

Le journal, tous les matins sur le bureau

Voici un petit hack pour automatiser le téléchargement, tous les matins, de l’édition PDF de 20 minutes.

Easter Egg Python

Je viens de découvrir un easter egg dans l’interpréteur Python en ligne de commande (lancé lorsqu’on tape python dans un terminal). Taper import this. C’est probablement vieux comme Python, mais je trouve cela très drôle (et utile accessoirement).

Écrire des scripts Python avec DB-API

Cet article est une traduction de l’article Writing MySQL Scripts with Python DB-API en version 1.02 (du 2006-09-17), par Paul DuBois (paul@kitebird.com), traduction de Michel Casabianca (michel.casabianca@gmail.com).