Эх сурвалжийг харах

1、完成UIT_Tree所有函数的转换,以及修改其中的Bug。
2、规范函数命名和参数命名。

scbc.sat2 5 жил өмнө
parent
commit
c70e8612ce
1 өөрчлөгдсөн 223 нэмэгдсэн , 124 устгасан
  1. 223 124
      ssat_sdk/MenuTree3/OptionExcel.py

+ 223 - 124
ssat_sdk/MenuTree3/OptionExcel.py

@@ -122,40 +122,131 @@ class COptionExcel(CBaseLog):
 
     '''
     函数:获取指定option下的所有子项名称(option作为parent,获取该父项下的所有option字段)
+    参数:optionName   作为parent的option;
+    返回:该option作为父节点的所有子option名称数组;
+        示例:['picture_preset', 'brightness', 'backlight']    
+    
+    测试:通过。 对应UIT_tree.py中的getSubOptionList。
     '''
     def getOptionAllChildItemName(self, optionName):
         optionList = []
         paths = self.__pathParams.paths
         for level in paths:
-            if paths[level].has_key(optionName):
+            if optionName in paths[level]:
                 optionDictList = paths[level][optionName]["value"]
                 for optionDict in optionDictList:
                     optionList.append(optionDict["option"])
-        # print "optionList:", optionList, type(optionList)
         return optionList
 
     '''
-        函数:获取指定option下的所有子项名称(option作为parent,获取该父项下的所有option字段)
+        函数:获取指定option/value_name下的所有子项(option/value)的ocr值, 1d表示One-dimensional(一维数组);
+        参数:
+            optionName      指定的option节点(也可以是value name);
+            isOption        是否为路径节点,True路径节点,False为value表的value name节点;
+        返回:数组
+        示例:
+            [
+                ['suboption1 ocr', 'ocr2', 'ocr3'],
+                ['suboption2 ocr'], 
+                ['suboption3 orc']
+            ]
+
+        测试:通过。UIT_tree中的x
     '''
 
