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.5.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (650.5 kB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

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

Uploaded Python 3macOS 11.0+ ARM64

liquidz-0.5.5-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.5.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.5.5-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 c1c11c8d9e73a0a9c514916ff7cd714fa0045b99dd2b3e3f181486ed15a3d0da
MD5 c3d77fe000a912658c04be3428ae78cf
BLAKE2b-256 418c0a5bc1c292f2a1a1ee303d02a998995b81d89c9abccf23e897fd1fd48c09

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for liquidz-0.5.5-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e5a7d318ec32abcc96be4914ff7b733de2a2d345b418d09c540b4b892041f57b
MD5 89f63e9a745b7e39b1dc6d9f65f69282
BLAKE2b-256 bd9b8d7a8959f40d355c3de5273989a2e82b60a8530f396d777a99eab314ad21

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for liquidz-0.5.5-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 161d156b8bc912c2b31c6ac1050e15c2a3cec6466154ffc05e47c18407198479
MD5 cd4daa2b1ddc31ac44c91ebc258feba4
BLAKE2b-256 a16551c8b28755b6da7ea8fc0c89d6186013b67d0bc4eac1a9a022e78ca8eee8

See more details on using hashes here.

Provenance

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