Skip to main content

A powerful template engine with Python expression evaluation

Project description

Xylo

A powerful template engine with Python expression evaluation.

Installation

pip install xylo.py

Usage

from xylo import xylo

# Basic expressions
xylo("text $(1 + 5)")  # "text 6"

# Variables via context
xylo("Hello $(name)!", {"name": "World"})  # "Hello World!"

# Conditionals
xylo("$if(x > 5) Big $else Small $end", {"x": 10})  # " Big "

# Loops
xylo("$for(i in range(3)) $(i) $end")  # " 0  1  2 "

# Functions
xylo('$function(greet, name) Hello, $(name)! $end $call(greet, "World")')  # "  Hello, World! "

Features

  • Expressions: $(expression) - Evaluate and insert Python expressions
  • Exec: $exec(code) - Execute Python code without output
  • Conditionals: $if(cond) ... $elif(cond) ... $else ... $end
  • Loops: $for(var in iterable) ... $end, $while(cond) ... $end
  • Functions: $function(name, args) ... $end and $call(name, args)
  • Include: $include("file.sdf", key=value, ...) - Include and render another template
  • Import: $import("file.sdf", key=value, ...) - Import and render another template without the current context
  • Switch: $switch(expr) $case(val) ... $default ... $end
  • Error handling: $try ... $catch(e) ... $end, $raise(msg), $assert(cond)
  • Context managers: $with(expr as var) ... $end
  • Control flow: $break, $continue, $return

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 Distribution

xylo_py-0.1.8.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

xylo_py-0.1.8-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file xylo_py-0.1.8.tar.gz.

File metadata

  • Download URL: xylo_py-0.1.8.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for xylo_py-0.1.8.tar.gz
Algorithm Hash digest
SHA256 784c07dcf622d4053c0684db51ade0315cfcda70ad5eb47649aa304d216e0fa2
MD5 79fb3445e0796bafc0905781f7ba9b41
BLAKE2b-256 529006e90d46a8f82270f6ed1bc705788f0928bdcb68b9aaab1e9066b53a03ba

See more details on using hashes here.

File details

Details for the file xylo_py-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: xylo_py-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 9.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for xylo_py-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 92e89956a1b0b75eb208c183aca7213f2d673bb815d407e6747b5d95d7a65c3e
MD5 daf488822c9c39262db4360b795342fe
BLAKE2b-256 e09300406453f2a32c55e3f4fa8fe0a1737ef48cc18e203eeaed953b3a523fb6

See more details on using hashes here.

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