Beispiel #1
0
    def _generate_copy_config(self):
        run_key = datetime.now().strftime("%Y%m%d-%H%M%S")
        [config_name, extension] = os.path.basename(self._contexto.get_atributo(EnumAtributo.PATH_CONFIGURACAO)).split(
            '.')

        if not Copy.copy_file(self._contexto.get_atributo(EnumAtributo.PATH_CONFIGURACAO),
                              os.path.join(self._contexto.get_atributo(EnumAtributo.PATH_PROJETO),
                                           self._base_folder_name,
                                           f'{config_name}_{run_key}.{extension}.bk')):
            self.log(tipo=EnumLogStatus.ERRO_FATAL, texto='Erro geracao arquivo de backup da configuracao')

        cont = ''

        for [key, value] in self._contexto._configuracao.items():
            for val in value:
                if key not in [EnumAtributo.MODULE.name, EnumAtributo.PATH_PROJETO.name,
                               EnumAtributo.PATH_CONFIGURACAO.name, EnumAtributo.PATH_LOG.name]:
                    cont += f'{key}\t{val}\n'

        if not TXT().salvar(
                os.path.join(self._contexto.get_atributo(EnumAtributo.PATH_PROJETO), self._base_folder_name,
                             f'{config_name}.{extension}'), cont,
                'w'):
            self.log(tipo=EnumLogStatus.ERRO_FATAL, texto='Erro geracao arquivo de configuracao')

        self.log(texto=f'Arquivo de configuracao gerado.{config_name}')
Beispiel #2
0
    def run(self, contexto: Contexto):
        """

        Metodo responsavel por setar configuracao ao utilizar funcoes de teste para avaliacao
        :param Contexto contexto: contexto com todas as informações necessárias
        """
        super(Rastrigin, self).run(contexto)

        new_base_path = os.path.join(self._contexto.get_atributo(EnumAtributo.PATH_PROJETO), self._base_folder_name)

        folder_data_base = os.path.dirname(src.modulo.problemas_fechados.funcoes_teste.base.rastrigin.__file__)

        Copy.copy_file(os.path.join(folder_data_base, self._dominio_file_name),
                       os.path.join(new_base_path, self._dominio_file_name))

        self._verifica_config()
Beispiel #3
0
    def _copy_config(self):
        [config_name, extension] = os.path.basename(self._contexto.get_atributo(EnumAtributo.PATH_CONFIGURACAO)).split('.')

        if not Copy.copy_file(self._contexto.get_atributo(EnumAtributo.PATH_CONFIGURACAO),
                              os.path.join(self._contexto.get_atributo(EnumAtributo.PATH_PROJETO),
                                           self._base_folder_name,
                                           f'{config_name}.{extension}')):
            self.log(tipo=EnumLogStatus.ERRO_FATAL, texto='Erro geracao arquivo de backup da configuracao')
Beispiel #4
0
 def _salvar(self, dados_copiar_origem, dados_copiar_destino):
     for dado_copiar_origem, dado_copiar_destino in zip(
             dados_copiar_origem, dados_copiar_destino):
         self.log(
             texto=f'copiando dados {os.path.basename(dado_copiar_origem)}')
         if not Copy.copy_file(
                 dado_copiar_origem, dado_copiar_destino, replace=False):
             self.log(
                 texto=
                 f'Arquivo {dado_copiar_origem} nao foi salvo na pasta de melhores estratégias. Arquivo ja existente.'
             )
Beispiel #5
0
    def salvar(self,
               path_arquivo: str,
               conteudo: str,
               metodo_gravacao: str = "w") -> bool:
        """
        Método para salvar conteudo de arquivos

        :param str path_arquivo: Caminho do arquivo
        :param str conteudo: Conteudo a ser salvo
        :param str metodo_gravacao: Método de gravação, padrão w
        :return: Se deu erro ou não
        :rtype: bool
        """
        path_arquivo = InOut.ajuste_path(path_arquivo)

        try:
            if not Copy.criar_arquivos(path_arquivo):
                return False
            arq = open(path_arquivo, metodo_gravacao)
            arq.write(conteudo)
            arq.close()
        except FileNotFoundError as ex:
            self.log(tipo=EnumLogStatus.WARN,
                     texto=f'Erro ao salvar arquivo.',
                     info_ex=str(ex))
            return False
        except PermissionError as ex:
            self.log(tipo=EnumLogStatus.WARN,
                     texto=f'Erro ao salvar arquivo.',
                     info_ex=str(ex))
            return False
        except TypeError as ex:
            self.log(tipo=EnumLogStatus.WARN,
                     texto=f'Erro ao salvar arquivo.',
                     info_ex=str(ex))
            return False
        except NameError as ex:
            self.log(tipo=EnumLogStatus.WARN,
                     texto=f'Erro ao salvar arquivo.',
                     info_ex=str(ex))
            return False
        except IOError as ex:
            self.log(tipo=EnumLogStatus.WARN,
                     texto=f'Erro ao salvar arquivo.',
                     info_ex=str(ex))
            return False
        return True
