예제 #1
0
def Do_Importacao():

    id = getattr(request.forms, 'id')
    tipo = getattr(request.forms, 'tipo')
    nome = getattr(request.forms, 'nome')
    valor = getattr(request.forms, 'valor')
    arquivo = request.files.get('arquivo')

    fileName, ext = os.path.splitext(arquivo.filename)
    if tipo == 'C' and ext != '.csv':
        return 'Arquivo inválido <br><a href="#" onclick="window.history.go(-1)">Voltar</a>'
    if tipo == 'J' and ext != '.csv':
        return 'Arquivo inválido <br><a href="#" onclick="window.history.go(-1)">Voltar</a>'

    if arquivo != None:
        path = "/home/bstoll/mysite/arquivosUpld"
        #path = "C:\Users\bstoll\source\repos\LA-Intervencao\LA-Intervencao\LA-Intervencao.pyproj\arquivosUpld"
        path_save = "{path}/{file}".format(path=path, file=arquivo.filename)

        if os.path.isfile(path_save):
            os.remove(path_save)

        arquivo.save(path_save)
        valor = path_save

    obj = imp.ObterFonte(id)
    obj.tipo = tipo
    obj.nome = nome
    obj.valor = valor
    imp.SalvarFonte(obj)

    redirect('/importacao')
예제 #2
0
def Do_Tabelas_Sel():
    formulario = request.forms

    id = formulario.get('id')

    lista = imp.ListarTabelasFonte(id)

    for tb in lista:
        tabela = tb['tabela']
        if formulario.get(tabela) == None:
            imp.RemoverTabela(tabela)
        else:
            imp.ExecutarImportacao(id)

    redirect('/importacao')
def mineracao_dados_cluster():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    idTabela = request.params.get('idTabela')
    id = request.params.get('id')

    tabela = imp.ObterTabela(idTabela)
    tabDesc = dm.ObterTabelaDescr(id)
    #objModelo = {
    #    'n_clusters': qtd_clusters,
    #    'modeloDados': modeloDados,
    #    'clusters': clusters.tolist(),
    #    'labels' : labels.tolist()
    #    }

    modelo = json.loads(tabDesc.modelo)
    n_clusters = modelo['n_clusters']
    modeloDados = modelo['modeloDados']
    clusters = modelo['clusters']
    labels = modelo['labels']
    display = modelo['display']

    lista = []
    for itemCluster in clusters:
        valores2 = []
        for valor in itemCluster:
            valores2.append(int(round(valor, 3)))

        lista.append(valores2)

    grf = comp.grfBolha('Clusters', lista, labels, '')

    return dict(tabela=tabela, display=display, htmlGrf=grf.grf, jsGrf=grf.js)
예제 #4
0
def Association(idTabela, filtro, qtd_regras):

    tabela = imp.ObterTabela(idTabela)

    sql = dbTab.GerarSQL(idTabela, 'S')
    if tabela.sql_sem_hist != None and tabela.sql_sem_hist != '':
        if filtro == 'H':
            sql = sql + ' WHERE NOT (' + tabela.sql_sem_hist + ')'
        elif filtro == 'A':
            sql = sql + ' WHERE (' + tabela.sql_sem_hist + ')'

    lista = db.consultarSQL(sql)
    regras = desc.Association(lista, int(qtd_regras))

    dp_regras = json.dumps(regras)

    session = db.getSession()
    tabDesc = session.query(db.TabelaDescricao).filter_by(
        id_tabela=idTabela).filter_by(id_alg=id_alg_rule_association).first()
    if tabDesc == None:
        tabDesc = db.TabelaDescricao(None, idTabela, id_alg_rule_association,
                                     dp_regras, datetime.now())
        session.add(tabDesc)
    else:
        tabDesc.modelo = dp_regras
        tabDesc.dt_processo = datetime.now()

    session.commit()
    session.close()

    return tabDesc
