Generic functions. Clever registries and lookups
Reg: Clever Registries and Lookups
Reg is a Python library that provides generic function support to Python. It help you build powerful registration and configuration APIs for your application, library or framework.
- Added a @reg.classgeneric. This is like @reg.generic, but the first argument is treated as a class, not as an instance. This makes it possible to replace @classmethod with a generic function too.
- Fix documentation on running documentation tests. For some reason this did not work properly anymore without running sphinxpython explicitly.
- Optimization: improve performance of generic function calls by employing lookup_mapply instead of general mapply, as we only care about passing in the lookup argument when it’s defined, and any other arguments should work as before. Also added a perf.py which is a simple generic function timing script.
- Python 2.6 compatibility. (Ivo van der Wijk)
- Class maps (and thus generic function lookup) now works with old style classes as well.
- Marked as production/stable now in setup.py.
- Removed unused code from mapply.py.
- Typo fix in API docs.
- Make reg.ANY public. Used for predicates that match any value.
- arginfo has been totally rewritten and is now part of the public API of reg.
- Experimental Python 3.3 support thanks to the future module.
- If a generic function implementation defines a lookup argument that argument will be the lookup used to call it.
- Added reg.mapply(). This allows you to call things with more keyword arguments than it accepts, ignoring those extra keyword args.
- A function that returns None is not assumed to fail, so no fallback to the original generic function is triggered anymore.
- An optional precalc facility is made available on Matcher to avoid some recalculation.
- Implement a specific PredicateMatcher that matches a value on predicate.
- Initial public release.