Context data

This document describes how piecutter handles data to render templates.

Mappings

piecutter uses mappings as context data. Any dictionary-like object can be used.

Default context data

piecutter registers a special piecutter variable in context, with values about environment and execution.

Here is a sample template using all piecutter‘s special context:

{# jinja2 -#}
{
  {%- for key, value in piecutter.iteritems() %}
  "{{ key }}": "{{ value }}"{% if not loop.last %},{% endif %}
  {%- endfor %}
}

And here is the expected output:

>>> import piecutter
>>> render = piecutter.Cutter(engine=piecutter.Jinja2Engine())
>>> print(render('file://tests/default_context.json', {}).read())
{
  "engine": "jinja2"
}