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.ul4c is compiler for a cross-platform templating language with similar capabilities to Django’s templating language. UL4 templates 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.ul4on provides 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 of pickle, 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.orasql provides utilities for working with oracledb:
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.
The Connection class provides methods for iterating through the database metadata.
Importing the modules adds support for URLs with the scheme oracle to ll.url.
ll.vsql provides a way to build Oracle SQL queries safely and dynamically using UL4 expressions. Instead of manually concatenating strings, you can express query logic with vSQL (a variant of UL4), which is then compiled into proper SQL. This approach eliminates the risky parts of query construction, effectively preventing SQL injection attacks, while offering the expressive power of an ORM without the overhead.
ll.make is 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.color provides 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.sisyphus provides classes for running Python scripts as cron jobs.
ll.url provides classes for parsing and constructing RFC 2396 compliant URLs.
ll.nightshade can be used to serve the output of PL/SQL functions/procedures with CherryPy.
ll.misc provides several small utility functions and classes.
ll.astyle can be used for colored terminal output (via ANSI escape sequences).
ll.daemon can be used on UNIX to fork a daemon process.
ll.xml_codec contains a complete codec for encoding and decoding XML.
Changes in 5.89 (released 2026-08-17)
ll.vsql now supports PostgreSQL in addition to Oracle. Which of the two SQL dialects gets generated is determined by the class used for building the query: ll.vsql.OracleQuery or ll.vsql.PostgresQuery. ll.vsql.Query itself is abstract now and can no longer be instantiated directly, so:
q = vsql.Query()
has to be changed to:
q = vsql.OracleQuery()
If you only have a ll.vsql.DBType at hand, ll.vsql.Query.fordbtype will return the appropriate class.
Added the attribute ll.vsql.Field.description which isn’t used anywhere but can be used by external tools for documentation.
The vSQL type NULLSET is now part of the ANY type group (as NULLLIST has always been), so it can now be combined with all other types in ==, !=, is, is not, not, bool(), A if cond else B etc.
Fixed the vSQL grammar rules for STR.split(None) and CLOB.split(None): the generated SQL passed null instead of the string object to the split function, so the result was always empty.
Fixed a typo in ll.vsql (DataType.NULSET) that broke the check whether a NULLSET value can be used where a specific set type is required.
Changed the color factory method ll.color.Color.fromrgb (through which ll.color.Color.fromhsv, ll.color.Color.fromhls and the UL4 function rgb() work too) and the blending operator ll.color.Color.__mod__ to round float values to their final integer value instead of truncating them since this matches what browsers do for the CSS color blending algorithm.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ll_xist-5.89.tar.gz.
File metadata
- Download URL: ll_xist-5.89.tar.gz
- Upload date:
- Size: 847.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e1e3fd5ce4611acbefc8cabf426563e4627b293392c21e10605babf31d5354e5
|
|
| MD5 |
491534626a11a80e3bfda6a7c64df78f
|
|
| BLAKE2b-256 |
cf9033a12dab82d7d0df5075eda2df4580a6340d6b7726218a4a84b634a22c5c
|
File details
Details for the file ll_xist-5.89-cp314-cp314-win_amd64.whl.
File metadata
- Download URL: ll_xist-5.89-cp314-cp314-win_amd64.whl
- Upload date:
- Size: 630.5 kB
- Tags: CPython 3.14, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
45e9352d4238b1d1b7aa2489e5d23c5e39f325d792b68728acbac17abe77c3f3
|
|
| MD5 |
8de28c06933eba8875e534f3c57a7817
|
|
| BLAKE2b-256 |
1c9048142d2bd29cd68243a663cf203faf002b02c430d9d77d83b94cd76ebe13
|
File details
Details for the file ll_xist-5.89-cp314-cp314-win32.whl.
File metadata
- Download URL: ll_xist-5.89-cp314-cp314-win32.whl
- Upload date:
- Size: 627.9 kB
- Tags: CPython 3.14, Windows x86
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2cbe1028fbb4792f5966f47872dd9aa720e0d7b9da3e30faba281037651a2cc0
|
|
| MD5 |
c358157d2a59b85c45adfdb071bca727
|
|
| BLAKE2b-256 |
5a7968a487db070908195960d69e1ae0d497d8b1ce4fdba2a73b29c578a1f591
|
File details
Details for the file ll_xist-5.89-cp314-cp314-macosx_26_0_arm64.whl.
File metadata
- Download URL: ll_xist-5.89-cp314-cp314-macosx_26_0_arm64.whl
- Upload date:
- Size: 1.4 MB
- Tags: CPython 3.14, macOS 26.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a7045306a88b23e66aa1970488df301384b92909a4e68c1b124c864ae99c84cb
|
|
| MD5 |
91605bc6fc94aaa87693778828e3fca2
|
|
| BLAKE2b-256 |
048bdb993aa60d834b46f8b10eeb700fe0c594d9cff05d26dab0e55e70f27872
|