jinja2-humanize-extension
a jinja2 extension to use humanize library inside jinja2 templates
Description
# jinja2_humanize_extension [//]: # (automatically generated from https://github.com/metwork-framework/github_organization_management/blob/master/common_files/README.md) **Status (master branch)** [](https://github.com/metwork-framework/jinja2_humanize_extension/actions?query=workflow%3ACI+branch%3Amaster) [](https://github.com/metwork-framework/resources/blob/master/badges/maintained.svg) ## What is it ? This is a [jinja2](http://jinja.pocoo.org/) extension to use [humanize](https://python-humanize.readthedocs.io/) library inside jinja2 templates. ## Syntax The generic syntax is `{{ 'VALUE'|humanize_{humanize_fn}([humanize_fn_args]) }}`. Following [humanize](https://python-humanize.readthedocs.io/) functions are currently mapped: - `naturalsize` - `abs_timedelta` (deprecated with humanize >= 4.0, we keep it for compatibility) - `date_and_delta` (deprecated with humanize >= 4.0, we keep it for compatibility) - `naturaldate` - `naturalday` - `naturaldelta` - `naturaltime` - `precisedelta` - `ordinal` - `intcomma` - `intword` - `apnumber` - `fractional` - `scientific` - `clamp` - `metric` - `activate` - `deactivate` - `thousands_separator` - `decimal_separator` See [humanize](https://python-humanize.readthedocs.io/) documentation for argument details. To take a more real example, let's take the [naturalsize()](https://python-humanize.readthedocs.io/en/latest/filesize/) function. To use it inside a [jinja2](http://jinja.pocoo.org/) template with this extension, you have to use: ``` The file size is: {{ 30000000|humanize_naturalsize(binary=False, gnu=True) }} ``` result content will be : `The file size is : 30.0 MB` You can use the same logic with all supported functions. If you need other functions, feel free to open a PullRequest. ## Installation ``` pip install jinja2-humanize-extension ``` ## Full example ```python from jinja2 import Template, Environment # We load the extension in a jinja2 Environment env = Environment(extensions=["jinja2_humanize_extension.HumanizeExtension"]) template = env.from_string("The file size is : {{ 30000000|humanize_naturalsize() }}") result = template.render() # [...] ``` result content will be : `The file size is : 30.0 MB` ## Contributing guide See [CONTRIBUTING.md](CONTRIBUTING.md) file. ## Code of Conduct See [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md) file. ## Sponsors *(If you are officially paid to work on MetWork Framework, please contact us to add your company logo here!)* [](http://www.meteofrance.com)
Release History
| Version | Changes | Urgency | Date |
|---|---|---|---|
| 0.4.0 | Imported from PyPI (0.4.0) | Low | 4/21/2026 |
| v0.4.0 | Release v0.4.0 | Low | 9/1/2023 |
| v0.3.0 | Release v0.3.0 | Low | 7/13/2023 |
| v0.2.2 | Release v0.2.2 | Low | 10/11/2022 |
| v0.2.1 | - requires humanize < 4.0.0 - replace deprecated evalcontextfilter | Low | 2/24/2022 |
| v0.2.0 | Release v0.2.0 | Low | 2/16/2021 |
| v0.1.1 | Release v0.1.1 | Low | 2/16/2021 |
| v0.1.0 | Release v0.1.0 | Low | 2/16/2021 |
| v0.0.1 | Release v0.0.1 | Low | 2/16/2021 |
