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

Uploaded Python 3macOS 11.0+ ARM64

liquidz-0.3.0-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.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.3.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 60900994015bd4ae4e2d2959cd0cde970b4b78340cf382e7813d514a298e52ef
MD5 c7c7a2f83c760895e0d9766f96d9beec
BLAKE2b-256 caab721d0ccb43fcc73fbf7b7af6e4c87b964332fe47a972ad4148b6d3d9ed34

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for liquidz-0.3.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 26a3c28703a19010b1ff93fee3fc95e6f9dd34f4bcf390631bfa9ed4d6c66164
MD5 86b650725c77d30fd64c654c637888b3
BLAKE2b-256 a4e7b19b90c746320bf3bbc6fead2da0d29b877031eab1a0fc384a6fb89fdb84

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for liquidz-0.3.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ba47be1f15e59e3c0182bcde8717bccd12df21802c6055bc6aaa6e312b5ea4fe
MD5 33b9e847ea0b10a666da7f0bd2ffc508
BLAKE2b-256 a3cb5d7c3b52aa13e437c94add8c9e302dcd66b7147492623e0455050f4776c5

See more details on using hashes here.

Provenance

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