通用功能和业务规则支持系统

PEAK-Rules的Python项目详细描述


峰值规则是一个高度可扩展的框架,用于创建和使用泛型 功能,从非常简单到非常复杂。开箱即用 支持使用类型的元组对位置参数进行多个分派, 使用包含python表达式的字符串的完全谓词调度,以及 类似clos的方法组合。(但是框架允许您混合和匹配 如果您需要或希望,请发送引擎和自定义方法组合。

基本用法:

>>> from peak.rules import abstract, when, around, before, after

>>> @abstract()
... def pprint(ob):
...     """A pretty-printing generic function"""

>>> @when(pprint, (list,))
... def pprint_list(ob):
...     print "pretty-printing a list"

>>> @when(pprint, "isinstance(ob,list) and len(ob)>50")
... def pprint_long_list(ob):
...     print "pretty-printing a long list"

>>> pprint([1,2,3])
pretty-printing a list

>>> pprint([42]*1000)
pretty-printing a long list

>>> pprint(42)
Traceback (most recent call last):
  ...
NoApplicableMethods: ...

峰值规则适用于Python2.3及更高版本-只要省略@符号 代码需要在2.3下运行。另外,请注意,使用峰值规则,any函数 可以是泛型的:不必预先将函数替换为泛型。(在 abstractdecorator用于声明没有default方法的函数; 也就是说,如果没有规则匹配 调用它的参数,而不是执行默认实现。)

峰值规则仍在开发中;它在错误方面缺乏很多 如果你搞砸了你的规则,你可能不知道你在哪里 做。用户文档也很缺乏,尽管有大量的文档 描述并测试其大部分内部组件,包括:

(请注意,这些文件仍处于变动状态,有些可能 在第一次正式发布之前,仍然不完整或没有组织。)

源分发快照每天生成,但您也可以更新 直接从svn中的development version发送。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何在Eclipse中设置Java路径,以便在外部驱动器上运行它?   在windows上使用Java服务包装器GUI与桌面交互   java是与此字符序列不匹配的正则表达式   java无法使用kafka管理客户端API创建具有所需分区的kafka主题   java基于单个单元格值获取整个excel行   当使用Spring的构造函数注入时,java bean是否在构造函数中完全初始化?   java重置LineNumberReader的计数器   将字符串从Java文件传递到jQuery   安卓在来自不同Java类文件的活动中祝酒   java在使用mvvm时如何在zk中更新progressmeter   使用regex获取由“”Java包围的值   使用tester类的java猜谜游戏   api响应的java POJO,其密钥为“”   java正则表达式,用于匹配长度大于n的字母和数字字符串?   java如何使用Json保存和恢复RecyclerView项的位置   在Java中用字符代码替换字符串   Jenkins中的java PermGen错误   java swing panel问题   boolean在Java中,false如何可能等于true   java如何使用Servlet从HTML表单中检索“分组”项?