[Pyxoo] Librairie Python - Revision 2

11 août 2007, Aucun commentaire »

Aujourd’hui sort la seconde révision de Pyxoo, un framework développé en Python, qui est un portage de la librairie Pixlib.

Pour cette seconde révision, j’ai pu mettre en place le package de log :

  • LogEvent
  • ILogListener
  • Logger
  • LogLevel
  • PyxooDebugChannel
  • PyxooDebug
  • Stringifier
  • BasicStringifier
  • PyxooStringifier

Comme vous l’aurez sûrement compris, ce package propose un ensemble de classes permettant de logger et debugger. Tout ce là utilisant le système d’évènements typés et son EventBroadcaster proposé lors de la première révision de Pyxoo.
A l’image de ce que l’on peut retrouver en Java (Log4J), on retrouve le gestion de log par niveau : DEBUG, INFO, WARN, ERROR, FATAL.

Je vous rappelle l’adresse permettant de récupérer les sources via SVN : http://svn.pyxoo.skitoo.org/trunk/

Comme toujours n’hésitez pas à faire un petit tour sur le groupe Pyxoo pour faire partagés vos expériences, critiques et découvertes de bugs.

[Pyxoo] Petit exemple rapide d’utilisation de la classe EventBroadcaster

30 juillet 2007, 2 Commentaires »

Afin de compléter mon précédent billet concernant Pyxoo je vous livre ici un premier exemple concernant l’utilisation de la classe EventBroadcaster.

from Pyxoo.events.broadcaster import EventBroadcaster
from Pyxoo.events.event import StringEvent
import sys

# création de listeners proposant une méthode onLog

class LogListener:
def onLog(self, event):
raise NotImplementedError

class TextFileLogger(LogListener):
def __init__(self):
self.__file = open("mylogs.log", "w+")
def onLog(self, event):
self.__file.write(event.getString()+"\n")

class StdOutLogger(LogListener):
def onLog(self, event):
sys.stdout.write(event.getString()+"\n")

log1 = TextFileLogger()
log2 = StdOutLogger()
EVENT_TYPE = "onLog"

eventBroadcaster = EventBroadcaster()
# on ajoute un listener associé à un type d'événement
# dans l'eventBroadcaster
eventBroadcaster.addEventListener( EVENT_TYPE, log1 )
eventBroadcaster.addEventListener( EVENT_TYPE, log2 )

# création d'un événement avec pour eventType "onLog"
event1 = StringEvent( EVENT_TYPE, "Bonjour" )
event2 = StringEvent( EVENT_TYPE, "Au revoir" )

# diffusion de l'événement. Tous les listeners associés
# à l'événement "onLog" reçoivent l'événement et le traitent.
eventBroadcaster.broadcastEvent( event1 )
eventBroadcaster.broadcastEvent( event2 )

Bien sûr ce n’est qu’un exemple très simple de l’utilisation de la classe. On peut imaginer de nombreux types d’utilisation dans des contextes différents : gestion des événements d’une application Pygame, d’événements provenant d’une socket, etc…

[Pyxoo] Librairie Python - Revision 1

29 juillet 2007, 2 Commentaires »

Ca y est je me lance !
Suite à une première étude du framework PixLib développé par un collègue Francis Bourre, j’ai décidé de me lancer dans le portage en Python de celui-ci. Le nom du projet : Pyxoo

Pour cette première révision je me suis penché sur le package Events du frameworks, c’est à dire toute la partie du système d’EventBroadcaster, d’évenements typés, du ChannelBroadcaster et de l’ApplicationBroadcaster.
Pour me faciliter la tâche dans la vérification des types de données, j’ai mis en place un petit module utils contenant une classe Type proposant une suite de méthodes statiques permettant de vérifier les types de valeurs.
Je tiens à préciser que Pyxoo est distribué sous Mozilla Public License Version 1.1

Pour le moment les sources sont seulement récupérable via SVN :
svn checkout http://svn.pyxoo.skitoo.org/trunk/ pyxoo
Normalement un Trac devrait voir le jour d’ici peu.

Afin d’avoir des retours utilisateurs sur Pyxoo j’ai mis en place un groupe sur Google http://groups.google.fr/group/pyxoo. N’hésitez pas à faire partager vos expériences, critiques et découvertes de bugs via ce groupe.

Recherche

Nuage de tags :

No tags.

Blogoliste

Publicité solidaire