SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
Lightning Talk
Tree transformation with Python




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
                                             Keine kommerzielle Nutzung-
                                              3.0 Österreich Lizenz
Nodes and trees
●   Node
          –   Base object for building trees
          –   Provides a dictionary like API and implements
                zope.interface.mapping.IFullMapping
          –   Knows about it's position. It implements
               zope.location.interfaces.ILocation
          –   Can be accessed flat. Nodes are accessible from
               each other via UID references
●   Every data structure can be represented as tree, i.e.
    XML, UML, File System, SQL, LDAP

Robert Niederreiter <office@squarewave.at>         Creative Commons Namensnennung-
                                                   Keine kommerzielle Nutzung-
                                                    3.0 Österreich Lizenz
UML as node compliant tree




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
                                             Keine kommerzielle Nutzung-
                                              3.0 Österreich Lizenz
FS as node compliant tree




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
                                             Keine kommerzielle Nutzung-
                                              3.0 Österreich Lizenz
SQL as node compliant tree




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
                                             Keine kommerzielle Nutzung-
                                              3.0 Österreich Lizenz
IO System
●   AGX IO System
          –   Based on Nodes
          –   Follows the interfaces provided by Node
          –   Introduces ISource and ITarget, both derive from
                INode
          –   ITarget promises to persist or dump the tree on
                __call__() in any way.




Robert Niederreiter <office@squarewave.at>               Creative Commons Namensnennung-
                                                         Keine kommerzielle Nutzung-
                                                          3.0 Österreich Lizenz
Tree transformation chain
●   Iterate over all nodes of source tree and look up
    handlers, which are responsible for creating target
    nodes inside the target tree based on the information
    from the source node.
●   Transformation chain components located in agx.core
●   Finally target tree is called.




Robert Niederreiter <office@squarewave.at>     Creative Commons Namensnennung-
                                               Keine kommerzielle Nutzung-
                                                3.0 Österreich Lizenz
Tree transformation chain




Robert Niederreiter <office@squarewave.at>   Creative Commons Namensnennung-
                                             Keine kommerzielle Nutzung-
                                              3.0 Österreich Lizenz
Thank you!




Robert Niederreiter <office@squarewave.at>     Creative Commons Namensnennung-
                                               Keine kommerzielle Nutzung-
                                                3.0 Österreich Lizenz

Mais conteúdo relacionado

Mais de Jens Klein

Plone Performance, Profiling, Power-Consumption
Plone Performance, Profiling, Power-ConsumptionPlone Performance, Profiling, Power-Consumption
Plone Performance, Profiling, Power-ConsumptionJens Klein
 
RelStorage - an alternative ZODB Backend
RelStorage - an alternative ZODB BackendRelStorage - an alternative ZODB Backend
RelStorage - an alternative ZODB BackendJens Klein
 
Big Fat FastPlone - Scale up, speed up
Big Fat FastPlone - Scale up, speed upBig Fat FastPlone - Scale up, speed up
Big Fat FastPlone - Scale up, speed upJens Klein
 
Schlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
Schlangenhochzeit in-der Wolke - Pyramid auf Google AppengineSchlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
Schlangenhochzeit in-der Wolke - Pyramid auf Google AppengineJens Klein
 
YAFOWIL - Webformulare in Python ohne Kopfschmerzen
YAFOWIL - Webformulare in Python ohne KopfschmerzenYAFOWIL - Webformulare in Python ohne Kopfschmerzen
YAFOWIL - Webformulare in Python ohne KopfschmerzenJens Klein
 
Ausfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneAusfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneJens Klein
 
FISE Integration with Python and Plone
FISE Integration with Python and PloneFISE Integration with Python and Plone
FISE Integration with Python and PloneJens Klein
 
Plone is so semantic, isn't it?
Plone is so semantic,  isn't it?Plone is so semantic,  isn't it?
Plone is so semantic, isn't it?Jens Klein
 
cornerstone.soup Lighning Talk on Plone Conference 2009
cornerstone.soup Lighning Talk on Plone Conference 2009cornerstone.soup Lighning Talk on Plone Conference 2009
cornerstone.soup Lighning Talk on Plone Conference 2009Jens Klein
 
Was ist Plone?
Was ist Plone?Was ist Plone?
Was ist Plone?Jens Klein
 
