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.66 (released 06/15/2021)

  • UL4 now use functions and methods with positional-only parameters, so Python 3.8 is required now.

  • UL4 functions and methods have been updated to use positional-only or keyword-only arguments to match the signature of the corresponding Python function/method.

  • Some functions now use positional-only arguments:

    • ll.misc.item(iterable, index, /, default=None)

    • ll.misc.first(iterable, /, default=None)

    • ll.misc.last(iterable, /, default=None)

    • ll.misc.count(iterable, /)

    • ll.misc.isfirst(iterable, /)

    • ll.misc.islast(iterable, /)

    • ll.misc.isfirstlast(iterable, /)

    • ll.misc.monthdelta.__init__(self, months=0, /)

    • ll.ul4on.dumps(obj, /, indent)

    • ll.ul4on.dump(obj, /, stream, indent)

    • ll.ul4on.load(stream, /, registry=None)

    • ll.ul4on.loads(dump, /, registry=None)

    • ll.ul4on.loadclob(clob, /, bufsize=1024*1024, registry=None)

    as well as the UL4 function enumfl(iterable, /).

  • Subclasses of ll.ul4c.AST have been renamed so that their name matches the name of the corresponding class in the Java implementation. (For example ll.ul4c.Add has been renamed to ll.ul4c.AddAST).

  • The UL4 function type() now returns “type objects” instead of simple strings. A type object can be used for checking whether an object is an instance of a certain type (via the newly introduced function isinstance()). Some type objects can also be used to create new instances of that type (by calling the type object).

  • The following builtin UL4 functions are now callable type objects: bool, int, float, str, date, datetime, timedelta, monthdelta, list, set, dict and color.

  • The following modules have been added to the builtin UL4 objects: ul4 contains all UL4 AST classes (ul4.Template is callable to create an UL4 template from source), ul4on contains the functions dumps() and loads() and the types Encoder and Decoder, operator contains the type attrgetter and math contains the constants e, pi and tau as well as the functions cos(), sin(), tan(), sqrt() and isclose(). color contains the type Color and the functions css and mix.

  • Naming of attributes that are used by UL4 to implement UL4 functionality has been made more uniform. This affects the following attributes: The methods ul4_getattr, ul4_setattr and ul4_hasattr for implementing object attribute access from UL4; the methods ul4_call, ul4_render and ul4_renders for making objects callable or renderable from UL4; the class attribute ul4_attrs for exposing a number of readonly attributes to UL4 and the attribute ul4_context that is used for marking a callable as needing the context as an argument in the call.

  • Now the ul4_attr attribute of objects gets honored in the implementation of the dir() function in UL4.

  • Support for using custom tag delimiters for UL4 templates has been removed, i.e. now the tag delimiters will always be <? and ?>.

  • ll.ul4on.Decoder gained a new method ll.ul4on.Decoder.forget_persistent_object.

  • ll.sisyphus.Jobs con now log to Sentry.

  • ll.sisyphus.Tasks constructor and the method ll.sisyphus.Job.task now take arbitrary additional keyword arguments. Those wll be passed as additional breadcrumb data when logging to Sentry.

  • ll.sisyphus.Job.tasks now takes an additional argument data that is respsonsible for returning additional data for the task.

  • The following methods of ll.color.Color have been renamed: abslum to abslight and rellum to rellight.

  • The following methods have been added to ll.color.Color: ll.color.Color.hue, ll.color.Color.light, ll.color.Color.sat, ll.color.Color.withhue, ll.color.Color.withsat, ll.color.Color.withlum, ll.color.Color.ablum, ll.color.Color.rellum and ll.color.Color.invert. They have also been made available to UL4. The color method ll.color.Color.combine and the functions ll.color.css and ll.color.mix are now also available to UL4.

Project details


Release history Release notifications | RSS feed

This version

5.66

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.66.tar.gz (753.9 kB view hashes)

Uploaded Source

Built Distributions

ll_xist-5.66-cp39-cp39-win_amd64.whl (575.8 kB view hashes)

Uploaded CPython 3.9 Windows x86-64

ll_xist-5.66-cp39-cp39-win32.whl (572.9 kB view hashes)

Uploaded CPython 3.9 Windows x86

ll_xist-5.66-cp39-cp39-macosx_10_15_x86_64.whl (577.1 kB view hashes)

Uploaded CPython 3.9 macOS 10.15+ x86-64

ll_xist-5.66-cp38-cp38-win_amd64.whl (575.9 kB view hashes)

Uploaded CPython 3.8 Windows x86-64

ll_xist-5.66-cp38-cp38-win32.whl (573.0 kB view hashes)

Uploaded CPython 3.8 Windows x86

ll_xist-5.66-cp37-cp37m-win_amd64.whl (576.0 kB view hashes)

Uploaded CPython 3.7m Windows x86-64

ll_xist-5.66-cp37-cp37m-win32.whl (573.2 kB view hashes)

Uploaded CPython 3.7m Windows x86

ll_xist-5.66-cp36-cp36m-win_amd64.whl (580.6 kB view hashes)

Uploaded CPython 3.6m Windows x86-64

ll_xist-5.66-cp36-cp36m-win32.whl (577.7 kB view hashes)

Uploaded CPython 3.6m Windows x86

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