Package: ll-xist
XIST provides an extensible HTML and XML generator. XIST is also a XML parser
with a very simple and pythonesque tree API. Every XML element type corresponds
to a Python class and these Python classes provide a conversion method to
transform the XML tree (e.g. into HTML). XIST can be considered
‘object oriented XSLT’.XIST also includes the following modules and packages:ll.ul4cis compiler for a cross-platform templating language with
similar capabilities toDjango’s templating language.UL4templates
are compiled to an internal format, which makes it possible to implement
template renderers in other languages and makes the template code “secure”
(i.e. template code can’t open or delete files).There are implementations for Python, Java and Javascript.ll.ul4onprovides functions for encoding and decoding a lightweight
machine-readable text-based format for serializing the object types supported
by UL4. It is extensible to allow encoding/decoding arbitrary instances
(i.e. it is basically a reimplementation ofpickle, but with string
input/output instead of bytes and with an eye towards cross-plattform
support).There are implementations for Python, Java and Javascript.ll.orasqlprovides utilities for working withcx_Oracle:It allows calling functions and procedures with keyword arguments.Query results will be put into Record objects, where database fields
are accessible as object attributes.TheConnectionclass provides methods for iterating through the
database metadata.Importing the modules adds support for URLs with the schemeoracletoll.url.ll.makeis an object oriented make replacement. Like make it allows
you to specify dependencies between files and actions to be executed
when files don’t exist or are out of date with respect to one
of their sources. But unlike make you can do this in a object oriented
way and targets are not only limited to files.ll.colorprovides classes and functions for handling RGB color values.
This includes the ability to convert between different color models
(RGB, HSV, HLS) as well as to and from CSS format, and several functions
for modifying and mixing colors.ll.sisyphusprovides classes for running Python scripts as cron jobs.ll.urlprovides classes for parsing and constructing RFC 2396
compliant URLs.ll.nightshadecan be used to serve the output of PL/SQL
functions/procedures withCherryPy.ll.miscprovides several small utility functions and classes.ll.astylecan be used for colored terminal output (via ANSI escape
sequences).ll.daemoncan be used on UNIX to fork a daemon process.ll.xml_codeccontains a complete codec for encoding and decoding XML.Changes in 5.75 (released 2023-11-21)In UL4<?doc?>and<?note?>can now be nested, and otherwise can
contain anything up to the matching<?enddoc?>or<?endnote?>tag,
but only if the initial<?doc?>or<?note?>tag contains only
whitespace (e.g.<?doc?>etc.). This makes it possible to have source
code examples in<?doc?>or<?note?>tags.Added a new classBoundTemplatetoll.ul4c: This is an UL4
template bound to an object.Calling or rendering aBoundTemplateinstance passes the object
to which the template is bound as the first positional argument.Add attributenamespaceto UL4 templates.Add methodtimestampto UL4 typedatetime.The UL4 functiongetattrnow returns anUndefinedKeyobject when
accessing an undefined attribute and no default value is passed.The result of callingdir()on an object in UL4 can now be customized
by implementingul4_dir().Updated UL4 and UL4ON test infrastructure to work around problems with gradle.Replace a check for the ElementTree methodgetchildrenwith a check
forfindallinxml2xsc.iterpathsincegetchildrenhas been removed in Python 3.9.Copied the implementation ofcgi.parse_headertoll.miscsincecgi.parse_headerwill be deprecated in Python 3.13.
(cgi.parse_headeris used byll.url,ll.xist.ns.htmlandll.xist.ns.jsp).