BigModule中的基本类型
由small_q创建,最终由small_q 被浏览 198 用户
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, json,html,xml 等,方便后续依据具体类型进行解析和使用(将在可视化界面提示用户) |
使用例:
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
\