Exemplo n.º 1
0
def get_package_parse(file_name):
    # 初始化对象
    absolute_file_path = "{}{}".format(ABSOLUTE_BASE_PATH, file_name)
    new_package_instance = None
    attr_list = []
    base_path = file_name.replace(".py", '')
    # 动态加载package
    try:
        new_pkg = imp.load_source(file_name, absolute_file_path)
        new_package_instance = new_pkg.Instance()
        # 删除掉临时模块
        del sys.modules[file_name]
    except Exception as e:
        error_log = error_handel.log_traceback(e)
        attr_list.append({
            "is_error": True,
            "file_name": file_name,
            "error_msg": error_log
        })
    # 加载完成后返回
    for name in dir(new_package_instance):
        if name[0] != '_':
            # 获取所有方法
            attr_list.append({
                "uri":
                "{}/{}".format(base_path, name),
                "data":
                util.format_script_info_data(
                    getattr(new_package_instance, name))
            })
    return attr_list
Exemplo n.º 2
0
def get_file_label_and_path(file_name):
    absolute_file_path = "{}{}".format(ABSOLUTE_BASE_PATH, file_name)
    new_package_instance = None
    attr_list = []
    base_path = file_name.replace(".py", '')
    try:
        new_pkg = imp.load_source(file_name, absolute_file_path)
        new_package_instance = new_pkg.Instance()
        # 删除掉临时模块
        del sys.modules[file_name]
    except Exception as e:
        error_log = error_handel.log_traceback(e)
        attr_list.append({
            "label": "解析失败",
            "path": file_name,
            "is_error": True,
            "file_name": file_name,
            "error_msg": error_log
        })
    for name in dir(new_package_instance):
        if name[0] != '_':
            # 获取所有方法
            attr_list.append({
                "label": name,
                "path": "{}/{}".format(base_path, name)
            })
    return attr_list
Exemplo n.º 3
0
 def post(self):
     param = request.json
     # 设定全局变量
     # b_globals.__set_request()
     try:
         g.env_name = param['env_name']
         router = script_router.Route()
         return router.apply(param)
         # 删除全局变量
     except Exception as e:
         # 删除全局变量
         error_log = error_handel.log_traceback(e)
         return b_msg.error(
             msg={
                 'type': type(e).__name__,
                 'message': error_log,
                 'requestBody': param,
             })
Exemplo n.º 4
0
 def post(self):
     """
     params: param 参数是需要获取的URI的地址,案例
     {
         rootPath: '/'
     }
     """
     param = request.json
     try:
         router = script_router.Route()
         uri_list = router.get_scripts_list(param)
         return b_msg.success(data=uri_list)
     except Exception as e:
         error_log = error_handel.log_traceback(e)
         return b_msg.error(
             msg={
                 'type': type(e).__name__,
                 'message': error_log,
                 'requestBody': param,
             })