Skip to main content

re module wrapper for writing regular expressions in functional style

Project description

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.

Documentation

The complete module documentation can be found here

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

reverb-2.0.zip (3.2 kB view details)

Uploaded Source

reverb-2.0.tar.gz (2.7 kB view details)

Uploaded Source

File details

Details for the file reverb-2.0.zip.

File metadata

  • Download URL: reverb-2.0.zip
  • Upload date:
  • Size: 3.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for reverb-2.0.zip
Algorithm Hash digest
SHA256 09101ee2e9ee90942f6132e4c274277eb703398a1dd452ad3eddc13e2fe4e6f8
MD5 8155f3d1bbb2dce0908068b9177cdd09
BLAKE2b-256 af960ff063e8430eec3ceabd8da171bd81f07d5f08b28ec1784714433569b5c8

See more details on using hashes here.

File details

Details for the file reverb-2.0.tar.gz.

File metadata

  • Download URL: reverb-2.0.tar.gz
  • Upload date:
  • Size: 2.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for reverb-2.0.tar.gz
Algorithm Hash digest
SHA256 9a70169a9851319221e3bad5ab6acc45115d7bf5f73581e715a9d91ede85ec3a
MD5 28b6fcfd534ce1df866446649cba3b3b
BLAKE2b-256 e7684d214c36799ba6e6f33bb959f363240eaaff1e30408c68a9c0696becac8f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page