Difference between revisions of "Why ElementTree"

From Creative Commons
Jump to: navigation, search
 
 
Line 1: Line 1:
 +
[[Category:CcPublisher]]
 +
[[Category:Developer]]
 
As of 8 Feburary 2006, [[CcPublisher]] has discarded libxml2/libxslt in favor of ElementTreefor XML and XPath manipulations.  While libxml2 is a high-speed, memory efficient XML engine, there are a few reasons for this switch.
 
As of 8 Feburary 2006, [[CcPublisher]] has discarded libxml2/libxslt in favor of ElementTreefor XML and XPath manipulations.  While libxml2 is a high-speed, memory efficient XML engine, there are a few reasons for this switch.
  

Latest revision as of 21:45, 11 February 2006

As of 8 Feburary 2006, CcPublisher has discarded libxml2/libxslt in favor of ElementTreefor XML and XPath manipulations. While libxml2 is a high-speed, memory efficient XML engine, there are a few reasons for this switch.

  • Unless there are large performance gains, we prefer pure-Python code over C extensions. Pure Python code is simply easier to deal with when packaging ccPublisher. ElementTree is implemented as pure Python, with a C implementation available in the event that performance does become an issue.
  • As of Python 2.6, ElementTree will be included in the standard library.
  • libxml2 and libxslt have Python bindings, but they are not memory managed.
  • The amount of XML parsing done by the P6 framework is miniscule, so the pain of doing our own memory management and requiring a C extension module is not worth the performance increase.