Archive for the 'News' Category

Python xls2csv : mise à jour et version 0.2

Wednesday, May 27th, 2009

Une mise à jour du programme xls2csv.py :
-> amélioration du traitement des options en ligne de commande
-> nouvelles options : possibilité de supprimer des lignes et des colonnes durant le processus de conversion dans le document final
-> conversion par générateur python (yield)
-> passage de la licence LGPL v3 à simplified BSD

Téléchargement : xls2csv.py

If The Lights Go Out …

Sunday, May 17th, 2009

Thanks Katie for this beautiful song !

Python : cryptographic hashes, md5, sha … so pySummer is born !

Friday, May 15th, 2009

Tout transfert de données sur le Net nécessite de vérifier l’authenticité des fichiers qui transitent sur le réseau. Les sommes de contrôle, telles MD5 ou SHA viennent à la rescousse. Cependant, il est aussi fréquent d’appliquer ce genre de traitement à des arborescences complètes de fichiers, en prévision de leur copie sur un autre média (cd, dvd, disque, etc …).

Je n’avais jamais l’outil adéquat capable de générer et de vérifier tout type de somme de contrôle sous la main. Heureusement, Python propose depuis la version 2.5 la bibliothèque hashlib encapsulant les fonctions de la librairie openssl.

Sauf qu’écrire un script à chaque utilisation spécifique, même si celà ne prend que quelques minutes, c’est réinventer périodiquement la roue. J’ai donc décidé d’écrire un script pour combler cette lacune : ainsi est né pySummer. Ce code ressemble plus à un script qu’à un module, il est tout frais développé, donc largement améliorable … il a surtout le mérite d’exister et de rendre service !

L’idée est donc de proposer les algorithmes fournis par le module haslib de Python, non seulement sur de simples fichiers mais aussi de manière récursive sur une arborescence de répertoires. J’ai même essayé de proposer un moyen de deviner le type de somme de contrôle, lors de la  vérification des sommes.

En ligne de commande, celà donne :
Usage: pySummer.py [options] arg
Options:
-h, –help       show this help message and exit
-r               recursively calculate checksums
-c               check sums
–hash=HASHNAME  select hash algorithm

Soit pour une arborescence :
la création des sommes (SHA-1 par défaut) :
$ python pySummer.py -r my_topdir/ > file.sums
ou
$ python pySummer.py –hash sha224 -r my_topdir/ > file.sums

la vérification des sommes (avec détection automatique) :
$ python pySummer.py -c file.sums (évidemment, il faut être dans le “bon” répertoire, car les chemins stockés sont relatifs. Le comportement est identique à celui des outils classiques comme md5sum, sha1sum, etc …)

Pour les téléchargements, c’est par ici !

Commentaires, améliorations sont les bienvenues.

Python, Windows et les privilèges !

Monday, April 6th, 2009

Il existe bien évidemment l’indispensable module pywin32 permettant d’accéder aux fonctions de l’API windows. Cependant, il arrive que seul un sous ensemble de ces fonctionnalités soit utiles à un projet.

Dans le cas présent, il s’agit d’obtenir les privilèges pour effectuer des actions comme redémarrer la machine locale par exemple.

Ce premier article a pour but de donner les noms des fonctions à utiliser ainsi que les liens vers la documentation associée :

Exemple de code : http://msdn.microsoft.com/en-us/library/aa446619(VS.85,printer).aspx
OpenProcessToken function : http://msdn.microsoft.com/en-us/library/aa379295(VS.85,printer).aspx
LookupPrivilegeValue function : http://msdn.microsoft.com/en-us/library/aa379180(VS.85,printer).aspx
AdjustTokenPrivileges function : http://msdn.microsoft.com/en-us/library/aa375202(VS.85,printer).aspx

Le prochain article abordera la création d’un module d’extension pour Python, si possible directement conpatible 2.x / 3.x

Interpolation barycentrique : inverse distance weighting

Friday, March 6th, 2009

Implémentation personelle des algorithmes d’interpolation barycentrique (en anglais : inverse distance weighting) par des fonctions template C++. Licence BSD simplifiée.

Le fichier source !