Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

0.2.0 - 2024-05-21

Added

  • cache_make_key parameter enabling cache key customization.

Fixed

  • Fix custom stringify lost on lambdas and partials.

  • Fix custom getter lost on lambdas and partials.

  • Fix ±NaN behaving as truthy (#2).

  • Address constant mypy breaking changes.

Changed

  • Raised minimum python version to 3.10.0.

  • Breaking: __bool__ is now honored except for mappings and ±NaN.

  • Breaking: objects implementing __float__ can be considered ±NaN.

  • Breaking: internal TokenException.message renamed to TokenException._fmt.

  • Breaking: tokenizer is no longer a generator function, returns a tuple now.

  • Breaking: non-string attributes hacked onto __dict__ are now unreachable.

  • Drop optional xxhash dependency, cache_make_key should be used instead.

  • Project rename.

  • Optimizations.

0.1.5 - 2021-12-17

Added

  • Changelog.

Changed

  • Migrate tokenizer to an indexed balanced decision tree.

  • Migrate renderer to a balanced decision tree.

  • Other minor optimizations.

Fixed

  • Fix tokenizer raising IndexError with truncated tokens.

0.1.4 - 2021-04-13

Fixed

  • Fix longstanding issue with unclosed tags hanging the tokenizer.

0.1.3 - 2021-04-11

Added

  • bytes templates now support byte-keyed scope items and virtuals.

  • default_getter now supports custom virtual properties.

  • Optional xxhash support to minimize template cache memory footprint.

Fixed

  • Fix argument forwarding.

  • Fix incorrect behavior with nested undefined properties.

  • Fix default parameter values not being public.

0.1.2 - 2021-01-29

Fixed

  • Fix tokenizer raising IndexError when trying to close the top level scope.

0.1.1 - 2021-01-11

Fixed

  • Fix handling of whitespaced tokens.

0.1.0 - 2021-01-01

Added

  • Initial release.