Modified method printVars()

develop
Самоукин Алексей 14 years ago
parent 952f5519c4
commit b71c3574aa

@ -59,8 +59,6 @@ class var:
def __init__(self, parentObj): def __init__(self, parentObj):
# словарь зависимых переменных {имя:значение} # словарь зависимых переменных {имя:значение}
self.dependValues = {} self.dependValues = {}
# тип переменной (атрибут type)
self.type = ('default')
# объект который создал этот объект # объект который создал этот объект
self.parentObj = parentObj self.parentObj = parentObj
@ -208,17 +206,16 @@ class DataVars(object):
else: else:
return (dataVar,False) return (dataVar,False)
def __setAttributesVar(self, var, nameVar, dict): def __setAttributesVar(self, var, nameVar, dictVar):
"""Установка аттрибутов для созданного объекта var """Установка аттрибутов для созданного объекта var
название аттрибута и его значение берется из словаря dict название аттрибута и его значение берется из словаря dictVar
""" """
dict['type'] = nameVar.split('_') if not set(dictVar.keys()) <= set(dir(var)):
if not set(dict.keys()) <= set(dir(var)):
raise self.DataVarsError(\ raise self.DataVarsError(\
_("error initalize variable %s, incorrect data")%nameVar) _("error initalize variable %s, incorrect data")%nameVar)
for nameAttr in dict.keys(): for nameAttr in dictVar.keys():
setattr(var,nameAttr, dict[nameAttr]) setattr(var, nameAttr, dictVar[nameAttr])
return True return True
def __Get(self, nameVar): def __Get(self, nameVar):
@ -596,28 +593,37 @@ storage of variables templates")%location)
break break
return foundVar return foundVar
def getVars(self, type_names=None): def getVars(self, varsFilter=None, varsNames=[]):
"""Словарь переменных для печати""" """Словарь переменных для печати"""
# проверка фильтра
reFilter = False
if varsFilter:
try:
reFilter = re.compile("^%s$"%varsFilter)
except:
cl_overriding.printERROR(_("wrong vars filter '%s'")\
%str(varsFilter))
cl_overriding.exit(1)
ret = {} ret = {}
for section, moduleVar, fillobj in self._importList: for section, moduleVar, fillobj in self._importList:
dataVar=moduleVar.Data dataVar = moduleVar.Data
dictVars = dir(dataVar) dictVars = dir(dataVar)
for nameVar in dictVars: for nameVar in dictVars:
if not "__" in nameVar: if not "__" in nameVar and not\
if not (getattr(dataVar,nameVar).has_key("official") and\ (getattr(dataVar,nameVar).has_key("official") and\
getattr(dataVar,nameVar)['official']): getattr(dataVar,nameVar)['official']):
self.Get(nameVar) if varsNames and not nameVar in varsNames:
if type_names: continue
varType =list(getattr(self, nameVar).type) if reFilter and not reFilter.search(nameVar):
if not set(type_names)<=set(varType): continue
continue self.Get(nameVar)
ret[nameVar] = getattr(self, nameVar) ret[nameVar] = getattr(self, nameVar)
return ret return ret
def printVars(self,type_names=None): def printVars(self, varsFilter=None, varsNames=[]):
"""распечатать список переменных с значениями""" """распечатать список переменных с значениями"""
var=None var=None
var=self.getVars(type_names) var=self.getVars(varsFilter, varsNames)
mlen_name=0; mlen_name=0;
mlen_type=0; mlen_type=0;
mlen_mode=0; mlen_mode=0;

@ -220,6 +220,10 @@ class opt(optparse.OptionParser):
{'shortOption':"v", {'shortOption':"v",
'longOption':"vars", 'longOption':"vars",
'help':_("print variables") 'help':_("print variables")
},
{'longOption':"varsfilter",
'optVal':"FILTER",
'help':_("print filtered variables")
}] }]
color_control = \ color_control = \
@ -297,7 +301,7 @@ class opt(optparse.OptionParser):
def checkVarSyntax(self,values): def checkVarSyntax(self,values):
"""Check value of parameter set, was used for change vars""" """Check value of parameter set, was used for change vars"""
reCheckSet = re.compile("^([a-z_]+=[^,]+)(,\s*[a-z_]+=[^,]+)*$") reCheckSet = re.compile("^[0-9a-z_]+=[^,]+(,[0-9a-z_]+=[^,]+)*$")
if values.set: if values.set:
for val in values.set: for val in values.set:
if not reCheckSet.match(val): if not reCheckSet.match(val):

Loading…
Cancel
Save