freshcrate
Skin:/

odfpy

Python API and tools to manipulate OpenDocument files

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

Odfpy is a library to read and write OpenDocument v. 1.2 files. The main focus has been to prevent the programmer from creating invalid documents. It has checks that raise an exception if the programmer adds an invalid element, adds an attribute unknown to the grammar, forgets to add a required attribute or adds text to an element that doesn't allow it. These checks and the API itself were generated from the RelaxNG schema, and then hand-edited. Therefore the API is complete and can handle all ODF constructions. In addition to the API, there are a few scripts: - csv2odf - Create OpenDocument spreadsheet from comma separated values - mailodf - Email ODF file as HTML archive - odf2xhtml - Convert ODF to (X)HTML - odf2mht - Convert ODF to HTML archive - odf2xml - Create OpenDocument XML file from OD? package - odfimgimport - Import external images - odflint - Check ODF file for problems - odfmeta - List or change the metadata of an ODF file - odfoutline - Show outline of OpenDocument - odfuserfield - List or change the user-field declarations in an ODF file - xml2odf - Create OD? package from OpenDocument in XML form The source code is at https://github.com/eea/odfpy Visit https://github.com/eea/odfpy/wiki for documentation and examples. The code at https://joinup.ec.europa.eu/software/odfpy/home is obsolete.

Release History

VersionChangesUrgencyDate
master@2026-10-15Latest activity on master branchHigh10/15/2026
1.4.1Imported from PyPI (1.4.1)Low4/21/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchMedium4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
master@2026-04-07Latest activity on master branchLow4/7/2026
release-1.4.2Tag release-1.4.2Low8/15/2021
release-1.4.1Tag release-1.4.1Low1/18/2020
release-1.4.0Tag release-1.4.0Low12/2/2018
release-1.3.6Tag release-1.3.6Low12/11/2017
release-1.3.5Tag release-1.3.5Low6/11/2017
release-1.3.4Tag release-1.3.4Low1/2/2017
release-1.3.3Tag release-1.3.3Low7/16/2016
release-1.3.2Tag release-1.3.2Low2/3/2016
release-1.3.1Tag release-1.3.1Low7/18/2015
release-1.3.0Tag release-1.3.0Low6/26/2015
release-1.2.0Tag release-1.2.0Low7/13/2014

Dependencies & License Audit

Loading dependencies...

Similar Packages

jediAn autocompletion tool for Python that can be used for text editors.master@2026-10-25
mypyOptional static typing for Pythonmaster@2026-10-25
types-jinja2Typing stubs for Jinja2main@2026-10-25
pyhankoTools for stamping and signing PDF filesmaster@2026-10-25
flitA simple packaging tool for simple packages.main@2026-10-24

More in Developer Tools

mypyOptional static typing for Python
jediAn autocompletion tool for Python that can be used for text editors.
types-jinja2Typing stubs for Jinja2
pyhankoTools for stamping and signing PDF files