示例#1
0
def identificar_possiveis_empresas_citadas(caminho_arquivo, filtrar_por_empresas_unicas=False):
    """
    Executa o passo responsavel por, a partir das entidades do tipo ORGANIZACAO, identificar possiveis valores para os
    CNPJs dessas empresas, utilizando inicialmente busca textual.
    :param caminho_arquivo:  Caminho para o arquivo de entrada.
    :param filtrar_por_empresas_unicas:  Caso seja True, retorna apenas entidades do tipo ORGANIZACAO que estejam
    associadas a exatamente uma razao social.
    :return: Caminho para o arquivo de saida.
    """
    df = pd.read_excel(caminho_arquivo)
    resultado_analise = dict()
    data = link = midia = texto = titulo = ufs = None
    repositorio_cnpj = get_repositorio_cnpj(str(config.arquivo_config_cnpj))

    for i in range(len(df)):
        classificacao, entidade, (data, link, midia, texto, titulo, ufs) = __get_valores(df, i, data, link, midia,
                                                                                         texto, titulo, ufs)

        adicionar_aos_resultados(classificacao, entidade, filtrar_por_empresas_unicas, repositorio_cnpj,
                                 resultado_analise, (data, link, midia, texto, titulo, ufs))

    persistir_informacoes(repositorio_cnpj, resultado_analise)

    logger = logging.getLogger('covidata')
    logger.info('Processamento concluído.')

    return config.arquivo_gerado_final
示例#2
0
def __processar_cnpjs(retorno):
    buscar_cnpj = request.args['buscar-cnpj']
    if buscar_cnpj == 'S':
        repositorio_cnpj = get_repositorio_cnpj(str(
            config.arquivo_config_cnpj))
        resultado_analise = dict()
        if 'ORGANIZAÇÃO' in retorno:
            empresas = retorno['ORGANIZAÇÃO']

            for empresa in empresas:
                adicionar_aos_resultados('ORGANIZAÇÃO', empresa, True,
                                         repositorio_cnpj, resultado_analise,
                                         ())

            resultado_analise = {k[0]: v for k, v in resultado_analise.items()}

            # Elimina os nomes de empresa repetidos.
            retorno['ORGANIZAÇÃO'] = set(retorno['ORGANIZAÇÃO'])

            # Cria uma nova estrutura de dados para abrigar os metadados de cada organização cujo CNPJ foi encontrado.
            organizacoes = dict()
            for empresa in retorno['ORGANIZAÇÃO']:
                if empresa in resultado_analise:
                    organizacoes[empresa] = {
                        'razao-social': resultado_analise[empresa][0][0],
                        'cnpj': resultado_analise[empresa][0][1][0]
                    }

            retorno['ORGANIZAÇÃO'] = organizacoes
def identificar_possiveis_empresas_citadas(caminho_arquivo,
                                           filtrar_por_empresas_unicas=False):
    """
    Executa o passo responsavel por, a partir das entidades do tipo ORGANIZACAO, identificar possiveis valores para os
    CNPJs dessas empresas, utilizando inicialmente busca textual.
    :param caminho_arquivo:  Caminho para o arquivo de entrada.
    :param filtrar_por_empresas_unicas:  Caso seja True, retorna apenas entidades do tipo ORGANIZACAO que estejam
    associadas a exatamente uma razao social.
    :return: Caminho para o arquivo de saida.
    """
    df = pd.read_excel(caminho_arquivo)
    resultado_analise = dict()
    id = id_arquivo = link = titulo = tipo_servico = grupo_atividade = linha_acao = avaliacao_politica_publica = \
        data_publicacao = localidades = trechos = None
    repositorio_cnpj = get_repositorio_cnpj()

    for i in range(len(df)):
        classificacao, entidade, (id, id_arquivo, link, titulo, tipo_servico,
                                  grupo_atividade, linha_acao,
                                  avaliacao_politica_publica, data_publicacao,
                                  localidades, trechos) = __get_valores(
                                      df, i, id, id_arquivo, link, titulo,
                                      tipo_servico, grupo_atividade,
                                      linha_acao, avaliacao_politica_publica,
                                      data_publicacao, localidades, trechos)

        adicionar_aos_resultados(
            classificacao, entidade, filtrar_por_empresas_unicas,
            repositorio_cnpj, resultado_analise,
            (id, id_arquivo, link, titulo, tipo_servico, grupo_atividade,
             linha_acao, avaliacao_politica_publica, data_publicacao,
             localidades, trechos))

    persistir_informacoes(repositorio_cnpj, resultado_analise)

    logger = logging.getLogger('covidata')
    logger.info('Processamento concluído.')

    return config.arquivo_gerado_final