Acesso, tradução e modelos usando dados do congresso nacional.
- Site com documentação
- Descrição dos dados gerados e usados pelo Parlametria.
Este repositório tem por objetivo principal prover o conjunto de funções e serviços que permitem capturar e processar dados de proposições e parlamentares do congresso nacional. Para isto existem dois módulos principais:
-
O pacote agoradigital que exporta funções que acessam e processam dados do Congresso;
-
O módulo scripts de atualização dos dados do painel que executa e salva os dados capturados e processados.
- O código principal do pacote você pode encontrar em R/
- Em scripts/ se encontram alguns submódulos responsávels por orquestrar a execução do processamento de dados do repositório e salvar em CSV.
- Em docs/reports/ pode se visualizar reports de Pls já testadas (podem existir informações desatualizadas).
- tests/ contém testes de uso.
- view/ contém alguns exemplos de visualizações que utilizam o agoradigital
O pacote agoradigital exporta várias funções que extraem e processam os dados do Congresso Nacional.
Antes de instalar nosso pacote, é necessário que você tenha o R instalado.
Aviso: Os comandos desta seção devem ser executados dentro do interpretador de R. Mas você também pode executar qualquer código R direto no terminal usando o comando
Rscript -e
. Exemplo:Rscript -e 'agoradigital::fetch_proposicao(82051, "senado")'
Recomendamos que você instale o pacote devtools que é uma ferramenta que irá te ajudar no processo de instalação e desenvolvimento.
install.packages("devtools")
Após isso, você pode instalar o pacote no seu ambiente R de preferência:
devtools::install_github("parlametria/leggoR")
Para utilizá-lo:
library(agoradigital)
Para verificar se toda a instalação foi feita de maneira correta, use o exemplo:
agoradigital::fetch_proposicao(82051, "senado")
Exemplos básicos de uso.
A maioria de nossos métodos necessita do id da proposição que você deseja extrair informações, há várias formas de capturar esse id, serão mostradas as mais básicas:
-
Pelo site da câmara e do senado:
Tendo como exemplo o PL 3729/2004 da Câmara, você pode visualizar o id pela URL da página da Câmara. Nesse caso o id é 257161:
https://www.camara.gov.br/proposicoesWeb/fichadetramitacao?idProposicao=257161
No Senado é da mesma forma, tendo como exemplo o PLS 441/2007, o id é 82051:
https://www25.senado.leg.br/web/atividade/materias/-/materia/82051
Agora você pode utilizar esses ids nos métodos que precisar. Exemplo:
agoradigital::fetch_proposicao(82051, "senado")
É necessário garantir que todas as suas funções estejam documentadas e disponíveis. Para isso, você precisa adicionar @export
a documentação da função para garantir que essa função será exportada, como em qualquer pacote R. Após isso:
- Gere a documentação do package.
devtools::document()
Para rodar os testes:
- Teste o pacote
devtools::test()
- Instale o pacote a partir da branch que deseja:
devtools::install_github('parlametria/leggoR@nome_da_branch')
Depois faça os testes necessários para garantir que o pacote está funcionando conforme esperado.
Abaixo temos alguns comandos extras que podem ser úteis no desenvolvimento do pacote:
- Mostrar cobertura do código:
library(covr);package_coverage()
- Fazer verificações gerais um pouco mais bonitinhas:
rcmdcheck::rcmdcheck()
- Rodar o linter:
devtools::lint()
- Para regerar o site da documentação:
pkgdown::build_site(override = list(destination = "public"))
O módulo scripts é responsável por englobar diversos submódulos responsáveis por executar a atualização dos dados utilizados pelo Painel Parlametria e geralmente chamados pelo orquestrador leggo-geral. Explicamos mais detalhes no README deste diretório.
Este repositório possui uma configuração do docker para facilitar o desenvolvimento, teste e deploy do leggoR considerando seus módulos principais: pacote agoradigital, módulo de scripts.
Para usar o docker será necessário:
-
Instale o docker e o docker-compose.
-
Configure as variáveis de ambiente: crie uma cópia do arquivo .
env.sample
e o renomeie para.env
. Em seguida preencha as variáveis com os valores adequados para execução. Atualmente temos a seguinte variável de ambiente:
APP_SECRET = hash da url do bot Voz Ativa para onde mandamos os resultados das atualizações e mensagens de novas proposições apensadas.
- Realize o build da imagem (na primeira vez esse passo pode demorar bastante dependendo da sua conexão com a internet).
docker-compose build
Agora é possível usar o rmod (nome do serviço levantado pelo docker-compose) para executar o código do leggoR:
Exemplo:
docker-compose run --rm rmod Rscript scripts/fetch_updated_bills_data.R -e <export_path> -f 4
O <export_path>
é o caminho onde os csvs do resultado serão salvos.
Sempre que o código do repositório for alterado é necessário realizar um novo build da imagem docker para que as mudanças sejam refletidas quando o container estiver em execução.
É possível com algumas alterações criar um volume entre o código do repositório e o container para facilitar o teste e desenvolvimento do leggoR mas isto ainda não está implementado.
Se encontrou algum problema ou deseja fazer alguma melhoria. Por favor, abra uma issue e descreva o problema com clareza, se possível com exemplos que possamos reproduzir.
Toda ajuda é bem vinda e de grande importância :) sinta-se à vontade.