Skip to content

4.0

Compare
Choose a tag to compare
@kblomqvist kblomqvist released this 08 Oct 17:24
· 55 commits to master since this release
  • Reverted the change introduced in version 3.0 to use uppercase -E and -V option flags for extension and variable files. Fixes the SCons builder, which was still using lowercase options.
  • Changed the way how template variables given as part of the command-line call are defined. From this version all unknown long options which has a proper value are interpreted as a template variable, e.g. --foo=bar or --foo bar. Note that -v foo bar is not working anymore.
  • Fixed an issue where the command-line call yasha ../template.j2 searched for template companion files till root folder.
  • Python literals can be used as part of the command-line call, e.g. yasha --foo "['bar', 'baz']" template.j2.
  • Added env template filter to read system environment variable.
  • Added shell template filter to run a shell command. and to connect its standard output. Requires Python >= 3.5.
  • Added subprocess template filter to spawn new processes, but unlike shell a CompletedProcess instance is returned, or CalledProcessError in case of error. Requires Python >= 3.5.
  • Added parser for XML type of variable files. Uses xmltodict.
  • Added command-line option -c to set template encoding. Default is UTF-8.
  • JSON parser updated to use safe_load (security).
  • Within extension file, custom variable file parsers are now defined either as a function named as parse_+ <file extension>, or the parse-function is given via PARSERS dictionary with the key indicating the file extension.
  • Within extension file, custom filters and tests can be also given via FILTERS and TESTS dictionary. This allows using external filters easily, e.g. from Ansible.
  • Common extension file can be now set via YASHA_EXTENSIONS system environment variable.
  • Command-line option --no-variables changed to --no-variable-file.
  • Command-line option --no-extensions changed to --no-extension-file.
  • Removed the variable/extension file overwrite protection introduced in version 3.1. Caused more confusion than protection.