Skip to main content

Jinja2 based template module.

Project description

haip.template

License Build Status

haip.template is Jinja2 based async template rendering module.

Features

  • minimalistic: a single exported async function "render"
  • autoreturn-type: the return data type is derived from the file suffix

Getting Started

Installing

pip install haip.template

or from source:

git clone https://github.com/haipdev/template.git

Usage

async def render(template_filename, *, template_dir=None, **args)

The template-file is defined by config.template_dir/template_dir/template_filename. **args are used to fillin the placeholders in the template_file and the suffix of the template_file determines the return type. E.g. "template_name.json" will return a json structure (dict). render will propagate exceptions as they are raised by the underlaying modules.

Suffix handling is as follows:

  • .json : json struct (dict)
  • .sql : string (but **args values will be escaped)
  • .* : string

Example

config (using haip.config)

template-dir: /path-to-template-dir/

mytemplate.jinja2

Hello my name is {{ firstname }} {{ lastname }}!

python implementation

import haip.config as config
import haip.template as template

config.load('/path-to-my-config-dir')
document = await template.render('mytemplate.jinja2', firstname='Reinhard', lastname='Hainz')

If mytemplate.jinja is in a subdirectory of the template-dir (e.g. /path-to-template-dir/mysubdir/):

document = await template.render('mytemplate.jinja2', template_dir='mysubdir', firstname='Reinhard', lastname='Hainz')

You can also use absolute paths in the template_dir argument of the render function.

Running the tests

Tests are written using pytest and located in the "tests" directory.

pytest tests

Contributing

Feel free to use and enhance this project. Pull requests are welcome.

Authors

  • Reinhard Hainz - Initial work - haipdev

License

This project is licensed under the MIT License - see the LICENSE file for details

Dependencies

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for haip-template, version 0.1.3
Filename, size File type Python version Upload date Hashes
Filename, size haip_template-0.1.3-py3-none-any.whl (4.0 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size haip-template-0.1.3.tar.gz (2.7 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page