-    def getOptionAllChildItemOcr(self, optionName):
-        optionList = []
-        paths = self.__pathParams.paths
-        for level in paths:
-            if paths[level].has_key(optionName):
-                optionDictList = paths[level][optionName]["value"]
-                for optionDict in optionDictList:
-                    optionList.append(optionDict["option"])
-        # print "optionList:", optionList, type(optionList)
-        return optionList
+    def getOptionAllChildItemTextList1d(self, optionName, isOption=True):
+        if type(optionName) == str:
+            optionName = unicode(optionName)
+
+        list_ocr = []
+        # 路径表或值表;
+        if isOption is True:
+            found = False
+            for lev in self.__pathParams.paths:
+                for parent in self.__pathParams.paths[lev]:
+                    if parent.lower() == optionName.lower():
+                        found = True
+                        for item in self.__pathParams.paths[lev][optionName]["value"]:
+                            list_ocr.extend(item['option_for_ocr'].split(';'))
+                        break
+                    # endif
+                # endfor
+                if found is True:
+                    break
+            # endfor
+        else:
+            if optionName in self.__valueParams.values:
+                self.info(u"找到%s的value表数据" % optionName)
+                for item in self.__valueParams.values[optionName]["value"]:
+                    list_ocr.extend(item['value_for_ocr'].split(';'))
+            else:
+                self.error(u"没有找到%s的value表数据" % optionName)
+        # endif
+        return list_ocr
+
+    '''
+    函数:获取指定option/value_name下的所有子项(option/value)的ocr值,2d表示Two-dimensional(二维数组);
+    参数:
+            optionName      指定的option节点(也可以是value name);
+            isOption        是否为路径节点,True路径节点,False为value表的value name节点;
+    返回:字典
+    示例:
+        [
+            ['suboption1 ocr', 'ocr2', 'ocr3'],
+            ['suboption2 ocr'], 
+            ['suboption3 orc']
+        ]
+
+    测试:通过。对应UIT_tree中的get_ocr_list
+    '''
+
+    def getOptionAllChildItemTextList2d(self, optionName, isOption=True):
+        if type(optionName) == str:
+            optionName = unicode(optionName)
+
+        list_ocr = []
+        # 路径表或值表;
+        if isOption is True:
+            found = False
+            for lev in self.__pathParams.paths:
+                for parent in self.__pathParams.paths[lev]:
+                    if parent.lower() == optionName.lower():
+                        found = True
+                        for item in self.__pathParams.paths[lev][optionName]["value"]:
+                            list_ocr.append(item['option_for_ocr'].split(';'))
+                        break
+                    # endif
+                # endfor
+                if found is True:
+                    break
+            # endfor
+        else:
+            if optionName in self.__valueParams.values:
+                self.info(u"找到%s的value表数据" % optionName)
+                for item in self.__valueParams.values[optionName]["value"]:
+                    list_ocr.append(item['value_for_ocr'].split(';'))
+            else:
+                self.error(u"没有找到%s的value表数据" % optionName)
+        # endif
+        return list_ocr
 
     '''
     函数:获取指定option/value_name下的所有子项(option/value)的ocr键对值;
+    参数:
+        optionName      指定的option节点(也可以是value name);
+        isOption        是否为路径节点,True路径节点,False为value表的value name节点;
+    返回:数组
     示例:
+        optionName = option
+        isOption = True
+        返回:
         [
-            {'suboption1': 'suboption1 ocr'}, 
-            {'suboption2': 'suboption2 ocr'}
+            {'childoption1': 'childoption1 for ocr'}, 
+            {'childoption2': 'childoption2 for ocr'},
+            {'childoption3': 'childoption3 for ocr'},
         ]
+    
+    测试:通过。对应UIT_tree中的get_pair_values
     '''
 
     def getOptionAllChildItemMap(self, optionName, isOption=True):
@@ -186,29 +277,41 @@ class COptionExcel(CBaseLog):
         return pairs
 
     '''
-        函数:获取指定option/value_name下的所有兄弟项(相同parent)的ocr键对值;
-        示例:
-            [
-                {'suboption1': 'suboption1 ocr'}, 
-                {'suboption2': 'suboption2 ocr'}
-            ]
+    函数:获取指定option/value_name下的所有兄弟项(相同parent)的ocr键对值;
+    参数:
+        optionName      指定的option节点(也可以是value name);
+        isOption        是否为路径节点,True路径节点,False为value表的value name节点;
+    返回:数组
+    示例:
+        [
+            {'sibling option1': 'sibling option1 for ocr'}, 
+            {'sibling option2': 'sibling option2 for ocr'}
+        ]
+    
+    测试:。
     '''
     def getOptionAllSiblingItemMap(self, optionName, isOption=True):
         pass
 
     '''
     函数:获取指定option/value_name下的所有兄弟项(相同parent)的 ocr:option 字典值;
+    参数:
+        optionName      指定的option节点(也可以是value name);
+        isOption        是否为路径节点,True路径节点,False为value表的value name节点;
+    返回:字典
     示例:
         {
-            'option1_ocr': 'option1', 
-            'option2_ocr': 'option2',
-            'option3_ocr': 'option3',
+            'sibling option1_ocr': 'sibling option1', 
+            'sibling option2_ocr': 'sibling option2',
+            'sibling option3_ocr': 'sibling option3',
         }
+    
+    测试:通过。对应UIT_tree中的get_parent_ocr_dict
     '''
     def getOptionAllSiblingItemDict(self, optionName, isOption=True):
         # 编码转换;
         if type(optionName) == str:
-            option = unicode(optionName)
+            optionName = unicode(optionName)
 
         found = False
         dict_ocr = {}
