Skip to main content

High-performance Liquid template engine powered by Zig

Project description

Liquidz Python Binding

High-performance Liquid template engine for Python, powered by Zig.

Installation

pip install liquidz

Prerequisites: You need to build the Zig library first:

cd ../..  # Go to project root
zig build -Doptimize=ReleaseFast

Usage

from liquidz import render

# Simple variable substitution
result = render("Hello, {{ name }}!", {"name": "World"})
print(result)  # "Hello, World!"

# With loops
result = render("{% for item in items %}{{ item }} {% endfor %}", {"items": ["a", "b", "c"]})
print(result)  # "a b c "

# With conditionals
result = render("{% if show %}visible{% endif %}", {"show": True})
print(result)  # "visible"

# With filters
result = render("{{ name | upcase }}", {"name": "hello"})
print(result)  # "HELLO"

# Using JSON string directly
result = render("{{ x }}", '{"x": 42}')
print(result)  # "42"

# Empty data (defaults to {})
result = render("Hello")
print(result)  # "Hello"

API

render(template, data=None)

Renders a Liquid template with the given data.

Parameters:

  • template (str): The Liquid template string
  • data (dict | str | None): The data to render with. Can be a dict or a JSON string. Defaults to None (empty dict).

Returns:

  • str: The rendered template

Raises:

  • RenderError: If rendering fails
  • LiquidzError: If the library cannot be loaded

render_string(template, data=None)

Alias for render().

Exceptions

  • LiquidzError: Base exception for all Liquidz errors
  • RenderError: Raised when template rendering fails

Running Tests

pip install pytest
pytest

License

MIT

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

liquidz-0.2.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (682.0 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

liquidz-0.2.7-py3-none-macosx_11_0_arm64.whl (196.8 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

liquidz-0.2.7-py3-none-macosx_10_9_x86_64.whl (196.8 kB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file liquidz-0.2.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.2.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1d3fba100dc4d03e844131e5d3035e1942ec967d8796842e7fd9a090f5771d03
MD5 bb2af8233bc8ae6c4f82a06bbb077ddc
BLAKE2b-256 b07302b1b6d3b29fe5d1bfdc4f30883c3b03f7d2b06be597e39abc86132e144b

See more details on using hashes here.

Provenance

The following attestation bundles were made for liquidz-0.2.7-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: release.yml on pepicrft/liquidz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file liquidz-0.2.7-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for liquidz-0.2.7-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 37ea1082b2da2d7625379f30b7a9c2b571c63b950c092ce5494aa93f0ed9b0e8
MD5 4cb13e3dc6cba38e206a6f66062b2438
BLAKE2b-256 b8e08ffd93ac46bfb5930dfda5091fca82678a7b5f14507dbd50d527e84271d5

See more details on using hashes here.

Provenance

The following attestation bundles were made for liquidz-0.2.7-py3-none-macosx_11_0_arm64.whl:

Publisher: release.yml on pepicrft/liquidz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file liquidz-0.2.7-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.2.7-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1290656159a1ea4c66a3841d34a79b64bfe3e9784dcb14239c73db0d02457b77
MD5 886d113db20a26d3f802e7ed38f6e7b6
BLAKE2b-256 7f9258cf1bc12660a9cc27b3b5dbbfc2bbd20c6be3a6af5f27f490247e56df62

See more details on using hashes here.

Provenance

The following attestation bundles were made for liquidz-0.2.7-py3-none-macosx_10_9_x86_64.whl:

Publisher: release.yml on pepicrft/liquidz

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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