Beispiel #6
0
    def _preparar_arquivos(self):
        path_projeto = self._contexto.get_atributo(EnumAtributo.PATH_PROJETO)
        path_simulacao = self._contexto.get_atributo(
            EnumAtributo.PATH_SIMULACAO)
        gevts_template_executar = self._contexto.get_atributo(
            EnumAtributo.AVALIACAO_MERO_GEVTS_TEMPLATES_EXECUTAR)

        for prefixo in gevts_template_executar.keys():
            path_completo_origem = InOut.ajuste_path(
                f'{path_projeto}/{gevts_template_executar[prefixo]["gevt_path"]}'
            )
            path_completo_destino = InOut.ajuste_path(
                f'{path_projeto}/{path_simulacao}/{gevts_template_executar[prefixo]["gevt_file_name"]}.mero'
            )

            if not Copy.copy_file(path_completo_origem, path_completo_destino):
                self.log(tipo=EnumLogStatus.ERRO_FATAL, texto=f'Erro no GEVT.')
Beispiel #7
0
    def run(self, contexto: Contexto):
        super(CampoNamoradoPosicionamento, self).run(contexto)

        new_base_path = os.path.join(
            self._contexto.get_atributo(EnumAtributo.PATH_PROJETO),
            self._base_folder_name)
        folder_data_base = os.path.dirname(
            src.modulo.problemas_fechados.campo_namorado_posicionamento.base.
            __file__)

        if not os.path.exists(new_base_path):
            self.log(
                texto=
                f'Criando folder base do modelo caixa preta CampoNamoradoPosicionamento'
            )
            if not Copy.copy_folder(folder_data_base, new_base_path):
                self.log(
                    tipo=EnumLogStatus.ERRO_FATAL,
                    texto=
                    f'Erro ao gerar pasta base para o problema CampoNamoradoPosicionamento'
                )
            try:
                os.remove(os.path.join(new_base_path, "__init__.py"))
            except:
                pass
            try:
                shutil.rmtree(os.path.join(new_base_path, "__pycache__"))
            except:
                pass

        else:
            try:
                os.remove(os.path.join(new_base_path, "campoNamorado_OPT.tpl"))
            except:
                pass
            try:
                os.remove(
                    os.path.join(new_base_path, "campoNamorado_OPT.unieco"))
            except:
                pass
            try:
                os.remove(
                    os.path.join(new_base_path, "campoNamorado_OPT.unimap"))
            except:
                pass
            try:
                os.remove(os.path.join(new_base_path, "dominio.csv"))
            except:
                pass
            try:
                os.remove(os.path.join(new_base_path, "gevt.mero"))
            except:
                pass
            try:
                shutil.rmtree(os.path.join(new_base_path, "includes"))
            except:
                pass
            try:
                os.remove(os.path.join(new_base_path, "__init__.py"))
            except:
                pass
            try:
                shutil.rmtree(os.path.join(new_base_path, "__pycache__"))
            except:
                pass

            Copy.copy_file(
                os.path.join(folder_data_base, "campoNamorado_OPT.tpl"),
                os.path.join(new_base_path, "campoNamorado_OPT.tpl"))
            Copy.copy_file(
                os.path.join(folder_data_base, "campoNamorado_OPT.unieco"),
                os.path.join(new_base_path, "campoNamorado_OPT.unieco"))
            Copy.copy_file(
                os.path.join(folder_data_base, "campoNamorado_OPT.unimap"),
                os.path.join(new_base_path, "campoNamorado_OPT.unimap"))
            Copy.copy_file(os.path.join(folder_data_base, "dominio.csv"),
                           os.path.join(new_base_path, "dominio.csv"))
            Copy.copy_file(os.path.join(folder_data_base, "gevt.mero"),
                           os.path.join(new_base_path, "gevt.mero"))
            Copy.copy_folder(os.path.join(folder_data_base, "includes"),
                             os.path.join(new_base_path, "includes"))

        self._verifica_config()

        gevts_templates = self._contexto.get_gevts_templates(
            self._contexto.get_atributo(
                EnumAtributo.AVALIACAO_MERO_GEVT_TEMPLATE))
        self._contexto.set_atributo(
            EnumAtributo.AVALIACAO_MERO_GEVTS_TEMPLATES_EXECUTAR,
            gevts_templates,
            sobrescreve=True)

        uniecos = self._contexto.get_atributo(
            EnumAtributo.AVALIACAO_MERO_UNIECO_PATH)
        self._contexto.set_atributo(
            EnumAtributo.AVALIACAO_MERO_UNIECOS_EXECUTAR,
            self._contexto.get_uniecos(uniecos),
            sobrescreve=True)
Beispiel #8
0
import os
import pytest
import shutil

from src.inout.InOut import InOut
from src.inout.TXT import TXT
from src.inout.Copy import Copy
import tests.utilitarios.PathsFiles as paths_files

copy = Copy()
copy.set_arquivo_log(paths_files.path_arquivo_log())


def test_de_criação_de_folder():
    nome_diretorio_auxiliar1 = 'mocks2'
    nome_diretorio_auxiliar2 = 'mocks3\\'

    path_criacao_folder = '\\'.join([paths_files.path_mocks(), nome_diretorio_auxiliar1, nome_diretorio_auxiliar2])
    path_remocao_folder = '\\'.join([paths_files.path_mocks(), nome_diretorio_auxiliar1])

    path_criacao_folder = InOut().ajuste_path(path_criacao_folder)
    path_remocao_folder = InOut().ajuste_path(path_remocao_folder)

    if not copy.criar_arquivos(path_criacao_folder):
        pytest.fail('Criacao de folder falhou')
    if not os.path.isdir(path_criacao_folder):
        pytest.fail('Folder nao foi criado')

    try:
        shutil.rmtree(path_remocao_folder)
    except Exception as ex: