{"id":24292,"library":"py3o-template","title":"Py3o Template","description":"An easy solution to design reports using LibreOffice templates (ODT/ODS) and Python. Current version 0.10.0, with releases approximately yearly.","status":"active","version":"0.10.0","language":"python","source_language":"en","source_url":"https://github.com/airnez/py3o.template","tags":["reporting","odf","libreoffice","template"],"install":[{"cmd":"pip install py3o-template","lang":"bash","label":"Install from PyPI"}],"dependencies":[{"reason":"XML/ODF parsing","package":"lxml","optional":false},{"reason":"Common utilities for py3o ecosystem","package":"py3o-common","optional":false}],"imports":[{"note":"Direct import of the main template class.","wrong":"","symbol":"Template","correct":"from py3o.template import Template"}],"quickstart":{"code":"from py3o.template import Template\n\n# Load an ODT template file\nt = Template(template_path='my_template.odt', out_path='my_output.odt')\n\n# Set data\nmy_data = {'name': 'John Doe', 'age': 30}\nt.set(my_data)\n\n# Render the output\nt.render()\n","lang":"python","description":"Basic usage: load a LibreOffice template, set variables, render."},"warnings":[{"fix":"Use .odt files as templates. Save .ott as .odt first.","message":"Template files must be ODT format, not OTT (template files). Py3o-template does not handle OTT files.","severity":"gotcha","affected_versions":"all"},{"fix":"Use the py3o documentation for proper placeholder syntax; ensure no conflicts.","message":"Variable substitution syntax conflicts: Jinja2-like syntax may conflict with LibreOffice's own field syntax. Use the correct py3o syntax (e.g., ${variable} in text, or py3o directives).","severity":"gotcha","affected_versions":"< 0.10"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run 'pip install py3o-template' to install the package.","cause":"Package not installed or environment mismatch.","error":"ModuleNotFoundError: No module named 'py3o'"},{"fix":"Check documentation for the correct method. For 0.10, use 'set' but ensure you have the latest version.","cause":"Incorrect version usage. In older versions, the method was named 'set' but in newer it might be 'render' or 'process'. Or wrong API.","error":"AttributeError: 'Template' object has no attribute 'set'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}