Collection of utils for jinja2
Project description
jinja2utils
Useful utils for jinja2
Install
pip install jinja2utils
t_factory
t_factory is a small tool which helps prefixed templates easily.
See examples below.
Example:
- ./templates/en/home/welcome
Welcome, {{username}}!
- ./templates/en/home/goodbye
Welcome, {{username}}!
- ./templates/ru/home/welcome
Welcome, {{username}}!
- ./templates/ru/home/goodbye
Goodbye, {{username}}!
- ./main.py
from jinja2 import Environment, PrefixLoader, FileSystemLoader
from jinja2utils import t_factory
loader = PrefixLoader({
'en': FileSystemLoader('./templates/en'),
'ru': FileSystemLoader('./templates/ru'),
})
jinja = Environment(loader=loader)
get_t = t_factory(jinja)
def print_templates(t, username):
rendered1 = t('home/welcome', username=username)
print(rendered1)
rendered2 = t('home/goodbye', username=username)
print(rendered2)
print_templates(get_t('en'), 'John Doe')
# Expected output:
# Welcome, John Doe!
# Goodbye, John Doe!
print_templates(get_t('ru'), 'Иван')
# Expected output:
# Привет, Иван!
# Пока, Иван!
plural
plural is jinja2 filter function for easy text pluralization.
Example:
- ./templates/info/users
System have {{users}} active {{users|plural('en','user','users')}}.
# main.py
from jinja2 import Environment, FileSystemLoader
from jinja2utils import plural
jinja = Environment(loader=FileSystemLoader('./templates'))
jinja.filters['plural'] = plural
template1 = jinja.get_template('info/users')
rendered1 = template1.render(users=1)
print(rendered1) # System have 1 active user.
rendered2 = template1.render(users=23)
print(rendered2) # System have 23 active users.
elapsed and remaining
Calculates and formats elapsed time to string like this:
25d 4h 3m 35s. Can be used as jinja2 filter.
Example:
- ./templates/info
System uptime: {{started|elapsed(show_seconds=True)}}.
- ./templates/newyear
System uptime: {{started|elapsed(show_seconds=True)}}.
# main.py
from jinja2 import Environment, FileSystemLoader
from jinja2utils import elapsed, remaining
import datetime
jinja = Environment(loader=FileSystemLoader('./templates'))
jinja.filters['elapsed'] = elapsed
jinja.filters['remaining'] = remaining
started = datetime.datetime.now()
newyear = datetime.datetime(2025, 1, 1, 0, 0, 0)
username = 'John Doe'
template1 = jinja.get_template('info/uptime')
rendered1 = template1.render(started=started)
print(rendered1) # System uptime: 25d 4h 3m 35s.
template2 = jinja.get_template('info/newyear')
rendered2 = template2.render(newyear=newyear)
print(rendered2) # To next year remaining 295d 10h 13m 10s!
uchar
Simple jinja2 function to insert unicode characters by unicode names. Very useful for inserting emoji.
Example:
- ./templates/info/users
Welcome, {{username}} {{UN('THUMBS UP SIGN')}}!
# main.py
from jinja2 import Environment, FileSystemLoader
from jinja2utils import uchar
jinja = Environment(loader=FileSystemLoader('./templates'))
jinja.globals['UN'] = uchar
template1 = jinja.get_template('info/users')
rendered1 = template1.render(username='John Doe')
print(rendered1) # Welcome, John Doe 👍!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jinja2utils-0.1.1.tar.gz.
File metadata
- Download URL: jinja2utils-0.1.1.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.12.4 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6ef8454b35761585986dbc6255781abb9988296abda8cbd288e601d08cda958a
|
|
| MD5 |
f4da8ee885dd49a6273fcdec68b1b6d6
|
|
| BLAKE2b-256 |
a784d6c404bad6765f313d103d387694fac5e983c35c4362351a624878bdadb1
|
File details
Details for the file jinja2utils-0.1.1-py3-none-any.whl.
File metadata
- Download URL: jinja2utils-0.1.1-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: pdm/2.12.4 CPython/3.12.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9fad0e7394bc936bb0f0dfb206f428f7762393dd382873ac608633db24c0b9b0
|
|
| MD5 |
bbf374f56065003fe9d33ae69dabca98
|
|
| BLAKE2b-256 |
790f4b667a62749e829872d066a6e7e083b12bb673d41a9cf0c082e936077737
|