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()
- 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)
- 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)
- 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.