Ejemplo n.º 1
0
    def Load(filename, label):
        """ Load AMD from constructor.
		"""

        assert (filename.endswith('.amd'))

        python_path = os.path.join(filename,
                                   ZipManager.getPythonModelFileName(filename))

        cls = GetClass(python_path)

        m = AMDComponent.BlockModelAdapter(cls, label)

        load_file_result = m.LoadFile(filename)

        if isinstance(load_file_result, Exception):
            wx.MessageBox(
                _('Error loading %s model : %s ' % (label, load_file_result)),
                _('Error'), wx.OK | wx.ICON_ERROR)
            return None
        else:
            ### mandatory due to the LoadFile call before
            m.label = label

            return m
Ejemplo n.º 2
0
	def Load(filename, label):
		""" Load AMD from constructor.
		"""

		assert (filename.endswith('.amd'))

		python_path = os.path.join(filename, ZipManager.getPythonModelFileName(filename))

		cls = GetClass(python_path)

		m = AMDComponent.BlockModelAdapter(cls, label)

		load_file_result = m.LoadFile(filename)

		if isinstance(load_file_result, Exception):
			wx.MessageBox(_('Error loading %s model : %s '%(label, load_file_result)), _('Error'), wx.OK | wx.ICON_ERROR)
			return None
		else:
			### mandatory due to the LoadFile call before
			m.label = label

			return m
Ejemplo n.º 3
0
    def OnItemEdit(self, evt):
        item = self.GetSelection()
        path = self.GetItemPyData(item)

        ### virtual DEVS component just for edition
        devscomp = Components.DEVSComponent()

        ### path depends on the nature of droped component
        ### if pure python path
        if path.endswith('.py'):
            devscomp.setDEVSPythonPath(path)
        ### if devsimpy model
        elif zipfile.is_zipfile(path):
            #zf = ZipManager.Zip(path)
            devscomp.setDEVSPythonPath(
                os.path.join(path, ZipManager.getPythonModelFileName(path)))
            devscomp.model_path = path
        else:
            sys.stdout.write(
                _('The code of this type of model is not editable'))
            return

        ### call frame editor
        Components.DEVSComponent.OnEditor(devscomp, evt)
Ejemplo n.º 4
0
	def GetTempTests(self, global_env=None):
		if not global_env: global_env = False

		### Useful vars definition-----------------------------------------------------------------
		model_path = os.path.dirname(self.python_path)
		basename = os.path.basename(self.python_path)
		name = os.path.splitext(basename)[0]
		tests_files = ZipManager.Zip.GetTests(model_path)
		### ---------------------------------------------------------------------------------------

		### Folder hierarchy construction----------------------------------------------------------
		feat_dir = os.path.join(gettempdir(), "features")
		steps_dir = os.path.join(feat_dir, "steps")
		if not os.path.exists(feat_dir):
			os.mkdir(feat_dir)
		if not os.path.exists(steps_dir):
			os.mkdir(steps_dir)
		### ---------------------------------------------------------------------------------------

		### AMD unzip------------------------------------------------------------------------------
		amd_dir = os.path.join(gettempdir(), "AtomicDEVS")
		if not os.path.exists(amd_dir):
			os.mkdir(amd_dir)
		### ---------------------------------------------------------------------------------------

		### Tests code retriever-------------------------------------------------------------------
		importer = zipfile.ZipFile(model_path)

		feat_name = filter(lambda t: t.endswith('.feature'), tests_files)[0]
		featInfo = importer.getinfo(feat_name)
		feat_code = importer.read(featInfo)

		steps_name = filter(lambda t: t.endswith('steps.py'), tests_files)[0]
		stepsInfo = importer.getinfo(steps_name)
		steps_code = importer.read(stepsInfo)

		if not global_env:
			environment_name = filter(lambda t: t.endswith('environment.py'), tests_files)[0]
			envInfo = importer.getinfo(environment_name)
			env_code = importer.read(envInfo)
		else:
			environment_name = os.path.join(gettempdir(), 'environment.py')
			with open(environment_name, 'r+') as global_env_code:
				env_code = global_env_code.read()

		importer.close()
		### ---------------------------------------------------------------------------------------

		### AMD code retriever---------------------------------------------------------------------
		importer = zipfile.ZipFile(model_path)

		# amd_name = filter(lambda t: t.endswith('%s.py'%name), importer.namelist())[0]
		amd_name = ZipManager.getPythonModelFileName(model_path)
		amd_info = importer.getinfo(amd_name)
		amd_code = importer.read(amd_info)

		### ---------------------------------------------------------------------------------------

		### Tests files creation in temporary directory--------------------------------------------
		tempFeature = os.path.join(feat_dir, "%s.feature" % name)
		tempEnv = os.path.join(feat_dir, "environment.py")
		tempSteps = os.path.join(steps_dir, "%s_steps.py"%name)

		tempAMD = os.path.join(amd_dir, amd_name)

		with open(tempFeature, 'w+') as feat:
			feat.write(feat_code)
		with open(tempSteps, 'w+') as steps:
			steps.write(steps_code)
		with open(tempEnv, 'w+') as env:
			env.write(env_code)

		with open(tempAMD, 'w+') as AMD:
			AMD.write(amd_code)
		### ---------------------------------------------------------------------------------------

		return tempFeature, tempSteps, tempEnv
