develop
Самоукин Алексей 14 years ago
parent d01d3f9853
commit 57f645c752

@ -31,6 +31,9 @@ class var:
'''Объект "Переменная окружения"'''
# название сервиса которому принадлежит переменная
#(Main, Builder, Client итд)
# была ли установлена переменная
isSet = False
# Для какой программы переменная
service = None
# значение переменной
value = ""
@ -38,8 +41,8 @@ class var:
mode = "r"
# переменная для внутреннего использования (official)
official = False
# количество вызовов метода заполнения
countFill = 0
# был ли вызван метод заполнения
isCallFill = False
# объект в котором создан этот объект
parentObj = None
# запускать или нет метод заполнения
@ -79,19 +82,22 @@ class var:
if self.dynamic:
self.value = self.Fill()
return self.value
if not self.value:
if self.countFill>0:
if not self.isSet:
if self.isCallFill:
self.isSet = True
return self.value
self.countFill += 1
self.isCallFill = True
self.value = self.Fill()
if self.dependValues and self.is_update():
self.countFill += 1
self.isCallFill = True
self.value = self.Fill()
self.isSet = True
return self.value
def Set(self, value):
"""Запись значения переменной"""
self.value = value
self.isSet = True
return self.value
def Fill(self):

@ -107,182 +107,180 @@ class _terms(_error, _shareTermsFunction):
if k in term:
term = term.replace(k,trm[k])
trs = term.split(" ")
flagOR = False
for t in trs:
flagRule = False
for sepF in rule:
if sepF in t:
flagRule = True
vals = t.split(sepF)
break
if not flagRule:
flagLog = False
for k in trm.values():
if k.strip() == t:
flagLog = True
break
if not flagLog:
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(textError)
return False
listSplitOr = []
if "or" in trs:
lst = []
for t in trs:
if t != "or":
lst.append(t)
else:
# если and
if k == " and ":
flagOR = False
if listEqual == [] or False in listEqual:
listEqual = []
break
else:
listEqual = [True]
# если or
else:
if flagOR:
continue
if False in listEqual:
listEqual = []
else:
listEqual = [True]
flagOR = True
else:
if flagOR:
continue
#проверка на допустимость названия переменной
flagFunction = False
if self._reDenyName.search(vals[0]):
#проверка на допустимость функции
flagError = True
if function:
searchFunct = self._reFunction.search(vals[0])
if searchFunct:
flagError = False
flagFunction = True
if flagError:
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(textError)
return False
#проверка на допустимость значения
if self._reDenyValue.search(vals[1]):
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(textError)
return False
flagIntTypeVar = None
if flagFunction:
valVars = function("#-%s-#"%vals[0])
if valVars is False:
listSplitOr.append(lst)
lst = []
if lst:
listSplitOr.append(lst)
else:
listSplitOr = [trs]
for trsAnd in listSplitOr:
listEqual = []
for t in trsAnd:
flagRule = False
for sepF in rule:
if sepF in t:
flagRule = True
vals = t.split(sepF)
break
if flagRule:
#проверка на допустимость названия переменной
flagFunction = False
if self._reDenyName.search(vals[0]):
#проверка на допустимость функции
flagError = True
if function:
searchFunct = self._reFunction.search(vals[0])
if searchFunct:
flagError = False
flagFunction = True
if flagError:
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(textError)
return False
#проверка на допустимость значения
if self._reDenyValue.search(vals[1]):
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(textError)
return False
if "load" == searchFunct.group(1) and\
re.search("\(\s*num\s*,",vals[0]):
if valVars:
try:
valVars = int(valVars)
except:
self.setError("'%s'"%term + " " + \
_("incorrect"))
self.setError(textError)
return False
flagIntTypeVar = True
else:
flagIntTypeVar = False
else:
if valVars == "" and\
not self._re_not_Version.search(vals[1]):
valVars = "0"
elif vals[1] == "" and\
not self._re_not_Version.search(valVars):
vals[1] = "0"
else:
try:
valVars = self.objVar.Get(vals[0])
except self.objVar.DataVarsError, e:
cl_overriding.printERROR(textError)
cl_overriding.printERROR(e)
cl_overriding.exit(1)
# Номера версий для ini
flagNotIniFunct = True
# Два значения не пусты
flagNotEmptyVals = not (valVars == "" and vals[1] == "")
if flagFunction and flagNotEmptyVals and\
searchFunct.group(1) == "ini":
# Проверка значения на версию
if not self._re_not_Version.search(valVars) and\
not self._re_not_Version.search(vals[1]):
verFile, verVar = self._convertVers(vals[1],valVars)
exec(\
"res=("+"'"+verVar+"'"+sepF+"'"+verFile+"'"+")")
if res:
listEqual.append(True)
else:
listEqual.append(False)
flagNotIniFunct = False
# Cравниваем номера версий
if flagNotIniFunct:
if flagNotEmptyVals and\
("_ver" in vals[0] or\
(flagFunction and searchFunct.group(1) == "pkg") or\
(flagFunction and searchFunct.group(1) == "load" and\
re.search("\(\s*ver\s*,",vals[0]))):
# Проверка значения на версию
if self._re_not_Version.search(vals[1]):
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(_("Value is not version"))
return False
# Проверка значения функции на версию
if self._re_not_Version.search(valVars):
flagIntTypeVar = None
if flagFunction:
valVars = function("#-%s-#"%vals[0])
if valVars is False:
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(_("Value function is not version"))
self.setError(textError)
return False
verFile, verVar = self._convertVers(vals[1],valVars)
exec("res=("+"'"+verVar+"'"+sepF+"'"+verFile+"'"+")")
if res:
listEqual.append(True)
if "load" == searchFunct.group(1) and\
re.search("\(\s*num\s*,",vals[0]):
if valVars:
try:
valVars = int(valVars)
except:
self.setError("'%s'"%term + " " + \
_("incorrect"))
self.setError(textError)
return False
flagIntTypeVar = True
else:
flagIntTypeVar = False
else:
listEqual.append(False)
flagNotIniFunct = False
if valVars == "" and\
not self._re_not_Version.search(vals[1]):
valVars = "0"
elif vals[1] == "" and\
not self._re_not_Version.search(valVars):
vals[1] = "0"
else:
if flagIntTypeVar is None:
flagIntTypeVar = True
try:
valVars = int(valVars)
except:
flagIntTypeVar = False
if flagIntTypeVar:
if not vals[1].strip():
vals[1] = 0
try:
valFile = int(vals[1])
except:
self.setError("'%s'"%term +" " +_("incorrect"))
self.setError(textError)
try:
valVars = self.objVar.Get(vals[0])
except self.objVar.DataVarsError, e:
cl_overriding.printERROR(textError)
cl_overriding.printERROR(e)
cl_overriding.exit(1)
# Номера версий для ini
flagNotIniFunct = True
# Два значения не пусты
flagNotEmptyVals = not (valVars == "" and vals[1] == "")
if flagFunction and flagNotEmptyVals and\
searchFunct.group(1) == "ini":
# Проверка значения на версию
if not self._re_not_Version.search(valVars) and\
not self._re_not_Version.search(vals[1]):
verFile, verVar = self._convertVers(vals[1],valVars)
exec(\
"res=("+"'"+verVar+"'"+sepF+"'"+verFile+"'"+")")
if res:
listEqual.append(True)
else:
listEqual.append(False)
flagNotIniFunct = False
# Cравниваем номера версий
if flagNotIniFunct:
if flagNotEmptyVals and\
("_ver" in vals[0] or\
(flagFunction and searchFunct.group(1)=="pkg") or\
(flagFunction and searchFunct.group(1)=="load" and\
re.search("\(\s*ver\s*,",vals[0]))):
# Проверка значения на версию
if self._re_not_Version.search(vals[1]):
self.setError("'%s'"%term+" "+_("incorrect"))
self.setError(_("Value is not version"))
return False
# Проверка значения функции на версию
if self._re_not_Version.search(valVars):
self.setError("'%s'"%term+" "+_("incorrect"))
self.setError(\
_("Value function is not version"))
return False
valVar = valVars
exec("res=(%d%s%d)"%(valVar,sepF,valFile))
verFile, verVar = self._convertVers(vals[1],valVars)
exec(\
"res=("+"'"+verVar+"'"+sepF+"'"+verFile+"'"+")")
if res:
listEqual.append(True)
else:
listEqual.append(False)
flagNotIniFunct = False
else:
if sepF == "!=" or sepF == "==":
if flagIntTypeVar is None:
flagIntTypeVar = True
try:
valVars = int(valVars)
except:
flagIntTypeVar = False
if flagIntTypeVar:
if not vals[1].strip():
vals[1] = ""
valFile = vals[1]
vals[1] = 0
try:
valFile = int(vals[1])
except:
self.setError("'%s'"%term +" "+\
_("incorrect"))
self.setError(textError)
return False
valVar = valVars
exec(\
"res=("+'"""'+valVar+'"""'+sepF+"'"+valFile+\
"'"+")")
exec("res=(%d%s%d)"%(valVar,sepF,valFile))
if res:
listEqual.append(True)
else:
listEqual.append(False)
else:
if not flagNotEmptyVals:
listEqual.append(False)
if sepF == "!=" or sepF == "==":
if not vals[1].strip():
vals[1] = ""
valFile = vals[1]
valVar = valVars
exec("res=("+'"""'+valVar+'"""'+sepF+"'"+\
valFile + "'"+")")
if res:
listEqual.append(True)
else:
listEqual.append(False)
else:
self.setError("'%s'"%term + " "\
+ _("incorrect"))
self.setError(textError)
return False
if not flagNotEmptyVals:
listEqual.append(False)
else:
self.setError("'%s'"%term + " "\
+ _("incorrect"))
self.setError(textError)
return False
else:
if t == "and":
if listEqual == [] or False in listEqual:
listEqual = [False]
else:
listEqual = [True]
else:
self.setError("'%s'"%term + " " + _("incorrect"))
self.setError(textError)
return False
if not (listEqual == [] or False in listEqual):
break
if listEqual == [] or False in listEqual:
return False
return True

Loading…
Cancel
Save