Git Product home page Git Product logo

ruledispatch's Introduction

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 expected to be
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.

ruledispatch's People

Contributors

philipn avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.