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

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第三方库


热门话题
java无法使用JSF访问托管bean方法   java是制作具有多值类型的HashMap的正确方法   javafx中TicTacToe的java更新UI   windows Java文件。getCanonicalFile()无法处理冒号“:”   java在一个布局屏幕中创建多个(26)按钮   java Android Studio:Gradle构建完成,有251个错误   我们如何在Java上为callfireapiclient编写单元/集成测试?   java无法将1715UTC转换为本地/gmt类型   具有已定义的数字序列的JAVA循环   Java程序正在netbeans中编译,但未在CMD中编译,包不存在   java Android构造函数和onCreate()之间有什么区别?   java配置弹性搜索结果评分   java LibGDX纹理是否可绘制?   java如何在Android中设置应用程序默认打开pdf   java是否有一种创造性的方法将多个参数传递给contentEquals()方法?   java在Android上存储Ed25519私钥