Skip to main content

YAML renderer for t-string structured data templates

Project description

yaml-tstring

YAML rendering for PEP 750 t-strings. Parsing and rendering happen in Rust; this package is the Python wrapper.

Requires Python 3.14+.

This package depends on tstring-bindings, a native PyO3 extension. On supported platforms, install from prebuilt wheels. Other environments require a local Rust 1.94.0 toolchain build.

API

render_data(template, profile="1.2.2")  # -> Python data (list for multi-doc)
render_text(template, profile="1.2.2")  # -> YAML text
render_result(template, profile="1.2.2")  # -> RenderResult (.text + .data)

Type alias: YamlProfile = Literal["1.2.2"]

Parsed template structure is cached per process using template.strings + profile as the key.

How it works

The Python Template is converted to a Rust token stream and parsed by an interpolation-aware YAML scanner/parser. Block mappings, block sequences, flow collections, scalar styles, anchors, aliases, and tags are all parsed explicitly in Rust with interpolation nodes preserved. saphyr handles data materialization and normalization.

Supported positions

  • mapping-key interpolation
  • plain, single-quoted, double-quoted, and block scalar assembly
  • anchor, alias, and tag interpolation (including verbatim !<...> tags)
  • block and flow collections, multi-document streams
  • directives, %TAG handles, explicit document markers
  • merge keys, complex keys, trailing commas in flow collections
  • YAML 1.2.2 escape sequences in double-quoted scalars

The full tested boundary is in the backend support matrix.

Limits

  • non-finite floats rejected
  • metadata fragments must be non-empty and whitespace-free
  • integers keep exact Python text (no silent float coercion)
  • values must be representable in the current YAML 1.2+ surface

Verify

uv sync --group dev
uv run --group dev pytest

See also

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

yaml_tstring-0.2.1.tar.gz (3.6 kB view details)

Uploaded Source

Built Distribution

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

yaml_tstring-0.2.1-py3-none-any.whl (4.7 kB view details)

Uploaded Python 3

File details

Details for the file yaml_tstring-0.2.1.tar.gz.

File metadata

  • Download URL: yaml_tstring-0.2.1.tar.gz
  • Upload date:
  • Size: 3.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yaml_tstring-0.2.1.tar.gz
Algorithm Hash digest
SHA256 8ba7b7ce6a25e1c4a98946f9897272ee2f46a67080b87b3f86b16e15cff454f6
MD5 81f1ea239efedb3c3c248367224787cb
BLAKE2b-256 6239945e0ee9c185b532be8e93b40d2cbaac02a054bbc9b2eb9b8717640a6d80

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaml_tstring-0.2.1.tar.gz:

Publisher: publish-python.yml on koxudaxi/tstring-structured-data

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

File details

Details for the file yaml_tstring-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: yaml_tstring-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 4.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for yaml_tstring-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 851400b108d25888cd23bc0c891a1c1cddb511d0c3cab9524c7f5e60adbb1504
MD5 86b0271c8430fd57698fce99adf5153f
BLAKE2b-256 5340a4c8d3bdc5bce1991490581047fd4e7282db0d1a7a521724b9289dde13f4

See more details on using hashes here.

Provenance

The following attestation bundles were made for yaml_tstring-0.2.1-py3-none-any.whl:

Publisher: publish-python.yml on koxudaxi/tstring-structured-data

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