From addf075b6e7a52c54c7280b88f85aba64f3769cc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=9D=E5=B7=9D?= Date: Fri, 20 May 2022 13:04:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 对象校验默认属性校验顺序修改 --- Utils/ValidateUtil.py | 85 ++++++++++++++++++++++--------------------- 1 file changed, 43 insertions(+), 42 deletions(-) diff --git a/Utils/ValidateUtil.py b/Utils/ValidateUtil.py index 58a9438..5c1f5d0 100644 --- a/Utils/ValidateUtil.py +++ b/Utils/ValidateUtil.py @@ -79,48 +79,49 @@ class ValidateAttr(object): except AttributeError: raise ReturnConditionCheckFailed(self.FILED_MAP_ERROR, self.code) - if 'type' in self.kwargs: - """检查实例的属性类型""" - if type(self.kwargs['type']) is list: - if type(value) not in self.kwargs['type']: - raise ReturnConditionCheckFailed(self.info, self.code) - else: - if not isinstance(value, self.kwargs['type']): - if value is not None and 'default' not in self.kwargs: - raise ReturnConditionCheckFailed(self.info, self.code) - - if 'length' in self.kwargs: - """检查实例的属性值长度(一般是str类型)""" - if len(value) != self.kwargs['length']: - raise ReturnConditionCheckFailed(self.info, self.code) - - if 'in_list' in self.kwargs: - """检查实例属性是否包含于列表中(属性有列表和非列表两种情况)""" - if type(value) is not list: - if value not in self.kwargs['in_list']: - raise ReturnConditionCheckFailed(self.info, self.code) - else: - for item in value: - if item not in self.kwargs['in_list']: - raise ReturnConditionCheckFailed(self.info, self.code) - - if 'instance_list' in self.kwargs: - """检查实例列表""" - if type(value) is not list: - raise ReturnConditionCheckFailed(self.info, self.code) - else: - for item in value: - if not isinstance(item, self.kwargs['instance_list']): - raise ReturnConditionCheckFailed(self.info, self.code) - - if 'func' in self.kwargs: - """属性检查函数""" - if not list(map(self.kwargs['func'], [value]))[0]: - raise ReturnConditionCheckFailed(self.info, self.code) - - if 'default' in self.kwargs: + if 'default' in self.kwargs and value is None: """实例属性默认值""" - if value is None: - value = self.kwargs['default'] + value = self.kwargs['default'] + + else: + + if 'type' in self.kwargs: + """检查实例的属性类型""" + if type(self.kwargs['type']) is list: + if type(value) not in self.kwargs['type']: + raise ReturnConditionCheckFailed(self.info, self.code) + else: + if not isinstance(value, self.kwargs['type']): + if value is not None and 'default' not in self.kwargs: + raise ReturnConditionCheckFailed(self.info, self.code) + + if 'length' in self.kwargs: + """检查实例的属性值长度(一般是str类型)""" + if len(value) != self.kwargs['length']: + raise ReturnConditionCheckFailed(self.info, self.code) + + if 'in_list' in self.kwargs: + """检查实例属性是否包含于列表中(属性有列表和非列表两种情况)""" + if type(value) is not list: + if value not in self.kwargs['in_list']: + raise ReturnConditionCheckFailed(self.info, self.code) + else: + for item in value: + if item not in self.kwargs['in_list']: + raise ReturnConditionCheckFailed(self.info, self.code) + + if 'instance_list' in self.kwargs: + """检查实例列表""" + if type(value) is not list: + raise ReturnConditionCheckFailed(self.info, self.code) + else: + for item in value: + if not isinstance(item, self.kwargs['instance_list']): + raise ReturnConditionCheckFailed(self.info, self.code) + + if 'func' in self.kwargs: + """属性检查函数""" + if not list(map(self.kwargs['func'], [value]))[0]: + raise ReturnConditionCheckFailed(self.info, self.code) instance.__dict__[self.kwargs['field']] = value From 1711ce50b6b417d8b31bc91a97389b5b56f6bfd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E6=80=9D=E5=B7=9D?= Date: Fri, 20 May 2022 13:15:02 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1. 一些已知bug --- Manage/Company/Objects/CompanyIndex.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/Manage/Company/Objects/CompanyIndex.py b/Manage/Company/Objects/CompanyIndex.py index 36b7df8..9e5cf61 100644 --- a/Manage/Company/Objects/CompanyIndex.py +++ b/Manage/Company/Objects/CompanyIndex.py @@ -357,7 +357,10 @@ class FinancialAnalysis(SpecObject): def dict_to_return(self, **kwargs): _dict_ = self.dict_to_show(columns=["评价ID", "财报期", "财务得分年度比较", "财务得分同行比较", "财务得分较去年变化", "财务得分较同行差异", "指标详情"]) - _dict_['财务得分年度比较'] = [{list(item.values())[0]: list(item.values())[1]} for item in _dict_['财务得分年度比较']] + + if _dict_['财务得分年度比较'] != [{}, {}]: + _dict_['财务得分年度比较'] = [{list(item.values())[0]: list(item.values())[1]} for item in _dict_['财务得分年度比较']] + return _dict_