def _toUnicodeResourceWalk(args, CurDir_, CurNames_): # Отфильтровать только файлы ресурсов res_files = [ x for x in [ic_file.Join(CurDir_, x) for x in CurNames_] if ic_file.IsFile(x) and ic_file.SplitExt(x)[1].lower() in RESOURCE_EXT ] for res_file in res_files: try: f = open(res_file, 'rb') text = f.read() f.close() except: print('ERROR open file', res_file) f.close() replace_dict_txt = text.strip() try: replace_dict = eval(replace_dict_txt) x_dict = ic_util.icStructStrRecode(replace_dict, 'cp1251', 'UNICODE') new_text = str(x_dict) print('>>', res_file, ' : ', x_dict) try: f = open(res_file, 'w') f.write(new_text) f.close() except: print('ERROR open file', res_file) f.close() except: print('Error read', res_file, ' : ', replace_dict_txt)
def Open(self): """ Открыть узел. """ self.makeNodeDir() self._StorageDB = {} list_dir = ic_file.ListDir(self._NodeDir) for name in list_dir: # Отфильтровать папки системного назначения if name[0] != SYSTEM_DIR_PREFIX: full_name = self._NodeDir + '/' + name if ic_file.IsDir(full_name): self._StorageDB[name] = icDirStorage() self._StorageDB[name].setParentNode(self, name) self._StorageDB[name].Open() elif ic_file.IsFile(full_name): if name != DIR_STORAGE_PROPERTY_FILE_NAME: node_name = ic_file.SplitExt(name)[0] self._StorageDB[node_name] = icFileStorage() self._StorageDB[node_name].setParentNode( self, node_name) else: self.property = icFileStorage() self.property.setParentNode(self, DIR_STORAGE_PROPERTY_NAME) storage_interface.icElementStorageInterface.Open(self)
def isXRC(self, sFileName): """ Проверка является ли файл XRC ресурсом форм. @param sFileName: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(sFileName) and \ (ic_file.SplitExt(sFileName)[1] == '.xrc')
def isFBP(self, sFileName): """ Проверка является ли файл модулм проекта wxformbuilder. @param sFileName: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(sFileName) and \ (ic_file.SplitExt(sFileName)[1] == '.fbp')
def isTemplateModule(self, FileName_): """ Проверка является ли файл модулем шаблона проекта. @param FileName_: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(FileName_) and \ (ic_file.SplitExt(FileName_)[1] == '.py' and \ ic_file.BaseName(FileName_) != '__init__.py') and \ self._findModuleSignature(FileName_, TEMPLATE_MODULE_SIGNATURE)
def isFBModule(self, FileName_): """ Проверка является ли файл модулем форм wxFormBuilder. @param FileName_: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(FileName_) and \ (ic_file.SplitExt(FileName_)[1] == '.py' and ic_file.BaseName(FileName_) != '__init__.py') and \ self._findModuleSignature(FileName_, WXFB_MODULE_SIGNATURE)
def isImageModule(self, FileName_): """ Проверка является ли файл модулем библиотеки образов проекта. @param FileName_: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(FileName_) and \ (ic_file.SplitExt(FileName_)[1] == '.py' and \ ic_file.BaseName(FileName_) != '__init__.py') and \ self._findModuleSignature(FileName_, IMAGE_MODULE_SIGNATURE)
def isResourceModule(self, FileName_): """ Проверка является ли файл ресурсным модулем проекта. @param FileName_: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(FileName_) and \ (ic_file.SplitExt(FileName_)[1] == '.py' and \ ic_file.BaseName(FileName_) != '__init__.py') and \ self._findModuleSignature(FileName_, RESOURCE_MODULE_SIGNATURE)
def isModule(self, FileName_): """ Проверка является ли файл модулм проекта. @param FileName_: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(FileName_) and \ (ic_file.SplitExt(FileName_)[1] == '.py' and ic_file.BaseName(FileName_) != '__init__.py') and \ (not self._findModuleSignature(FileName_, INTERFACE_MODULE_SIGNATURE))
def isXRCModule(self, FileName_): """ Проверка является ли файл модулем форм, сгенерированных утилитой pywxrc (из XRC ресурса). @param FileName_: Имя файла. @return: Возвращает True/False. """ return ic_file.IsFile(FileName_) and \ (ic_file.SplitExt(FileName_)[1] == '.py' and ic_file.BaseName(FileName_) != '__init__.py') and \ self._findModuleSignature(FileName_, XRC_MODULE_SIGNATURE)
def openPrj(self, PrjFileName_): """ Открыть файл проекта. """ path, name = os.path.split(PrjFileName_) ic.set_ini_file(path) self.prj_file_name = PrjFileName_ if ic_file.IsFile(self.prj_file_name) and \ ic_file.Exists(self.prj_file_name): prj = util.readAndEvalFile(self.prj_file_name, bRefresh=True) self._prj = self._prepareDataPrj(prj)
def _loadResFile(self, ResName_, ResType_): """ Открыть и загрузить файл ресурса. @return: Содержимое ресурса или None в случае ошибки. """ res_file_name = os.path.join(self._PrjResDir, '%s.%s' % (ResName_, ResType_)) if ic_file.IsFile(res_file_name): res_file = util.readAndEvalFile(res_file_name) res = res_file[ResName_] return copy.deepcopy(res) return None
def delRes(self, ResName_, ResType_): """ Удалить ресурс из проекта. @param ResName_: Имя ресурса. @param ResType_: Тип ресурса. """ self.makeFolderOther() if self._PrjRes: self._PrjRes.delRes(ResName_, ResType_) self._PrjRes.savePrj() res_file_name = self._PrjResDir + '/%s.%s' % (ResName_, ResType_) if ic_file.IsFile(res_file_name): ic_file.Remove(res_file_name) return True return False
def __delitem__(self, key): if not self.isOpen(): self.Open() if issubclass(self._StorageDB[str(key)].__class__, icFileStorage): # Проверка на удаление файла self._StorageDB[str(key)].closeFile() file_name = self._StorageDB[str(key)].getFileName() if ic_file.Exists(file_name) and ic_file.IsFile(file_name): ic_file.Remove(file_name) elif issubclass(self._StorageDB[str(key)].__class__, icDirStorage): # Проверка на удаление директории self._StorageDB[str(key)].closeAllFiles() dir_name = self._StorageDB[str(key)].getNodeDir() if ic_file.Exists(dir_name) and ic_file.IsDir(dir_name): ic_file.RemoveTreeDir(dir_name, 1) if str(key) in self._StorageDB: del self._StorageDB[str(key)]
def _toUnicodeResourcePyWalk(args, CurDir_, CurNames_): # Отфильтровать только файлы py py_files = [ x for x in [ic_file.Join(CurDir_, x) for x in CurNames_] if ic_file.IsFile(x) and ic_file.SplitExt(x)[1] == '.py' ] for py_file in py_files: try: f = open(py_file, 'rb') text = f.read() f.close() except: print('ERROR open file', py_file) f.close() n1 = text.find('###BEGIN') n = text.find('resource=') n_x = text.find('resource =') n2 = text.find('###END') if n1 > 0 and n2 > 0 and n > 0: n_ = text[n:].find('\n') replace_dict_txt = text[n + len('resource='):n + n_].strip() try: replace_dict = eval(replace_dict_txt) x_dict = ic_util.icStructStrRecode(replace_dict, 'cp1251', 'UNICODE') new_text = text.replace(replace_dict_txt, str(x_dict)) print('>>', py_file, ' : ', x_dict) try: f = open(py_file, 'w') f.write(new_text) f.close() except: print('ERROR open file', py_file) f.close() except: print('Error read', py_file, ' : ', replace_dict_txt) elif n1 > 0 and n2 > 0 and n_x > 0: print('!>', py_file)