def mineracao_dados_prever():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    idTabela = request.params.get('id')

    tabela = imp.ObterTabela(idTabela)
    tabPrev = dm.ObterTabelaPredicao(idTabela)
    tabPrevAlg = None
    colunaClasse, id_coluna = meta.ObterColunaClasse(idTabela)

    tabelaPrev = dm.ObterDadosPrevisao(idTabela)
    colunas = []
    for col in tabelaPrev.columns:
        if col == "rowid":
            continue

        coluna = meta.ObterColunaPorTabNome(idTabela, col)

        colunas.append({'campo': coluna.nome, 'titulo': coluna.titulo})

    grid = comp.gridSP('Modelo DB para previsão', tabelaPrev, colunas, '')

    for alg in tabPrev.Alg:
        if alg.selecionado:
            tabPrevAlg = alg

    return dict(idTabela=idTabela,
                tabela=tabela,
                tabPrev=tabPrev,
                tabPrevAlg=tabPrevAlg,
                colunaClasse=colunaClasse,
                grid=grid)
예제 #6
0
def SelTabelas():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')

    lista = imp.ListarTabelasFonte(id)

    return dict(lista=lista, id=id)
예제 #7
0
def do_transformacao():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    nome = getattr(request.forms, 'nome')
    sql = getattr(request.forms, 'sql')
    persistir = getattr(request.forms, 'pers')
    descricao = 'Gerado pela transformacao'

    nome = '__' + nome

    tabela = imp.ObterTabela('0')
    tabela.nome = nome
    tabela.descricao = descricao
    tabela.sql_origem = sql
    tabela.id_fonte_dados = fonte_dados_transformacao

    if persistir == 'N':
        tabela.sql_destino = sql
    else:
        tabela.sql_destino = None

    imp.SalvarTabela(tabela)

    if persistir == 'S':
        imp.CriarTabelaDoSql(sql, nome)
        imp.CriarIndices(nome)
        imp.GerarColunas(nome)
    else:
        imp.GerarColunasComSQL(nome, sql)

    tabela = imp.ObterTabelaPorNome(nome)

    redirect('/colunas?id=' + str(tabela.id))
예제 #8
0
def do_tabela_def():

    id = getattr(request.forms, 'id')
    descricao = getattr(request.forms, 'descricao')
    sql_destino = getattr(request.forms, 'sql_destino')
    sql_sem_hist = getattr(request.forms, 'sql_sem_hist')
    pln = getattr(request.forms, 'pln')

    tabela = imp.ObterTabela(id)

    tabela.descricao = descricao
    tabela.sql_destino = sql_destino
    tabela.sql_sem_hist = sql_sem_hist
    tabela.pln = "s" if pln == 'on' else "n"

    imp.SalvarTabela(tabela)

    redirect('/importacao')
def ObterTotalRegistros(idTabela):
    tabela = imp.ObterTabela(idTabela)
    sql_table = tabela.nome
    if not (tabela.sql_destino == None or tabela.sql_destino == ''):
        sql_table = tabela.sql_destino

    sql = 'SELECT COUNT(*) AS qtd FROM ' + sql_table
    resultado = db.consultarSQL(sql)

    return resultado[0]['qtd']
예제 #10
0
def Obter():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')
    obj = imp.ObterFonte(id)

    return json.dumps({
        'id': obj.id,
        'nome': obj.nome,
        'tipo': obj.tipo,
        'valor': obj.valor
    })
예제 #11
0
def edtTabela():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')

    tabela = imp.ObterTabela(id)

    if tabela.descricao == None:
        tabela.descricao = ''
    if tabela.sql_destino == None:
        tabela.sql_destino = ''

    return dict(tabela=tabela)
