Программа позволяет создавать документы в текстовом формате (включая latex, xetex, и др.) или ODF форматах используя шаблоны и наборы данных.
Программа представляет из себя утилиту, не имеющая интерактивного интерфейса с пользователем. Предназначена для использования в составе скриптов.
Программа использует язык шаблонов Jinja2, расширенный новыми командами, для загрузки данных из различных источников.
Поддерживаемые источники данных:
- CSV таблица (Может быть отредактирована в Exel при соблюдении определенных правил)
- XML документ
- Текстовый файл
- SQLite база данных
- Функция MD5 от файла
- Функция получения данных о файле
Позволяет загружать древовидные данные из XML файла Принимает аргумент - имя файла Возращает - root element Пример использования:
{%- set root = load_xml("database1.xml") %}
{%- for item in root.findall("hardware/i") %}
{{ item.find("name").text }} & {{ item.find("sign").text }} / {{ item.find("version").text }} & {{ item.find("fullname").text }} \\\hline
{%- endfor %}
Позволяет загружать табличные данные из CSV файла Принимает аргумент - имя файла Возращает - итератор Пример использования:
{%- set docs = load_csv("database2.csv") %}
{%- for item in docs %}
{{ item.id }} & {{ item.name }} & {{ item.ref }} & {{ item.sign }} & {{ item.inv }} \\\hline
{%- endfor %}
Позволяет загружать данные из SQLite базы данных Принимает аргумент - имя файла Возращает - курсор Пример использования:
{%- set db = load_sqlite("database3.sqlite") %}
{%- set alboum = db.execute("select * from Album") %}
{%- for item in alboum %}
{{ item[0] }} & {{ le(item[1]) }} \\\hline
{%- endfor %}
Позволяет загружать текстовые данные из файла Принимает аргумент - имя файла Возращает - строку Пример использования:
{%- set content = load_text("database4.txt") %}
{{ content }}
Позволяет подсчитать контрольную сумму файла Принимает аргумент - имя файла Возращает - строку Пример использования:
{%- set md5 = file_md5(sourcefile) %}
{{md5}}
Позволяет получить информацию о файле (размер) Принимает аргумент - имя файла Возращает - объект, содержащий следующие поля:
- st_mode - protection bits,
- st_ino - inode number,
- st_dev - device,
- st_nlink - number of hard links,
- st_uid - user id of owner,
- st_gid - group id of owner,
- st_size - size of file, in bytes,
- st_atime - time of most recent access,
- st_mtime - time of most recent content modification,
- st_ctime - platform dependent; time of most recent metadata change on Unix, or the time of creation on Windows)
- st_blocks - number of 512-byte blocks allocated for file
- st_blksize - filesystem blocksize for efficient file system I/O
- st_rdev - type of device if an inode device
- st_flags - user defined flags for file
- st_gen - file generation number
- st_birthtime - time of file creation
- st_ftype (file type)
- st_attrs (attributes)
- st_obtype (object type). Пример использования:
{%- set stat = file_stat(sourcefile) %}
{{ stat.st_size }}
Позволяет выводить сообщения в консоль при разборе шаблона Принимает аргумент - строка Пример использования:
{%- do log("Add alboum %s (authorid=%d)" % (item[1], item[2])) %}
Позволяет получить аргументы запуска из командной строки Возвращает значение - сущность, описанная на python в параметре "arg"
Позволяет обрабатывать отдельный тексторый шаблон
Позволяет обрабатывать отдельный шаблон в формате OpenDocument Пример использования:
{%- set docs = load_csv("database2.csv") %}
{%- for item in docs %}
{% set _ = global_var.update({"item":item}) %}
{{ odt_template("out_doc3.odt", "output/" item.id "_out_doc3.odt") }}
Генерация документа {{ item.id }}
{%- endfor %}
Usage: pytemplate.py [options] Опции:
- --version Отобразить версию
- -h, --help Отобразить информацию о ключах запуска
- -t TEMPLATE, --template=TEMPLATE Указать путь до файла шаблона
- -o OUTPUT, --output=OUTPUT Указать путь до выходного файла
- -f FORMAT, --format=FORMAT Формат файла шаблона, может принимать значения (odt и text)
- -a ARG, --arg=ARG Дополнительная сущность для шаблона