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.9-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.9-py3-none-macosx_11_0_arm64.whl (196.8 kB view details)

Uploaded Python 3macOS 11.0+ ARM64

liquidz-0.2.9-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.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.2.9-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4d8277b6ed7908c74b08681fcb831d347669f132aeb6e39485b11b7a0873a6e0
MD5 135726e9167d4a67b04ad4f20d5e2250
BLAKE2b-256 425c1c4a26bd34e299af95b23baa62dbf214aac0fc674b0fd021168fb9782639

See more details on using hashes here.

Provenance

The following attestation bundles were made for liquidz-0.2.9-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.9-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for liquidz-0.2.9-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7f0479bb1c5570f7e887d55b63aec93498929081e2e5ea45e929dcbdc930e528
MD5 cf30b0e21404791e34227ed7c73b1e57
BLAKE2b-256 4951b44fb0080e8f793ec3047b14e2b9fad259f1e5cf1793994cad3b8d7c897f

See more details on using hashes here.

Provenance

The following attestation bundles were made for liquidz-0.2.9-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.9-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.2.9-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 935d83cb81ca06d8115b3a3e7c3090990e27ae43ed9873751c0c81beb5042a1d
MD5 21c9735af2744632b452c1a9e1cdff3d
BLAKE2b-256 14a34e9f7315eccc895a981690ceb00e9f760efb981eb8aee24ac1c42d8c4395

See more details on using hashes here.

Provenance

The following attestation bundles were made for liquidz-0.2.9-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