Skip to main content

Extensible HTML/XML generator, cross-platform templating language, Oracle utilities and various other tools

Project description

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 cx_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.
    • 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.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.9 (released 09/22/2014)

  • A script udiff has been added for doing line by line comparisons of two files or directories. udiff supports all URLs that ll.url supports (e.g. ssh and oracle URLs).

  • The script db2ul4 has been renamed to rul4. The following new features have been added: Additional variables can be passed to the UL4 template via the -D/--define option. Access to Oracle, SQLite and MySQL databases can be disallowed with the options --oracle, --sqlite and --mysql. Executing system commands can be disallowed with the option --system. SQL code that doesn’t return results can be executed with the new Connection method execute. “out” parameters can now be used via variable objects that can be created with the int, number, str, clob and date methods.

  • A new script orareindex has been added that can be used to rebuild/recreate all indexes and unique constraints in an Oracle database.

  • All objects in ll.orasql that represent objects in the database now have a method exists that returns whether the object exists in the target database.

  • ll.orasql.Index has a new method rebuildddl that returns SQL for rebuilding the index.

  • URLs have a new walk method that works similar to the walk method for XIST trees: walk is a generator that returns a Cursor object that contains information about the state of the directory traversal and can be used to influence which parts of the directory hierarchy are traversed.

  • The URL methods listdir, files, dirs are generators now.

  • The old URL method walk has been renamed to walkall and listdir, files, dirs, walkall, walkfiles and walkdirs have been enhanced:

    listdir, files and dirs now have arguments include and exclude instead of pattern (which worked like include does now). Also patterns can now be lists of strings.

    walkall, walkfiles and walkdirs gained the same arguments. Additionally the arguments enterdir and skipdir can be used to skip directories during traversal.

  • Oracle URLs now support the methods walk, walkall, walkfiles and walkdirs (with the new arguments include, exclude, enterdir and skipdir). The methods listdir, files and dirs support the arguments include and exclude.

  • The various directory traversal methods in ll.url.URL will now output URLs in sorted order.

  • for Oracle URLs now supports the encoding and errors parameter.

  • URLs no longer forward attribute access to unknown attributes to the connection to avoid problems with code that uses hasattr to check for the presence of an attribute.

  • Fixed handling of the current directory in url.Dir: url.Dir("") now returns URL('file:./').

  • misc.SysInfo has a new attribute: script_url returns the name of the running script as an ssh URL (e.g. ssh://

  • The evaluation order of keyword arguments in calls to UL4 functions/templates has been fixed.

  • The test suite for UL4 now runs the Javascript versions of the templates not only on V8 but on Spidermonkey too.

Project details

Release history Release notifications

This version
History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
ll-xist-5.9.tar.bz2 (512.2 kB) Copy SHA256 hash SHA256 Source None
ll-xist-5.9.tar.gz (609.5 kB) Copy SHA256 hash SHA256 Source None
ll-xist-5.9.win32-py3.3.exe (736.0 kB) Copy SHA256 hash SHA256 Windows Installer 3.3
ll-xist-5.9.win32-py3.4.exe (1.4 MB) Copy SHA256 hash SHA256 Windows Installer 3.4 (764.3 kB) Copy SHA256 hash SHA256 Windows Installer 3.3 (1.5 MB) Copy SHA256 hash SHA256 Windows Installer 3.4 (714.9 kB) Copy SHA256 hash SHA256 Source None

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page