.. Jynx documentation master file, created by
sphinx-quickstart on Sun Jul 05 12:43:34 2009.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
reverb.py
=========
Introduction
------------
This is the revival of a small Python module which lived once on the now abandoned *Vaults of Parnassus* when I
entered Python programming about a decade ago. It was originally written and published by
`JasonHarper `_ in 1998 on a "free for any use" license. Since then it has slowly
faded from the net which I find a bit sad.
What is reverb?
~~~~~~~~~~~~~~~
``reverb.py`` is a tiny wrapper around Pythons ``re`` module which maps regular expressions
onto Python expressions for the sake of readability. The module name can be read as "re-verb(ose)". reverb
follows the Python tradition of keeping the amount of punctuation small and avoid punctuation collisions.
In reverb one writes ::
Optional(Digit)+"."+Required(Digit)
instead of ::
\d*\.\d+
to denote a pattern that matches a floating point number. The reverb reads much like a meta-language explanation
of the dense and compact regexp.
From a reverb object one can fetch the regexp using the ``text`` attribute ::
>>> (Optional(Digit)+"."+Required(Digit)).text
'\\d*\\.\\d+'
Each reverb object translates to a regexp and it is finally the regexp which is compiled and matched
against strings.
Reverb in context
~~~~~~~~~~~~~~~~~
I think about ``reverb`` any time I encounter a `regexp learning tool `_ but also
`pyparsing `_ which has grown in popularity within the Python community and I
suspect it did this for reasons not dissimilar to those intended by ``reverb``: "avoiding line noise
when writing regular expressions" in the words of Jason Harper. So I do think it fits a real need.
The only significant change I made to reverb is capitalization of names. reverb 1.0 was published when Python 1.5
came out and used identifiers like ``any`` and ``set`` which have now counterparts as builtins in Pythons standard
library.
Download
--------
reverb can be downloaded `here `_ from the Cheaseshop.
Table Of Contents
-----------------
.. toctree::
:maxdepth: 3
reverb