Vos flux de données facilement avec PyF

958 views

Published on

Slides sur la programmation en flux avec PyF à La Cantine (http://lacantine.org/events/vous-reprendrez-bien-un-peu-de-python).

http://pyfproject.org/

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
958
On SlideShare
0
From Embeds
0
Number of Embeds
25
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Vos flux de données facilement avec PyF

  1. 1. La Cantine Introduction à la Programmation en Flux « Lazy » flow-based programming : Utilité, concepts de base et application avec PyF. Présenté par : Jonathan Schemoul, consultant JMSI Software Consulting and Services
  2. 2. Quest-ce que la programmation en flux ?● Dans les années 70 : John Paul Morrison au Canada ● Applications Bancaires● On traite les données unitairement ● Elles passent dun bloc à un autre, formant un flux ● On transforme les données dans le flux, comme dans une chaine de production. Software Consulting and Services
  3. 3. Quest-ce que la programmation en flux ?Dans la théorie :● Lensemble de blocs (composants) constitue un réseau● Chaque composant a des ports dentrée et de sortie● Le réseau est géré par un « scheduler » (ordonnanceur) Il gère les communications entre les processus, et vérifie létat du réseau● Les données échangées sont des paquets standards, appelés « Information Packets ». Software Consulting and Services
  4. 4. En Python : une chaine de générateurs >>> def mon_adaptateur(flux) :Pour utiliser les générateurs en ... for v in flux:programmation en flux... ... print « Jai reçu », v ... yield dict(valeur=v, ... double=v*2) >>> it1 = xrange(5) # 0 à 5On définit des boites, étant >>> it2 = mon_adaptateur(it1)chacune un générateur >>> def mon_consommateur(flux_adapte) : ... for nv in flux_adapte: ... print nv[double] ... yield True # cest ok.● On passe litérateur à un autre >>> it3 = mon_consommateur(it2) générateur, qui renverra lui aussi >>> for value in it3: un flux ... if value is True: ... print ok so far ... else: ... print not ok● On dit que lon « adapte » le flux Jai reçu 0 au fur et à mesure 0 ok so far Jai reçu 1 2 ok so far [...] Software Consulting and Services
  5. 5. Avantages de la prog. en flux avec des générateurs● Pas de montée en RAM, traitement de gros volumes● Méthode de programmation facile à apprendre (on prend un item en entrée, on en sort un... ou pas :-)● Tous les objets python peuvent être utilisés (pas uniquement des packets)● Pas besoin de threads● Pas besoin de stackless, utilisation de la librairie standard Software Consulting and Services
  6. 6. En Python : PyF● PyF est un framework basé sur un fork de Zflow pour les couches basses (pyf.dataflow.core) Fork « ami »● PyF contient beaucoup plus que la base, et est « batteries included ». Software Consulting and Services
  7. 7. Architecture de PyFSoftware Consulting and Services
  8. 8. En Python : PyF● Système de Plugins ● De nombreux existants – pour lextraction (site web, rss, sql alchemy...), – pour ladaptation, – pour lécriture (csv, xml, fixed-length, xlsx, pdf avec xhtml, odt ou rml, etc.)● Du code python peut être mis dans le code source dun tube● Beaucoup doutils annexes pour la gestion des flux (designer graphiquer, scheduler, …) Software Consulting and Services
  9. 9. Les avantages● Votre business cest vos données● PyF les traite, rapidement et de façon « scalable » ● Lecture, ● Transformation, ● Adaptation, ● Reporting... Software Consulting and Services
  10. 10. Le service webSoftware Consulting and Services
  11. 11. Créer un tubeSoftware Consulting and Services
  12. 12. Du code...Software Consulting and Services
  13. 13. Ou des plugins...Software Consulting and Services
  14. 14. Software Consulting and Services
  15. 15. Software Consulting and Services
  16. 16. Simple... Software Consulting and Services
  17. 17. A bientôt !● Pour plus dinformations : http://www.pyfproject.org/ http://groups.google.com/group/pyf-users Software Consulting and Services

×