def pre_processamento():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    listaTabelas = imp.ListarTabelas()
    idTabela = request.params.get('idTabela')
    idColuna = request.params.get('idColuna')
    nomeColuna = ''
    nomeTabela = ''
    sql=''

    for tab in listaTabelas:
        tab.selecionado = False


    if idTabela == None:
        idTabela = 0
    else:
        for tab in listaTabelas:
            if int(tab.id) == int(idTabela):
                tab.selecionado = True
                nomeTabela = tab.nome

    listaColunas = meta.ListarColunas(idTabela)
    for col in listaColunas:
        col.selecionado = False

    if idColuna == None:
        idColuna = 0
    else:
        for col in listaColunas:
            if int(col.id) == int(idColuna):
                col.selecionado = True
                nomeColuna = col.nome
                sql = col.sql

    
    resultado = None
    if idColuna != 0 and idTabela != 0:
        resultado = pre.RetornarValoresColuna(idTabela, idColuna)

    grfPizza = comp.grfPizza('Valores Válidos', resultado, 'COL', 'qtd', 'Valores válidos para a coluna selecionada');
    return dict(listaTabelas=listaTabelas, 
                listaColunas=listaColunas,
                nomeTabela=nomeTabela,
                nomeColuna=nomeColuna,
                idTabela=idTabela,
                idColuna=idColuna,
                sql=sql,
                grfPizza=grfPizza.grf,
                scriptGrafico=grfPizza.js)
def RetornarValoresColuna(idTabela, idColuna):
    tabela = imp.ObterTabela(idTabela)
    coluna = meta.ObterColuna(idColuna)

    sql_table = tabela.nome
    if not (tabela.sql_destino == None or tabela.sql_destino == ''):
        sql_table = tabela.sql_destino

    sql = 'SELECT COUNT(*) AS qtd, ' + coluna.sql + ' as COL FROM "' + sql_table + '" GROUP BY COL'

    #resultado = db.consultarSQL(sql)
    resultado = db.consultarSQLDataFrame(sql)

    return resultado
def mineracao_dados_rule_assoc():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    idTabela = request.params.get('idTabela')
    id = request.params.get('id')

    tabela = imp.ObterTabela(idTabela)
    tabDesc = dm.ObterTabelaDescr(id)
    regras = json.loads(tabDesc.modelo)
    regrasOrdenadas = sorted(regras, key=itemgetter('lift'), reverse=True)

    objTree = comp.treeView(regrasOrdenadas, 'campos', 'lift', 'Regras')

    return dict(tabela=tabela, treeView=objTree.grf, jsTree=objTree.js)
def mineracao_dados_outlier():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    idTabela = request.params.get('idTabela')
    id = request.params.get('id')

    tabela = imp.ObterTabela(idTabela)
    tabDesc = dm.ObterTabelaDescr(id)

    modelo = json.loads(tabDesc.modelo)

    grfOutlier = comp.grfOutliers(modelo['lista'], modelo['campoD'],
                                  modelo['campoV'])

    return dict(tabela=tabela, htmlGrf=grfOutlier.grf, jsGrf=grfOutlier.js)
예제 #16
0
def ObterAlunosParaRecomendacoes(id_aluno):
    listaMensanges = []
    nomeAluno = ''
    tx_acerto = 0

    nomeColuna, id_colunaClasse = meta.ObterColunaClasse()

    colunaClasse = meta.ObterColuna(id_colunaClasse)
    tabela = imp.ObterTabela(colunaClasse.id_tabela)

    colunaIdAluno = meta.ObterColunaIdAluno(colunaClasse.id_tabela)

    listaAlunos = []
    listaColunas = []
    listaColunas.append(colunaIdAluno.id)
    listaColunas.append(colunaClasse.id)

    sql = dbTab.GerarSQL(tabela.id, 'O', listaColunas)
    dfAlunos = db.consultarSQLDataFrame(sql)

    session = db.getSession()

    for index, row in dfAlunos.iterrows():
        usuario = session.query(
            db.Usuario).filter_by(login=row[colunaIdAluno.nome]).first()
        usuario.selecionado = False

        if id_aluno == usuario.id:
            nomeAluno = usuario.nome
            usuario.selecionado = True

        listaAlunos.append(usuario)

    session.close()

    algPredicao = ObterTabelaPredicao(tabela.id)
    for alg in algPredicao.Alg:
        if alg.selecionado:
            tx_acerto = alg.tx_acerto

    if id_aluno != 0:
        listaMensanges = ObterRecomendacoesPorAluno(id_aluno)

    return dict(listaAlunos=listaAlunos,
                listaMensanges=listaMensanges,
                id_aluno=id_aluno,
                nomeAluno=nomeAluno,
                tx_acerto=tx_acerto)
예제 #17
0
def Cluster(idTabela, filtro, qtd_clusters):

    tabela = imp.ObterTabela(idTabela)

    sql = dbTab.GerarSQL(idTabela, 'S')
    if tabela.sql_sem_hist != None and tabela.sql_sem_hist != '':
        if filtro == 'H':
            sql = sql + ' WHERE NOT (' + tabela.sql_sem_hist + ')'
        elif filtro == 'A':
            sql = sql + ' WHERE (' + tabela.sql_sem_hist + ')'

    lista = db.consultarSQLDataFrame(sql)
    modeloDados, listaCopy = ut.PrepararLista(lista)

    kmeans = desc.Cluster(listaCopy, int(qtd_clusters))
    clusters = kmeans.cluster_centers_
    labels = kmeans.labels_

    display = list()
    for x in range(0, int(qtd_clusters)):
        display.append('Cluster_' + str(x))

    objModelo = {
        'n_clusters': qtd_clusters,
        'modeloDados': modeloDados,
        'clusters': clusters.tolist(),
        'labels': labels.tolist(),
        'display': display
    }

    md_clusters = json.dumps(objModelo)

    session = db.getSession()
    tabDesc = session.query(db.TabelaDescricao).filter_by(
        id_tabela=idTabela).filter_by(id_alg=id_alg_clusters).first()
    if tabDesc == None:
        tabDesc = db.TabelaDescricao(None, idTabela, id_alg_clusters,
                                     md_clusters, datetime.now())
        session.add(tabDesc)
    else:
        tabDesc.modelo = md_clusters
        tabDesc.dt_processo = datetime.now()

    session.commit()
    session.close()

    return None
예제 #18
0
def def_visao():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id_tabela = request.params.get('id_tabela')
    id = request.params.get('id')
    nome = ''
    modelo = ''
    tipo = {  }
    tipo['1']  = ''
    tipo['2']  = ''
    tipo['3']  = ''
    tipo['4']  = ''
    tipo['5']  = ''

    tabela = imp.ObterTabela(id_tabela)
    listaColunas = meta.ListarColunas(id_tabela)
    for col in listaColunas:
        col.selecionado = False

    visao = None
    if id != '0':
        visao = vis.ObterVisao(id)
        nome = visao.nome
        dTipo = visao.tipo
        modelo = visao.modelo

        tipo[dTipo] = 'selected'

        objModelo = json.loads(modelo)

        for col in listaColunas:
            for mod in objModelo:
                if int(mod['id_coluna']) == col.id:
                    col.selecionado = True

    else:
        tipo['1'] = 'checked'

    return dict(id=id,
                nome=nome,
                tipo=tipo,
                modelo=modelo,
                idTabela=id_tabela,
                nomeTabela=tabela.nome,
                listaColunas=listaColunas,
                visao=visao,
                js='<script>ReconstruirGrid();</script>')
예제 #19
0
def ListTabelas():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')

    lista = imp.ListarTabelas(id)

    campos = ({
        'campo': 'id',
        'titulo': 'Id'
    }, {
        'campo': 'comandoNome',
        'titulo': 'Nome'
    })

    grid = comp.grid('Lista de Tabelas', lista, campos)

    return dict(grid=grid)
def mineracao_dados():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    idTabela = request.params.get('id')

    tam_tst = 15

    id_coluna = 0
    colunaClasse = ''

    if idTabela == None:
        idTabela = 0

    listaTabelas = imp.ListarTabelas()
    tabPred = None
    listaTabelaDesc = []
    listaColunaT = []
    listaColunaN = []

    if int(idTabela) != 0:
        colunaClasse, id_coluna = meta.ObterColunaClasse(idTabela)
        tabPred = dm.ObterTabelaPredicao(idTabela)
        listaTabelaDesc = dm.ListarTabelaDescricao(idTabela)

        listaColunaT = meta.ListarColunasPorTipo(idTabela, 'T')
        listaColunaN = meta.ListarColunasPorTipo(idTabela, 'N')

        if tabPred != None:
            tam_tst = tabPred.reserva_treino

    for tab in listaTabelas:
        tab.selecionado = False
        if int(tab.id) == int(idTabela):
            tab.selecionado = True

    return dict(idTabela=idTabela,
                tam_tst=tam_tst,
                listaTabelas=listaTabelas,
                id_coluna=id_coluna,
                colunaClasse=colunaClasse,
                tabPred=tabPred,
                listaTabelaDesc=listaTabelaDesc,
                listaColunaT=listaColunaT,
                listaColunaN=listaColunaN)
예제 #21
0
def DefColunas():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id = request.params.get('id')

    if id == None:
        id = 0

    coluna = meta.ObterColuna(id)
    listaTabelas = imp.ListarTabelas()
    colunasFk = None

    if coluna != None:
        if coluna.val_aluno_risco == None:
            coluna.val_aluno_risco = ''

        if coluna.chave_estrangeira == True:
            colunasFk = meta.ListarColunas(coluna.id_tabela_fk)

        coluna.lstTipos = (
            {
                'id': 'T',
                'nome': 'Texto',
                'selecionado': False
            },
            {
                'id': 'N',
                'nome': 'Número',
                'selecionado': False
            },
            {
                'id': 'D',
                'nome': 'Data (seq. temporal)',
                'selecionado': False
            },
        )

        for tp in coluna.lstTipos:
            tp['selecionado'] = False
            if tp['id'] == coluna.tipo:
                tp['selecionado'] = True

    return dict(listaTabelas=listaTabelas, colunasFk=colunasFk, coluna=coluna)
예제 #22
0
def ListarRecomendacoes(idTabela):
    session = db.getSession()
    listaMensagens = session.query(
        db.Mensagem).filter_by(id_tabela=idTabela).all()

    listaRetorno = []

    listaColunas = meta.ListarColunas(idTabela)

    for msg in listaMensagens:
        existeAluno = False
        edtRow = {}
        msgsAluno = []

        for rowRet in listaRetorno:
            if rowRet['id_usuario_aluno'] == msg.id_usuario_aluno:
                existeAluno = True
                edtRow = rowRet
                msgsAluno = edtRow['MsgsAluno']
                break

        if existeAluno == False:
            edtRow['id_usuario_aluno'] = msg.id_usuario_aluno
            usuario = session.query(
                db.Usuario).filter_by(id=msg.id_usuario_aluno).first()
            edtRow['nome'] = usuario.nome
            listaRetorno.append(edtRow)

        msgsAluno.append(msg)
        edtRow['MsgsAluno'] = msgsAluno

    session.close()

    tabPredicao = ObterTabelaPredicao(idTabela)
    tx_acerto = 0
    for alg in tabPredicao.Alg:
        if alg.selecionado:
            tx_acerto = alg.tx_acerto

    return dict(tabela=imp.ObterTabela(idTabela),
                tx_acerto=tx_acerto,
                lista=listaRetorno)
예제 #23
0
def LstColunas():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    listaTabelas = imp.ListarTabelas()
    campos = ({
        'campo': 'id_coluna_cid',
        'titulo': 'ID'
    }, {
        'campo': 'comando',
        'titulo': 'Nome'
    }, {
        'campo': 'tipo',
        'titulo': 'Tipo'
    }, {
        'campo': 'titulo',
        'titulo': 'Titulo'
    }, {
        'campo': 'desabilitado',
        'titulo': 'Desabilitado'
    })

    idTabela = request.params.get('id')
    listaColunas = meta.ListarColunas(idTabela)

    for col in listaColunas:
        col.comando = '<a href="/defcoluna?id=' + str(
            col.id) + '">' + col.nome + '</a>'

    for tab in listaTabelas:
        tab.selecionado = False

    if idTabela == None:
        idTabela = 0
    else:
        for tab in listaTabelas:
            if int(tab.id) == int(idTabela):
                tab.selecionado = True

    grid = comp.grid('Lista de Colunas', listaColunas, campos,
                     'dados atualizados em 26/01/2018')

    return dict(listaTabelas=listaTabelas, grid=grid)
예제 #24
0
def Outlier(idTabela, filtro, campoD, campoV):

    tabela = imp.ObterTabela(idTabela)

    sql = dbTab.GerarSQL(idTabela, 'S')
    if tabela.sql_sem_hist != None and tabela.sql_sem_hist != '':
        if filtro == 'H':
            sql = sql + ' WHERE NOT (' + tabela.sql_sem_hist + ')'
        elif filtro == 'A':
            sql = sql + ' WHERE (' + tabela.sql_sem_hist + ')'

    lista = db.consultarSQLDataFrame(sql)

    campoVal = meta.ObterColuna(campoV).nome
    campoDesc = meta.ObterColuna(campoD).nome

    existeOutlier, listaDf = desc.Outliers(lista, campoVal, campoDesc)

    modelo = {
        'campoV': campoVal,
        'campoD': campoDesc,
        'existe': existeOutlier,
        'lista': listaDf
    }

    md_outlier = json.dumps(modelo)

    session = db.getSession()
    tabDesc = session.query(db.TabelaDescricao).filter_by(
        id_tabela=idTabela).filter_by(id_alg=id_alg_outliers).first()
    if tabDesc == None:
        tabDesc = db.TabelaDescricao(None, idTabela, id_alg_outliers,
                                     md_outlier, datetime.now())
        session.add(tabDesc)
    else:
        tabDesc.modelo = md_outlier
        tabDesc.dt_processo = datetime.now()

    session.commit()
    session.close()

    return "OK"
예제 #25
0
def Importacao():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    lista = imp.ListarFontes()

    campos = {
        'campo': 'nome_edt',
        'titulo': 'Nome'
    }, {
        'campo': 'descr_tipo',
        'titulo': 'Tipo'
    }, {
        'campo': 'comando_tabelas',
        'titulo': 'Tabelas'
    }

    grid = comp.grid('Lista de Fontes de Dados', lista, campos,
                     'dados atualizados em 26/01/2018')

    return dict(grid=grid)
예제 #26
0
    def CarregarObjetos(self):
        self.lbLog.delete(0, END)
        self.lbColeta.delete(0, END)
        self.lbTransformacao.delete(0, END)
        self.lbPredRecom.delete(0, END)

        listaTabelas = imp.ListarTabelas()

        for tabela in listaTabelas:
            if tabela.id_fonte_dados != 99:
                self.lbColeta.insert(END, tabela.nome)

        for tabela in listaTabelas:
            if tabela.id_fonte_dados == 99:
                self.lbTransformacao.insert(END, tabela.nome)

        self.lbPredRecom.insert(END, 'Predição')
        self.lbPredRecom.insert(END, 'Recomendação')

        self.txtHoraVar.set('15:45')
예제 #27
0
def ExibirMatrizConfusao(idTabela, idModPredAlg):
    modeloPredAlg = ObterModeloPredicaoAlg(idModPredAlg)
    tabPred = ObterTabelaPredicao(idTabela)
    tabela = imp.ObterTabela(idTabela)
    colunaClasse, id_coluna = meta.ObterColunaClasse(idTabela)

    modeloBanco = json.loads(tabPred.modelo)

    valoresCls = modeloBanco[colunaClasse]

    for valor in valoresCls:
        print(valor)

    matriz_confusao = json.loads(modeloPredAlg.matriz_confusao)

    return dict(idTabela=idTabela,
                tabela=tabela.nome,
                colunaClasse=colunaClasse,
                dt_processo=tabPred.dt_processo,
                algoritmo=modeloPredAlg.nome,
                valoresCls=valoresCls,
                matriz_confusao=matriz_confusao)
예제 #28
0
def ExportarDados(id_tabela):
    tabela = imp.ObterTabela(id_tabela)
    #-- Rede Gazeta
    #path = "C:/Users/bstoll/source/repos/LA-Intervencao/LA-Intervencao/arquivosUpld"
    #-- pythonanywhere
    path = "/home/bstoll/mysite/arquivosUpld"
    #-- Casa
    #path = "C:/Users/Bruno Stoll/source/repos/LA-Intervencao/LA-Intervencao"

    pathFile = "{path}/{file}".format(path=path, file=tabela.nome + ".csv")

    listaColunas = meta.ListarColunas(id_tabela)
    ar_lst_cols = []
    for col in listaColunas:
        ar_lst_cols.append(col.id)

    sql = dbTab.GerarSQL(id_tabela, 'O', ar_lst_cols)
    df = dbTab.db.consultarSQLDataFrame(sql)
    if os.path.isfile(pathFile):
        os.remove(pathFile)

    df.to_csv(pathFile, index=False)
예제 #29
0
def visao():
    seg.ChecarPerfil(seg.PERFIL_Analista)

    id_tabela = request.params.get('id')
    if id_tabela == None or id_tabela == '':
        id_tabela = 0

    listaTabelas = imp.ListarTabelas()

    for tab in listaTabelas:
        tab.selecionado = False
        if int(tab.id) == int(id_tabela):
            tab.selecionado = True


    lista = vis.ListarVisao(id_tabela)

    campos = (  {'campo': 'id', 'titulo': 'ID' }, {'campo': 'nomeCommando', 'titulo': 'Nome' },{'campo': 'visualizarCommando', 'titulo': 'Mostrar' }, {'campo': 'ds_tipo', 'titulo': 'Tipo'} )

    grid = comp.grid('Lista de Visões', lista, campos)


    return dict(listaTabelas=listaTabelas,
                grid=grid)
예제 #30
0
def PreverValores(idTabela):
    tabela = imp.ObterTabela(idTabela)
    colunaClasse, id_coluna = meta.ObterColunaClasse(idTabela)
    coluna = meta.ObterColuna(id_coluna)

    nomeTabela = tabela.nome
    nomeColunaClasse = coluna.nome

    LimparDadosColunaClasse(nomeTabela, nomeColunaClasse)

    tabPredicao = ObterTabelaPredicao(tabela.id)
    algPredicao = None
    for alg in tabPredicao.Alg:
        if alg.selecionado:
            algPredicao = alg

    modeloDb = json.loads(tabPredicao.modelo)
    modeloDbColClasse = modeloDb[colunaClasse]

    df = ObterDadosPrevisao(idTabela)
    dfListaCopy = df.copy()
    rowids = df['rowid']
    del dfListaCopy[colunaClasse]
    del dfListaCopy['rowid']

    for index, row in dfListaCopy.iterrows():
        rowPred = ut.VoltarModelo(dict(row), modeloDb)
        val_prev = algPredicao.clf.predict([rowPred])

        for key, value in modeloDbColClasse.items():
            if int(key) == int(val_prev):
                classe_prev = 'LA :: Prev :: ' + value
                rowid = rowids[index]
                AtualiarClasse(nomeTabela, nomeColunaClasse, classe_prev,
                               rowid)
                break