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