支持两种风格:rest style , google style,具体如下:

使用docstring-parser 解析,具体可查看 https://pypi.org/project/docstring-parser/


rest style

rest style
"""
人事主业务, 进行业务生效或者校验

#流程 #人事 #xxx

流程报错可能原因:
    表单高级设置缺少key值;
    新增非主任职传的old_position_id为主任职岗位;

:param Dict action_details: [必填]调动类型
    {
        action_in_pos:1,  ##
        action_number:null,  # 事务编码#
        action_out_employee_category_name:null, #出口用工类型#
        action_out_position_type:null,  #任职类型,#
        action_out_position_status_name:null, #出口岗位状态#
        action_out_action_reason_name:null,  #变动原因#
        only_check:false,  #true:只校验; false:校验+生效#
        check_way:1 #校验出入口+校验关联约束; 2:校验出入口# 
    }

:param Dict details: [必填]
    {
		"employee_id": "", #调动人 eg:"@form.employee_id@"#
        "employee_category_id":"", # 员工类型 eg:"@form.employee_category_id@"#
        "action_id": "", #变动事务 eg:"@form.action_id@"#
        "action_reason_id": "", #变动原因 eg:"@form.action_reason_id@"#
        "position_id": "", #调动后岗位 eg:"@form.position_id@"#
        "old_position_id": "", #调动前岗位 eg:"@form.old_position_id@"#
        "begin_date": "", #生效日期 eg:"@form.begin_date@"#
        "position_type": "", #任职类型 eg:"@form.position_type@"#
        "position_status_id":"" # 岗位状态信息 eg:"@form.position_status_id@"#
    }

:param String mode: [必填]
    effect #生效+校验# "check" #只校验#

:return:
"""

第一行填写接口摘要信息,简短介绍接口实现功能

第二行 #流程 #人事 #xxx 表示接口标签,可用于后续快速搜索

第三行及其他文档 接口详细内容

如上图所示 变量下回车后给出参数示例, ## 双井号用于变量注释说明




google style 

google style
"""
人事主业务, 进行业务生效或者校验

#流程 #人事 #xxx

流程报错可能原因:
    表单高级设置缺少key值;
    新增非主任职传的old_position_id为主任职岗位;

Args:
    details(List): [必填]detail测试
        [{
            "employee_id": "", # 调动人 eg:"@form.employee_id@",
            "employee_category_id": "", # 员工类型 eg:"@form.employee_category_id@",
            "action_id": "",  # 变动事务 eg:"@form.action_id@",
            "action_reason_id": 变动原因 eg:"@form.action_reason_id@",
            "position_id": 调动后岗位 eg:"@form.position_id@",
            "old_position_id": 调动前岗位 eg:"@form.old_position_id@",
            "begin_date": 生效日期 eg:"@form.begin_date@",
            "position_type": 任职类型 eg:"@form.position_type@",
            "position_status_id": 岗位状态信息 eg:"@form.position_status_id@"
        }]

    action_details(Dict): [必填]测试
        {
            action_in_pos:1,
            action_number:None,
            only_check:False,
            check_way:1
            action_out_employee_category_name:None,
            action_out_position_type=None,
            action_out_position_status_name:None,
            action_out_action_reason_name:None,
        }

    mode(String): [必填]动作
        "effect":生效+校验; "check":只校验

Returns:
    返回
"""

直接调用下边方法验证  或者在流程事件设置中验证即可

from docstring_parser import parse

def parse_param(desc):
    docstring = parse(desc)
    param = {}
    for i in docstring.params:
        desc = i.description.split("\n")
        _type = i.type_name.lower() if i.type_name else "string"

        arg_options = "\n".join(desc[1:])
        pattern_param = re.compile(r"(?<=#).+?(?=#)")
        param_example = re.sub(pattern_param, "", arg_options).replace("#", "").replace("\n", "").strip()
        if _type in ("dict", "list"):
            try:
                param_example = json.loads(param_example)
            except:
                pass

        param[i.arg_name] = param_example

    return param



  • 无标签