BigQuant使用文档

BigModule中的基本类型

由small_q创建,最终由small_q 被浏览 142 用户

bigmodule模块的核心在于 run() 函数 ,那么一个函数在定义和执行的时候,自然不可避免地需要接收参数,并且返回结果。

为了加强模块在使用过程中的规范性和通用性,因此在定义 run() 函数时,要求传入参数传出参数使用bigmodule中的基本类型来显式指定和封装,而在 run() 函数的内部,则可以自由使用Python以及第三方库提供的数据类型。

\

导入基本类型

bigmodule的基本类型定义在 bigmodule.I 中,通过以下方式进行导入:

# 在模块中添加以下代码以导入
from bigmodule import I

当然,开发者在大部分情况下,无需添加此代码,因为当模块模板创建后,会自动添加该导入。

\

基本类型

bigmodule提供了以下的基本类型,同时在指定参数类型时,还允许设置类型属性:

类型 说明
I.int 整数类型
I.float 浮点数类型
I.str 字符串类型
I.bool 布尔类型
I.port 端口类型,用于将数据封装后在模块之间传输
I.choice 枚举类型
I.code 可执行代码类型
I.Outputs 输出类型

\

I.int

基本用法:

参数标识符: I.int(desc="参数描述文本", min=int_max, max=int_max)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
min 指定参数允许接受的最小值,默认为int_min (-2147483648)
max 指定参数允许接受的最大值,默认为int_max (2147483647)

使用例:

x: I.int("这是一个整数类型的参数", min=0, max=99)

\

I.float

基本用法:

参数标识符: I.float(desc="参数描述文本", min=float_min, max=float_max)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
min 指定参数允许接受的最小值,默认为float_min(-1.7976931348623157e308)
max 指定参数允许接受的最大值,默认为float_max(1.7976931348623157e308)

使用例:

y: I.float("这是一个浮点数类型的参数", min=-0.1, max=0.85)

\

I.str

基本用法:

参数标识符: I.str(desc="参数描述文本", 
             specific_type_name=None)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
specific_type_name 可以用于指明特殊的文本字符串格式,例如 SQL, jsonhtmlxml 等,方便后续依据具体类型进行解析和使用(将在可视化界面提示用户)

使用例:

json: I.str("需要接收一个json", specific_type_name="json")

\

I.bool

基本用法:

参数标识符: I.bool(desc="参数描述文本", 
             specific_type_name=None)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
specific_type_name 可以指明 bool 变量所指代的具体类型,方便后续依据具体类型进行处理和使用(将在可视化界面提示用户)

使用例:

is_empty: I.bool("是否为空")

\

I.port

基本用法:

参数标识符: I.port(desc="参数描述文本", 
             name="参数名称",
             optional=Flase,
             type=port_type_any,
             specific_type_name=None)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
name 参数的名称,默认为空值 (None)
optional 指明参数的输入状态:可选(True) / 必填(False),默认为False(将在可视化界面提示用户)
type 描述数据类型,可设置为:port_type_any="通用" 或 port_type_csv = "CSV"。默认为port_type_any
specific_type_name 可以指明端口数据所指代的具体类型,方便后续依据具体类型进行处理和使用(将在可视化界面提示用户)

使用例:

data: I.port("接收数据输入", name="row_data", optional=False, specific_type_name="DataFrame")

\

I.choice

基本用法:

参数标识符: I.choice(desc="参数描述文本", 
                values=None,
                multi=False)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
values 枚举值,使用者只能从这些值中进行选取,默认为空值 (None)
multi 枚举值能否重复,默认为False

使用例:

# 先在模板中定义一个列表(list),作为备选值
actions = ["compile", "run", "debug"]
# 在定义时使用备选值
act: I.choice("执行模式", values=actions)


# 当然也可以使用字典(dict)来设置备选值
actions = {"编译": "compile", "执行": "run", "调试": "debug"}
# 在定义时需将备选值转换为列表(list)
act: I.choice("执行模式", values=list(actions.keys()))
# 在后续使用时,获取对应的值
act = actions[act]

\

I.code

基本用法:

参数标识符: I.code(desc="参数描述文本", 
              language="",
              default=None,
              specific_type_name=None)
类型属性 说明
desc 参数的描述性文本,可以为使用者提供提示信息,默认为空值 (None)
language 描述代码所使用的语言
default 可以通过 default 来设置该类型参数的默认值
specific_type_name 可以指明数据所指代的具体类型,方便后续依据具体类型进行处理和使用(将在可视化界面提示用户,但并不会进行强制要求)

使用例:

default_code = """print("hello, world")"""
pyscript: I.code("python脚本", language="python", default=default_code)

\

I.Outputs

基本用法

参数标识符: I.Outputs(**kwargs) 
类型属性 说明
**kwargs 自定义命名参数,Outputs对象会根据用户提供的命名参数以及对应的值,产生相应的属性。

使用例

# 定义属性名称并赋值
output = I.Outputs(data=some_data, name="analyzed_data")
# 获取 data 属性内容
data = output.data  # some_data
# 获取 name 属性内容
name = output.name  # "analyzed_data"

特别的,Outputs对象还提供了一个方法extend_methods(**kwargs),可用于让Outputs对象绑定函数,使用例如下:

def _foo() :
	# do someting

# 令一个output对象绑定上一个函数,并将该方法命名为foo
output = I.Outputs(...)
output.extend_methods(foo=_foo)
# 调用该函数
output.foo()

\

设置默认值

在定义 run() 函数的传入参数时,可以设置参数的默认值。

当用户没有相应的输入时,就会使用参数默认值。

基本用法

参数定义语句 = 参数默认值

使用例

# 指定一个传入参数的类型为整数,并设置默认值为2
x: I.int(desc="整数", min=0, max=10) = 2

# 指定传入一个参数的类型为字符串,默认为空
sql: I.str(desc="SQL", specific_type_name="SQL") = None

\

{link}