Metadata-Version: 2.1
Name: ll-xist
Version: 5.66
Summary: Extensible HTML/XML generator, cross-platform templating language, Oracle utilities and various other tools
Home-page: http://python.livinglogic.de/
Author: Walter Doerwald
Author-email: walter@livinglogic.de
License: MIT
Download-URL: http://python.livinglogic.de/DOWNLOAD.html
Keywords: ANSI,CSS,CherryPy,FTP,HLS,HSB,HSC,HSV,HTML,HTTP,Oracle,PI,PL/SQL,RFC 2396,RGB,SVG,URL,XHTML,XML,XSL-FO,XSLT,build,codec,color,cron,cx_Oracle,decorator,escape sequence,execnet,iterator,job,make,procedure,processing instruction,property,record,schema,ssh,template,templating language,terminal,toxic,user defined function
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: No Input/Output (Daemon)
Classifier: Environment :: Web Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: Database
Classifier: Topic :: Internet
Classifier: Topic :: Internet :: File Transfer Protocol (FTP)
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Internet :: WWW/HTTP :: Site Management
Classifier: Topic :: Multimedia :: Graphics
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Terminals
Classifier: Topic :: Text Processing :: General
Classifier: Topic :: Text Processing :: Markup :: HTML
Classifier: Topic :: Text Processing :: Markup :: XML
Requires-Dist: cssutils (==2.3.0)
Provides-Extra: html
Requires-Dist: lxml (>=4.3.4) ; extra == 'html'
Provides-Extra: oracle
Requires-Dist: cx-Oracle (>=8.0) ; extra == 'oracle'
Provides-Extra: proctitle
Requires-Dist: setproctitle (>=1.1.8) ; extra == 'proctitle'
Provides-Extra: requests
Requires-Dist: requests (>=2.22.0) ; extra == 'requests'

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).

  __ https://docs.djangoproject.com/en/1.5/topics/templates/

  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``.

  .. _cx_Oracle: https://oracle.github.io/python-cx_Oracle/

* ``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.

__ http://www.cherrypy.org/


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.Job``\s con now log to Sentry__.

  __ https://sentry.io/

* ``ll.sisyphus.Task``\s 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.




