コード例 #1
0
ファイル: xmlmap.py プロジェクト: m64/PEG
	def parse_imports(self, mapelt, map):
		parsedImports = {}

		if self.callback:		
			tmplist = mapelt.findall('import')
			i = float(0)
		
		for item in mapelt.findall('import'):
			file = item.get('file')
			if file:
				file = reverse_root_subfile(self.source, file)
			dir = item.get('dir')
			if dir:
				dir = reverse_root_subfile(self.source, dir)

			# Don't parse duplicate imports
			if (dir,file) in parsedImports:
				logger.log(fife.LogManager.LEVEL_WARN, "Duplicate import:" + str((dir, file)))
				continue
			parsedImports[(dir,file)] = 1

			if file and dir:
				loaders.loadImportFile('/'.join(dir, file), self.engine)
			elif file:
				loaders.loadImportFile(file, self.engine)
			elif dir:
				loaders.loadImportDirRec(dir, self.engine)
				map.importDirs.append(dir)
			else:
				logger.log(fife.LogManager.LEVEL_WARN, 'Empty import statement?')
				
			if self.callback:
				i += 1				
				self.callback('loaded imports', float( i / float(len(tmplist)) * 0.25 + 0.25 ) )
コード例 #2
0
ファイル: filemanager.py プロジェクト: m64/PEG
	def importDir(self, path, filename=""):
		if os.path.isdir(os.path.join(path, filename)):
			path = os.path.join(path, filename)
			path = os.path.normpath(path)
		
		# FIXME: This is necassary for the files to be loaded properly.
		#		 The loader should be fixed to support native (windows)
		#		 path separators.
		path = path.replace('\\', '/') 
		
		try:
			if os.path.isdir(path):
				loaders.loadImportDirRec(path, self.engine)
			else:
				raise file+ " is not a directory!"
		except:
			traceback.print_exc(sys.exc_info()[1])
			errormsg = u"Importing directory failed:\n"
			errormsg += u"File: "+unicode(file)+u"\n"
			errormsg += u"Error: "+unicode(sys.exc_info()[1])
			ErrorDialog(errormsg)
			return None
			
		events.onObjectsImported.send(sender=self)