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 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