Ejemplo n.º 5
0
    def GetTempTests(self, global_env=None):
        if not global_env: global_env = False

        ### Useful vars definition-----------------------------------------------------------------
        model_path = os.path.dirname(self.python_path)
        basename = os.path.basename(self.python_path)
        name = os.path.splitext(basename)[0]
        tests_files = ZipManager.Zip.GetTests(model_path)
        ### ---------------------------------------------------------------------------------------

        ### Folder hierarchy construction----------------------------------------------------------
        feat_dir = os.path.join(gettempdir(), "features")
        steps_dir = os.path.join(feat_dir, "steps")
        if not os.path.exists(feat_dir):
            os.mkdir(feat_dir)
        if not os.path.exists(steps_dir):
            os.mkdir(steps_dir)
        ### ---------------------------------------------------------------------------------------

        ### AMD unzip------------------------------------------------------------------------------
        amd_dir = os.path.join(gettempdir(), "AtomicDEVS")
        if not os.path.exists(amd_dir):
            os.mkdir(amd_dir)
        ### ---------------------------------------------------------------------------------------

        ### Tests code retriever-------------------------------------------------------------------
        importer = zipfile.ZipFile(model_path)

        feat_name = filter(lambda t: t.endswith('.feature'), tests_files)[0]
        featInfo = importer.getinfo(feat_name)
        feat_code = importer.read(featInfo)

        steps_name = filter(lambda t: t.endswith('steps.py'), tests_files)[0]
        stepsInfo = importer.getinfo(steps_name)
        steps_code = importer.read(stepsInfo)

        if not global_env:
            environment_name = filter(lambda t: t.endswith('environment.py'),
                                      tests_files)[0]
            envInfo = importer.getinfo(environment_name)
            env_code = importer.read(envInfo)
        else:
            environment_name = os.path.join(gettempdir(), 'environment.py')
            with open(environment_name, 'r+') as global_env_code:
                env_code = global_env_code.read()

        importer.close()
        ### ---------------------------------------------------------------------------------------

        ### AMD code retriever---------------------------------------------------------------------
        importer = zipfile.ZipFile(model_path)

        # amd_name = filter(lambda t: t.endswith('%s.py'%name), importer.namelist())[0]
        amd_name = ZipManager.getPythonModelFileName(model_path)
        amd_info = importer.getinfo(amd_name)
        amd_code = importer.read(amd_info)

        ### ---------------------------------------------------------------------------------------

        ### Tests files creation in temporary directory--------------------------------------------
        tempFeature = os.path.join(feat_dir, "%s.feature" % name)
        tempEnv = os.path.join(feat_dir, "environment.py")
        tempSteps = os.path.join(steps_dir, "%s_steps.py" % name)

        tempAMD = os.path.join(amd_dir, amd_name)

        with open(tempFeature, 'w+') as feat:
            feat.write(feat_code)
        with open(tempSteps, 'w+') as steps:
            steps.write(steps_code)
        with open(tempEnv, 'w+') as env:
            env.write(env_code)

        with open(tempAMD, 'w+') as AMD:
            AMD.write(amd_code)
        ### ---------------------------------------------------------------------------------------

        return tempFeature, tempSteps, tempEnv