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.

Source Distribution

haip-template-0.1.3.tar.gz (2.7 kB view details)

Uploaded Source

Built Distribution

haip_template-0.1.3-py3-none-any.whl (4.0 kB view details)

Uploaded Python 3

File details

Details for the file haip-template-0.1.3.tar.gz.

File metadata

  • Download URL: haip-template-0.1.3.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2

File hashes

Hashes for haip-template-0.1.3.tar.gz
Algorithm Hash digest
SHA256 1e3e6dee0897b7158b95c20f096e68fe2ae3c7b9837c0a6046a4f129dfdc321a
MD5 308ed77af3647d224c9f56416f71f6ec
BLAKE2b-256 38353be5d531fc24532ce24b403977b6bc68f5d26f9a60d1dfd64a3adea51365

See more details on using hashes here.

File details

Details for the file haip_template-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: haip_template-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 4.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.12.1 pkginfo/1.5.0.1 requests/2.21.0 setuptools/40.7.1 requests-toolbelt/0.9.1 tqdm/4.30.0 CPython/3.7.2

File hashes

Hashes for haip_template-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 70237ac3dbeb0c3a9119ff8ff32271f50c63cf4867310f2b27388d4262dfc01b
MD5 d0cf20a9da1337c4e751bd75f3a9b327
BLAKE2b-256 61495f6b3dee6491f83c478a26e7985bae80921a7d45b5b0257556f27498c5cf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page