samedi 29 août 2015

Pillow - le fork de PIL

PIL Python Image Library est une puissante bibliothèque de traitement d'image.

PIL est mondialement reconnu pour sa puissance... mais aussi tristement connu pour être parfois vraiment pénible à installer.

En travaillant sur la documentation du Sense Hat pour Raspberry-Pi, j'ai découvert que la fondation Pi proposait d'installation Pillow en même temps que la bibliothèque du Sense-Hat.
Piqué à vif, j'ai jeté un petit coup d'oeil sur Pillow.

Pillow? Kaseko?!?!
Pillow est un Fork de PIL, créé par Alex Clark and Contributeurs. PIL est la bibliothèque Python Imaging Library par Fredrik Lundh et Contributeurs.


Pillow Logo
source: python-pillow.github.io

Si la fondation Pi propose d'installer Pillow plutôt de Pil c'est probablement parce que Pillow peut s'installer via l'utilitaire pip et que la bibliotèque est suffisamment légère que pour pouvoir tourner sur un Pi.
Cela n'enlève pourtant rien à l'intérêt de Pillow (cfr la doc).

De la doc
Autre point crucial, c'est la documentation... une belle doc comme je les aiment bien.
Installer Pillow

sudo pip-3.2 install pillow

Plus d'information

mercredi 26 août 2015

Bibliothèque & outils pour Python

Python-Editor
En m'intéressant à Alembic et SqlAlchemy, je suis tombé sur un Package portant le nom de Pyhton-Editor.

Et bien, que voila un petit outil intéressant... Python-Editor ouvre un éditeur (par programmation) et se débrouille pour capturer le résultat.
Outil simple mais efficace, il permet surtout de s'affranchir des problèmes liée à la plateforme utilisée (Windows, Mac, Linux) :-)

https://pypi.python.org/pypi/python-editor/0.3

jeudi 6 août 2015

Faire le backup d'une seule table en PostgreSql

Préambule
je sais... il est toujours mieux de faire un backup de la DB dans son entièreté. C'est d'ailleurs ce que je recommande en général, cependant, il y a toujours des cas particulier.

Introduction
Voila, j'ai fait plusieurs update foireux dans la table des  fournisseurs sur mon environnement de développement. J'aurais bien besoin de restaurer les données de cette table depuis le serveur de production... mais je ne voudrais pas restaurer toute la DB maintenant.

La solution
  • Faire un backup de la table depuis le serveur avec pg_dump --> fichier de backup sql
  • Renommer la table sur le serveur local (vaut mieux pas l'effacer trop vite)
  • Restaurer le fichier de backup sur la db locale avec l'outil psql
Backup de la table

pg_dump.exe --host adresse_du_serveur --port 5432 --username nom_utilisateur --format plain --ignore-version --verbose --file "nom_du_fichier_de_backup_sql" --table public._nom_de_la_table base_de_donnee

Exemple pratique 
pg_dump.exe --host 192.168.1.205 --port 5432 --username postgres --format plain --ignore-version --verbose --file "C:\temp\supplier.backup" --table public.file0020 stockprod

Restaurer les  données
N'oubliez pas renommer la table (vous pouvez le faire avec pgAdmin III , via les propriétés de la table)

psql -h adresse_serveur_local -p 5432 -U nom_utilisateur -d base_de_donnée -a -f nom_du_fichier_de_backup_sql

Exemple pratique

cd c:\temp\
psql -h localhost -p 5432 -U postgres -d stockdev -a -f suppliers.bakup

dimanche 2 août 2015

Dans quels répertoires se trouvent mes modules Python?

Lorsque vous faites un "pip install ..." vous téléchargez et installez des modules python.

Mais où sont-ils donc installés?

Et bien, la réponse se trouve dans Python lui-même :-)
Saisissez les deux lignes de code suivantes dans un Python Interactif et vous aurez votre réponse. Génial, la réponse est indépendante de l'OS!

>>> import site
>>> site.getsitepackages()

Ce qui dans mon cas produit la réponse suivante:

['/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']