@@ -219,7 +322,7 @@ class COptionExcel(CBaseLog):
             for level in paths:
                 for parent in self.__pathParams.paths[level]:
                     for vals in self.__pathParams.paths[level][parent]["value"]:
-                        if vals['option'].lower() == option.lower():
+                        if vals['option'].lower() == optionName.lower():
                             found = True
                             break
                     # endfor
@@ -238,8 +341,8 @@ class COptionExcel(CBaseLog):
                     for ocr in list_ocr:
                         dict_ocr[ocr.lower()] = val['option']
         else:
-            if option in self.__valueParams.values:
-                for val in self.__valueParams.values[option]["value"]:
+            if optionName in self.__valueParams.values:
+                for val in self.__valueParams.values[optionName]["value"]:
                     list_ocr = val['value_for_ocr'].split(';')
                     for ocr in list_ocr:
                         dict_ocr[ocr.lower()] = val['value']
@@ -253,97 +356,24 @@ class COptionExcel(CBaseLog):
         # 返回结果;
         return dict_reuslt
 
-    '''
-        函数:获取指定option/value_name下的所有子项(option/value)的ocr值, 1d表示One-dimensional(一维数组);
-        示例:
-            [
-                ['suboption1 ocr', 'ocr2', 'ocr3'],
-                ['suboption2 ocr'], 
-                ['suboption3 orc']
-            ]
-        '''
-
-    def getOptionAllChildItemOcrList1d(self, optionName, isOption=True):
-        if type(optionName) == str:
-            optionName = unicode(optionName)
-
-        list_ocr = []
-        # 路径表或值表;
-        if isOption is True:
-            found = False
-            for lev in self.__pathParams.paths:
-                for parent in self.__pathParams.paths[lev]:
-                    if parent.lower() == optionName.lower():
-                        found = True
-                        for item in self.__pathParams.paths[lev][optionName]["value"]:
-                            list_ocr.extend(item['option_for_ocr'].split(';'))
-                        break
-                    # endif
-                # endfor
-                if found is True:
-                    break
-            # endfor
-        else:
-            if optionName in self.__valueParams.values:
-                self.info(u"找到%s的value表数据" % optionName)
-                for item in self.__valueParams.values[optionName]["value"]:
-                    list_ocr.extend(item['value_for_ocr'].split(';'))
-            else:
-                self.error(u"没有找到%s的value表数据" % optionName)
-        # endif
-        return list_ocr
-
-    '''
-    函数:获取指定option/value_name下的所有子项(option/value)的ocr值,2d表示Two-dimensional(二维数组);
-    示例:
-        [
-            ['suboption1 ocr', 'ocr2', 'ocr3'],
-            ['suboption2 ocr'], 
-            ['suboption3 orc']
-        ]
-    '''
-
-    def getOptionAllChildItemOcrList2d(self, optionName, isOption=True):
-        if type(optionName) == str:
-            optionName = unicode(optionName)
-
-        list_ocr = []
-        # 路径表或值表;
-        if isOption is True:
-            found = False
-            for lev in self.__pathParams.paths:
-                for parent in self.__pathParams.paths[lev]:
-                    if parent.lower() == optionName.lower():
-                        found = True
-                        for item in self.__pathParams.paths[lev][optionName]["value"]:
-                            list_ocr.append(item['option_for_ocr'].split(';'))
-                        break
-                    # endif
-                # endfor
-                if found is True:
-                    break
-            # endfor
-        else:
-            if optionName in self.__valueParams.values:
-                self.info(u"找到%s的value表数据" % optionName)
-                for item in self.__valueParams.values[optionName]["value"]:
-                    list_ocr.append(item['value_for_ocr'].split(';'))
-            else:
-                self.error(u"没有找到%s的value表数据" % optionName)
-        # endif
-        return list_ocr
-
     '''
     函数:获取指定option所有兄弟项(相同parent)的ocr值, 1d表示One-dimensional(一维数组);
+    参数:
+            optionName      指定的option节点(也可以是value name);
+            isOption        是否为路径节点,True路径节点,False为value表的value name节点;
+    返回:数组
     示例:
         [
             ['option1 ocr', 'ocr2', 'ocr3'],
             ['option2 ocr'], 
             ['option3 orc']
         ]
+        
+    测试:通过。对应UIT_tree中的get_parent_ocr_list
+    
     '''
 
