HiveNetCore.utils.condition_tool module

条件处理工具模块

class HiveNetCore.utils.condition_tool.ConditionTool[源代码]

基类:object

条件处理工具

classmethod condition_func_exists(c_type: str, c_para: dict) bool[源代码]

判断是否包含指定值的处理函数

注: 目前支持字典和列表对象的判断

参数
  • c_type (str) – 条件类型, 应传入’exists’

  • c_para (dict) –

    条件参数, 格式如下:

    {

    ‘value’: ‘xxx’, # 要检查是否包含在对象的值(如果对象是字典, 检查的是key)

    # 检查对象的获取类型:

    # instance - obj为直接给出的对象(默认)

    # strexp - obj为字符格式的对象(json), 例如: ‘{“a”: “aval”, “b”: “bval”}’, ‘[1, 2, 3]’

    # pyexp - obj为python表达式指定的变量, 可结合globals和locals指定全局变量和局部变量

    ’obj_type’: ‘instance’,

    ’obj’: {}, # 检查对象, 与获取类型相对应的对象或值

    ’globals’: None, # 允许访问的全局变量字典

    ’locals’: None, # 允许访问的局部变量字典

    }

返回

返回处理结果

返回类型

bool

classmethod condition_func_pyexp(c_type: str, c_para: dict) bool[源代码]

python表达式条件处理函数

参数
  • c_type (str) – 条件类型, 应传入’pyexp’

  • c_para (dict) –

    条件参数, 格式如下:

    {

    ‘exp’: ‘xxx’, # 表达式文本

    ’globals’: None, # 允许访问的全局变量字典

    ’locals’: None, # 允许访问的局部变量字典

    }

返回

返回处理结果

返回类型

bool

classmethod get_default_condition_func_mapping() dict[源代码]

获取默认的条件处理函数映射字典

返回

返回映射字典

返回类型

dict

classmethod run_conditions(conditions: dict, func_mapping: dict = None, globals: dict = None, locals: dict = None) bool[源代码]

执行条件

参数
  • conditions (dict) –

    条件字典, 格式如下:

    {‘操作符’: [(‘条件类型’, {条件参数}), …]}

    操作符支持: ‘$and’ - 数组中的条件以and方式联合判断, ‘$or’ - 数组中的条件以or方式联合判断, ‘$not’ - 数组中的条件以and联合并对结果取反

    一个字典那的多个操作符以and联合, 例如: {‘$and’: [条件集合1], ‘$or’: [条件集合2], ‘$not’: [条件集合3]} 代表 (条件集合1结果) and (条件集合2结果) and (条件集合3结果)

    支持条件的嵌套, 例如 {‘$and’: [(条件1), {‘$or’: [(条件2), (条件3)]}]} 代表 (条件1结果) and (条件2 or 条件3)

  • func_mapping (dict) –

    default=None, 条件处理函数映射字典

    注: 如果不设置默认使用get_default_condition_func_mapping获取初始字典

  • globals (dict) – default=None, 内部使用, 指定调用函数自身的全局变量字典

  • locals (dict) – default=None, 内部使用, 指定调用函数自身的局部变量字典

返回

返回判断结果

返回类型

bool