Articles extérieurs
Article numéro 11 écrit le jeudi 25 octobre 2007 à 23 h 22 min dans les catégories :
Python
Tutos
Qt4
Des articles que j'ai aimé, ou que je me garde précieusement sous le coude le jour où j'arriverai à avoir le temps de lire calmement...
Parsing-Lexing
- Comment écrire un lexeur simple Gooli vous montre sa technique pour parser un fichier un code source Python afin d'en faire une sortie en HTML + CSS. Très instructif et surtout bien écrit.
- Comment parser du XML à la main : même s'il date un peu, l'article de Effbot est vraiment très intéressant sur le sujet.
Plugins
Des articles sur la façon d'apporter de nouvelles fonctionnalités à une application.
- Comment créer des plugins partie 1 pour un programme. Le procédé est simple, attention cependant car j'ai eû du mal à le faire fonctionner. L'article est écrit par un excellent programmeur Python, Armin Ronacher, un des créteurs de Pygments.
- Comment créer des plugins partie 2 la suite du précédent qui aborde les choses différement. Il s'agit cette fois-ci d'utiliser setuptools pour étendre les capacités de nos applications. Ce que beaucoup de développeurs Python ont choisi.
Mixins
Certains trouvent cette technique peu conventionnelle, elle a en tout cas un mérite : elle fonctionne très bien. C'est une très bonne alternative au Plugins. Grossièrement, les classes Mixins permettent d'étendre une classe donnée en lui ajoutant des méthodes, le tout sans utiliser la dérivation.
Voici donc un exemple de ce que l'on peut faire :
class SomeMixin(object):
def f(self, x):
return self.y + x
class AnotherMixin(object):
def g(self):
print "g"
class Foo(object):
mixin(SomeMixin)
mixin(AnotherMixin)
def h(self):
print "h"
f = Foo()
f.y = 5
obj = Foo()
obj.y = 18
print dir(obj)
f.h()
print f.f(3)
En sortie, on obtiendra ceci
['__class__', '__delattr__', '__dict__', '__doc__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__str__', '__weakref__', 'f', 'g', 'h'] h 8 g
- Je vous laisse découvrir ceci dans les recettes de Sebulba . A noter une toute petite implémentation des mixins en deux lignes de code ! Préférez cependant real mixins que vous trouverez en bas de page.
- Une autre implémentation existe, elle est tout aussi puissante, voire plus encore. Il s'agit du package MOPPY qui signifie Meta Object Programming in Python. Le code source est d'un niveau élévé, mais il est vraiment très clair et structuré. Je vous laisse par exemple lire les sources du fichier principal mop.py ou vous trouverez à la fin les fonctions addMixIn et removeMixin.
- Enfin, une dernière utilisée dans un éditeur écrit avec wxPython et ayant fait ses preuves est celle de Limodou pour Mixin.py.
PyQt4
- De très bons articles ici on y apprend pas mal de choses sur PyQt4 et on est pris par la main pour créer 2 petites applications. Seule chose regrettable : il a piqué mon tuto sur QScintilla2 sans mon autorisation, mais bon... c'est pour la bonne cause !
Lectures
Liens commentés: