示例#1
0
    def __load_dicts(self):
        """
        DOCUMENT ME!
        """
        # monta o nome da tabela de performances
        ls_path = os.path.join(self.dct_config["dir.tab"],
                               self.dct_config["tab.prf"])

        # carrega a tabela de performance em um dicionário
        self.__dct_prf = prfdata.CPrfData(self, ls_path)
        assert self.__dct_prf is not None

        # monta o nome do arquivo de exercício
        ls_path = os.path.join(self.dct_config["dir.exe"],
                               self.dct_config["glb.exe"])

        # carrega o exercício em um dicionário
        ldct_exe = exedata.CExeData(self, ls_path + ".exe.xml")
        assert ldct_exe is not None

        # obtém o exercício
        self.__exe = ldct_exe[self.dct_config["glb.exe"]]
        assert self.__exe

        # monta o nome do arquivo de tráfegos
        ls_path = os.path.join(self.dct_config["dir.trf"],
                               self.dct_config["glb.exe"])

        # carrega a tabela de tráfegos do exercício
        self.__dct_trf = trfdata.CTrfData(self, ls_path, self.__exe)
        assert self.__dct_trf is not None

        # coloca a tabela de tráfegos no exercício
        self.__exe.dct_exe_trf = self.__dct_trf
示例#2
0
    def load_exes(self):
        """
        faz a carga da tabela de exercícios
        """
        # obtém o diretório padrão de exercícios
        ls_dir = self.dct_config["dir.exe"]

        # nome do diretório vazio ?
        if ls_dir is None:
            # diretório padrão de tabelas
            ls_dir = self.dct_config["dir.exe"] = "exes"

        # diretório não existe ?
        if not os.path.exists(ls_dir):
            # cria o diretório
            os.mkdir(ls_dir)

        # percorre o diretório
        for ls_file in os.listdir(ls_dir):
            # monta o path completo do arquivo de exercício
            ls_path = os.path.join(ls_dir, ls_file)

            # não é um arquivo ?
            if not os.path.isfile(ls_path):
                # passa ao próximo
                continue

            # split name and extension
            _, l_fext = os.path.splitext(ls_file)

            # não é um arquivo XML ?
            if ".xml" != l_fext:
                # passa ao próximo
                continue

            # cria um dicionário de exercícios
            ldct_exe = exedata.CExeData(self, ls_path)

            if ldct_exe is None:
                # logger
                l_log = logging.getLogger("CModelDBEdit::load_exes")
                l_log.setLevel(logging.WARNING)
                l_log.warning("<E01: tabela de exercícios:[{}] não existe.".format(ls_path))

                # cai fora...
                return False

            # salva no dicionário
            self.__dct_exe.update(ldct_exe)

        # retorna
        return True
示例#3
0
    def __load_tables(self):
        """
        abre/cria as tabelas do sistema

        @return flag e mensagem
        """
        # monta o nome da tabela de performances
        ls_path = os.path.join(self.dct_config["dir.tab"], self.dct_config["tab.prf"])

        # carrega a tabela de performance em um dicionário
        self.__dct_prf = prfdata.CPrfData(self, ls_path)
        assert self.__dct_prf is not None

        # monta o nome do arquivo de exercício
        ls_path = os.path.join(self.dct_config["dir.exe"], self.dct_config["glb.exe"])
                
        # carrega o exercício em um dicionário
        ldct_exe = exedata.CExeData(self, ls_path + ".exe.xml")
        assert ldct_exe is not None

        # obtém o exercício
        self.__exe = ldct_exe[self.dct_config["glb.exe"]]
        assert self.__exe

        # monta o nome do arquivo de tráfegos
        ls_path = os.path.join(self.dct_config["dir.trf"], self.dct_config["glb.exe"])

        # carrega a tabela de tráfegos do exercício
        self.__dct_trf = trfdata.CTrfData(self, ls_path, self.__exe)
        assert self.__dct_trf is not None

        # coloca a tabela de tráfegos no exercício
        self.__exe.dct_exe_trf = self.__dct_trf

        # retorna
        return True, None
示例#4
0
    def __load_exes(self):
        """
        faz a carga da tabela de exercícios
        """
        # obtém o diretório padrão de exercícios
        ls_dir = self.dct_config["dir.exe"]

        # nome do diretório vazio ?
        if ls_dir is None:
            # diretório padrão de tabelas
            ls_dir = self.dct_config["dir.exe"] = "exes"

        # diretório não existe ?
        if not os.path.exists(ls_dir):
            # cria o diretório
            os.mkdir(ls_dir)

        # percorre o diretório
        for ls_file in os.listdir(ls_dir):
            # monta o path completo do arquivo de exercício
            ls_path = os.path.join(ls_dir, ls_file)

            # não é um arquivo ?
            if not os.path.isfile(ls_path):
                # passa ao próximo
                continue

            # split name and extension
            ls_name, l_fext = os.path.splitext(ls_file)

            # não é um arquivo XML ?
            if ".xml" != l_fext:
                # passa ao próximo
                continue

            # split name and extension
            ls_name, l_fext = os.path.splitext(ls_name)

            # não é um arquivo de exercício ?
            if ".exe" != l_fext:
                # passa ao próximo
                continue

            cdbg.M_DBG.debug("filename: {}".format(os.path.join(ls_dir, ls_name)))

            # cria um dicionário de exercícios
            ldct_exe = exedata.CExeData(self, os.path.join(ls_dir, ls_name))

            if ldct_exe is None:
                # logger
                l_log = logging.getLogger("CModelDBEdit::__load_exes")
                l_log.setLevel(logging.WARNING)
                l_log.warning("<E01: tabela de exercícios: {} não existe.".format(ls_path))

                # cai fora...
                return False

            # carrega os tráfegos do exercício
            ls_exe_key = ldct_exe.keys()[0]

            # atualiza o exercicio corrente
            self.__exe = ldct_exe[ls_exe_key]

            # carrega os tráfegos do exercício
            ldct_trf = self.__load_trafs(ls_exe_key, ldct_exe)

            cdbg.M_DBG.debug("dicionario de tráfegos: {}".format(ldct_trf))

            if ldct_trf:
                # obtém o exercício
                l_exe = ldct_exe[ls_exe_key]

                # coloca a tabela de tráfegos no exercício
                l_exe.dct_exe_trf = ldct_trf

                # coloca o exercício no dicionário
                ldct_exe[ls_exe_key] = l_exe

            # salva no dicionário
            self.__dct_exe.update(ldct_exe)

        # retorna
        return True