-    def getOptionAllSiblingItemOcrList1d(self, optionName):
+    def getOptionAllSiblingItemTextList1d(self, optionName):
         # 编码转换;
         if type(optionName) == str:
             optionName = unicode(optionName)
@@ -378,12 +408,17 @@ class COptionExcel(CBaseLog):
         return list_ocr
 
     '''
-    函数:获取指定option的ocr,以list返回
+    函数:获取指定option的ocr文本描述,以list返回
+    参数:optionName   要返回文本描述的option节点
+    返回:数据
+    示例:optionName = 'picture_reset'时,返回['picture reset', 'plcture reset']
+        
+    测试:通过。对应UIT_tree.py中的getOptionTextList、get_option_ocr(这两个函数返回值一样,参数不一样而已)。
     '''
-    def getOptionOcr(self, optionName):
+    def getOptionText(self, optionName):
         # 编码转换;
         if type(optionName) == str:
-            option = unicode(optionName)
+            optionName = unicode(optionName)
 
         found = False
         list_ocr = []
@@ -392,7 +427,7 @@ class COptionExcel(CBaseLog):
         for level in paths:
             for parent in self.__pathParams.paths[level]:
                 for vals in self.__pathParams.paths[level][parent]["value"]:
-                    if vals['option'].lower() == option.lower():
+                    if vals['option'].lower() == optionName.lower():
                         list_ocr = vals['option_for_ocr'].split(';')
                         found = True
                         break
@@ -409,7 +444,11 @@ class COptionExcel(CBaseLog):
         return list_ocr
 
     '''
-        函数:获取指定option的value表值,如果参数value未指定具体值则获取全部valueName的值;
+        函数:获取指定option的value表详细数据,如果参数value未指定具体值则获取全部valueName的详细数据;
+        参数:
+            optionName      指定的value表中的option(即value name)名称
+            value           要获取的值名称,如果空则获取全部值
+        返回:自定义的字典
         示例:
         {
             "option":"option名称",
@@ -419,8 +458,10 @@ class COptionExcel(CBaseLog):
             "move_key":"",
             "others":"",
         }
+        
+        测试:通过。对应UIT_tree中的get_value
     '''
-    def getOptionValues(self, optionName, value=""):
+    def getOptionValueInfo(self, optionName, value=""):
         # 编码转换;
         if type(optionName) == str:
             option = unicode(optionName)
@@ -429,7 +470,7 @@ class COptionExcel(CBaseLog):
         if optionName not in self.__valueParams.values:
             return []
 
-        optValues = self.valueParams.values[option]["value"]
+        optValues = self.__valueParams.values[option]["value"]
         valueList = []
         valueOcrList = []
         for item in optValues:
@@ -455,6 +496,50 @@ class COptionExcel(CBaseLog):
         # 返回结果;
         return vp
 
