Skip to main content

A templating engine for SPARQL queries with typed, injection-safe placeholders and loops

Project description

Triplate (Python)

A templating engine for RDF query & data languages (SPARQL, Turtle, …) with a typed --- frontmatter header, injection-safe values, loops and conditionals. Python reference implementation of the Triplate language.

from triplate import compile

template = """\
---
params {
  classes: iri[] min 1
  limit:   int optional
}
---
SELECT ?s WHERE {
{% for c in classes join "UNION" %}
  { ?s a ${c} }
{% endfor %}
}
{% if limit %}LIMIT ${limit}{% endif %}
"""

tmpl = compile(template)
sparql = tmpl.render(classes=["http://example.org/Person"], limit=10)

Every input is declared in the mandatory --- frontmatter header with its RDF type; the context is validated and each value escaped accordingly, so rendered output is injection-safe and an unprocessed template fails fast.

See triplate.dev for the full guide and specification.

Project details


Download files

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

Source Distribution

triplate-0.3.0.tar.gz (15.7 kB view details)

Uploaded Source

Built Distribution

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

triplate-0.3.0-py3-none-any.whl (17.1 kB view details)

Uploaded Python 3

File details

Details for the file triplate-0.3.0.tar.gz.

File metadata

  • Download URL: triplate-0.3.0.tar.gz
  • Upload date:
  • Size: 15.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for triplate-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c10e8cb51f80ba93391e18a31db0c682e3c66d159723e1525f05ec5f041029b4
MD5 d190f8d9f836c7c947e9addd1355d7cf
BLAKE2b-256 15ed7b1bf8e2c1dcd6e873437da52e66af839ed9e0f777179564b911b07b7976

See more details on using hashes here.

Provenance

The following attestation bundles were made for triplate-0.3.0.tar.gz:

Publisher: release-please.yml on triplate/triplate

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

File details

Details for the file triplate-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: triplate-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 17.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for triplate-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2106cb6525b3819358e556fa273f0fcada08e833fd05950b092c28a01ad8b73
MD5 cb0c71a23c5a8fbdd50dff45c811e5e9
BLAKE2b-256 90cdc0e0783fa3463237060cd6839bc435165353cae96a8f164dc3e11390be7f

See more details on using hashes here.

Provenance

The following attestation bundles were made for triplate-0.3.0-py3-none-any.whl:

Publisher: release-please.yml on triplate/triplate

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