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

Uploaded Python 3macOS 11.0+ ARM64

liquidz-0.4.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.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for liquidz-0.4.0-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 146ee9fa2913982d0fdd9a5c90ff4a0cfc2b8f5abbec40672b5d455abd992e51
MD5 6f2b7b2b2aa89fe378a53a7e6b6db38e
BLAKE2b-256 b0cdf790626f595e73fbb772a6663e27d3483b12be391068aab137f82c29aa11

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for liquidz-0.4.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da03ffda48586536015cbcbabfabadc8177f061bd2d1d4633d46a01357ef58ce
MD5 9679bda77aa46c32cc4c3c6ad6053e38
BLAKE2b-256 34b71d5940b990cf02e2b51e95770ca4411522589b9bf2c69db7e29b10799fb7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for liquidz-0.4.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 0eff546e23753f2cabee01b5e6a7aee53cdf4626a3b423527ce4302df0c082e9
MD5 c87192c34c96e40be6919bd84420ffe6
BLAKE2b-256 10b521542e848ab70b3b4d9da9f90375677d707182ab996239e75029d90269b7

See more details on using hashes here.

Provenance

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