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.73 (released 2022-08-10)

  • ll.pysql now supports Postgres. To connect to a Postgres database pass a connectstring to connect starting with postgres:, for example:

    connect("postgres:host=localhost dbname=test user=me password=secret")

    This will create a Postgres database connection via:

    psycopg.connect(
      "host=localhost dbname=test user=me password=secret",
      cursor_factory=extras.DictCursor
    )

    All other connectstrings will be interpreted as Oracle connectstrings. An Oracle connectstring may start with the prefix oracle: which will be stripped off, before passing it to cx_Oracle.connect or ll.orasql.connect.

    Note that Postgres currently doesn’t support the drop_types command.

  • Some PySQL commands have been renamed: resetsequence to reset_sequence, checkerrors to check_errors, raiseexceptions to raise_exceptions, pushraiseexceptions to push_raise_exceptions and popraiseexceptions to pop_raise_exceptions.

  • The PySQL commands procedure and sql have an additional argument argtypes that can be used to add casts to the parameter values in the call to convert the value to the proper Postgres datatype (to guide Postgres to find the correct overloaded version of the procedure).

  • When a var object is passed a second time in PySQL, now instead of the variable’s value a proper variable object will be passed to the procedure or sql call. This means if the variable gets changed by the call, the new value will be picked up by the local variable.

    If you want to pass the variable’s value instead as a simple IN parameter, simply pass the local variable instead.

  • The argument raiseexceptions to various PySQL commands has been renamed to raise_exceptions.

Project details


Release history Release notifications | RSS feed

This version

5.73

Download files

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

Source Distribution

ll-xist-5.73.tar.gz (757.2 kB view hashes)

Uploaded Source

Built Distribution

ll_xist-5.73-cp39-cp39-macosx_10_9_x86_64.whl (573.0 kB view hashes)

Uploaded CPython 3.9 macOS 10.9+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page