03/31/2006Rien de tel qu'une bonne manif' CPEManifestation monstre à la gare de Lyon en début de soirée (les rails
jonchés d'étudiants paraît-il _ils sont inconscients_, et des casseurs qui
ont joué avec le matos du rail _une lampe de bureau fabriquée avec un catéter
SNCF, la seucla_).
Le trajet habituel 19h15->20h50 s'est transformé en calvaire TER. Retour maison à 00h30. Du coup zope-coobook.org s'est vu affublé d'une nouvelle fonctionnalité codée dans le train: on peut commenter les recettes à présent (hura). Le site devrait bientôt ressembler à un vrai site utilisable. 03/30/2006Un flux rss pour les recettes Zope 3 cookbookEn attendant d'être un
Le flux est dans toutes les langues aussi: 03/26/2006L'interview inédite de 1975 des Monty PythonDécidément, les bloggers de Boing-boing trouvent des perles rares.
Voici un enregistrement d'un passage des Monty Python à Dallas en 1975: le ticket 03/25/2006Slides Python XP dayOn a présenté avec Stéfane Fermigier
le langage Python aux
xp days, voici
les slides
Les organisateurs ont fait un superbe boulot, merci à Laurent Bossavit et ses amis de xp-france pour cette conférence. 03/19/2006Nouvelle recette Zope 3: Organiser le code dans un paquetCette recette explique comment organiser le code d'un paquet pour Zope 3.
Elle ne présente que les éléments de base et met en avant les principes
généraux de structuration.
Elle sera complétée par des recettes annexes, qui ajouteront les éléments complémentaires pouvant être trouvés dans ds paquets plus complexes.
03/14/2006Le blog de la Python Software FoundationLa Python Sofwtare Foundation lance son blog: http://pyfound.blogspot.com/
03/13/2006Première fournée de recettes pour Zope 3Voici une première fournée de petites recettes (version 1), pour le projet
de Zope 3 cookbook, reste à les traduire en anglais:
L'ordre d'écriture des recettes n'a pas vraiment été fixé, car la liste des recettes varie tous les jours. Liste des recettes prévues Le rendu HTML étant relativement moche, je placerais éventuellement un lien vers des rendus PDF. 03/11/2006Vers une collaboration des projets d'environnement de développement PythonStani, de SPE (Stani's Python Editor), lance un projet de collaboration
entre un maximum d'IDE Python.
Idée brillante donc, affaire à suivre...
LaTeX exécutable en doctest PythonPour un
nouveau projet, je dois pouvoir exécuter des tests fonctionnels Zope 3
contenus dans des exemples de code dans des fichiers au format LaTeX.
Les fichiers LaTeX peuvent bien sûr être appelés directement, mais l'objectif était de pouvoir marquer certains exemples de code "à tester", "à ne pas tester", pour plus de souplesse. Le module textest fourni un set minimal de classes et fonctions qui permet d'utiliser des fichiers LaTeX comme doctests fonctionnels, avec une extraction à la volée des sections Verbatim. Il peut être ensuite utilisé dans un script de test, pour que le script de test de Zope 3 exécute l'ensemble des tests. Ce script est une copie du script que l'on trouve dans le module zope.testing.functional, avec quelques modifications, et une petite boucle sur les fichiers *.tex du répertoire courant. Exemple de script:
import doctest
import os
import unittest
from zope.app.testing import setup, functional
from textest import TexFileSuite
def FunctionalTexFileSuite(filename, **kw):
globs = kw.setdefault('globs', {})
globs['http'] = functional.HTTPCaller()
globs['getRootFolder'] = functional.getRootFolder
globs['sync'] = functional.sync
kw['package'] = doctest._normalize_module(kw.get('package'))
kwsetUp = kw.get('setUp')
def setUp(test):
functional.FunctionalTestSetup().setUp()
setup.setUpTestAsModule(test, filename.replace('.', '_'))
if kwsetUp is not None:
kwsetUp(test)
kw['setUp'] = setUp
kwtearDown = kw.get('tearDown')
def tearDown(test):
if kwtearDown is not None:
kwtearDown(test)
try:
setup.tearDownTestAsModule(test)
except KeyError:
# XXX see why
pass
functional.FunctionalTestSetup().tearDown()
kw['tearDown'] = tearDown
if 'optionflags' not in kw:
old = doctest.set_unittest_reportflags(0)
doctest.set_unittest_reportflags(old)
kw['optionflags'] = (old
| doctest.ELLIPSIS
| doctest.REPORT_NDIFF
| doctest.NORMALIZE_WHITESPACE)
suite = TexFileSuite(filename, **kw)
suite.layer = functional.Functional
return suite
current_folder = os.path.dirname(__file__)
if current_folder == '':
current_folder = '.'
def test_suite():
extractor = doctest.DocTestParser()
files = [file for file in os.listdir(current_folder)
if file.endswith('.tex')]
tests = [FunctionalTexFileSuite(file) for file in files]
return unittest.TestSuite(tests)
if __name__ == '__main__':
import unittest
unittest.main(defaultTest='test_suite')
Ce système peut être perfectionné et rendu générique, pour fonctionner avec tout type de format (OOo, Doc, etc..) Nouveau projet: Zope 3 cookbookJe vais lancer très prochainement un nouveau projet qui me tient à coeur: un
livre de recettes en ligne, dont le contenu est accessible librement
(licence Common Creative, Paternité, Pas de modification, Pas d'utilisation
commerciale).
Ce projet concerne Zope 3, et contiendra des recettes pour développeurs Python, dans deux langues: Anglais et Français. Il est accessible ici:
L'objectif est de fournir des recettes courtes et faciles à suivre. Le contenu, qui prévoit entre 200 et 250 recettes, devrait être complètement écrit d'ici 9 mois. Le code contenu dans les recettes, dans le principe des doctests, est réelement exécuté par les outils de tests de Zope 3, ce qui réduit considérablement les coquilles. Si ce projet vous intéresse, n'hésitez pas à me faire part de vos remarques par mail, ou directement dans ce ticket.
|
A propos
|