README 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. Logilab's common library
  2. ========================
  3. What's this ?
  4. -------------
  5. This package contains some modules used by differents Logilab's projects.
  6. It is released under the GNU Lesser General Public License.
  7. There is no documentation available yet but the source code should be clean and
  8. well documented.
  9. Designed to ease:
  10. * handling command line options and configuration files
  11. * writing interactive command line tools
  12. * manipulation of files and character strings
  13. * manipulation of common structures such as graph, tree, and pattern such as visitor
  14. * generating text and HTML reports
  15. * accessing some external libraries such as OmniORB_, Pyro_...
  16. * more...
  17. Installation
  18. ------------
  19. Extract the tarball, jump into the created directory and run ::
  20. python setup.py install
  21. For installation options, see ::
  22. python setup.py install --help
  23. Provided modules
  24. ----------------
  25. Here is a brief description of the available modules.
  26. Modules providing high-level features
  27. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  28. * `cache`, a cache implementation with a least recently used algorithm.
  29. * `changelog`, a tiny library to manipulate our simplified ChangeLog file format.
  30. * `clcommands`, high-level classes to define command line programs handling
  31. different subcommands. It is based on `configuration` to get easy command line
  32. / configuration file handling.
  33. * `cli`, a base class for interactive programs using the command line.
  34. * `configuration`, some classes to handle unified configuration from both
  35. command line (using optparse) and configuration file (using ConfigParser).
  36. * `dbf`, read Visual Fox Pro DBF files.
  37. * `proc`, interface to Linux /proc.
  38. * `umessage`, unicode email support.
  39. * `ureports`, micro-reports, a way to create simple reports using python objects
  40. without care of the final formatting. ReST and html formatters are provided.
  41. Modules providing low-level functions and structures
  42. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  43. * `compat`, provides a transparent compatibility layer between different python
  44. versions.
  45. * `date`, a set of date manipulation functions.
  46. * `daemon`, a daemon function and mix-in class to properly start an Unix daemon
  47. process.
  48. * `decorators`, function decorators such as cached, timed...
  49. * `deprecation`, decorator, metaclass & all to mark functions / classes as
  50. deprecated or moved
  51. * `fileutils`, some file / file path manipulation utilities.
  52. * `graph`, graph manipulations functions such as cycle detection, bases for dot
  53. file generation.
  54. * `modutils`, python module manipulation functions.
  55. * `shellutils`, some powerful shell like functions to replace shell scripts with
  56. python scripts.
  57. * `tasksqueue`, a prioritized tasks queue implementation.
  58. * `textutils`, some text manipulation functions (ansi colorization, line wrapping,
  59. rest support...).
  60. * `tree`, base class to represent tree structure, and some others to make it
  61. works with the visitor implementation (see below).
  62. * `visitor`, a generic visitor pattern implementation.
  63. Modules extending some standard modules
  64. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  65. * `debugger`, `pdb` customization.
  66. * `logging_ext`, extensions to `logging` module such as a colorized formatter
  67. and an easier initialization function.
  68. * `optik_ext`, defines some new option types (regexp, csv, color, date, etc.)
  69. for `optik` / `optparse`
  70. * `xmlrpcutils`, auth support for XML-RPC
  71. Modules extending some external modules
  72. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  73. * `corbautils`, useful functions for use with the OmniORB_ CORBA library.
  74. * `hg`, some Mercurial_ utility functions.
  75. * `pdf_ext`, pdf and fdf file manipulations, with pdftk.
  76. * `pyro_ext`, some Pyro_ utility functions.
  77. * `sphinx_ext`, Sphinx_ plugin defining a `autodocstring` directive.
  78. * `vcgutils` , utilities functions to generate file readable with Georg Sander's
  79. vcg tool (Visualization of Compiler Graphs).
  80. To be deprecated modules
  81. ~~~~~~~~~~~~~~~~~~~~~~~~
  82. Those `logilab.common` modules will much probably be deprecated in future
  83. versions:
  84. * `testlib`: use `unittest2`_ instead
  85. * `pytest`: use `discover`_ instead
  86. * `interface`: use `zope.interface`_ if you really want this
  87. * `table`, `xmlutils`: is that used?
  88. * `sphinxutils`: we won't go that way imo (i == syt)
  89. Deprecated modules
  90. ~~~~~~~~~~~~~~~~~~
  91. Those `logilab.common` modules are only there for backward compatibility. They
  92. can go away at anytime.
  93. * `optparser`: use `clcommands` instead
  94. * `adbh`, `db`, `sqlgen`: see `logilab.database`_ instead
  95. * `contexts`: content move to `shellutils`
  96. * `html`: deprecated without replacement
  97. Comments, support, bug reports
  98. ------------------------------
  99. Project page http://www.logilab.org/project/logilab-common
  100. Use the python-projects@lists.logilab.org mailing list. Since we do not have
  101. publicly available bug tracker yet, bug reports should be emailed
  102. there too.
  103. You can subscribe to this mailing list at
  104. http://lists.logilab.org/mailman/listinfo/python-projects
  105. Archives are available at
  106. http://lists.logilab.org/pipermail/python-projects/
  107. .. _Pyro: http://pyro.sourceforge.net/
  108. .. _OmniORB: http://omniorb.sourceforge.net/
  109. .. _Mercurial: http://mercurial.selenic.com
  110. .. _Sphinx: http://sphinx.pocoo.org/
  111. .. _`logilab.database`: http://www.logilab.org/project/logilab-database/
  112. .. _`unittest2`: http://pypi.python.org/pypi/unittest2
  113. .. _`discover`: http://pypi.python.org/pypi/discover
  114. .. _`zope.interface`: http://pypi.python.org/pypi/zope.interface