liquidpy
A port of liquid template engine for python
What it is and what it does
Liquidpy adapts the Liquid template language—originally from Ruby and widely used in Jekyll and Shopify—to Python by building on jinja2's foundation. It lets you write and render templates using Liquid syntax rather than jinja2's native syntax, which is useful if you're migrating templates from Ruby environments, working with Jekyll sites, or need Shopify template compatibility.
The package supports multiple template modes: standard Liquid, Jekyll-flavored Liquid, Shopify-extended Liquid, and a "wild" mode that adds Python code execution capabilities. You can load templates from strings or files, customize rendering through jinja2's environment API, and adjust defaults globally. It's a compatibility layer built on jinja2, so it inherits jinja2's performance and stability.
Use it for:
- Migrating Jekyll blog templates or static site generators from Ruby to a Python workflow.
- Rendering Shopify theme templates in a Python backend without switching template languages.
- Building a templating system that accepts Liquid syntax from users familiar with Jekyll or Shopify.
- Converting existing Liquid template codebases to Python while preserving template syntax unchanged.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Liquidpy is a Python port of the Liquid template engine built on Jinja2, letting you render templates in Liquid syntax with support for standard, Jekyll, Shopify, and extended "wild" modes.
Yes, if you need to render Liquid templates in Python. The package is actively maintained, has no known vulnerabilities, installs cleanly with minimal dependencies, and solves a real compatibility problem for teams migrating from Ruby or Shopify environments. Not necessary if you're already comfortable with jinja2's native syntax.
Install
liquidpy on PyPI
pip
pip install liquidpyuv
uv add liquidpypoetry
poetry add liquidpyInstalling liquidpy
Before you install
Install friction is low—a pure-Python wheel with only jinja2 as a runtime dependency. The project is actively maintained with a recent release 4 days old.
License in practice
MIT license is permissive; you can use, modify, and distribute this package freely in commercial and private projects with minimal restrictions.
Quickstart
pip install liquidpy
from liquidpy import Liquid
liq = Liquid('{{a}}', from_file=False)
result = liq.render(a=1)
Requires Python >=3.9.
Verify before relying
- Performance characteristics when rendering large or complex templates compared to native jinja2.
- Test coverage and code quality metrics referenced in the project's badges.
- Whether the "wild" mode's Python code execution has security implications for untrusted templates.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — jinja2 |
| Maintenance | actively maintained — 4 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 343,120/month — #7,387 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: liquidpy-0.10.0-py3-none-any.whl
Tags
More Markup packages
PyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
markdown-it-pyA Python markdown parser that converts markdown…
permissive · top 100 on PyPI
beautifulsoup4Beautiful Soup parses HTML and XML documents…
permissive · top 100 on PyPI
et-xmlfileet_xmlfile writes large XML files with minimal…
permissive · top 1,000 on PyPI
tomlkitParses and edits TOML files while preserving…
permissive · top 1,000 on PyPI
docstring-parserParses Python docstrings in ReST, Google,…
permissive · top 1,000 on PyPI
python-liquidPython Liquid is a template engine that renders…
permissive · top 5,000 on PyPI
curlylintLints HTML templates in Jinja, Nunjucks,…
permissive · top 15,000 on PyPI
jinja_partialsAdds a `render_partial()` function to Jinja2…
permissive · top 5,000 on PyPI
djlintdjlint formats and lints HTML templates with…
copyleft · top 5,000 on PyPI
Jinja2Jinja2 is a templating engine that renders…
permissive · top 100 on PyPI
jinja2-fragmentsRenders individual Jinja2 template blocks as…
permissive · top 15,000 on PyPI
envtplRenders Jinja2 templates on the command line,…
copyleft · top 15,000 on PyPI
ruamel.yaml.jinja2Enables Jinja2 templating within YAML files by…
permissive · top 5,000 on PyPI
html5taggerGenerates HTML5 markup programmatically using…
permissive · top 5,000 on PyPI
Flask-MomentFlask-Moment adds moment.js date and time…
permissive · top 15,000 on PyPI