Skip to content

Status: REPLACED, ARCHIVED

Notifications You must be signed in to change notification settings

PEAK-Legacy/RuleDispatch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Please Use PEAK-Rules Instead Of This Package
=============================================

RuleDispatch is no longer maintained; if you are actively developing code that
uses generic functions, you should switch to PEAK-Rules, if you can.

If you are porting existing code, PEAK-Rules now includes a
``peak.rules.dispatch`` module that provides a partial API emulation for
RuleDispatch.  If your code won't run simply by replacing "import dispatch"
with "from peak.rules import dispatch", please let me know via the PEAK
`mailing list`_, and I'll provide porting assistance or updates to the
emulation API, as appropriate.


RuleDispatch
============

RuleDispatch is a prototype implementation of the Chambers and Chen
"efficient multiple and predicate dispatch" algorithm for Python.  It lets you
specify a function in terms of a collection of arbitrary rules, including
Lisp-style "before/after/around" methods.

Although it is used by various projects, including ``peak.security.rules`` and
TurboGears, it is no longer being actively developed; it is being
replaced by the more extensible PEAK-Rules package, which is currently in
development (with snapshot and SVN releases available in PyPI).

Please note that if you are starting new development, you are almost certainly
better off using PEAK-Rules instead.  It is smaller, has a simpler API, and for
certain use cases can be significantly faster than RuleDispatch.  It was also
developed from the ground up using TDD, which means that every single line of
its code is tested.  In contrast, the central core of RuleDispatch was
developed many years ago using a hack, slash, and burn methodology, with only
some functional tests and very few unit tests.  The consequences of this can be
seen in the number of RuleDispatch bugs that have occurred over the last few
years that involve the core engine in some way.

So, although I will continue to accept bug reports and apply fixes to
RuleDispatch, it is absolutely a dead parrot, and there are no plans to update
its documentation, tests, or anything else.  Use it at your own risk.


Python 2.5+ Issues
------------------
RuleDispatch has not been updated for certain additions to the Python 2.5
grammar.  It does not support any kind of loops, generator expressions or
"y if x else z" conditional expressions in rules, and its behavior if you use
them is undefined.


Mailing List
------------

Please direct questions regarding this package to the PEAK mailing list; see
http://www.eby-sarna.com/mailman/listinfo/PEAK/ for details.

About

Status: REPLACED, ARCHIVED

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published