electionsBR
electionsBR copied to clipboard
Cria opção de usar dados já descarregados na máquina local.
Proposta para agilizar a manipulação dos dados e melhorar eficiência do uso das redes.
Na versão atual, o script sempre faz download dos arquivos do site do TSE. No caso da pessoa criar dois dataframes com o mesmo arquivo de origem, o arquivo é descarregado duas vezes. Por exemplo:
> df_elec_fed_ac <- electionsBR::candidate_fed(2014, "AC")
trying URL 'http://agencia.tse.jus.br/estatistica/sead/odsele/consulta_cand/consulta_cand_2014.zip'
Content type 'application/zip' length 5585613 bytes (5.3 MB)
==================================================
downloaded 5.3 MB
Processing the data...
Done.
> df_elec_fed_am <- electionsBR::candidate_fed(2014, "AM")
trying URL 'http://agencia.tse.jus.br/estatistica/sead/odsele/consulta_cand/consulta_cand_2014.zip'
Content type 'application/zip' length 5585613 bytes (5.3 MB)
==================================================
downloaded 5.3 MB
Processing the data...
Done.
A proposta dessas alterações é permitir às pessoas configurar uma pasta local para armazenar os arquivos e passar a ler os dados dessa pasta local. Se trabalhar com dados locais pode levar o usuário a utilizar dados desatualizados, o risco é compensado ao promover agilidade de quem não tem uma excelente conexão de internet. Importante destacar que sem definir essa configuração o script permanecerá com o comportamento atual de sempre baixar os arquivos. Para implementar essa configuração foi levado em consideração que o TSE não realiza alterações nos arquivos com alta frequência, não será em horas ou mesmo semanas, que haverá defasagem de dados. Também foi considerado o princípio de desenvolvimento em Python de que somos todos adultos responsáveis.
Por meio da função options do pacote base do R, o usuário pode configurar a pasta de downloads dos arquivos na variável electionsBR-data-path. Por exemplo:
> options('electionsBR-data-path' = '~/Documents/dados_tse')
Ao executar as funções o script primeiro buscará os arquivos na pasta configurada no passo anterior e, se não encontrar, então, fará o descarregamento do arquivo.
> df_elec_fed_ac <- electionsBR::candidate_fed(2014, "AC")
Downloading data to: ~/Documents/dados_tse/consulta_cand_2014.zip
trying URL 'http://agencia.tse.jus.br/estatistica/sead/odsele/consulta_cand/consulta_cand_2014.zip'
Content type 'application/zip' length 5585613 bytes (5.3 MB)
==================================================
downloaded 5.3 MB
Processing the data...
Done.
> df_elec_fed_am <- electionsBR::candidate_fed(2014, "AM")
Processing the data...
Done.
Com essa alteração, na segunda execução da função candidate_fed o script utiliza o arquivo já descarregado pela execução anterior.
O script foi refatorado para centralizar o tratamento dos arquivos em três funções. Nessa refatoração foi considerado o princípio Don't repeat Yourself de não redundância de código. Isso facilitou a implementação da função de verificação da opção de pasta local e dos arquivos descarregados. E, também, preparou a estrutura do código para agilizar futuras manutenções na função de tratamento arquivos, como por exemplo, verificar a versão dos arquivos remotos e sugerir ao usuário o novo download.
Obrigado meu caro... essa era atividade programada pra próxima atualização, logo mais dou uma olhada com calma da sugestão.
Por nada, é uma satisfação poder contribuir. É uma ferramenta bastante útil. Tive mais um tempo e implementei o teste de comparação da data to arquivo remoto com o arquivo local.