Logilab's common library
========================

What's this ?
-------------

This package contains some modules used by differents Logilab's
projects.

It is released under the GNU Public License.

There is no documentation available yet but the source code should be
clean and well documented.


Installation
------------

Extract the tarball, jump into the created directory and run ::

	python setup.py install

For installation options, see ::

	python setup.py install --help


Provided modules
----------------

Here is a brief description of the available modules :

* adbh.py:
  helper functions for using database advanced. Supported RDBMS
  include PostgreSQL, MySQL and sqlite. See also db.py. 

* astutils:
  Deprecated module. Use logilab.astng. 

* bind.py :
  Deprecated module. 
  Provides a way to optimize globals in certain functions by binding
  their names to values provided in a dictionnary.

* cache.py :
  A cache implementation with a least recently used algorithm.

* clcommands.py:
  helper functions for command line programs handling different
  subcommands

* cli.py :
  Command line interface helper classes (for interactive programs
  using the command line)

* compat.py: 
  Transparent compatibility layer between different python version

* configuration.py :
  Two mix-in classes to handle configuration from both command line 
  (using optik/optparse) and configuration file.

* corbautils.py:
  Usefull functions for use with the OmniORB CORBA library.

* daemon.py :
  A daemon mix-in class.

* date.py:
  date manipulation helper functions

* db.py :
  A generic method to get a database connection. See also adbh.py.

* debugger.py:
  pdb customization

* decorators.py:
  useful decorators (cached, timed...)

* deprecation.py:
  mark functions / classes as deprecated or moved

* fileutils.py :
  Some file / file path manipulation utilities.

* graph.py:
  graph manipulations, dot file generation

* html.py :
  Deprecated module
  Return an html formatted traceback from python exception infos.

* interface.py
  Bases class for interfaces.

* logger.py :
  Deprecated module : use logging from stdlib. 
  Define a logger interface and two concrete loggers : one which prints
  everything on stdout, the other using syslog.

* logging_ext.py:
  extensions to stdlib's logging module

* logservice.py:
  Deprecated module. Use logging from stdlib. 

* modutils.py :
  Module manipulation utilities.

* monclient.py:
  Deprecated module

* monserver.py:
  Deprecated module

* optik_ext :
  Add an abstraction level to transparently import optik classes from
  optparse (python >= 2.3) or the optik package. It also defines two
  new option types (regexp, csv, color, date...)

* optparser.py:
  extend optparse's OptionParser to support commands 

* patricia.py :
  A Python implementation of PATRICIA trie (Practical Algorithm to
  Retrieve Information Coded in Alphanumeric).

* pdf_ext.py:
  pdf and fdf file manipulations, with pdftk. 

* pytest.py:
  unittest runner. See testlib

* shellutils.py:
  Some utilities to replace shell scripts with python scripts.

* sqlgen.py :
  Helper class to generate SQL strings to use with python's DB-API.

* table.py:
  manage tabular data (supports column and row names, sorting, grouping...

* testlib.py :
  Generic tests execution methods.

* textutils.py:
  Some text manipulation utilities (ansi colorization, line wrapping,
  rest support...)

* tree.py :
  Base class to represent tree structure, and some others to make it
  works with the visitor implementation (see below).

* umessage.py:
  unicode email support

* ureports:
  Provides a way to create simple reports using python objects
  without care of the final formatting. Some formatters text and html
  are provided.

* vcgutils.py :
  utilities functions to generate file readable with Georg Sander's vcg
  (Visualization of Compiler Graphs).

* visitor.py :
  A generic visitor pattern implementation.

* twisted_distutils.py
  This module enables the installation of plugins.tml files using standard
  distutils syntax. Note that you can use this to install files that
  are not twisted plugins in any package directory of your application.

* xmlrpcutils.py:
  Auth support for XML RPC

Comments, support, bug reports
------------------------------
Use the python-projects@logilab.org mailing list. Since we do not have
publicly available bug tracker yet, bug reports should be emailed
there too.

You can subscribe to this mailing list at
http://www.logilab.org/mailinglists/python_projects/mailinglist_register_form

Archives are available at 
http://lists.logilab.org/pipermail/python-projects/
