|
@@ -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')
|