Modified method printVars()

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

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

@ -220,6 +220,10 @@ class opt(optparse.OptionParser):
{'shortOption':"v",
'longOption':"vars",
'help':_("print variables")
},
{'longOption':"varsfilter",
'optVal':"FILTER",
'help':_("print filtered variables")
}]
color_control = \
@ -297,7 +301,7 @@ class opt(optparse.OptionParser):
def checkVarSyntax(self,values):
"""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:
for val in values.set:
if not reCheckSet.match(val):

Loading…
Cancel
Save