from Utils.ObjUtil import SpecObject from Utils.ValidateUtil import ValidateAttr, Validate class FiltersObj(SpecObject): """筛选器""" class FilterRange(SpecObject): """筛选范围""" class DataBase(SpecObject): """数据库""" class DataSheet(SpecObject): """数据表""" class DataField(SpecObject): """字段""" sub_field = ValidateAttr(field="sub_field", type=[str, dict]) fields_map = { "sub_field": "子字段" } data_field = ValidateAttr(field="data_field", type=DataField) fields_map = { "data_field": "字段" } data_sheet = ValidateAttr(field="data_sheet", type=DataSheet) fields_map = { "data_sheet": "数据表" } data_base = ValidateAttr(field="data_base", type=DataBase) fields_map = { "data_base": "数据库" } class SearchCase(SpecObject): """筛选条件""" class ByCid(SpecObject): """企业ID筛选""" cid = ValidateAttr(field='cid', type=str) fields_map = { "cid": "企业ID" } class ByReportDate(SpecObject): """报告期筛选""" report_date = ValidateAttr(field='report_date', func=Validate.date_format) fields_map = { "cid": "报告期" } by_cid = ValidateAttr(field="by_cid", str=ByCid) by_report_date = ValidateAttr(field="by_report_date", str=ByReportDate) by_diy_case = ValidateAttr(field="by_diy_case", str=dict) fields_map = { "by_cid": "企业ID筛选", "by_report_date": "报告期筛选", "by_diy_case": "自定义筛选", } class SetValue(SpecObject): """筛选范围""" class DisposeExcept(SpecObject): """处理异常值""" class NumericType(SpecObject): """数值型""" value = ValidateAttr(field='value', type=[float, int]) bit = ValidateAttr(field='bit', type=int) fields_map = { "value": "值", "bit": "保留位数" } null_type = ValidateAttr(field='null_type', type=None) numeric_type = ValidateAttr(field='numeric_type', type=NumericType) text_type = ValidateAttr(field='text_type', type=str) fields_map = { "null_type": "空值", "numeric_type": "数值型", "text_type": "文本型" } case_none_str = ValidateAttr(field="case_none_str", type=DisposeExcept) case_none = ValidateAttr(field="case_none", type=DisposeExcept) case_no_key = ValidateAttr(field="case_no_key", type=DisposeExcept) fields_map = { "case_none_str": "处理空字符串", "case_none": "处理空值", "case_no_key": "处理不存在" } filter_id = ValidateAttr(field="filter_id", type=str) filter_name = ValidateAttr(field="filter_name", type=str) filter_range = ValidateAttr(field="filter_range", type=dict) search_case = ValidateAttr(field="search_case", type=SearchCase) set_value = ValidateAttr(field="set_value", type=SetValue) fields_map = { "filter_id": "筛选器ID", "filter_name": "筛选器名称", "filter_range": "筛选范围", "search_case": "筛选条件", "set_value": "取值设置" }