|
|
|
@ -20,6 +20,7 @@ import cl_utils
|
|
|
|
|
from cl_lang import lang
|
|
|
|
|
from cl_template import iniParser
|
|
|
|
|
from cl_string import columnWrite
|
|
|
|
|
import cl_overriding
|
|
|
|
|
|
|
|
|
|
# Перевод модуля на другой язык
|
|
|
|
|
tr = lang()
|
|
|
|
@ -116,6 +117,8 @@ class DataVars(object):
|
|
|
|
|
#[(cекция,импортированный модуль переменных, объект заполнения),]
|
|
|
|
|
self._importList = []
|
|
|
|
|
self.importData("Global")
|
|
|
|
|
# Переменные которые нужно записать
|
|
|
|
|
self.varsNeedWritten = []
|
|
|
|
|
|
|
|
|
|
def importData(self, section, modlist=[]):
|
|
|
|
|
"""Импортирует модули с переменными и модули с функциями заполнения
|
|
|
|
@ -252,7 +255,7 @@ class DataVars(object):
|
|
|
|
|
self.__setattr__(nameVar, varobj)
|
|
|
|
|
if self.__dict__.has_key(nameVar):
|
|
|
|
|
if not force and "r" in getattr(self, nameVar).mode:
|
|
|
|
|
print _("Attempt to rewrite a variable for reading:%s")\
|
|
|
|
|
print _("Attempt to rewrite a variable for reading") +": %s"\
|
|
|
|
|
%nameVar
|
|
|
|
|
return False
|
|
|
|
|
self.__getattribute__(nameVar).fillStart = False
|
|
|
|
@ -261,6 +264,25 @@ class DataVars(object):
|
|
|
|
|
def Set(self, nameVar, value, force=False):
|
|
|
|
|
return self.__Set(nameVar, value, force)
|
|
|
|
|
|
|
|
|
|
def SetWriteVar(self, nameVar, value, force=False):
|
|
|
|
|
"""Установка значения переменной,
|
|
|
|
|
|
|
|
|
|
и запись в список сохраняемых переменных"""
|
|
|
|
|
ret = self.__Set(nameVar, value, force)
|
|
|
|
|
if ret and not nameVar in self.varsNeedWritten:
|
|
|
|
|
self.varsNeedWritten.append(nameVar)
|
|
|
|
|
return ret
|
|
|
|
|
|
|
|
|
|
def WriteVars(self, location='local', header=False):
|
|
|
|
|
"""Запись переменных установленных командой SetWriteVar"""
|
|
|
|
|
flagSuccess = True
|
|
|
|
|
for nameVar in self.varsNeedWritten:
|
|
|
|
|
if not self.Write(nameVar, self.Get(nameVar), force=False,
|
|
|
|
|
location=location, header=header):
|
|
|
|
|
flagSuccess = False
|
|
|
|
|
break
|
|
|
|
|
return flagSuccess
|
|
|
|
|
|
|
|
|
|
def __frame(self, lVar):
|
|
|
|
|
"""получить список областей зависимости переменных"""
|
|
|
|
|
data = []
|
|
|
|
@ -298,9 +320,18 @@ class DataVars(object):
|
|
|
|
|
links[name][nm] = ""
|
|
|
|
|
return links
|
|
|
|
|
|
|
|
|
|
def __getPathCalculateIni(self):
|
|
|
|
|
"""Получить пути до ini файлов"""
|
|
|
|
|
return self.Get('cl_env_path')
|
|
|
|
|
def __getPathCalculateIni(self, location):
|
|
|
|
|
"""Получить путь к ini файлу по алиасу пути"""
|
|
|
|
|
retData = self.Get('cl_env_data')
|
|
|
|
|
ini_dict = {}
|
|
|
|
|
ini_dict.update(retData)
|
|
|
|
|
if location in ini_dict.keys():
|
|
|
|
|
name_calculate_ini = ini_dict[location]
|
|
|
|
|
else:
|
|
|
|
|
print _("Unable to find the alias '%s' of the file path for \
|
|
|
|
|
storage of variables templates")%location
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
return name_calculate_ini
|
|
|
|
|
|
|
|
|
|
def __getSection(self, vname):
|
|
|
|
|
"""секция для записи в ini файл переменной
|
|
|
|
@ -326,17 +357,8 @@ class DataVars(object):
|
|
|
|
|
True запись успешна
|
|
|
|
|
False запись не удалсь
|
|
|
|
|
'''
|
|
|
|
|
# получаем все пути до ini файлов
|
|
|
|
|
calculate_ini = self.__getPathCalculateIni()
|
|
|
|
|
# получаем полный путь до файла ini
|
|
|
|
|
if location == 'default':
|
|
|
|
|
name_calculate_ini = calculate_ini[2]
|
|
|
|
|
elif location == 'local':
|
|
|
|
|
name_calculate_ini = calculate_ini[1]
|
|
|
|
|
elif location == 'remote':
|
|
|
|
|
name_calculate_ini = calculate_ini[0]
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
# получаем путь до ini файла
|
|
|
|
|
name_calculate_ini = self.__getPathCalculateIni(location)
|
|
|
|
|
# извлекаем из полного имени файла путь
|
|
|
|
|
onlydir = os.path.split(name_calculate_ini)[0]
|
|
|
|
|
try:
|
|
|
|
@ -364,17 +386,8 @@ class DataVars(object):
|
|
|
|
|
True удалено успешна
|
|
|
|
|
False удаление не удалсь
|
|
|
|
|
'''
|
|
|
|
|
# получаем все пути до ini файлов
|
|
|
|
|
calculate_ini = self.__getPathCalculateIni()
|
|
|
|
|
# получаем полный путь до файла ini
|
|
|
|
|
if location == 'default':
|
|
|
|
|
name_calculate_ini = calculate_ini[2]
|
|
|
|
|
elif location == 'local':
|
|
|
|
|
name_calculate_ini = calculate_ini[1]
|
|
|
|
|
elif location == 'remote':
|
|
|
|
|
name_calculate_ini = calculate_ini[0]
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
# получаем путь до ini файла
|
|
|
|
|
name_calculate_ini = self.__getPathCalculateIni(location)
|
|
|
|
|
# извлекаем из полного имени файла путь
|
|
|
|
|
onlydir = os.path.split(name_calculate_ini)[0]
|
|
|
|
|
# проверяем чтобы путь до ини файла существовал
|
|
|
|
@ -443,13 +456,14 @@ class DataVars(object):
|
|
|
|
|
'''
|
|
|
|
|
#Cловарь переменных из ini файлов
|
|
|
|
|
importVars = {}
|
|
|
|
|
calculate_ini = self.__getPathCalculateIni()
|
|
|
|
|
calculate_ini_files = self.Get('cl_env_path')
|
|
|
|
|
# активные секции (секции из которых будут использованы переменные)
|
|
|
|
|
act_section = self.__getActiveSections()
|
|
|
|
|
set_act_section = set(act_section)
|
|
|
|
|
i = 0
|
|
|
|
|
locations = ['remote','local','default']
|
|
|
|
|
for name_calculate_ini in calculate_ini:
|
|
|
|
|
# Алиасы к путям env
|
|
|
|
|
locations = self.Get('cl_env_location')
|
|
|
|
|
for name_calculate_ini in calculate_ini_files:
|
|
|
|
|
# проверить сущестование ini файла
|
|
|
|
|
if os.path.exists(name_calculate_ini):
|
|
|
|
|
# получить объект настроенный на ini
|
|
|
|
@ -482,13 +496,14 @@ class DataVars(object):
|
|
|
|
|
return importVars
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#def defined(self, vname):
|
|
|
|
|
#if vname:
|
|
|
|
|
#if self.__dict__.has_key(vname):
|
|
|
|
|
#return True
|
|
|
|
|
#return False
|
|
|
|
|
def defined(self, vname):
|
|
|
|
|
return True
|
|
|
|
|
"""Установлена ли переменная"""
|
|
|
|
|
if hasattr(self, vname):
|
|
|
|
|
return True
|
|
|
|
|
return False
|
|
|
|
|
|
|
|
|
|
#def defined(self, vname):
|
|
|
|
|
#return True
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -537,14 +552,8 @@ class DataVars(object):
|
|
|
|
|
for i,j in var.items():
|
|
|
|
|
if len(i)>mlen_name:
|
|
|
|
|
mlen_name=len(i)
|
|
|
|
|
#if len(str(j.type))>mlen_type:
|
|
|
|
|
#mlen_type=len(str(j.type))
|
|
|
|
|
vtype=str(type(var[i].value)).split(" ")[1][1]
|
|
|
|
|
if not '[' in var[i].mode:
|
|
|
|
|
if vtype in ['d','l']:
|
|
|
|
|
mode="[%s%s]"%(var[i].mode.lower(),vtype)
|
|
|
|
|
else:
|
|
|
|
|
mode="[%s]"%(var[i].mode.lower())
|
|
|
|
|
mode="[%s]"%(var[i].mode.lower())
|
|
|
|
|
var[i].mode=mode
|
|
|
|
|
if len(mode)>mlen_mode:
|
|
|
|
|
mlen_mode=len(mode)
|
|
|
|
@ -552,26 +561,15 @@ class DataVars(object):
|
|
|
|
|
plist.sort()
|
|
|
|
|
br = cl_utils.fillstr("-",mlen_name) + " " +\
|
|
|
|
|
cl_utils.fillstr("-",mlen_mode) + " " + cl_utils.fillstr("-",10)
|
|
|
|
|
#cl_utils.fillstr("-",mlen_type) + " " +\
|
|
|
|
|
|
|
|
|
|
print "The list of variables:"
|
|
|
|
|
print "var name".center(mlen_name),\
|
|
|
|
|
"Mode","Value"
|
|
|
|
|
#"Type".center(mlen_type),\
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
print br
|
|
|
|
|
for i in plist:
|
|
|
|
|
#if var[i].value is None:
|
|
|
|
|
#continue
|
|
|
|
|
p_val=var[i].value
|
|
|
|
|
if var[i].official:
|
|
|
|
|
continue
|
|
|
|
|
columnWrite( i, mlen_name, var[i].mode.lower(),
|
|
|
|
|
mlen_mode,
|
|
|
|
|
#str(var[i].type),
|
|
|
|
|
#mlen_type,
|
|
|
|
|
p_val)
|
|
|
|
|
columnWrite( i, mlen_name, var[i].mode.lower(), mlen_mode, p_val)
|
|
|
|
|
print br
|
|
|
|
|
|
|
|
|
|
class glob_attr:
|
|
|
|
|