XIST Changelog

New in version 4.10

March 5th, 2013
  • It's now possible to use UL4 templates as functions by using the tag:
  • >>> from ll import ul4c
  • >>> f = ul4c.Template("")
  • >>> f(x=42)
  • It's also possible to call a template as a function inside another template:
  • >>> from ll import ul4c
  • >>> t = ul4c.Template("")
  • >>> t.renders()
  • '42'
  • Normal output of the template will be ignored if it is used as a function.
  • If the template runs through to the end without encountering a tag, None will be returned if the template is used as a function.
  • If the template is used as a template and a tag is encountered executing the template will be stopped (the return value will be ignored).
  • The UL4 tag may now contain not only variable assigments, but any other expression. Of course this makes only sense for expressions that have side effects (e.g. a call to the render method).
  • The tag has been removed. To update your code replace with .
  • UL4 functions print and printx have been added. They behave like the respective tags and , but can output an arbitrary number of arguments.
  • The builtin UL4 functions are now real objects that can be passed to templates as arguments.
  • The UL4 methods days, seconds, microseconds and months have been added for timedelta/monthdelta objects.
  • Lists in UL4 now support the methods append, insert and pop.
  • Dictionaries in UL4 now support the method update.
  • The db2ul4 script now supports a -w/--keepws argument.
  • The UL4 functions vars and get have been removed.
  • The ** syntax has been removed for UL4 dict literals.
  • The automatic UL4 variable stack has been removed too.

New in version 4.7 (January 12th, 2013)

  • A variable stack is now automatically defined in all UL4 templates. This list contains a stack of the currently executing UL4 templates. stack[-1] is the current template.
  • UL4 templates now support lexical scopes. A locally defined subtemplate can access all local variables of the template in which it is defined.
  • UL4 functions and methods now suport keyword arguments, e.g. format(now(), fmt="%Y-%m-%d", lang="en").
  • UL4 templates can no longer be converted to Java CompiledTemplate objects. (However converting it to an InterpretedTemplate is of course still supported).
  • If the view ctx_preferences doesn't exist orasql.Preference.itername` now will simply return an empty iterator instead of failing with an Oracle exception ORA-00942: table or view does not exist.
  • For sisyphus jobs, the class attribute maxtime can now be set to a datetime.timedelta object.

New in version 4.4 (November 9th, 2012)

  • Python 3.3 is required now (as the code uses yield from and __qualname__).
  • ll/__init__.py has been removed, i.e. XIST is now a PEP 420 compatible namespace package.
  • Fixed tab/space mix in antlr3/debug.py.

New in version 3.20 (May 5th, 2011)

  • Java source code can now be produced from UL4 templates.
  • Sisyphus jobs support non-forking mode.
  • The scripts xml2xsc and dtd2xsc can handle multiple XML/DTD files.
  • The UL4 functions json(), type(), repr(), islist(), and isdict() can handle more types of maps and lists.
  • ll.orasql has been enhanced to support object names with "fancy" characters.
  • The scripts uls, ucp, and ucat have new options --include, --exclude, and --all.
  • cx_Oracle 5.1 is supported now.
  • Oracle URLs support logging in in SYSDBA/SYSOPER mode.
  • Oracle URLs support access to objects that belong to a different user.

New in version 3.14 (November 8th, 2010)

  • UL4 templates can now be converted to Javascript.
  • Logging in Sisyphus jobs is now much more flexible.
  • Log files for each run will be retained for a customizable number of days.

New in version 3.6.2 (February 16th, 2009)

  • Template objects in UL4 templates now have a render() method that returns the output string.
  • The UL4 function int() now supports two arguments.

New in version 3.6.1 (January 28th, 2009)

  • make.py now supports minifying Javascript source and Growl notifications.
  • UL4 templates now support JSON output and Color objects.
  • jsp.py can now convert UL4 templates to JSP code.

New in version 3.4.3 (September 10th, 2008)

  • css.applystylesheets() could no longer handle style declarations containing comments. This has been fixed.

New in version 3.4.2 (September 3rd, 2008)

  • Parsing broken HTML (via the tidy option) when using a base URL has been fixed.