Reg is a new Python library for registering and looking up objects. It provides clever registries to let you build extensible applications, libraries and frameworks.
Why should you want to use Reg at all? The best way to find out is to read the Reg docs.
The documentation is a work in progress, and especially API documentation is still lacking (read the interfaces.py module in the source). It should however give you a good overview of the basic usage of Reg.
The Reg code is here on github:
The project is currently in pre-alpha, with no release yet. The documented behavior is however expected to be stable.
Let me know what you think!
Reg is heavily inspired by the Zope Component Architecture (ZCA) as implemented in zope.interface and zope.component, though shares no code in common with Reg, and no knowledge of the ZCA is needed in order to use Reg. The ZCA is a venerable implementation, going back more than a decade. Use cases for the ZCA have evolved, some added, some dropped away, and we have a lot more experience. Learning from this, Reg provides many of the same features but with a lean, modern API and implementation.
I must mention Chris McDonough, creator of the Pyramid web framework in this - he's been leading by example reimplementing (reimagining) Zope concepts in a leaner, clearer, better way for years now. I was originally skeptical of this approach, but history has proved him right. Kudos, Chris! I've learned a lot from you.
I've been working on Reg for some years now, on and off, in different incarnations. Some Plone developers might remember my Crom lightning talk back at the Plone Conference 2012 in Arnhem - Reg is a further evolution of this. See the history section of the documentation for more information.
Reg is foundational to Morepath, the up and coming Python micro web framework with super powers. Stay tuned!