+    '''
+    函数:获取value表中的指定option(value name)的value的文本内容;
+    参数:
+        optionName      指定value中的option(value name)
+        value           指定option的value字段名称;
+    返回:数组
+    示例:
+    
+    测试:通过。对应UIT_tree中的getValueTextList。
+    '''
+    def getOptionValueText(self, optionName, value):
+        valueTextList = []
+        if optionName in self.__valueParams.values:
+            valueDictList = self.valueParams.values[optionName]["value"]
+            for valueDict in valueDictList:
+                if valueDict["value"] == value:
+                    value_for_ocr = valueDict["value_for_ocr"]
+                    valueTextList = value_for_ocr.split(';')
+                    break
+
+        return valueTextList
+
+    '''
+        函数:获取指定option的详细信息;
+        参数:
+            optionName      指定的路径表中的option名称
+        返回:字典
+        示例:
+        {
+            "layers":"第几层",
+            "level":"",
+            "parent":"",  
+            "first_parent": "",         
+            "enter_key":"",
+            "move_key":"",
+            "others":"",
+            "option_move_key":"",
+            "option_enter_key":"",
+            "option_others":"",
+            "option_ocr":[],
+        }
+
+        测试:通过。对应UIT_tree中的get_option
+    '''
     def getOptionInfo(self, optionName):
         # 编码转换;
         if type(optionName) == str:
@@ -477,9 +562,9 @@ class COptionExcel(CBaseLog):
                             dict_option['enter_key'] = self.__pathParams.paths[level][parent]['enter_key']
                             dict_option['move_key'] = self.__pathParams.paths[level][parent]['move_key']
                             dict_option['option_ocr'] = vals['option_for_ocr'].split(';')
-                            dict_option['option_move_key'] = vals['option_move_key']
-                            dict_option['option_enter_key'] = vals['option_enter_key']
-                            dict_option['option_others'] = vals['option_others']
+                            dict_option['option_move_key'] = vals['move_key']
+                            dict_option['option_enter_key'] = vals['enter_key']
+                            dict_option['option_others'] = vals['others']
                         option = parent
                         layers += 1  # 层数;
                         break
@@ -495,6 +580,12 @@ class COptionExcel(CBaseLog):
 
     '''
     函数:获取指定的option在value表中的所有value字段;
+    参数:
+        optionName  指定value表中的option(value name)名称。
+    返回:数组
+    示例:
+    
+    测试:通过。对应UIT_tree中的getSubValueList
     '''
     def getOptionAllValueName(self, optionName):
         valueList = []
@@ -513,12 +604,20 @@ class COptionExcel(CBaseLog):
 
         return valueList
 
+
 if __name__ == "__main__":
     exData = CExtraData()
     opxls = COptionExcel(exData)
     # print json.dumps(opxls.pathParams.paths)
-    # print u"getOptionMap", opxls.getOptionAllChildItemMap('picture')
-    # print u"getOptionAllChildItemOcrList1d", opxls.getOptionAllChildItemOcrList1d('picture', False)
-    # print u"getOptionAllChildItemOcrList2d", opxls.getOptionAllChildItemOcrList2d('picture', False)
-    # print "getOptionAllSiblingItemOcrList", opxls.getOptionAllSiblingItemOcrList('picture')
-    print "getOptionAllChildItem", opxls.getOptionAllChildItem('picture')
+    # print "getOptionAllChildItemName", opxls.getOptionAllChildItemName('picture')
+    # print "getOptionAllChildItemTextList1d", opxls.getOptionAllChildItemTextList1d('picture')
+    # print "getOptionAllChildItemTextList2d", opxls.getOptionAllChildItemTextList2d('picture')
+    # print "getOptionAllChildItemMap", opxls.getOptionAllChildItemMap('picture')
+    # print "getOptionAllSiblingItemMap", opxls.getOptionAllSiblingItemMap('picture')
+    # print u"getOptionAllSiblingItemDict", opxls.getOptionAllSiblingItemDict('picture')
+    # print u"getOptionAllSiblingItemTextList1d", opxls.getOptionAllSiblingItemTextList1d('picture')
+    # print u"getOptionText", opxls.getOptionText('picture')
+    # print "getOptionValueInfo", opxls.getOptionValueInfo('picture')
+    # print "getOptionValueText", opxls.getOptionValueText('picture', 'sharpness')
+    # print "getOptionInfo", opxls.getOptionInfo('picture_reset')
+    print "getOptionAllValueName", opxls.getOptionAllValueName('r_gain')