Logilab's common library ======================== What's this ? ------------- This package contains some modules used by different Logilab projects. It is released under the GNU Lesser General Public License. There is no documentation available yet but the source code should be clean and well documented. Designed to ease: * handling command line options and configuration files * writing interactive command line tools * manipulation of files and character strings * manipulation of common structures such as graph, tree, and pattern such as visitor * generating text and HTML reports * more... Installation ------------ logilab-common is available on pypi so you can install it using pip :: pip install logilab-common Or alternatively 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. Modules providing high-level features ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * :ref:`cache `, a cache implementation with a least recently used algorithm. * :ref:`changelog `, a tiny library to manipulate our simplified ChangeLog file format. * :ref:`clcommands `, high-level classes to define command line programs handling different subcommands. It is based on `configuration` to get easy command line / configuration file handling. * :ref:`configuration `, some classes to handle unified configuration from both command line (using optparse) and configuration file (using ConfigParser). * :ref:`proc `, interface to Linux /proc. * :ref:`umessage `, unicode email support. * :ref:`ureports `, micro-reports, a way to create simple reports using python objects without care of the final formatting. ReST and html formatters are provided. Modules providing low-level functions and structures ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * :ref:`compat `, provides a transparent compatibility layer between different python versions. * :ref:`date `, a set of date manipulation functions. * :ref:`daemon `, a daemon function and mix-in class to properly start an Unix daemon process. * :ref:`decorators `, function decorators such as cached, timed... * :ref:`deprecation `, decorator, metaclass & all to mark functions / classes as deprecated or moved * :ref:`fileutils `, some file / file path manipulation utilities. * :ref:`graph `, graph manipulations functions such as cycle detection, bases for dot file generation. * :ref:`modutils `, python module manipulation functions. * :ref:`shellutils `, some powerful shell like functions to replace shell scripts with python scripts. * :ref:`tasksqueue `, a prioritized tasks queue implementation. * :ref:`textutils `, some text manipulation functions (ansi colorization, line wrapping, rest support...). * :ref:`tree `, base class to represent tree structure, and some others to make it works with the visitor implementation (see below). * :ref:`visitor `, a generic visitor pattern implementation. Modules extending some standard modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * :ref:`debugger `, `pdb` customization. * :ref:`logging_ext `, extensions to `logging` module such as a colorized formatter and an easier initialization function. * :ref:`optik_ext `, defines some new option types (regexp, csv, color, date, etc.) for `optik` / `optparse` Modules extending some external modules ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ * :ref:`sphinx_ext `, Sphinx_ plugin defining a `autodocstring` directive. * :ref:`vcgutils ` , utilities functions to generate file readable with Georg Sander's vcg tool (Visualization of Compiler Graphs). To be deprecated modules ~~~~~~~~~~~~~~~~~~~~~~~~ Those `logilab.common` modules will much probably be deprecated in future versions: * `testlib`: use `unittest2`_ instead * `interface`: use `zope.interface`_ if you really want this * `table`, `xmlutils`: is that used? * `sphinxutils`: we won't go that way imo (i == syt) Building the documentation -------------------------- Create a virtualenv and install dependencies :: virtualenv venv source venv/bin/activate # you need the krb5-config command to build all dependencies # on debian you can get it using "apt-get install libkrb5-dev" pip install doc/requirements-doc.txt # install logilab-common pip install -e . Then build the doc :: cd doc make html It's now available under `doc/_build/html/` Comments, support, bug reports ------------------------------ Project page https://www.logilab.org/project/logilab-common Use the cubicweb-devel at lists.cubicweb.org mailing list. You can subscribe to this mailing list at https://lists.cubicweb.org/mailman/listinfo/cubicweb-devel Archives are available at https://lists.cubicweb.org/pipermail/cubicweb-devel/