Projekte mit Plone
Projekte mit PloneProjekte mit Plone
Projekte mit PloneJens Klein
 
Plone - Community, Entwicklung, Support
Plone - Community, Entwicklung, SupportPlone - Community, Entwicklung, Support
Plone - Community, Entwicklung, SupportJens Klein
 
Plone Conference 2007 Naples: Lightning Talk Daidalos
Plone Conference 2007 Naples: Lightning Talk DaidalosPlone Conference 2007 Naples: Lightning Talk Daidalos
Plone Conference 2007 Naples: Lightning Talk DaidalosJens Klein
 

Mais de Jens Klein (13)

Plone Performance, Profiling, Power-Consumption
Plone Performance, Profiling, Power-ConsumptionPlone Performance, Profiling, Power-Consumption
Plone Performance, Profiling, Power-Consumption
 
RelStorage - an alternative ZODB Backend
RelStorage - an alternative ZODB BackendRelStorage - an alternative ZODB Backend
RelStorage - an alternative ZODB Backend
 
Big Fat FastPlone - Scale up, speed up
Big Fat FastPlone - Scale up, speed upBig Fat FastPlone - Scale up, speed up
Big Fat FastPlone - Scale up, speed up
 
Schlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
Schlangenhochzeit in-der Wolke - Pyramid auf Google AppengineSchlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
Schlangenhochzeit in-der Wolke - Pyramid auf Google Appengine
 
YAFOWIL - Webformulare in Python ohne Kopfschmerzen
YAFOWIL - Webformulare in Python ohne KopfschmerzenYAFOWIL - Webformulare in Python ohne Kopfschmerzen
YAFOWIL - Webformulare in Python ohne Kopfschmerzen
 
Ausfallsichere Kultur mit Plone
Ausfallsichere Kultur mit PloneAusfallsichere Kultur mit Plone
Ausfallsichere Kultur mit Plone
 
FISE Integration with Python and Plone
FISE Integration with Python and PloneFISE Integration with Python and Plone
FISE Integration with Python and Plone
 
Plone is so semantic, isn't it?
Plone is so semantic,  isn't it?Plone is so semantic,  isn't it?
Plone is so semantic, isn't it?
 
cornerstone.soup Lighning Talk on Plone Conference 2009
cornerstone.soup Lighning Talk on Plone Conference 2009cornerstone.soup Lighning Talk on Plone Conference 2009
cornerstone.soup Lighning Talk on Plone Conference 2009
 
Was ist Plone?
Was ist Plone?Was ist Plone?
Was ist Plone?
 
Projekte mit Plone
Projekte mit PloneProjekte mit Plone
Projekte mit Plone
 
Plone - Community, Entwicklung, Support
Plone - Community, Entwicklung, SupportPlone - Community, Entwicklung, Support
Plone - Community, Entwicklung, Support
 
Plone Conference 2007 Naples: Lightning Talk Daidalos
Plone Conference 2007 Naples: Lightning Talk DaidalosPlone Conference 2007 Naples: Lightning Talk Daidalos
Plone Conference 2007 Naples: Lightning Talk Daidalos
 

AGX - Tree Transformations with Python - Lightning Talk at Plone Conference 2009

  • 1. Lightning Talk Tree transformation with Python Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 2. Nodes and trees ● Node – Base object for building trees – Provides a dictionary like API and implements zope.interface.mapping.IFullMapping – Knows about it's position. It implements zope.location.interfaces.ILocation – Can be accessed flat. Nodes are accessible from each other via UID references ● Every data structure can be represented as tree, i.e. XML, UML, File System, SQL, LDAP Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 3. UML as node compliant tree Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 4. FS as node compliant tree Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 5. SQL as node compliant tree Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 6. IO System ● AGX IO System – Based on Nodes – Follows the interfaces provided by Node – Introduces ISource and ITarget, both derive from INode – ITarget promises to persist or dump the tree on __call__() in any way. Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 7. Tree transformation chain ● Iterate over all nodes of source tree and look up handlers, which are responsible for creating target nodes inside the target tree based on the information from the source node. ● Transformation chain components located in agx.core ● Finally target tree is called. Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 8. Tree transformation chain Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz
  • 9. Thank you! Robert Niederreiter <office@squarewave.at> Creative Commons Namensnennung- Keine kommerzielle Nutzung- 3.0 Österreich Lizenz