METADATA 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. Metadata-Version: 2.1
  2. Name: et_xmlfile
  3. Version: 2.0.0
  4. Summary: An implementation of lxml.xmlfile for the standard library
  5. Home-page: https://foss.heptapod.net/openpyxl/et_xmlfile
  6. Author: See AUTHORS.txt
  7. Author-email: charlie.clark@clark-consulting.eu
  8. License: MIT
  9. Project-URL: Documentation, https://openpyxl.pages.heptapod.net/et_xmlfile/
  10. Project-URL: Source, https://foss.heptapod.net/openpyxl/et_xmlfile
  11. Project-URL: Tracker, https://foss.heptapod.net/openpyxl/et_xmfile/-/issues
  12. Classifier: Development Status :: 5 - Production/Stable
  13. Classifier: Operating System :: MacOS :: MacOS X
  14. Classifier: Operating System :: Microsoft :: Windows
  15. Classifier: Operating System :: POSIX
  16. Classifier: License :: OSI Approved :: MIT License
  17. Classifier: Programming Language :: Python
  18. Classifier: Programming Language :: Python :: 3.8
  19. Classifier: Programming Language :: Python :: 3.9
  20. Classifier: Programming Language :: Python :: 3.10
  21. Classifier: Programming Language :: Python :: 3.11
  22. Classifier: Programming Language :: Python :: 3.12
  23. Classifier: Programming Language :: Python :: 3.13
  24. Requires-Python: >=3.8
  25. License-File: LICENCE.python
  26. License-File: LICENCE.rst
  27. License-File: AUTHORS.txt
  28. .. image:: https://foss.heptapod.net/openpyxl/et_xmlfile/badges/branch/default/coverage.svg
  29. :target: https://coveralls.io/bitbucket/openpyxl/et_xmlfile?branch=default
  30. :alt: coverage status
  31. et_xmfile
  32. =========
  33. XML can use lots of memory, and et_xmlfile is a low memory library for creating large XML files
  34. And, although the standard library already includes an incremental parser, `iterparse` it has no equivalent when writing XML. Once an element has been added to the tree, it is written to
  35. the file or stream and the memory is then cleared.
  36. This module is based upon the `xmlfile module from lxml <http://lxml.de/api.html#incremental-xml-generation>`_ with the aim of allowing code to be developed that will work with both libraries.
  37. It was developed initially for the openpyxl project, but is now a standalone module.
  38. The code was written by Elias Rabel as part of the `Python Düsseldorf <http://pyddf.de>`_ openpyxl sprint in September 2014.
  39. Proper support for incremental writing was provided by Daniel Hillier in 2024
  40. Note on performance
  41. -------------------
  42. The code was not developed with performance in mind, but turned out to be faster than the existing SAX-based implementation but is generally slower than lxml's xmlfile.
  43. There is one area where an optimisation for lxml may negatively affect the performance of et_xmfile and that is when using the `.element()` method on the xmlfile context manager. It is, therefore, recommended simply to create Elements write these directly, as in the sample code.