跳到主要内容

消息类型

算盘是一个流计算引擎,Python SDK 使用 argument 来将数据在流和 python 类型之间转换。argument 能将流数据类型转换成 python 数据类型,也能自动将 python 数据类型转换成流数据类型。

支持类型

argument 被用于输入桩、输出桩和右面板组件参数的定义。右面板的一个类型唯一对应于一个参数类型。

右面板名称SDK 名称说明
字符串String由数字、字母、下划线组成的一串字符
数字Int, Float整型、浮点型等数字
布尔值BoolTrue 或者 False
对象Json符合Json格式的对象
表格Json二维数组,数据的第一行为表头,然后依次为第一行数据、第二行数据,以此类推
向量Json实数一维数组
系统事件String默认接受所有广播信息中的系统事件
文件File任何类型文件,接收后由用户自行解析
Npy文件NpyNumPy对象
图片Image图片文件
Csv文件CsvCsv文件或DataFrame

参数项

参数类型默认值描述
keystring必填关键字,作为唯一标识参与参数使用的全过程中
aliasstringNone别名,第二标识(使用语义化),与关键字的作用相同,可冲突(可能被覆盖)
labelstringNone标签,第三标识(显示语义化),如果需要前端显示,此字段将作为显示的标签
requiredboolFalse必填,如果设置为 True,此参数必须存在,否则将解码失败并报错
defaultanyNone默认值,若此参数不存在,将使用默认值置于上下文中
choiceslist[]选项,如果设置选项值,解码后的数据必须为选项值其一,否则解码失败并报错

示例

import suanpan
from suanpan.app.arguments import Int, Float

@app.input(Int(key="inputData1", alias="count"))
@app.output(Float(key="outputData1", alias="sum"))
@app.param(Float(key="param1", alias="ratio"))
def sum(context):
args = context.args
return args.count * count.ratio
import suanpan
from suanpan.app.arguments import Json, Bool

@app.input(Json(key="inputData1", alias="user"))
@app.output(Json(key="outputData1", alias="manager"))
@app.param(Bool(key="param1", alias="check"))
def add_user(context):
args = context.args

if args.check:
args.user['check'] = True
return args.user

!!! warning "注意"

组件参数的 key 必须以 param 开头,python sdk 会忽略不是以 param 开头的参数